Skip to main content

vulkan_rust_sys/
structs.rs

1use super::enums::*;
2use super::handles::*;
3use super::bitmasks::*;
4use super::constants::*;
5pub type PFN_vkInternalAllocationNotification = Option<
6    unsafe extern "system" fn(
7        *mut core::ffi::c_void,
8        usize,
9        InternalAllocationType,
10        SystemAllocationScope,
11    ),
12>;
13pub type PFN_vkInternalFreeNotification = Option<
14    unsafe extern "system" fn(
15        *mut core::ffi::c_void,
16        usize,
17        InternalAllocationType,
18        SystemAllocationScope,
19    ),
20>;
21pub type PFN_vkReallocationFunction = Option<
22    unsafe extern "system" fn(
23        *mut core::ffi::c_void,
24        *mut core::ffi::c_void,
25        usize,
26        usize,
27        SystemAllocationScope,
28    ) -> *mut core::ffi::c_void,
29>;
30pub type PFN_vkAllocationFunction = Option<
31    unsafe extern "system" fn(
32        *mut core::ffi::c_void,
33        usize,
34        usize,
35        SystemAllocationScope,
36    ) -> *mut core::ffi::c_void,
37>;
38pub type PFN_vkFreeFunction = Option<
39    unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void),
40>;
41pub type PFN_vkVoidFunction = Option<unsafe extern "system" fn()>;
42pub type PFN_vkDebugReportCallbackEXT = Option<
43    unsafe extern "system" fn(
44        DebugReportFlagsEXT,
45        DebugReportObjectTypeEXT,
46        u64,
47        usize,
48        i32,
49        *const core::ffi::c_char,
50        *const core::ffi::c_char,
51        *mut core::ffi::c_void,
52    ) -> u32,
53>;
54pub type PFN_vkDebugUtilsMessengerCallbackEXT = Option<
55    unsafe extern "system" fn(
56        DebugUtilsMessageSeverityFlagBitsEXT,
57        DebugUtilsMessageTypeFlagsEXT,
58        *const DebugUtilsMessengerCallbackDataEXT,
59        *mut core::ffi::c_void,
60    ) -> u32,
61>;
62pub type PFN_vkFaultCallbackFunction = Option<
63    unsafe extern "system" fn(u32, u32, *const FaultData),
64>;
65pub type PFN_vkDeviceMemoryReportCallbackEXT = Option<
66    unsafe extern "system" fn(
67        *const DeviceMemoryReportCallbackDataEXT,
68        *mut core::ffi::c_void,
69    ),
70>;
71pub type PFN_vkGetInstanceProcAddrLUNARG = Option<
72    unsafe extern "system" fn(Instance, *const core::ffi::c_char) -> PFN_vkVoidFunction,
73>;
74/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
75#[repr(transparent)]
76#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
77pub struct StdVideoAV1Level(pub i32);
78/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
79#[repr(transparent)]
80#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
81pub struct StdVideoAV1Profile(pub i32);
82/// Opaque video codec type (defined in vulkan_video_codec headers).
83#[repr(C)]
84#[derive(Debug, Copy, Clone, Default)]
85pub struct StdVideoAV1SequenceHeader {
86    _opaque: [u8; 0],
87}
88/// Opaque video codec type (defined in vulkan_video_codec headers).
89#[repr(C)]
90#[derive(Debug, Copy, Clone, Default)]
91pub struct StdVideoDecodeAV1PictureInfo {
92    _opaque: [u8; 0],
93}
94/// Opaque video codec type (defined in vulkan_video_codec headers).
95#[repr(C)]
96#[derive(Debug, Copy, Clone, Default)]
97pub struct StdVideoDecodeAV1ReferenceInfo {
98    _opaque: [u8; 0],
99}
100/// Opaque video codec type (defined in vulkan_video_codec headers).
101#[repr(C)]
102#[derive(Debug, Copy, Clone, Default)]
103pub struct StdVideoDecodeH264PictureInfo {
104    _opaque: [u8; 0],
105}
106/// Opaque video codec type (defined in vulkan_video_codec headers).
107#[repr(C)]
108#[derive(Debug, Copy, Clone, Default)]
109pub struct StdVideoDecodeH264ReferenceInfo {
110    _opaque: [u8; 0],
111}
112/// Opaque video codec type (defined in vulkan_video_codec headers).
113#[repr(C)]
114#[derive(Debug, Copy, Clone, Default)]
115pub struct StdVideoDecodeH265PictureInfo {
116    _opaque: [u8; 0],
117}
118/// Opaque video codec type (defined in vulkan_video_codec headers).
119#[repr(C)]
120#[derive(Debug, Copy, Clone, Default)]
121pub struct StdVideoDecodeH265ReferenceInfo {
122    _opaque: [u8; 0],
123}
124/// Opaque video codec type (defined in vulkan_video_codec headers).
125#[repr(C)]
126#[derive(Debug, Copy, Clone, Default)]
127pub struct StdVideoDecodeVP9PictureInfo {
128    _opaque: [u8; 0],
129}
130/// Opaque video codec type (defined in vulkan_video_codec headers).
131#[repr(C)]
132#[derive(Debug, Copy, Clone, Default)]
133pub struct StdVideoEncodeAV1DecoderModelInfo {
134    _opaque: [u8; 0],
135}
136/// Opaque video codec type (defined in vulkan_video_codec headers).
137#[repr(C)]
138#[derive(Debug, Copy, Clone, Default)]
139pub struct StdVideoEncodeAV1OperatingPointInfo {
140    _opaque: [u8; 0],
141}
142/// Opaque video codec type (defined in vulkan_video_codec headers).
143#[repr(C)]
144#[derive(Debug, Copy, Clone, Default)]
145pub struct StdVideoEncodeAV1PictureInfo {
146    _opaque: [u8; 0],
147}
148/// Opaque video codec type (defined in vulkan_video_codec headers).
149#[repr(C)]
150#[derive(Debug, Copy, Clone, Default)]
151pub struct StdVideoEncodeAV1ReferenceInfo {
152    _opaque: [u8; 0],
153}
154/// Opaque video codec type (defined in vulkan_video_codec headers).
155#[repr(C)]
156#[derive(Debug, Copy, Clone, Default)]
157pub struct StdVideoEncodeH264PictureInfo {
158    _opaque: [u8; 0],
159}
160/// Opaque video codec type (defined in vulkan_video_codec headers).
161#[repr(C)]
162#[derive(Debug, Copy, Clone, Default)]
163pub struct StdVideoEncodeH264ReferenceInfo {
164    _opaque: [u8; 0],
165}
166/// Opaque video codec type (defined in vulkan_video_codec headers).
167#[repr(C)]
168#[derive(Debug, Copy, Clone, Default)]
169pub struct StdVideoEncodeH264SliceHeader {
170    _opaque: [u8; 0],
171}
172/// Opaque video codec type (defined in vulkan_video_codec headers).
173#[repr(C)]
174#[derive(Debug, Copy, Clone, Default)]
175pub struct StdVideoEncodeH265PictureInfo {
176    _opaque: [u8; 0],
177}
178/// Opaque video codec type (defined in vulkan_video_codec headers).
179#[repr(C)]
180#[derive(Debug, Copy, Clone, Default)]
181pub struct StdVideoEncodeH265ReferenceInfo {
182    _opaque: [u8; 0],
183}
184/// Opaque video codec type (defined in vulkan_video_codec headers).
185#[repr(C)]
186#[derive(Debug, Copy, Clone, Default)]
187pub struct StdVideoEncodeH265SliceSegmentHeader {
188    _opaque: [u8; 0],
189}
190/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
191#[repr(transparent)]
192#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
193pub struct StdVideoH264LevelIdc(pub i32);
194/// Opaque video codec type (defined in vulkan_video_codec headers).
195#[repr(C)]
196#[derive(Debug, Copy, Clone, Default)]
197pub struct StdVideoH264PictureParameterSet {
198    _opaque: [u8; 0],
199}
200/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
201#[repr(transparent)]
202#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
203pub struct StdVideoH264ProfileIdc(pub i32);
204/// Opaque video codec type (defined in vulkan_video_codec headers).
205#[repr(C)]
206#[derive(Debug, Copy, Clone, Default)]
207pub struct StdVideoH264SequenceParameterSet {
208    _opaque: [u8; 0],
209}
210/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
211#[repr(transparent)]
212#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
213pub struct StdVideoH265LevelIdc(pub i32);
214/// Opaque video codec type (defined in vulkan_video_codec headers).
215#[repr(C)]
216#[derive(Debug, Copy, Clone, Default)]
217pub struct StdVideoH265PictureParameterSet {
218    _opaque: [u8; 0],
219}
220/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
221#[repr(transparent)]
222#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
223pub struct StdVideoH265ProfileIdc(pub i32);
224/// Opaque video codec type (defined in vulkan_video_codec headers).
225#[repr(C)]
226#[derive(Debug, Copy, Clone, Default)]
227pub struct StdVideoH265SequenceParameterSet {
228    _opaque: [u8; 0],
229}
230/// Opaque video codec type (defined in vulkan_video_codec headers).
231#[repr(C)]
232#[derive(Debug, Copy, Clone, Default)]
233pub struct StdVideoH265VideoParameterSet {
234    _opaque: [u8; 0],
235}
236/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
237#[repr(transparent)]
238#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
239pub struct StdVideoVP9Level(pub i32);
240/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
241#[repr(transparent)]
242#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
243pub struct StdVideoVP9Profile(pub i32);
244pub type AccelerationStructureCreateFlagsKHR = AccelerationStructureCreateFlagBitsKHR;
245pub type AccessFlags = AccessFlagBits;
246pub type AccessFlags2 = AccessFlagBits2;
247pub type AccessFlags3KHR = AccessFlagBits3KHR;
248pub type AcquireProfilingLockFlagsKHR = AcquireProfilingLockFlagBitsKHR;
249pub type AddressCommandFlagsKHR = AddressCommandFlagBitsKHR;
250pub type AddressCopyFlagsKHR = AddressCopyFlagBitsKHR;
251pub type AttachmentDescriptionFlags = AttachmentDescriptionFlagBits;
252pub type BufferCreateFlags = BufferCreateFlagBits;
253pub type BufferUsageFlags = BufferUsageFlagBits;
254pub type BufferUsageFlags2 = BufferUsageFlagBits2;
255pub type BuildAccelerationStructureFlagsKHR = BuildAccelerationStructureFlagBitsKHR;
256pub type BuildMicromapFlagsEXT = BuildMicromapFlagBitsEXT;
257pub type ClusterAccelerationStructureAddressResolutionFlagsNV = ClusterAccelerationStructureAddressResolutionFlagBitsNV;
258pub type ClusterAccelerationStructureClusterFlagsNV = ClusterAccelerationStructureClusterFlagBitsNV;
259pub type ClusterAccelerationStructureGeometryFlagsNV = ClusterAccelerationStructureGeometryFlagBitsNV;
260pub type ClusterAccelerationStructureIndexFormatFlagsNV = ClusterAccelerationStructureIndexFormatFlagBitsNV;
261pub type ColorComponentFlags = ColorComponentFlagBits;
262pub type CommandBufferResetFlags = CommandBufferResetFlagBits;
263pub type CommandBufferUsageFlags = CommandBufferUsageFlagBits;
264pub type CommandPoolCreateFlags = CommandPoolCreateFlagBits;
265pub type CommandPoolResetFlags = CommandPoolResetFlagBits;
266pub type CompositeAlphaFlagsKHR = CompositeAlphaFlagBitsKHR;
267pub type ConditionalRenderingFlagsEXT = ConditionalRenderingFlagBitsEXT;
268pub type CullModeFlags = CullModeFlagBits;
269pub type DataGraphPipelineDispatchFlagsARM = DataGraphPipelineDispatchFlagBitsARM;
270pub type DataGraphPipelineSessionCreateFlagsARM = DataGraphPipelineSessionCreateFlagBitsARM;
271pub type DebugReportFlagsEXT = DebugReportFlagBitsEXT;
272pub type DebugUtilsMessageSeverityFlagsEXT = DebugUtilsMessageSeverityFlagBitsEXT;
273pub type DebugUtilsMessageTypeFlagsEXT = DebugUtilsMessageTypeFlagBitsEXT;
274pub type DependencyFlags = DependencyFlagBits;
275pub type DescriptorBindingFlags = DescriptorBindingFlagBits;
276pub type DescriptorPoolCreateFlags = DescriptorPoolCreateFlagBits;
277pub type DescriptorSetLayoutCreateFlags = DescriptorSetLayoutCreateFlagBits;
278pub type DeviceAddressBindingFlagsEXT = DeviceAddressBindingFlagBitsEXT;
279pub type DeviceDiagnosticsConfigFlagsNV = DeviceDiagnosticsConfigFlagBitsNV;
280pub type DeviceFaultFlagsKHR = DeviceFaultFlagBitsKHR;
281pub type DeviceGroupPresentModeFlagsKHR = DeviceGroupPresentModeFlagBitsKHR;
282pub type DeviceQueueCreateFlags = DeviceQueueCreateFlagBits;
283pub type DisplayPlaneAlphaFlagsKHR = DisplayPlaneAlphaFlagBitsKHR;
284pub type EventCreateFlags = EventCreateFlagBits;
285pub type ExportMetalObjectTypeFlagsEXT = ExportMetalObjectTypeFlagBitsEXT;
286pub type ExternalFenceFeatureFlags = ExternalFenceFeatureFlagBits;
287pub type ExternalFenceHandleTypeFlags = ExternalFenceHandleTypeFlagBits;
288pub type ExternalMemoryFeatureFlags = ExternalMemoryFeatureFlagBits;
289pub type ExternalMemoryFeatureFlagsNV = ExternalMemoryFeatureFlagBitsNV;
290pub type ExternalMemoryHandleTypeFlags = ExternalMemoryHandleTypeFlagBits;
291pub type ExternalMemoryHandleTypeFlagsNV = ExternalMemoryHandleTypeFlagBitsNV;
292pub type ExternalSemaphoreFeatureFlags = ExternalSemaphoreFeatureFlagBits;
293pub type ExternalSemaphoreHandleTypeFlags = ExternalSemaphoreHandleTypeFlagBits;
294pub type FenceCreateFlags = FenceCreateFlagBits;
295pub type FenceImportFlags = FenceImportFlagBits;
296pub type FormatFeatureFlags = FormatFeatureFlagBits;
297pub type FormatFeatureFlags2 = FormatFeatureFlagBits2;
298pub type FrameBoundaryFlagsEXT = FrameBoundaryFlagBitsEXT;
299pub type FramebufferCreateFlags = FramebufferCreateFlagBits;
300pub type GeometryFlagsKHR = GeometryFlagBitsKHR;
301pub type GeometryInstanceFlagsKHR = GeometryInstanceFlagBitsKHR;
302pub type GraphicsPipelineLibraryFlagsEXT = GraphicsPipelineLibraryFlagBitsEXT;
303pub type HostImageCopyFlags = HostImageCopyFlagBits;
304pub type ImageAspectFlags = ImageAspectFlagBits;
305pub type ImageCompressionFixedRateFlagsEXT = ImageCompressionFixedRateFlagBitsEXT;
306pub type ImageCompressionFlagsEXT = ImageCompressionFlagBitsEXT;
307pub type ImageConstraintsInfoFlagsFUCHSIA = ImageConstraintsInfoFlagBitsFUCHSIA;
308pub type ImageCreateFlags = ImageCreateFlagBits;
309pub type ImageUsageFlags = ImageUsageFlagBits;
310pub type ImageViewCreateFlags = ImageViewCreateFlagBits;
311pub type IndirectCommandsInputModeFlagsEXT = IndirectCommandsInputModeFlagBitsEXT;
312pub type IndirectCommandsLayoutUsageFlagsEXT = IndirectCommandsLayoutUsageFlagBitsEXT;
313pub type IndirectCommandsLayoutUsageFlagsNV = IndirectCommandsLayoutUsageFlagBitsNV;
314pub type IndirectStateFlagsNV = IndirectStateFlagBitsNV;
315pub type InstanceCreateFlags = InstanceCreateFlagBits;
316pub type MemoryAllocateFlags = MemoryAllocateFlagBits;
317pub type MemoryDecompressionMethodFlagsEXT = MemoryDecompressionMethodFlagBitsEXT;
318pub type MemoryHeapFlags = MemoryHeapFlagBits;
319pub type MemoryMapFlags = MemoryMapFlagBits;
320pub type MemoryPropertyFlags = MemoryPropertyFlagBits;
321pub type MemoryUnmapFlags = MemoryUnmapFlagBits;
322pub type MicromapCreateFlagsEXT = MicromapCreateFlagBitsEXT;
323pub type OpticalFlowExecuteFlagsNV = OpticalFlowExecuteFlagBitsNV;
324pub type OpticalFlowGridSizeFlagsNV = OpticalFlowGridSizeFlagBitsNV;
325pub type OpticalFlowSessionCreateFlagsNV = OpticalFlowSessionCreateFlagBitsNV;
326pub type OpticalFlowUsageFlagsNV = OpticalFlowUsageFlagBitsNV;
327pub type PartitionedAccelerationStructureInstanceFlagsNV = PartitionedAccelerationStructureInstanceFlagBitsNV;
328pub type PastPresentationTimingFlagsEXT = PastPresentationTimingFlagBitsEXT;
329pub type PeerMemoryFeatureFlags = PeerMemoryFeatureFlagBits;
330pub type PerformanceCounterDescriptionFlagsKHR = PerformanceCounterDescriptionFlagBitsKHR;
331pub type PhysicalDeviceSchedulingControlsFlagsARM = PhysicalDeviceSchedulingControlsFlagBitsARM;
332pub type PipelineCacheCreateFlags = PipelineCacheCreateFlagBits;
333pub type PipelineColorBlendStateCreateFlags = PipelineColorBlendStateCreateFlagBits;
334pub type PipelineCompilerControlFlagsAMD = PipelineCompilerControlFlagBitsAMD;
335pub type PipelineCreateFlags = PipelineCreateFlagBits;
336pub type PipelineCreateFlags2 = PipelineCreateFlagBits2;
337pub type PipelineCreationFeedbackFlags = PipelineCreationFeedbackFlagBits;
338pub type PipelineDepthStencilStateCreateFlags = PipelineDepthStencilStateCreateFlagBits;
339pub type PipelineLayoutCreateFlags = PipelineLayoutCreateFlagBits;
340pub type PipelineShaderStageCreateFlags = PipelineShaderStageCreateFlagBits;
341pub type PipelineStageFlags = PipelineStageFlagBits;
342pub type PipelineStageFlags2 = PipelineStageFlagBits2;
343pub type PresentGravityFlagsKHR = PresentGravityFlagBitsKHR;
344pub type PresentScalingFlagsKHR = PresentScalingFlagBitsKHR;
345pub type PresentStageFlagsEXT = PresentStageFlagBitsEXT;
346pub type PresentTimingInfoFlagsEXT = PresentTimingInfoFlagBitsEXT;
347pub type QueryControlFlags = QueryControlFlagBits;
348pub type QueryPipelineStatisticFlags = QueryPipelineStatisticFlagBits;
349pub type QueryPoolCreateFlags = QueryPoolCreateFlagBits;
350pub type QueryResultFlags = QueryResultFlagBits;
351pub type QueueFlags = QueueFlagBits;
352pub type RefreshObjectFlagsKHR = RefreshObjectFlagBitsKHR;
353pub type RenderPassCreateFlags = RenderPassCreateFlagBits;
354pub type RenderingAttachmentFlagsKHR = RenderingAttachmentFlagBitsKHR;
355pub type RenderingFlags = RenderingFlagBits;
356pub type ResolveImageFlagsKHR = ResolveImageFlagBitsKHR;
357pub type ResolveModeFlags = ResolveModeFlagBits;
358pub type SampleCountFlags = SampleCountFlagBits;
359pub type SamplerCreateFlags = SamplerCreateFlagBits;
360pub type SemaphoreImportFlags = SemaphoreImportFlagBits;
361pub type SemaphoreWaitFlags = SemaphoreWaitFlagBits;
362pub type ShaderCorePropertiesFlagsAMD = ShaderCorePropertiesFlagBitsAMD;
363pub type ShaderCreateFlagsEXT = ShaderCreateFlagBitsEXT;
364pub type ShaderStageFlags = ShaderStageFlagBits;
365pub type SparseImageFormatFlags = SparseImageFormatFlagBits;
366pub type SparseMemoryBindFlags = SparseMemoryBindFlagBits;
367pub type SpirvResourceTypeFlagsEXT = SpirvResourceTypeFlagBitsEXT;
368pub type StencilFaceFlags = StencilFaceFlagBits;
369pub type SubgroupFeatureFlags = SubgroupFeatureFlagBits;
370pub type SubmitFlags = SubmitFlagBits;
371pub type SubpassDescriptionFlags = SubpassDescriptionFlagBits;
372pub type SurfaceCounterFlagsEXT = SurfaceCounterFlagBitsEXT;
373pub type SurfaceTransformFlagsKHR = SurfaceTransformFlagBitsKHR;
374pub type SwapchainCreateFlagsKHR = SwapchainCreateFlagBitsKHR;
375pub type SwapchainImageUsageFlagsANDROID = SwapchainImageUsageFlagBitsANDROID;
376pub type SwapchainImageUsageFlagsOHOS = SwapchainImageUsageFlagBitsOHOS;
377pub type TensorCreateFlagsARM = TensorCreateFlagBitsARM;
378pub type TensorUsageFlagsARM = TensorUsageFlagBitsARM;
379pub type TensorViewCreateFlagsARM = TensorViewCreateFlagBitsARM;
380pub type TileShadingRenderPassFlagsQCOM = TileShadingRenderPassFlagBitsQCOM;
381pub type ToolPurposeFlags = ToolPurposeFlagBits;
382pub type VideoCapabilityFlagsKHR = VideoCapabilityFlagBitsKHR;
383pub type VideoChromaSubsamplingFlagsKHR = VideoChromaSubsamplingFlagBitsKHR;
384pub type VideoCodecOperationFlagsKHR = VideoCodecOperationFlagBitsKHR;
385pub type VideoCodingControlFlagsKHR = VideoCodingControlFlagBitsKHR;
386pub type VideoComponentBitDepthFlagsKHR = VideoComponentBitDepthFlagBitsKHR;
387pub type VideoDecodeCapabilityFlagsKHR = VideoDecodeCapabilityFlagBitsKHR;
388pub type VideoDecodeH264PictureLayoutFlagsKHR = VideoDecodeH264PictureLayoutFlagBitsKHR;
389pub type VideoDecodeUsageFlagsKHR = VideoDecodeUsageFlagBitsKHR;
390pub type VideoEncodeAV1CapabilityFlagsKHR = VideoEncodeAV1CapabilityFlagBitsKHR;
391pub type VideoEncodeAV1RateControlFlagsKHR = VideoEncodeAV1RateControlFlagBitsKHR;
392pub type VideoEncodeAV1StdFlagsKHR = VideoEncodeAV1StdFlagBitsKHR;
393pub type VideoEncodeAV1SuperblockSizeFlagsKHR = VideoEncodeAV1SuperblockSizeFlagBitsKHR;
394pub type VideoEncodeCapabilityFlagsKHR = VideoEncodeCapabilityFlagBitsKHR;
395pub type VideoEncodeContentFlagsKHR = VideoEncodeContentFlagBitsKHR;
396pub type VideoEncodeFeedbackFlagsKHR = VideoEncodeFeedbackFlagBitsKHR;
397pub type VideoEncodeFlagsKHR = VideoEncodeFlagBitsKHR;
398pub type VideoEncodeH264CapabilityFlagsKHR = VideoEncodeH264CapabilityFlagBitsKHR;
399pub type VideoEncodeH264RateControlFlagsKHR = VideoEncodeH264RateControlFlagBitsKHR;
400pub type VideoEncodeH264StdFlagsKHR = VideoEncodeH264StdFlagBitsKHR;
401pub type VideoEncodeH265CapabilityFlagsKHR = VideoEncodeH265CapabilityFlagBitsKHR;
402pub type VideoEncodeH265CtbSizeFlagsKHR = VideoEncodeH265CtbSizeFlagBitsKHR;
403pub type VideoEncodeH265RateControlFlagsKHR = VideoEncodeH265RateControlFlagBitsKHR;
404pub type VideoEncodeH265StdFlagsKHR = VideoEncodeH265StdFlagBitsKHR;
405pub type VideoEncodeH265TransformBlockSizeFlagsKHR = VideoEncodeH265TransformBlockSizeFlagBitsKHR;
406pub type VideoEncodeIntraRefreshModeFlagsKHR = VideoEncodeIntraRefreshModeFlagBitsKHR;
407pub type VideoEncodeRateControlModeFlagsKHR = VideoEncodeRateControlModeFlagBitsKHR;
408pub type VideoEncodeRgbChromaOffsetFlagsVALVE = VideoEncodeRgbChromaOffsetFlagBitsVALVE;
409pub type VideoEncodeRgbModelConversionFlagsVALVE = VideoEncodeRgbModelConversionFlagBitsVALVE;
410pub type VideoEncodeRgbRangeCompressionFlagsVALVE = VideoEncodeRgbRangeCompressionFlagBitsVALVE;
411pub type VideoEncodeUsageFlagsKHR = VideoEncodeUsageFlagBitsKHR;
412pub type VideoSessionCreateFlagsKHR = VideoSessionCreateFlagBitsKHR;
413pub type VideoSessionParametersCreateFlagsKHR = VideoSessionParametersCreateFlagBitsKHR;
414pub type DeviceCreateFlags = u32;
415pub type BufferViewCreateFlags = u32;
416pub type ShaderModuleCreateFlags = ShaderModuleCreateFlagBits;
417pub type PipelineVertexInputStateCreateFlags = u32;
418pub type PipelineInputAssemblyStateCreateFlags = u32;
419pub type PipelineTessellationStateCreateFlags = u32;
420pub type PipelineViewportStateCreateFlags = u32;
421pub type PipelineRasterizationStateCreateFlags = u32;
422pub type PipelineMultisampleStateCreateFlags = u32;
423pub type PipelineDynamicStateCreateFlags = u32;
424pub type SemaphoreCreateFlags = SemaphoreCreateFlagBits;
425pub type DisplayModeCreateFlagsKHR = u32;
426pub type DisplaySurfaceCreateFlagsKHR = u32;
427pub type AndroidSurfaceCreateFlagsKHR = u32;
428pub type ViSurfaceCreateFlagsNN = u32;
429pub type WaylandSurfaceCreateFlagsKHR = WaylandSurfaceCreateFlagBitsKHR;
430pub type UbmSurfaceCreateFlagsSEC = u32;
431pub type Win32SurfaceCreateFlagsKHR = u32;
432pub type XlibSurfaceCreateFlagsKHR = u32;
433pub type XcbSurfaceCreateFlagsKHR = u32;
434pub type DirectFBSurfaceCreateFlagsEXT = u32;
435pub type ImagePipeSurfaceCreateFlagsFUCHSIA = u32;
436pub type StreamDescriptorSurfaceCreateFlagsGGP = u32;
437pub type ScreenSurfaceCreateFlagsQNX = u32;
438pub type PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlagBits;
439pub type DescriptorUpdateTemplateCreateFlags = u32;
440pub type IOSSurfaceCreateFlagsMVK = u32;
441pub type MacOSSurfaceCreateFlagsMVK = u32;
442pub type MetalSurfaceCreateFlagsEXT = u32;
443pub type PipelineViewportSwizzleStateCreateFlagsNV = u32;
444pub type PipelineDiscardRectangleStateCreateFlagsEXT = u32;
445pub type PipelineCoverageToColorStateCreateFlagsNV = u32;
446pub type PipelineCoverageModulationStateCreateFlagsNV = u32;
447pub type ValidationCacheCreateFlagsEXT = u32;
448pub type DebugUtilsMessengerCreateFlagsEXT = u32;
449pub type DebugUtilsMessengerCallbackDataFlagsEXT = u32;
450pub type DeviceMemoryReportFlagsEXT = u32;
451pub type PipelineRasterizationConservativeStateCreateFlagsEXT = u32;
452pub type PipelineRasterizationStateStreamCreateFlagsEXT = u32;
453pub type BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagBitsKHR;
454pub type PipelineRasterizationDepthClipStateCreateFlagsEXT = u32;
455pub type HeadlessSurfaceCreateFlagsEXT = u32;
456pub type PipelineCoverageReductionStateCreateFlagsNV = u32;
457pub type VideoDecodeFlagsKHR = u32;
458pub type VideoBeginCodingFlagsKHR = u32;
459pub type VideoEndCodingFlagsKHR = u32;
460pub type VideoEncodeRateControlFlagsKHR = u32;
461pub type AccelerationStructureMotionInfoFlagsNV = u32;
462pub type AccelerationStructureMotionInstanceFlagsNV = u32;
463pub type ImageFormatConstraintsFlagsFUCHSIA = ImageFormatConstraintsFlagBitsFUCHSIA;
464pub type MemoryDecompressionMethodFlagsNV = MemoryDecompressionMethodFlagBitsEXT;
465pub type DirectDriverLoadingFlagsLUNARG = u32;
466pub type SurfaceCreateFlagsOHOS = u32;
467pub type PipelineCreateFlags2KHR = PipelineCreateFlagBits2;
468pub type PerformanceCounterDescriptionFlagsARM = u32;
469pub type PipelineStageFlags2KHR = PipelineStageFlagBits2;
470pub type DescriptorPoolResetFlags = u32;
471pub type CommandPoolTrimFlags = u32;
472pub type ShaderInstrumentationValuesFlagsARM = u32;
473pub type DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
474pub type SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
475pub type PrivateDataSlotEXT = PrivateDataSlot;
476pub type RayTracingInvocationReorderModeNV = RayTracingInvocationReorderModeEXT;
477pub type PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits;
478pub type DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
479pub type PointClippingBehaviorKHR = PointClippingBehavior;
480pub type QueueGlobalPriorityKHR = QueueGlobalPriority;
481pub type QueueGlobalPriorityEXT = QueueGlobalPriority;
482pub type TimeDomainEXT = TimeDomainKHR;
483pub type ResolveModeFlagBitsKHR = ResolveModeFlagBits;
484pub type DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
485pub type SemaphoreTypeKHR = SemaphoreType;
486pub type GeometryFlagBitsNV = GeometryFlagBitsKHR;
487pub type GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
488pub type BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
489pub type CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
490pub type AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
491pub type GeometryTypeNV = GeometryTypeKHR;
492pub type RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
493pub type PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits;
494pub type SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
495pub type LineRasterizationModeKHR = LineRasterizationMode;
496pub type LineRasterizationModeEXT = LineRasterizationMode;
497pub type ToolPurposeFlagBitsEXT = ToolPurposeFlagBits;
498pub type AccessFlagBits2KHR = AccessFlagBits2;
499pub type PipelineStageFlagBits2KHR = PipelineStageFlagBits2;
500pub type HostImageCopyFlagBitsEXT = HostImageCopyFlagBits;
501pub type FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2;
502pub type RenderingFlagBitsKHR = RenderingFlagBits;
503pub type PipelineRobustnessBufferBehaviorEXT = PipelineRobustnessBufferBehavior;
504pub type PipelineRobustnessImageBehaviorEXT = PipelineRobustnessImageBehavior;
505pub type DeviceFaultVendorBinaryHeaderVersionEXT = DeviceFaultVendorBinaryHeaderVersionKHR;
506pub type MemoryDecompressionMethodFlagBitsNV = MemoryDecompressionMethodFlagBitsEXT;
507pub type PipelineCreateFlagBits2KHR = PipelineCreateFlagBits2;
508pub type BufferUsageFlagBits2KHR = BufferUsageFlagBits2;
509pub type ScopeNV = ScopeKHR;
510pub type ComponentTypeNV = ComponentTypeKHR;
511pub type ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
512pub type ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
513pub type ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
514pub type ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
515pub type SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
516pub type ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
517pub type ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
518pub type FenceImportFlagBitsKHR = FenceImportFlagBits;
519pub type PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
520pub type MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
521pub type TessellationDomainOriginKHR = TessellationDomainOrigin;
522pub type SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
523pub type SamplerYcbcrRangeKHR = SamplerYcbcrRange;
524pub type ChromaLocationKHR = ChromaLocation;
525pub type SamplerReductionModeEXT = SamplerReductionMode;
526pub type ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
527pub type SubmitFlagBitsKHR = SubmitFlagBits;
528pub type DeviceFaultAddressTypeEXT = DeviceFaultAddressTypeKHR;
529pub type PresentScalingFlagBitsEXT = PresentScalingFlagBitsKHR;
530pub type PresentGravityFlagBitsEXT = PresentGravityFlagBitsKHR;
531pub type MemoryUnmapFlagBitsKHR = MemoryUnmapFlagBits;
532pub type DriverIdKHR = DriverId;
533pub type CopyMemoryIndirectCommandNV = CopyMemoryIndirectCommandKHR;
534pub type CopyMemoryToImageIndirectCommandNV = CopyMemoryToImageIndirectCommandKHR;
535pub type PhysicalDeviceExternalSciBufFeaturesNV = PhysicalDeviceExternalMemorySciBufFeaturesNV;
536pub type DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
537pub type PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
538pub type PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
539pub type PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
540pub type PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
541pub type FormatProperties2KHR = FormatProperties2;
542pub type ImageFormatProperties2KHR = ImageFormatProperties2;
543pub type PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
544pub type QueueFamilyProperties2KHR = QueueFamilyProperties2;
545pub type PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
546pub type SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
547pub type PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
548pub type PhysicalDevicePushDescriptorPropertiesKHR = PhysicalDevicePushDescriptorProperties;
549pub type ConformanceVersionKHR = ConformanceVersion;
550pub type PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
551pub type PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
552pub type PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
553pub type PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
554pub type ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
555pub type PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
556pub type ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
557pub type PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
558pub type ExternalBufferPropertiesKHR = ExternalBufferProperties;
559pub type PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
560pub type ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
561pub type ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
562pub type ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
563pub type PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
564pub type ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
565pub type ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
566pub type PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
567pub type ExternalFencePropertiesKHR = ExternalFenceProperties;
568pub type ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
569pub type PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
570pub type PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
571pub type RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
572pub type PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
573pub type BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
574pub type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
575pub type BindImageMemoryInfoKHR = BindImageMemoryInfo;
576pub type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
577pub type DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
578pub type DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
579pub type DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
580pub type DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
581pub type DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
582pub type DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
583pub type DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
584pub type InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
585pub type RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
586pub type PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
587pub type PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
588pub type BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
589pub type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
590pub type ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
591pub type ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
592pub type DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
593pub type MemoryRequirements2KHR = MemoryRequirements2;
594pub type SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
595pub type PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
596pub type MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
597pub type MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
598pub type ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
599pub type PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
600pub type SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
601pub type SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
602pub type BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
603pub type ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
604pub type PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
605pub type SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
606pub type PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
607pub type SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
608pub type PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
609pub type PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
610pub type WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;
611pub type DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
612pub type ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
613pub type PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
614pub type PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
615pub type PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
616pub type PhysicalDeviceMaintenance5FeaturesKHR = PhysicalDeviceMaintenance5Features;
617pub type PhysicalDeviceMaintenance5PropertiesKHR = PhysicalDeviceMaintenance5Properties;
618pub type PhysicalDeviceMaintenance6FeaturesKHR = PhysicalDeviceMaintenance6Features;
619pub type PhysicalDeviceMaintenance6PropertiesKHR = PhysicalDeviceMaintenance6Properties;
620pub type RenderingAreaInfoKHR = RenderingAreaInfo;
621pub type DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
622pub type PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
623pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
624pub type PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
625pub type PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
626pub type PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
627pub type DeviceQueueGlobalPriorityCreateInfoKHR = DeviceQueueGlobalPriorityCreateInfo;
628pub type DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfo;
629pub type PhysicalDeviceGlobalPriorityQueryFeaturesKHR = PhysicalDeviceGlobalPriorityQueryFeatures;
630pub type PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeatures;
631pub type QueueFamilyGlobalPriorityPropertiesKHR = QueueFamilyGlobalPriorityProperties;
632pub type QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityProperties;
633pub type CalibratedTimestampInfoEXT = CalibratedTimestampInfoKHR;
634pub type PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
635pub type PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
636pub type DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
637pub type DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
638pub type AttachmentDescription2KHR = AttachmentDescription2;
639pub type AttachmentReference2KHR = AttachmentReference2;
640pub type SubpassDescription2KHR = SubpassDescription2;
641pub type SubpassDependency2KHR = SubpassDependency2;
642pub type RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
643pub type SubpassBeginInfoKHR = SubpassBeginInfo;
644pub type SubpassEndInfoKHR = SubpassEndInfo;
645pub type PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
646pub type PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
647pub type SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
648pub type TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
649pub type SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
650pub type SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
651pub type VertexInputBindingDivisorDescriptionKHR = VertexInputBindingDivisorDescription;
652pub type VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescription;
653pub type PipelineVertexInputDivisorStateCreateInfoKHR = PipelineVertexInputDivisorStateCreateInfo;
654pub type PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfo;
655pub type PhysicalDeviceVertexAttributeDivisorPropertiesKHR = PhysicalDeviceVertexAttributeDivisorProperties;
656pub type PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
657pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
658pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
659pub type PhysicalDeviceVertexAttributeDivisorFeaturesKHR = PhysicalDeviceVertexAttributeDivisorFeatures;
660pub type PhysicalDeviceVertexAttributeDivisorFeaturesEXT = PhysicalDeviceVertexAttributeDivisorFeatures;
661pub type PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
662pub type SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
663pub type PhysicalDeviceComputeShaderDerivativesFeaturesNV = PhysicalDeviceComputeShaderDerivativesFeaturesKHR;
664pub type PhysicalDeviceFragmentShaderBarycentricFeaturesNV = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
665pub type PhysicalDeviceCopyMemoryIndirectPropertiesNV = PhysicalDeviceCopyMemoryIndirectPropertiesKHR;
666pub type PhysicalDeviceMemoryDecompressionFeaturesNV = PhysicalDeviceMemoryDecompressionFeaturesEXT;
667pub type PhysicalDeviceMemoryDecompressionPropertiesNV = PhysicalDeviceMemoryDecompressionPropertiesEXT;
668pub type ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
669pub type PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
670pub type PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
671pub type SubpassFragmentDensityMapOffsetEndInfoQCOM = RenderPassFragmentDensityMapOffsetEndInfoEXT;
672pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
673pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
674pub type PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
675pub type PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
676pub type BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
677pub type BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
678pub type BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
679pub type PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
680pub type FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
681pub type FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
682pub type RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
683pub type PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeatures;
684pub type PipelineCreationFeedbackEXT = PipelineCreationFeedback;
685pub type PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
686pub type QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
687pub type PhysicalDeviceIndexTypeUint8FeaturesKHR = PhysicalDeviceIndexTypeUint8Features;
688pub type PhysicalDeviceIndexTypeUint8FeaturesEXT = PhysicalDeviceIndexTypeUint8Features;
689pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
690pub type AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
691pub type AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
692pub type PipelineInfoEXT = PipelineInfoKHR;
693pub type PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
694pub type PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentProperties;
695pub type PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
696pub type PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties;
697pub type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
698pub type ShaderRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
699pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
700pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
701pub type PhysicalDeviceLineRasterizationFeaturesKHR = PhysicalDeviceLineRasterizationFeatures;
702pub type PhysicalDeviceLineRasterizationFeaturesEXT = PhysicalDeviceLineRasterizationFeatures;
703pub type PhysicalDeviceLineRasterizationPropertiesKHR = PhysicalDeviceLineRasterizationProperties;
704pub type PhysicalDeviceLineRasterizationPropertiesEXT = PhysicalDeviceLineRasterizationProperties;
705pub type PipelineRasterizationLineStateCreateInfoKHR = PipelineRasterizationLineStateCreateInfo;
706pub type PipelineRasterizationLineStateCreateInfoEXT = PipelineRasterizationLineStateCreateInfo;
707pub type PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeatures;
708pub type PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
709pub type AabbPositionsNV = AabbPositionsKHR;
710pub type TransformMatrixNV = TransformMatrixKHR;
711pub type AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
712pub type PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
713pub type PhysicalDeviceRobustness2FeaturesEXT = PhysicalDeviceRobustness2FeaturesKHR;
714pub type PhysicalDeviceRobustness2PropertiesEXT = PhysicalDeviceRobustness2PropertiesKHR;
715pub type PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
716pub type BufferCopy2KHR = BufferCopy2;
717pub type ImageCopy2KHR = ImageCopy2;
718pub type ImageBlit2KHR = ImageBlit2;
719pub type BufferImageCopy2KHR = BufferImageCopy2;
720pub type ImageResolve2KHR = ImageResolve2;
721pub type CopyBufferInfo2KHR = CopyBufferInfo2;
722pub type CopyImageInfo2KHR = CopyImageInfo2;
723pub type BlitImageInfo2KHR = BlitImageInfo2;
724pub type CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
725pub type CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
726pub type ResolveImageInfo2KHR = ResolveImageInfo2;
727pub type PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeatures;
728pub type PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
729pub type MutableDescriptorTypeListVALVE = MutableDescriptorTypeListEXT;
730pub type MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
731pub type MemoryBarrier2KHR = MemoryBarrier2;
732pub type ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
733pub type BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
734pub type DependencyInfoKHR = DependencyInfo;
735pub type SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
736pub type CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
737pub type SubmitInfo2KHR = SubmitInfo2;
738pub type PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
739pub type PhysicalDeviceHostImageCopyFeaturesEXT = PhysicalDeviceHostImageCopyFeatures;
740pub type PhysicalDeviceHostImageCopyPropertiesEXT = PhysicalDeviceHostImageCopyProperties;
741pub type MemoryToImageCopyEXT = MemoryToImageCopy;
742pub type ImageToMemoryCopyEXT = ImageToMemoryCopy;
743pub type CopyMemoryToImageInfoEXT = CopyMemoryToImageInfo;
744pub type CopyImageToMemoryInfoEXT = CopyImageToMemoryInfo;
745pub type CopyImageToImageInfoEXT = CopyImageToImageInfo;
746pub type HostImageLayoutTransitionInfoEXT = HostImageLayoutTransitionInfo;
747pub type SubresourceHostMemcpySizeEXT = SubresourceHostMemcpySize;
748pub type HostImageCopyDevicePerformanceQueryEXT = HostImageCopyDevicePerformanceQuery;
749pub type PhysicalDevicePipelineProtectedAccessFeaturesEXT = PhysicalDevicePipelineProtectedAccessFeatures;
750pub type PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeatures;
751pub type PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductProperties;
752pub type FormatProperties3KHR = FormatProperties3;
753pub type PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
754pub type RenderingInfoKHR = RenderingInfo;
755pub type RenderingEndInfoEXT = RenderingEndInfoKHR;
756pub type RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
757pub type PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
758pub type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
759pub type AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
760pub type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
761pub type ImageSubresource2KHR = ImageSubresource2;
762pub type ImageSubresource2EXT = ImageSubresource2;
763pub type SubresourceLayout2KHR = SubresourceLayout2;
764pub type SubresourceLayout2EXT = SubresourceLayout2;
765pub type PhysicalDevicePipelineRobustnessFeaturesEXT = PhysicalDevicePipelineRobustnessFeatures;
766pub type PipelineRobustnessCreateInfoEXT = PipelineRobustnessCreateInfo;
767pub type PhysicalDevicePipelineRobustnessPropertiesEXT = PhysicalDevicePipelineRobustnessProperties;
768pub type PhysicalDeviceDepthClampZeroOneFeaturesEXT = PhysicalDeviceDepthClampZeroOneFeaturesKHR;
769pub type DeviceFaultAddressInfoEXT = DeviceFaultAddressInfoKHR;
770pub type DeviceFaultVendorInfoEXT = DeviceFaultVendorInfoKHR;
771pub type DeviceFaultVendorBinaryHeaderVersionOneEXT = DeviceFaultVendorBinaryHeaderVersionOneKHR;
772pub type SurfacePresentModeEXT = SurfacePresentModeKHR;
773pub type SurfacePresentScalingCapabilitiesEXT = SurfacePresentScalingCapabilitiesKHR;
774pub type SurfacePresentModeCompatibilityEXT = SurfacePresentModeCompatibilityKHR;
775pub type PhysicalDeviceSwapchainMaintenance1FeaturesEXT = PhysicalDeviceSwapchainMaintenance1FeaturesKHR;
776pub type SwapchainPresentFenceInfoEXT = SwapchainPresentFenceInfoKHR;
777pub type SwapchainPresentModesCreateInfoEXT = SwapchainPresentModesCreateInfoKHR;
778pub type SwapchainPresentModeInfoEXT = SwapchainPresentModeInfoKHR;
779pub type SwapchainPresentScalingCreateInfoEXT = SwapchainPresentScalingCreateInfoKHR;
780pub type ReleaseSwapchainImagesInfoEXT = ReleaseSwapchainImagesInfoKHR;
781pub type DeviceImageSubresourceInfoKHR = DeviceImageSubresourceInfo;
782pub type MemoryMapInfoKHR = MemoryMapInfo;
783pub type MemoryUnmapInfoKHR = MemoryUnmapInfo;
784pub type BindMemoryStatusKHR = BindMemoryStatus;
785pub type BindDescriptorSetsInfoKHR = BindDescriptorSetsInfo;
786pub type PushConstantsInfoKHR = PushConstantsInfo;
787pub type PushDescriptorSetInfoKHR = PushDescriptorSetInfo;
788pub type PushDescriptorSetWithTemplateInfoKHR = PushDescriptorSetWithTemplateInfo;
789pub type PhysicalDeviceShaderSubgroupRotateFeaturesKHR = PhysicalDeviceShaderSubgroupRotateFeatures;
790pub type PhysicalDeviceShaderExpectAssumeFeaturesKHR = PhysicalDeviceShaderExpectAssumeFeatures;
791pub type PhysicalDeviceShaderFloatControls2FeaturesKHR = PhysicalDeviceShaderFloatControls2Features;
792pub type PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = PhysicalDeviceDynamicRenderingLocalReadFeatures;
793pub type RenderingAttachmentLocationInfoKHR = RenderingAttachmentLocationInfo;
794pub type RenderingInputAttachmentIndexInfoKHR = RenderingInputAttachmentIndexInfo;
795pub type PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
796pub type DeviceAddressRangeEXT = DeviceAddressRangeKHR;
797/// Structure type used for traversing pNext chains (mutable).
798#[repr(C)]
799#[derive(Copy, Clone)]
800#[doc(alias = "VkBaseOutStructure")]
801pub struct BaseOutStructure {
802    pub s_type: StructureType,
803    pub p_next: *mut BaseOutStructure,
804}
805impl Default for BaseOutStructure {
806    #[inline]
807    fn default() -> Self {
808        Self {
809            s_type: StructureType::from_raw(0),
810            p_next: core::ptr::null_mut(),
811        }
812    }
813}
814impl core::fmt::Debug for BaseOutStructure {
815    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
816        f.debug_struct("BaseOutStructure")
817            .field("s_type", &self.s_type)
818            .field("p_next", &self.p_next)
819            .finish()
820    }
821}
822/// Structure type used for traversing pNext chains (const).
823#[repr(C)]
824#[derive(Copy, Clone)]
825#[doc(alias = "VkBaseInStructure")]
826pub struct BaseInStructure {
827    pub s_type: StructureType,
828    pub p_next: *const BaseInStructure,
829}
830impl Default for BaseInStructure {
831    #[inline]
832    fn default() -> Self {
833        Self {
834            s_type: StructureType::from_raw(0),
835            p_next: core::ptr::null(),
836        }
837    }
838}
839impl core::fmt::Debug for BaseInStructure {
840    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
841        f.debug_struct("BaseInStructure")
842            .field("s_type", &self.s_type)
843            .field("p_next", &self.p_next)
844            .finish()
845    }
846}
847///[`VkOffset2D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOffset2D.html)
848/**
849Provided by **VK_BASE_VERSION_1_0**.*/
850#[repr(C)]
851#[derive(Copy, Clone, Debug)]
852#[doc(alias = "VkOffset2D")]
853pub struct Offset2D {
854    pub x: i32,
855    pub y: i32,
856}
857impl Default for Offset2D {
858    #[inline]
859    fn default() -> Self {
860        unsafe { core::mem::zeroed() }
861    }
862}
863///[`VkOffset3D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOffset3D.html)
864/**
865Provided by **VK_BASE_VERSION_1_0**.*/
866#[repr(C)]
867#[derive(Copy, Clone, Debug)]
868#[doc(alias = "VkOffset3D")]
869pub struct Offset3D {
870    pub x: i32,
871    pub y: i32,
872    pub z: i32,
873}
874impl Default for Offset3D {
875    #[inline]
876    fn default() -> Self {
877        unsafe { core::mem::zeroed() }
878    }
879}
880///[`VkExtent2D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExtent2D.html)
881/**
882Provided by **VK_BASE_VERSION_1_0**.*/
883#[repr(C)]
884#[derive(Copy, Clone, Debug)]
885#[doc(alias = "VkExtent2D")]
886pub struct Extent2D {
887    pub width: u32,
888    pub height: u32,
889}
890impl Default for Extent2D {
891    #[inline]
892    fn default() -> Self {
893        unsafe { core::mem::zeroed() }
894    }
895}
896///[`VkExtent3D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExtent3D.html)
897/**
898Provided by **VK_BASE_VERSION_1_0**.*/
899#[repr(C)]
900#[derive(Copy, Clone, Debug)]
901#[doc(alias = "VkExtent3D")]
902pub struct Extent3D {
903    pub width: u32,
904    pub height: u32,
905    pub depth: u32,
906}
907impl Default for Extent3D {
908    #[inline]
909    fn default() -> Self {
910        unsafe { core::mem::zeroed() }
911    }
912}
913///[`VkViewport`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkViewport.html)
914/**
915Provided by **VK_GRAPHICS_VERSION_1_0**.*/
916#[repr(C)]
917#[derive(Copy, Clone, Debug)]
918#[doc(alias = "VkViewport")]
919pub struct Viewport {
920    pub x: f32,
921    pub y: f32,
922    pub width: f32,
923    pub height: f32,
924    pub min_depth: f32,
925    pub max_depth: f32,
926}
927impl Default for Viewport {
928    #[inline]
929    fn default() -> Self {
930        unsafe { core::mem::zeroed() }
931    }
932}
933///[`VkRect2D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRect2D.html)
934/**
935Provided by **VK_BASE_VERSION_1_0**.*/
936#[repr(C)]
937#[derive(Copy, Clone, Debug)]
938#[doc(alias = "VkRect2D")]
939pub struct Rect2D {
940    pub offset: Offset2D,
941    pub extent: Extent2D,
942}
943impl Default for Rect2D {
944    #[inline]
945    fn default() -> Self {
946        unsafe { core::mem::zeroed() }
947    }
948}
949///[`VkClearRect`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearRect.html)
950/**
951Provided by **VK_GRAPHICS_VERSION_1_0**.*/
952#[repr(C)]
953#[derive(Copy, Clone, Debug)]
954#[doc(alias = "VkClearRect")]
955pub struct ClearRect {
956    pub rect: Rect2D,
957    pub base_array_layer: u32,
958    pub layer_count: u32,
959}
960impl Default for ClearRect {
961    #[inline]
962    fn default() -> Self {
963        unsafe { core::mem::zeroed() }
964    }
965}
966///[`VkComponentMapping`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkComponentMapping.html)
967/**
968Provided by **VK_BASE_VERSION_1_0**.*/
969#[repr(C)]
970#[derive(Copy, Clone, Debug)]
971#[doc(alias = "VkComponentMapping")]
972pub struct ComponentMapping {
973    pub r: ComponentSwizzle,
974    pub g: ComponentSwizzle,
975    pub b: ComponentSwizzle,
976    pub a: ComponentSwizzle,
977}
978impl Default for ComponentMapping {
979    #[inline]
980    fn default() -> Self {
981        unsafe { core::mem::zeroed() }
982    }
983}
984///[`VkPhysicalDeviceProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProperties.html)
985/**
986Provided by **VK_BASE_VERSION_1_0**.*/
987/**
988**Returned only**, filled by Vulkan, not constructed by the application.*/
989#[repr(C)]
990#[derive(Copy, Clone, Debug)]
991#[doc(alias = "VkPhysicalDeviceProperties")]
992pub struct PhysicalDeviceProperties {
993    pub api_version: u32,
994    pub driver_version: u32,
995    pub vendor_id: u32,
996    pub device_id: u32,
997    pub device_type: PhysicalDeviceType,
998    pub device_name: crate::StringArray<{ MAX_PHYSICAL_DEVICE_NAME_SIZE as usize }>,
999    pub pipeline_cache_uuid: [u8; UUID_SIZE as usize],
1000    pub limits: PhysicalDeviceLimits,
1001    pub sparse_properties: PhysicalDeviceSparseProperties,
1002}
1003impl Default for PhysicalDeviceProperties {
1004    #[inline]
1005    fn default() -> Self {
1006        unsafe { core::mem::zeroed() }
1007    }
1008}
1009///[`VkExtensionProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExtensionProperties.html)
1010/**
1011Provided by **VK_BASE_VERSION_1_0**.*/
1012/**
1013**Returned only**, filled by Vulkan, not constructed by the application.*/
1014#[repr(C)]
1015#[derive(Copy, Clone, Debug)]
1016#[doc(alias = "VkExtensionProperties")]
1017pub struct ExtensionProperties {
1018    pub extension_name: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
1019    pub spec_version: u32,
1020}
1021impl Default for ExtensionProperties {
1022    #[inline]
1023    fn default() -> Self {
1024        unsafe { core::mem::zeroed() }
1025    }
1026}
1027///[`VkLayerProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLayerProperties.html)
1028/**
1029Provided by **VK_BASE_VERSION_1_0**.*/
1030/**
1031**Returned only**, filled by Vulkan, not constructed by the application.*/
1032#[repr(C)]
1033#[derive(Copy, Clone, Debug)]
1034#[doc(alias = "VkLayerProperties")]
1035pub struct LayerProperties {
1036    pub layer_name: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
1037    pub spec_version: u32,
1038    pub implementation_version: u32,
1039    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
1040}
1041impl Default for LayerProperties {
1042    #[inline]
1043    fn default() -> Self {
1044        unsafe { core::mem::zeroed() }
1045    }
1046}
1047///[`VkApplicationInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkApplicationInfo.html)
1048/**
1049Provided by **VK_BASE_VERSION_1_0**.*/
1050///
1051///# Extended By
1052///- [`ApplicationParametersEXT`]
1053#[repr(C)]
1054#[derive(Copy, Clone, Debug)]
1055#[doc(alias = "VkApplicationInfo")]
1056pub struct ApplicationInfo {
1057    ///Must be `VK_STRUCTURE_TYPE_APPLICATION_INFO`.
1058    pub s_type: StructureType,
1059    ///Optional, may be null.
1060    pub p_next: *const core::ffi::c_void,
1061    ///Optional, may be null.
1062    pub p_application_name: *const core::ffi::c_char,
1063    pub application_version: u32,
1064    ///Optional, may be null.
1065    pub p_engine_name: *const core::ffi::c_char,
1066    pub engine_version: u32,
1067    pub api_version: u32,
1068}
1069impl Default for ApplicationInfo {
1070    #[inline]
1071    fn default() -> Self {
1072        Self {
1073            s_type: StructureType::from_raw(0i32),
1074            p_next: core::ptr::null(),
1075            p_application_name: core::ptr::null(),
1076            application_version: Default::default(),
1077            p_engine_name: core::ptr::null(),
1078            engine_version: Default::default(),
1079            api_version: Default::default(),
1080        }
1081    }
1082}
1083///[`VkAllocationCallbacks`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAllocationCallbacks.html)
1084/**
1085Provided by **VK_BASE_VERSION_1_0**.*/
1086#[repr(C)]
1087#[derive(Copy, Clone, Debug)]
1088#[doc(alias = "VkAllocationCallbacks")]
1089pub struct AllocationCallbacks {
1090    ///Optional, may be null.
1091    pub p_user_data: *mut core::ffi::c_void,
1092    pub pfn_allocation: PFN_vkAllocationFunction,
1093    pub pfn_reallocation: PFN_vkReallocationFunction,
1094    pub pfn_free: PFN_vkFreeFunction,
1095    pub pfn_internal_allocation: PFN_vkInternalAllocationNotification,
1096    pub pfn_internal_free: PFN_vkInternalFreeNotification,
1097}
1098impl Default for AllocationCallbacks {
1099    #[inline]
1100    fn default() -> Self {
1101        unsafe { core::mem::zeroed() }
1102    }
1103}
1104///[`VkDeviceQueueCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceQueueCreateInfo.html)
1105/**
1106Provided by **VK_BASE_VERSION_1_0**.*/
1107///
1108///# Extended By
1109///- [`DeviceQueueGlobalPriorityCreateInfo`]
1110///- [`DeviceQueueShaderCoreControlCreateInfoARM`]
1111#[repr(C)]
1112#[derive(Copy, Clone, Debug)]
1113#[doc(alias = "VkDeviceQueueCreateInfo")]
1114pub struct DeviceQueueCreateInfo {
1115    ///Must be `VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO`.
1116    pub s_type: StructureType,
1117    ///Optional, may be null.
1118    pub p_next: *const core::ffi::c_void,
1119    pub flags: DeviceQueueCreateFlags,
1120    pub queue_family_index: u32,
1121    ///Length of `p_queue_priorities`.
1122    pub queue_count: u32,
1123    pub p_queue_priorities: *const f32,
1124}
1125impl Default for DeviceQueueCreateInfo {
1126    #[inline]
1127    fn default() -> Self {
1128        Self {
1129            s_type: StructureType::from_raw(2i32),
1130            p_next: core::ptr::null(),
1131            flags: Default::default(),
1132            queue_family_index: Default::default(),
1133            queue_count: Default::default(),
1134            p_queue_priorities: core::ptr::null(),
1135        }
1136    }
1137}
1138///[`VkDeviceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceCreateInfo.html)
1139/**
1140Provided by **VK_BASE_VERSION_1_0**.*/
1141///
1142///# Extended By
1143///- [`ApplicationParametersEXT`]
1144///- [`DeviceDeviceMemoryReportCreateInfoEXT`]
1145///- [`DeviceDiagnosticsConfigCreateInfoNV`]
1146///- [`DeviceGroupDeviceCreateInfo`]
1147///- [`DeviceMemoryOverallocationCreateInfoAMD`]
1148///- [`DeviceObjectReservationCreateInfo`]
1149///- [`DevicePipelineBinaryInternalCacheControlKHR`]
1150///- [`DevicePrivateDataCreateInfo`]
1151///- [`DeviceQueueShaderCoreControlCreateInfoARM`]
1152///- [`DeviceSemaphoreSciSyncPoolReservationCreateInfoNV`]
1153///- [`ExternalComputeQueueDeviceCreateInfoNV`]
1154///- [`FaultCallbackInfo`]
1155///- [`PerformanceQueryReservationInfoKHR`]
1156///- [`PhysicalDevice16BitStorageFeatures`]
1157///- [`PhysicalDevice4444FormatsFeaturesEXT`]
1158///- [`PhysicalDevice8BitStorageFeatures`]
1159///- [`PhysicalDeviceASTCDecodeFeaturesEXT`]
1160///- [`PhysicalDeviceAccelerationStructureFeaturesKHR`]
1161///- [`PhysicalDeviceAddressBindingReportFeaturesEXT`]
1162///- [`PhysicalDeviceAmigoProfilingFeaturesSEC`]
1163///- [`PhysicalDeviceAntiLagFeaturesAMD`]
1164///- [`PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT`]
1165///- [`PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT`]
1166///- [`PhysicalDeviceBlendOperationAdvancedFeaturesEXT`]
1167///- [`PhysicalDeviceBorderColorSwizzleFeaturesEXT`]
1168///- [`PhysicalDeviceBufferDeviceAddressFeatures`]
1169///- [`PhysicalDeviceBufferDeviceAddressFeaturesEXT`]
1170///- [`PhysicalDeviceClusterAccelerationStructureFeaturesNV`]
1171///- [`PhysicalDeviceClusterCullingShaderFeaturesHUAWEI`]
1172///- [`PhysicalDeviceCoherentMemoryFeaturesAMD`]
1173///- [`PhysicalDeviceColorWriteEnableFeaturesEXT`]
1174///- [`PhysicalDeviceCommandBufferInheritanceFeaturesNV`]
1175///- [`PhysicalDeviceComputeOccupancyPriorityFeaturesNV`]
1176///- [`PhysicalDeviceComputeShaderDerivativesFeaturesKHR`]
1177///- [`PhysicalDeviceConditionalRenderingFeaturesEXT`]
1178///- [`PhysicalDeviceCooperativeMatrix2FeaturesNV`]
1179///- [`PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM`]
1180///- [`PhysicalDeviceCooperativeMatrixFeaturesKHR`]
1181///- [`PhysicalDeviceCooperativeMatrixFeaturesNV`]
1182///- [`PhysicalDeviceCooperativeVectorFeaturesNV`]
1183///- [`PhysicalDeviceCopyMemoryIndirectFeaturesKHR`]
1184///- [`PhysicalDeviceCopyMemoryIndirectFeaturesNV`]
1185///- [`PhysicalDeviceCornerSampledImageFeaturesNV`]
1186///- [`PhysicalDeviceCoverageReductionModeFeaturesNV`]
1187///- [`PhysicalDeviceCubicClampFeaturesQCOM`]
1188///- [`PhysicalDeviceCubicWeightsFeaturesQCOM`]
1189///- [`PhysicalDeviceCudaKernelLaunchFeaturesNV`]
1190///- [`PhysicalDeviceCustomBorderColorFeaturesEXT`]
1191///- [`PhysicalDeviceCustomResolveFeaturesEXT`]
1192///- [`PhysicalDeviceDataGraphFeaturesARM`]
1193///- [`PhysicalDeviceDataGraphModelFeaturesQCOM`]
1194///- [`PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV`]
1195///- [`PhysicalDeviceDenseGeometryFormatFeaturesAMDX`]
1196///- [`PhysicalDeviceDepthBiasControlFeaturesEXT`]
1197///- [`PhysicalDeviceDepthClampControlFeaturesEXT`]
1198///- [`PhysicalDeviceDepthClampZeroOneFeaturesKHR`]
1199///- [`PhysicalDeviceDepthClipControlFeaturesEXT`]
1200///- [`PhysicalDeviceDepthClipEnableFeaturesEXT`]
1201///- [`PhysicalDeviceDescriptorBufferFeaturesEXT`]
1202///- [`PhysicalDeviceDescriptorBufferTensorFeaturesARM`]
1203///- [`PhysicalDeviceDescriptorHeapFeaturesEXT`]
1204///- [`PhysicalDeviceDescriptorIndexingFeatures`]
1205///- [`PhysicalDeviceDescriptorPoolOverallocationFeaturesNV`]
1206///- [`PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE`]
1207///- [`PhysicalDeviceDeviceAddressCommandsFeaturesKHR`]
1208///- [`PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV`]
1209///- [`PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT`]
1210///- [`PhysicalDeviceDeviceGeneratedCommandsFeaturesNV`]
1211///- [`PhysicalDeviceDeviceMemoryReportFeaturesEXT`]
1212///- [`PhysicalDeviceDiagnosticsConfigFeaturesNV`]
1213///- [`PhysicalDeviceDisplacementMicromapFeaturesNV`]
1214///- [`PhysicalDeviceDynamicRenderingFeatures`]
1215///- [`PhysicalDeviceDynamicRenderingLocalReadFeatures`]
1216///- [`PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT`]
1217///- [`PhysicalDeviceExclusiveScissorFeaturesNV`]
1218///- [`PhysicalDeviceExtendedDynamicState2FeaturesEXT`]
1219///- [`PhysicalDeviceExtendedDynamicState3FeaturesEXT`]
1220///- [`PhysicalDeviceExtendedDynamicStateFeaturesEXT`]
1221///- [`PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV`]
1222///- [`PhysicalDeviceExternalFormatResolveFeaturesANDROID`]
1223///- [`PhysicalDeviceExternalMemoryRDMAFeaturesNV`]
1224///- [`PhysicalDeviceExternalMemorySciBufFeaturesNV`]
1225///- [`PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX`]
1226///- [`PhysicalDeviceExternalSciSync2FeaturesNV`]
1227///- [`PhysicalDeviceExternalSciSyncFeaturesNV`]
1228///- [`PhysicalDeviceFaultFeaturesEXT`]
1229///- [`PhysicalDeviceFaultFeaturesKHR`]
1230///- [`PhysicalDeviceFeatures2`]
1231///- [`PhysicalDeviceFormatPackFeaturesARM`]
1232///- [`PhysicalDeviceFragmentDensityMap2FeaturesEXT`]
1233///- [`PhysicalDeviceFragmentDensityMapFeaturesEXT`]
1234///- [`PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE`]
1235///- [`PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT`]
1236///- [`PhysicalDeviceFragmentShaderBarycentricFeaturesKHR`]
1237///- [`PhysicalDeviceFragmentShaderInterlockFeaturesEXT`]
1238///- [`PhysicalDeviceFragmentShadingRateEnumsFeaturesNV`]
1239///- [`PhysicalDeviceFragmentShadingRateFeaturesKHR`]
1240///- [`PhysicalDeviceFrameBoundaryFeaturesEXT`]
1241///- [`PhysicalDeviceGlobalPriorityQueryFeatures`]
1242///- [`PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT`]
1243///- [`PhysicalDeviceHdrVividFeaturesHUAWEI`]
1244///- [`PhysicalDeviceHostImageCopyFeatures`]
1245///- [`PhysicalDeviceHostQueryResetFeatures`]
1246///- [`PhysicalDeviceImage2DViewOf3DFeaturesEXT`]
1247///- [`PhysicalDeviceImageAlignmentControlFeaturesMESA`]
1248///- [`PhysicalDeviceImageCompressionControlFeaturesEXT`]
1249///- [`PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT`]
1250///- [`PhysicalDeviceImageProcessing2FeaturesQCOM`]
1251///- [`PhysicalDeviceImageProcessingFeaturesQCOM`]
1252///- [`PhysicalDeviceImageRobustnessFeatures`]
1253///- [`PhysicalDeviceImageSlicedViewOf3DFeaturesEXT`]
1254///- [`PhysicalDeviceImageViewMinLodFeaturesEXT`]
1255///- [`PhysicalDeviceImagelessFramebufferFeatures`]
1256///- [`PhysicalDeviceIndexTypeUint8Features`]
1257///- [`PhysicalDeviceInheritedViewportScissorFeaturesNV`]
1258///- [`PhysicalDeviceInlineUniformBlockFeatures`]
1259///- [`PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR`]
1260///- [`PhysicalDeviceInvocationMaskFeaturesHUAWEI`]
1261///- [`PhysicalDeviceLegacyDitheringFeaturesEXT`]
1262///- [`PhysicalDeviceLegacyVertexAttributesFeaturesEXT`]
1263///- [`PhysicalDeviceLineRasterizationFeatures`]
1264///- [`PhysicalDeviceLinearColorAttachmentFeaturesNV`]
1265///- [`PhysicalDeviceMaintenance10FeaturesKHR`]
1266///- [`PhysicalDeviceMaintenance4Features`]
1267///- [`PhysicalDeviceMaintenance5Features`]
1268///- [`PhysicalDeviceMaintenance6Features`]
1269///- [`PhysicalDeviceMaintenance7FeaturesKHR`]
1270///- [`PhysicalDeviceMaintenance8FeaturesKHR`]
1271///- [`PhysicalDeviceMaintenance9FeaturesKHR`]
1272///- [`PhysicalDeviceMapMemoryPlacedFeaturesEXT`]
1273///- [`PhysicalDeviceMemoryDecompressionFeaturesEXT`]
1274///- [`PhysicalDeviceMemoryPriorityFeaturesEXT`]
1275///- [`PhysicalDeviceMeshShaderFeaturesEXT`]
1276///- [`PhysicalDeviceMeshShaderFeaturesNV`]
1277///- [`PhysicalDeviceMultiDrawFeaturesEXT`]
1278///- [`PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT`]
1279///- [`PhysicalDeviceMultiviewFeatures`]
1280///- [`PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM`]
1281///- [`PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM`]
1282///- [`PhysicalDeviceMutableDescriptorTypeFeaturesEXT`]
1283///- [`PhysicalDeviceNestedCommandBufferFeaturesEXT`]
1284///- [`PhysicalDeviceNonSeamlessCubeMapFeaturesEXT`]
1285///- [`PhysicalDeviceOpacityMicromapFeaturesEXT`]
1286///- [`PhysicalDeviceOpticalFlowFeaturesNV`]
1287///- [`PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT`]
1288///- [`PhysicalDevicePartitionedAccelerationStructureFeaturesNV`]
1289///- [`PhysicalDevicePerStageDescriptorSetFeaturesNV`]
1290///- [`PhysicalDevicePerformanceCountersByRegionFeaturesARM`]
1291///- [`PhysicalDevicePerformanceQueryFeaturesKHR`]
1292///- [`PhysicalDevicePipelineBinaryFeaturesKHR`]
1293///- [`PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC`]
1294///- [`PhysicalDevicePipelineCreationCacheControlFeatures`]
1295///- [`PhysicalDevicePipelineExecutablePropertiesFeaturesKHR`]
1296///- [`PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT`]
1297///- [`PhysicalDevicePipelineOpacityMicromapFeaturesARM`]
1298///- [`PhysicalDevicePipelinePropertiesFeaturesEXT`]
1299///- [`PhysicalDevicePipelineProtectedAccessFeatures`]
1300///- [`PhysicalDevicePipelineRobustnessFeatures`]
1301///- [`PhysicalDevicePortabilitySubsetFeaturesKHR`]
1302///- [`PhysicalDevicePresentBarrierFeaturesNV`]
1303///- [`PhysicalDevicePresentId2FeaturesKHR`]
1304///- [`PhysicalDevicePresentIdFeaturesKHR`]
1305///- [`PhysicalDevicePresentMeteringFeaturesNV`]
1306///- [`PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR`]
1307///- [`PhysicalDevicePresentTimingFeaturesEXT`]
1308///- [`PhysicalDevicePresentWait2FeaturesKHR`]
1309///- [`PhysicalDevicePresentWaitFeaturesKHR`]
1310///- [`PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT`]
1311///- [`PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT`]
1312///- [`PhysicalDevicePrivateDataFeatures`]
1313///- [`PhysicalDeviceProtectedMemoryFeatures`]
1314///- [`PhysicalDeviceProvokingVertexFeaturesEXT`]
1315///- [`PhysicalDevicePushConstantBankFeaturesNV`]
1316///- [`PhysicalDeviceRGBA10X6FormatsFeaturesEXT`]
1317///- [`PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT`]
1318///- [`PhysicalDeviceRawAccessChainsFeaturesNV`]
1319///- [`PhysicalDeviceRayQueryFeaturesKHR`]
1320///- [`PhysicalDeviceRayTracingInvocationReorderFeaturesEXT`]
1321///- [`PhysicalDeviceRayTracingInvocationReorderFeaturesNV`]
1322///- [`PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV`]
1323///- [`PhysicalDeviceRayTracingMaintenance1FeaturesKHR`]
1324///- [`PhysicalDeviceRayTracingMotionBlurFeaturesNV`]
1325///- [`PhysicalDeviceRayTracingPipelineFeaturesKHR`]
1326///- [`PhysicalDeviceRayTracingPositionFetchFeaturesKHR`]
1327///- [`PhysicalDeviceRayTracingValidationFeaturesNV`]
1328///- [`PhysicalDeviceRelaxedLineRasterizationFeaturesIMG`]
1329///- [`PhysicalDeviceRenderPassStripedFeaturesARM`]
1330///- [`PhysicalDeviceRepresentativeFragmentTestFeaturesNV`]
1331///- [`PhysicalDeviceRobustness2FeaturesKHR`]
1332///- [`PhysicalDeviceSamplerYcbcrConversionFeatures`]
1333///- [`PhysicalDeviceScalarBlockLayoutFeatures`]
1334///- [`PhysicalDeviceSchedulingControlsFeaturesARM`]
1335///- [`PhysicalDeviceSeparateDepthStencilLayoutsFeatures`]
1336///- [`PhysicalDeviceShader64BitIndexingFeaturesEXT`]
1337///- [`PhysicalDeviceShaderAbortFeaturesKHR`]
1338///- [`PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV`]
1339///- [`PhysicalDeviceShaderAtomicFloat2FeaturesEXT`]
1340///- [`PhysicalDeviceShaderAtomicFloatFeaturesEXT`]
1341///- [`PhysicalDeviceShaderAtomicInt64Features`]
1342///- [`PhysicalDeviceShaderBfloat16FeaturesKHR`]
1343///- [`PhysicalDeviceShaderClockFeaturesKHR`]
1344///- [`PhysicalDeviceShaderConstantDataFeaturesKHR`]
1345///- [`PhysicalDeviceShaderCoreBuiltinsFeaturesARM`]
1346///- [`PhysicalDeviceShaderDemoteToHelperInvocationFeatures`]
1347///- [`PhysicalDeviceShaderDrawParametersFeatures`]
1348///- [`PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD`]
1349///- [`PhysicalDeviceShaderEnqueueFeaturesAMDX`]
1350///- [`PhysicalDeviceShaderExpectAssumeFeatures`]
1351///- [`PhysicalDeviceShaderFloat16Int8Features`]
1352///- [`PhysicalDeviceShaderFloat8FeaturesEXT`]
1353///- [`PhysicalDeviceShaderFloatControls2Features`]
1354///- [`PhysicalDeviceShaderFmaFeaturesKHR`]
1355///- [`PhysicalDeviceShaderImageAtomicInt64FeaturesEXT`]
1356///- [`PhysicalDeviceShaderImageFootprintFeaturesNV`]
1357///- [`PhysicalDeviceShaderInstrumentationFeaturesARM`]
1358///- [`PhysicalDeviceShaderIntegerDotProductFeatures`]
1359///- [`PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL`]
1360///- [`PhysicalDeviceShaderLongVectorFeaturesEXT`]
1361///- [`PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR`]
1362///- [`PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE`]
1363///- [`PhysicalDeviceShaderModuleIdentifierFeaturesEXT`]
1364///- [`PhysicalDeviceShaderObjectFeaturesEXT`]
1365///- [`PhysicalDeviceShaderQuadControlFeaturesKHR`]
1366///- [`PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR`]
1367///- [`PhysicalDeviceShaderReplicatedCompositesFeaturesEXT`]
1368///- [`PhysicalDeviceShaderSMBuiltinsFeaturesNV`]
1369///- [`PhysicalDeviceShaderSubgroupExtendedTypesFeatures`]
1370///- [`PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT`]
1371///- [`PhysicalDeviceShaderSubgroupRotateFeatures`]
1372///- [`PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR`]
1373///- [`PhysicalDeviceShaderTerminateInvocationFeatures`]
1374///- [`PhysicalDeviceShaderTileImageFeaturesEXT`]
1375///- [`PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT`]
1376///- [`PhysicalDeviceShaderUntypedPointersFeaturesKHR`]
1377///- [`PhysicalDeviceShadingRateImageFeaturesNV`]
1378///- [`PhysicalDeviceSubgroupSizeControlFeatures`]
1379///- [`PhysicalDeviceSubpassMergeFeedbackFeaturesEXT`]
1380///- [`PhysicalDeviceSubpassShadingFeaturesHUAWEI`]
1381///- [`PhysicalDeviceSwapchainMaintenance1FeaturesKHR`]
1382///- [`PhysicalDeviceSynchronization2Features`]
1383///- [`PhysicalDeviceTensorFeaturesARM`]
1384///- [`PhysicalDeviceTexelBufferAlignmentFeaturesEXT`]
1385///- [`PhysicalDeviceTextureCompressionASTC3DFeaturesEXT`]
1386///- [`PhysicalDeviceTextureCompressionASTCHDRFeatures`]
1387///- [`PhysicalDeviceTileMemoryHeapFeaturesQCOM`]
1388///- [`PhysicalDeviceTilePropertiesFeaturesQCOM`]
1389///- [`PhysicalDeviceTileShadingFeaturesQCOM`]
1390///- [`PhysicalDeviceTimelineSemaphoreFeatures`]
1391///- [`PhysicalDeviceTransformFeedbackFeaturesEXT`]
1392///- [`PhysicalDeviceUnifiedImageLayoutsFeaturesKHR`]
1393///- [`PhysicalDeviceUniformBufferStandardLayoutFeatures`]
1394///- [`PhysicalDeviceVariablePointersFeatures`]
1395///- [`PhysicalDeviceVertexAttributeDivisorFeatures`]
1396///- [`PhysicalDeviceVertexAttributeRobustnessFeaturesEXT`]
1397///- [`PhysicalDeviceVertexInputDynamicStateFeaturesEXT`]
1398///- [`PhysicalDeviceVideoDecodeVP9FeaturesKHR`]
1399///- [`PhysicalDeviceVideoEncodeAV1FeaturesKHR`]
1400///- [`PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR`]
1401///- [`PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR`]
1402///- [`PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE`]
1403///- [`PhysicalDeviceVideoMaintenance1FeaturesKHR`]
1404///- [`PhysicalDeviceVideoMaintenance2FeaturesKHR`]
1405///- [`PhysicalDeviceVulkan11Features`]
1406///- [`PhysicalDeviceVulkan12Features`]
1407///- [`PhysicalDeviceVulkan13Features`]
1408///- [`PhysicalDeviceVulkan14Features`]
1409///- [`PhysicalDeviceVulkanMemoryModelFeatures`]
1410///- [`PhysicalDeviceVulkanSC10Features`]
1411///- [`PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR`]
1412///- [`PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT`]
1413///- [`PhysicalDeviceYcbcrDegammaFeaturesQCOM`]
1414///- [`PhysicalDeviceYcbcrImageArraysFeaturesEXT`]
1415///- [`PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT`]
1416///- [`PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures`]
1417#[repr(C)]
1418#[derive(Copy, Clone, Debug)]
1419#[doc(alias = "VkDeviceCreateInfo")]
1420pub struct DeviceCreateInfo {
1421    ///Must be `VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO`.
1422    pub s_type: StructureType,
1423    ///Optional, may be null.
1424    pub p_next: *const core::ffi::c_void,
1425    pub flags: DeviceCreateFlags,
1426    ///Length of `p_queue_create_infos`.
1427    pub queue_create_info_count: u32,
1428    pub p_queue_create_infos: *const DeviceQueueCreateInfo,
1429    pub enabled_layer_count: u32,
1430    pub pp_enabled_layer_names: *const *const core::ffi::c_char,
1431    ///Length of `pp_enabled_extension_names`.
1432    pub enabled_extension_count: u32,
1433    pub pp_enabled_extension_names: *const *const core::ffi::c_char,
1434    ///Optional, may be null.
1435    pub p_enabled_features: *const PhysicalDeviceFeatures,
1436}
1437impl Default for DeviceCreateInfo {
1438    #[inline]
1439    fn default() -> Self {
1440        Self {
1441            s_type: StructureType::from_raw(3i32),
1442            p_next: core::ptr::null(),
1443            flags: Default::default(),
1444            queue_create_info_count: Default::default(),
1445            p_queue_create_infos: core::ptr::null(),
1446            enabled_layer_count: Default::default(),
1447            pp_enabled_layer_names: core::ptr::null(),
1448            enabled_extension_count: Default::default(),
1449            pp_enabled_extension_names: core::ptr::null(),
1450            p_enabled_features: core::ptr::null(),
1451        }
1452    }
1453}
1454///[`VkInstanceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkInstanceCreateInfo.html)
1455/**
1456Provided by **VK_BASE_VERSION_1_0**.*/
1457///
1458///# Extended By
1459///- [`DebugReportCallbackCreateInfoEXT`]
1460///- [`DebugUtilsMessengerCreateInfoEXT`]
1461///- [`DirectDriverLoadingListLUNARG`]
1462///- [`ExportMetalObjectCreateInfoEXT`]
1463///- [`LayerSettingsCreateInfoEXT`]
1464///- [`ValidationFeaturesEXT`]
1465///- [`ValidationFlagsEXT`]
1466#[repr(C)]
1467#[derive(Copy, Clone, Debug)]
1468#[doc(alias = "VkInstanceCreateInfo")]
1469pub struct InstanceCreateInfo {
1470    ///Must be `VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO`.
1471    pub s_type: StructureType,
1472    ///Optional, may be null.
1473    pub p_next: *const core::ffi::c_void,
1474    pub flags: InstanceCreateFlags,
1475    ///Optional, may be null.
1476    pub p_application_info: *const ApplicationInfo,
1477    ///Length of `pp_enabled_layer_names`.
1478    pub enabled_layer_count: u32,
1479    pub pp_enabled_layer_names: *const *const core::ffi::c_char,
1480    ///Length of `pp_enabled_extension_names`.
1481    pub enabled_extension_count: u32,
1482    pub pp_enabled_extension_names: *const *const core::ffi::c_char,
1483}
1484impl Default for InstanceCreateInfo {
1485    #[inline]
1486    fn default() -> Self {
1487        Self {
1488            s_type: StructureType::from_raw(1i32),
1489            p_next: core::ptr::null(),
1490            flags: Default::default(),
1491            p_application_info: core::ptr::null(),
1492            enabled_layer_count: Default::default(),
1493            pp_enabled_layer_names: core::ptr::null(),
1494            enabled_extension_count: Default::default(),
1495            pp_enabled_extension_names: core::ptr::null(),
1496        }
1497    }
1498}
1499///[`VkQueueFamilyProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyProperties.html)
1500/**
1501Provided by **VK_BASE_VERSION_1_0**.*/
1502/**
1503**Returned only**, filled by Vulkan, not constructed by the application.*/
1504#[repr(C)]
1505#[derive(Copy, Clone, Debug)]
1506#[doc(alias = "VkQueueFamilyProperties")]
1507pub struct QueueFamilyProperties {
1508    pub queue_flags: QueueFlags,
1509    pub queue_count: u32,
1510    pub timestamp_valid_bits: u32,
1511    pub min_image_transfer_granularity: Extent3D,
1512}
1513impl Default for QueueFamilyProperties {
1514    #[inline]
1515    fn default() -> Self {
1516        unsafe { core::mem::zeroed() }
1517    }
1518}
1519///[`VkPhysicalDeviceMemoryProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryProperties.html)
1520/**
1521Provided by **VK_BASE_VERSION_1_0**.*/
1522/**
1523**Returned only**, filled by Vulkan, not constructed by the application.*/
1524#[repr(C)]
1525#[derive(Copy, Clone, Debug)]
1526#[doc(alias = "VkPhysicalDeviceMemoryProperties")]
1527pub struct PhysicalDeviceMemoryProperties {
1528    pub memory_type_count: u32,
1529    pub memory_types: [MemoryType; MAX_MEMORY_TYPES as usize],
1530    pub memory_heap_count: u32,
1531    pub memory_heaps: [MemoryHeap; MAX_MEMORY_HEAPS as usize],
1532}
1533impl Default for PhysicalDeviceMemoryProperties {
1534    #[inline]
1535    fn default() -> Self {
1536        unsafe { core::mem::zeroed() }
1537    }
1538}
1539///[`VkMemoryAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryAllocateInfo.html)
1540/**
1541Provided by **VK_BASE_VERSION_1_0**.*/
1542///
1543///# Extended By
1544///- [`DedicatedAllocationMemoryAllocateInfoNV`]
1545///- [`ExportMemoryAllocateInfo`]
1546///- [`ExportMemoryAllocateInfoNV`]
1547///- [`ExportMemorySciBufInfoNV`]
1548///- [`ExportMemoryWin32HandleInfoKHR`]
1549///- [`ExportMemoryWin32HandleInfoNV`]
1550///- [`ExportMetalObjectCreateInfoEXT`]
1551///- [`ImportAndroidHardwareBufferInfoANDROID`]
1552///- [`ImportMemoryBufferCollectionFUCHSIA`]
1553///- [`ImportMemoryFdInfoKHR`]
1554///- [`ImportMemoryHostPointerInfoEXT`]
1555///- [`ImportMemoryMetalHandleInfoEXT`]
1556///- [`ImportMemorySciBufInfoNV`]
1557///- [`ImportMemoryWin32HandleInfoKHR`]
1558///- [`ImportMemoryWin32HandleInfoNV`]
1559///- [`ImportMemoryZirconHandleInfoFUCHSIA`]
1560///- [`ImportMetalBufferInfoEXT`]
1561///- [`ImportNativeBufferInfoOHOS`]
1562///- [`ImportScreenBufferInfoQNX`]
1563///- [`MemoryAllocateFlagsInfo`]
1564///- [`MemoryDedicatedAllocateInfo`]
1565///- [`MemoryDedicatedAllocateInfoTensorARM`]
1566///- [`MemoryOpaqueCaptureAddressAllocateInfo`]
1567///- [`MemoryPriorityAllocateInfoEXT`]
1568#[repr(C)]
1569#[derive(Copy, Clone, Debug)]
1570#[doc(alias = "VkMemoryAllocateInfo")]
1571pub struct MemoryAllocateInfo {
1572    ///Must be `VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO`.
1573    pub s_type: StructureType,
1574    ///Optional, may be null.
1575    pub p_next: *const core::ffi::c_void,
1576    pub allocation_size: u64,
1577    pub memory_type_index: u32,
1578}
1579impl Default for MemoryAllocateInfo {
1580    #[inline]
1581    fn default() -> Self {
1582        Self {
1583            s_type: StructureType::from_raw(5i32),
1584            p_next: core::ptr::null(),
1585            allocation_size: Default::default(),
1586            memory_type_index: Default::default(),
1587        }
1588    }
1589}
1590///[`VkMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryRequirements.html)
1591/**
1592Provided by **VK_BASE_VERSION_1_0**.*/
1593/**
1594**Returned only**, filled by Vulkan, not constructed by the application.*/
1595#[repr(C)]
1596#[derive(Copy, Clone, Debug)]
1597#[doc(alias = "VkMemoryRequirements")]
1598pub struct MemoryRequirements {
1599    pub size: u64,
1600    pub alignment: u64,
1601    pub memory_type_bits: u32,
1602}
1603impl Default for MemoryRequirements {
1604    #[inline]
1605    fn default() -> Self {
1606        unsafe { core::mem::zeroed() }
1607    }
1608}
1609///[`VkSparseImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageFormatProperties.html)
1610/**
1611Provided by **VK_BASE_VERSION_1_0**.*/
1612/**
1613**Returned only**, filled by Vulkan, not constructed by the application.*/
1614#[repr(C)]
1615#[derive(Copy, Clone, Debug)]
1616#[doc(alias = "VkSparseImageFormatProperties")]
1617pub struct SparseImageFormatProperties {
1618    pub aspect_mask: ImageAspectFlags,
1619    pub image_granularity: Extent3D,
1620    pub flags: SparseImageFormatFlags,
1621}
1622impl Default for SparseImageFormatProperties {
1623    #[inline]
1624    fn default() -> Self {
1625        unsafe { core::mem::zeroed() }
1626    }
1627}
1628///[`VkSparseImageMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageMemoryRequirements.html)
1629/**
1630Provided by **VK_BASE_VERSION_1_0**.*/
1631/**
1632**Returned only**, filled by Vulkan, not constructed by the application.*/
1633#[repr(C)]
1634#[derive(Copy, Clone, Debug)]
1635#[doc(alias = "VkSparseImageMemoryRequirements")]
1636pub struct SparseImageMemoryRequirements {
1637    pub format_properties: SparseImageFormatProperties,
1638    pub image_mip_tail_first_lod: u32,
1639    pub image_mip_tail_size: u64,
1640    pub image_mip_tail_offset: u64,
1641    pub image_mip_tail_stride: u64,
1642}
1643impl Default for SparseImageMemoryRequirements {
1644    #[inline]
1645    fn default() -> Self {
1646        unsafe { core::mem::zeroed() }
1647    }
1648}
1649///[`VkMemoryType`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryType.html)
1650/**
1651Provided by **VK_BASE_VERSION_1_0**.*/
1652/**
1653**Returned only**, filled by Vulkan, not constructed by the application.*/
1654#[repr(C)]
1655#[derive(Copy, Clone, Debug)]
1656#[doc(alias = "VkMemoryType")]
1657pub struct MemoryType {
1658    pub property_flags: MemoryPropertyFlags,
1659    pub heap_index: u32,
1660}
1661impl Default for MemoryType {
1662    #[inline]
1663    fn default() -> Self {
1664        unsafe { core::mem::zeroed() }
1665    }
1666}
1667///[`VkMemoryHeap`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryHeap.html)
1668/**
1669Provided by **VK_BASE_VERSION_1_0**.*/
1670/**
1671**Returned only**, filled by Vulkan, not constructed by the application.*/
1672#[repr(C)]
1673#[derive(Copy, Clone, Debug)]
1674#[doc(alias = "VkMemoryHeap")]
1675pub struct MemoryHeap {
1676    pub size: u64,
1677    pub flags: MemoryHeapFlags,
1678}
1679impl Default for MemoryHeap {
1680    #[inline]
1681    fn default() -> Self {
1682        unsafe { core::mem::zeroed() }
1683    }
1684}
1685///[`VkMappedMemoryRange`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMappedMemoryRange.html)
1686/**
1687Provided by **VK_BASE_VERSION_1_0**.*/
1688#[repr(C)]
1689#[derive(Copy, Clone, Debug)]
1690#[doc(alias = "VkMappedMemoryRange")]
1691pub struct MappedMemoryRange {
1692    ///Must be `VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE`.
1693    pub s_type: StructureType,
1694    ///Optional, may be null.
1695    pub p_next: *const core::ffi::c_void,
1696    pub memory: DeviceMemory,
1697    pub offset: u64,
1698    pub size: u64,
1699}
1700impl Default for MappedMemoryRange {
1701    #[inline]
1702    fn default() -> Self {
1703        Self {
1704            s_type: StructureType::from_raw(6i32),
1705            p_next: core::ptr::null(),
1706            memory: Default::default(),
1707            offset: Default::default(),
1708            size: Default::default(),
1709        }
1710    }
1711}
1712///[`VkFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFormatProperties.html)
1713/**
1714Provided by **VK_BASE_VERSION_1_0**.*/
1715/**
1716**Returned only**, filled by Vulkan, not constructed by the application.*/
1717#[repr(C)]
1718#[derive(Copy, Clone, Debug)]
1719#[doc(alias = "VkFormatProperties")]
1720pub struct FormatProperties {
1721    pub linear_tiling_features: FormatFeatureFlags,
1722    pub optimal_tiling_features: FormatFeatureFlags,
1723    pub buffer_features: FormatFeatureFlags,
1724}
1725impl Default for FormatProperties {
1726    #[inline]
1727    fn default() -> Self {
1728        unsafe { core::mem::zeroed() }
1729    }
1730}
1731///[`VkImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageFormatProperties.html)
1732/**
1733Provided by **VK_BASE_VERSION_1_0**.*/
1734/**
1735**Returned only**, filled by Vulkan, not constructed by the application.*/
1736#[repr(C)]
1737#[derive(Copy, Clone, Debug)]
1738#[doc(alias = "VkImageFormatProperties")]
1739pub struct ImageFormatProperties {
1740    pub max_extent: Extent3D,
1741    pub max_mip_levels: u32,
1742    pub max_array_layers: u32,
1743    pub sample_counts: SampleCountFlags,
1744    pub max_resource_size: u64,
1745}
1746impl Default for ImageFormatProperties {
1747    #[inline]
1748    fn default() -> Self {
1749        unsafe { core::mem::zeroed() }
1750    }
1751}
1752///[`VkDescriptorBufferInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorBufferInfo.html)
1753/**
1754Provided by **VK_COMPUTE_VERSION_1_0**.*/
1755#[repr(C)]
1756#[derive(Copy, Clone, Debug)]
1757#[doc(alias = "VkDescriptorBufferInfo")]
1758pub struct DescriptorBufferInfo {
1759    pub buffer: Buffer,
1760    pub offset: u64,
1761    pub range: u64,
1762}
1763impl Default for DescriptorBufferInfo {
1764    #[inline]
1765    fn default() -> Self {
1766        unsafe { core::mem::zeroed() }
1767    }
1768}
1769///[`VkDescriptorImageInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorImageInfo.html)
1770/**
1771Provided by **VK_COMPUTE_VERSION_1_0**.*/
1772#[repr(C)]
1773#[derive(Copy, Clone, Debug)]
1774#[doc(alias = "VkDescriptorImageInfo")]
1775pub struct DescriptorImageInfo {
1776    pub sampler: Sampler,
1777    pub image_view: ImageView,
1778    pub image_layout: ImageLayout,
1779}
1780impl Default for DescriptorImageInfo {
1781    #[inline]
1782    fn default() -> Self {
1783        unsafe { core::mem::zeroed() }
1784    }
1785}
1786///[`VkWriteDescriptorSet`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSet.html)
1787/**
1788Provided by **VK_COMPUTE_VERSION_1_0**.*/
1789///
1790///# Extended By
1791///- [`WriteDescriptorSetAccelerationStructureKHR`]
1792///- [`WriteDescriptorSetAccelerationStructureNV`]
1793///- [`WriteDescriptorSetInlineUniformBlock`]
1794///- [`WriteDescriptorSetPartitionedAccelerationStructureNV`]
1795///- [`WriteDescriptorSetTensorARM`]
1796#[repr(C)]
1797#[derive(Copy, Clone, Debug)]
1798#[doc(alias = "VkWriteDescriptorSet")]
1799pub struct WriteDescriptorSet {
1800    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET`.
1801    pub s_type: StructureType,
1802    ///Optional, may be null.
1803    pub p_next: *const core::ffi::c_void,
1804    pub dst_set: DescriptorSet,
1805    pub dst_binding: u32,
1806    pub dst_array_element: u32,
1807    ///Length of `p_texel_buffer_view`.
1808    pub descriptor_count: u32,
1809    pub descriptor_type: DescriptorType,
1810    pub p_image_info: *const DescriptorImageInfo,
1811    pub p_buffer_info: *const DescriptorBufferInfo,
1812    pub p_texel_buffer_view: *const BufferView,
1813}
1814impl Default for WriteDescriptorSet {
1815    #[inline]
1816    fn default() -> Self {
1817        Self {
1818            s_type: StructureType::from_raw(35i32),
1819            p_next: core::ptr::null(),
1820            dst_set: Default::default(),
1821            dst_binding: Default::default(),
1822            dst_array_element: Default::default(),
1823            descriptor_count: Default::default(),
1824            descriptor_type: Default::default(),
1825            p_image_info: core::ptr::null(),
1826            p_buffer_info: core::ptr::null(),
1827            p_texel_buffer_view: core::ptr::null(),
1828        }
1829    }
1830}
1831///[`VkCopyDescriptorSet`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyDescriptorSet.html)
1832/**
1833Provided by **VK_COMPUTE_VERSION_1_0**.*/
1834#[repr(C)]
1835#[derive(Copy, Clone, Debug)]
1836#[doc(alias = "VkCopyDescriptorSet")]
1837pub struct CopyDescriptorSet {
1838    ///Must be `VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET`.
1839    pub s_type: StructureType,
1840    ///Optional, may be null.
1841    pub p_next: *const core::ffi::c_void,
1842    pub src_set: DescriptorSet,
1843    pub src_binding: u32,
1844    pub src_array_element: u32,
1845    ///**Thread safety:** must be externally synchronized.
1846    pub dst_set: DescriptorSet,
1847    pub dst_binding: u32,
1848    pub dst_array_element: u32,
1849    pub descriptor_count: u32,
1850}
1851impl Default for CopyDescriptorSet {
1852    #[inline]
1853    fn default() -> Self {
1854        Self {
1855            s_type: StructureType::from_raw(36i32),
1856            p_next: core::ptr::null(),
1857            src_set: Default::default(),
1858            src_binding: Default::default(),
1859            src_array_element: Default::default(),
1860            dst_set: Default::default(),
1861            dst_binding: Default::default(),
1862            dst_array_element: Default::default(),
1863            descriptor_count: Default::default(),
1864        }
1865    }
1866}
1867///[`VkBufferUsageFlags2CreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferUsageFlags2CreateInfo.html)
1868/**
1869Provided by **VK_BASE_VERSION_1_4**.*/
1870///
1871///# Extends
1872///- [`BufferViewCreateInfo`]
1873///- [`BufferCreateInfo`]
1874///- [`PhysicalDeviceExternalBufferInfo`]
1875///- [`DescriptorBufferBindingInfoEXT`]
1876#[repr(C)]
1877#[derive(Copy, Clone, Debug)]
1878#[doc(alias = "VkBufferUsageFlags2CreateInfo")]
1879pub struct BufferUsageFlags2CreateInfo {
1880    ///Must be `VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO`.
1881    pub s_type: StructureType,
1882    ///Optional, may be null.
1883    pub p_next: *const core::ffi::c_void,
1884    pub usage: BufferUsageFlags2,
1885}
1886impl Default for BufferUsageFlags2CreateInfo {
1887    #[inline]
1888    fn default() -> Self {
1889        Self {
1890            s_type: StructureType::from_raw(1000470006i32),
1891            p_next: core::ptr::null(),
1892            usage: Default::default(),
1893        }
1894    }
1895}
1896///[`VkBufferCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCreateInfo.html)
1897/**
1898Provided by **VK_BASE_VERSION_1_0**.*/
1899///
1900///# Extended By
1901///- [`BufferCollectionBufferCreateInfoFUCHSIA`]
1902///- [`BufferDeviceAddressCreateInfoEXT`]
1903///- [`BufferOpaqueCaptureAddressCreateInfo`]
1904///- [`BufferUsageFlags2CreateInfo`]
1905///- [`DedicatedAllocationBufferCreateInfoNV`]
1906///- [`ExternalMemoryBufferCreateInfo`]
1907///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
1908///- [`VideoProfileListInfoKHR`]
1909#[repr(C)]
1910#[derive(Copy, Clone, Debug)]
1911#[doc(alias = "VkBufferCreateInfo")]
1912pub struct BufferCreateInfo {
1913    ///Must be `VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO`.
1914    pub s_type: StructureType,
1915    ///Optional, may be null.
1916    pub p_next: *const core::ffi::c_void,
1917    pub flags: BufferCreateFlags,
1918    pub size: u64,
1919    pub usage: BufferUsageFlags,
1920    pub sharing_mode: SharingMode,
1921    ///Length of `p_queue_family_indices`.
1922    pub queue_family_index_count: u32,
1923    pub p_queue_family_indices: *const u32,
1924}
1925impl Default for BufferCreateInfo {
1926    #[inline]
1927    fn default() -> Self {
1928        Self {
1929            s_type: StructureType::from_raw(12i32),
1930            p_next: core::ptr::null(),
1931            flags: Default::default(),
1932            size: Default::default(),
1933            usage: Default::default(),
1934            sharing_mode: Default::default(),
1935            queue_family_index_count: Default::default(),
1936            p_queue_family_indices: core::ptr::null(),
1937        }
1938    }
1939}
1940///[`VkBufferViewCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferViewCreateInfo.html)
1941/**
1942Provided by **VK_COMPUTE_VERSION_1_0**.*/
1943///
1944///# Extended By
1945///- [`BufferUsageFlags2CreateInfo`]
1946///- [`ExportMetalObjectCreateInfoEXT`]
1947#[repr(C)]
1948#[derive(Copy, Clone, Debug)]
1949#[doc(alias = "VkBufferViewCreateInfo")]
1950pub struct BufferViewCreateInfo {
1951    ///Must be `VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO`.
1952    pub s_type: StructureType,
1953    ///Optional, may be null.
1954    pub p_next: *const core::ffi::c_void,
1955    pub flags: BufferViewCreateFlags,
1956    pub buffer: Buffer,
1957    pub format: Format,
1958    pub offset: u64,
1959    pub range: u64,
1960}
1961impl Default for BufferViewCreateInfo {
1962    #[inline]
1963    fn default() -> Self {
1964        Self {
1965            s_type: StructureType::from_raw(13i32),
1966            p_next: core::ptr::null(),
1967            flags: Default::default(),
1968            buffer: Default::default(),
1969            format: Default::default(),
1970            offset: Default::default(),
1971            range: Default::default(),
1972        }
1973    }
1974}
1975///[`VkImageSubresource`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSubresource.html)
1976/**
1977Provided by **VK_BASE_VERSION_1_0**.*/
1978#[repr(C)]
1979#[derive(Copy, Clone, Debug)]
1980#[doc(alias = "VkImageSubresource")]
1981pub struct ImageSubresource {
1982    pub aspect_mask: ImageAspectFlags,
1983    pub mip_level: u32,
1984    pub array_layer: u32,
1985}
1986impl Default for ImageSubresource {
1987    #[inline]
1988    fn default() -> Self {
1989        unsafe { core::mem::zeroed() }
1990    }
1991}
1992///[`VkImageSubresourceLayers`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSubresourceLayers.html)
1993/**
1994Provided by **VK_BASE_VERSION_1_0**.*/
1995#[repr(C)]
1996#[derive(Copy, Clone, Debug)]
1997#[doc(alias = "VkImageSubresourceLayers")]
1998pub struct ImageSubresourceLayers {
1999    pub aspect_mask: ImageAspectFlags,
2000    pub mip_level: u32,
2001    pub base_array_layer: u32,
2002    pub layer_count: u32,
2003}
2004impl Default for ImageSubresourceLayers {
2005    #[inline]
2006    fn default() -> Self {
2007        unsafe { core::mem::zeroed() }
2008    }
2009}
2010///[`VkImageSubresourceRange`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSubresourceRange.html)
2011/**
2012Provided by **VK_BASE_VERSION_1_0**.*/
2013#[repr(C)]
2014#[derive(Copy, Clone, Debug)]
2015#[doc(alias = "VkImageSubresourceRange")]
2016pub struct ImageSubresourceRange {
2017    pub aspect_mask: ImageAspectFlags,
2018    pub base_mip_level: u32,
2019    pub level_count: u32,
2020    pub base_array_layer: u32,
2021    pub layer_count: u32,
2022}
2023impl Default for ImageSubresourceRange {
2024    #[inline]
2025    fn default() -> Self {
2026        unsafe { core::mem::zeroed() }
2027    }
2028}
2029///[`VkMemoryBarrier`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryBarrier.html)
2030/**
2031Provided by **VK_BASE_VERSION_1_0**.*/
2032#[repr(C)]
2033#[derive(Copy, Clone, Debug)]
2034#[doc(alias = "VkMemoryBarrier")]
2035pub struct MemoryBarrier {
2036    ///Must be `VK_STRUCTURE_TYPE_MEMORY_BARRIER`.
2037    pub s_type: StructureType,
2038    ///Optional, may be null.
2039    pub p_next: *const core::ffi::c_void,
2040    pub src_access_mask: AccessFlags,
2041    pub dst_access_mask: AccessFlags,
2042}
2043impl Default for MemoryBarrier {
2044    #[inline]
2045    fn default() -> Self {
2046        Self {
2047            s_type: StructureType::from_raw(46i32),
2048            p_next: core::ptr::null(),
2049            src_access_mask: Default::default(),
2050            dst_access_mask: Default::default(),
2051        }
2052    }
2053}
2054///[`VkBufferMemoryBarrier`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferMemoryBarrier.html)
2055/**
2056Provided by **VK_BASE_VERSION_1_0**.*/
2057///
2058///# Extended By
2059///- [`ExternalMemoryAcquireUnmodifiedEXT`]
2060#[repr(C)]
2061#[derive(Copy, Clone, Debug)]
2062#[doc(alias = "VkBufferMemoryBarrier")]
2063pub struct BufferMemoryBarrier {
2064    ///Must be `VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER`.
2065    pub s_type: StructureType,
2066    ///Optional, may be null.
2067    pub p_next: *const core::ffi::c_void,
2068    pub src_access_mask: AccessFlags,
2069    pub dst_access_mask: AccessFlags,
2070    pub src_queue_family_index: u32,
2071    pub dst_queue_family_index: u32,
2072    pub buffer: Buffer,
2073    pub offset: u64,
2074    pub size: u64,
2075}
2076impl Default for BufferMemoryBarrier {
2077    #[inline]
2078    fn default() -> Self {
2079        Self {
2080            s_type: StructureType::from_raw(44i32),
2081            p_next: core::ptr::null(),
2082            src_access_mask: Default::default(),
2083            dst_access_mask: Default::default(),
2084            src_queue_family_index: Default::default(),
2085            dst_queue_family_index: Default::default(),
2086            buffer: Default::default(),
2087            offset: Default::default(),
2088            size: Default::default(),
2089        }
2090    }
2091}
2092///[`VkImageMemoryBarrier`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageMemoryBarrier.html)
2093/**
2094Provided by **VK_BASE_VERSION_1_0**.*/
2095///
2096///# Extended By
2097///- [`ExternalMemoryAcquireUnmodifiedEXT`]
2098///- [`SampleLocationsInfoEXT`]
2099#[repr(C)]
2100#[derive(Copy, Clone, Debug)]
2101#[doc(alias = "VkImageMemoryBarrier")]
2102pub struct ImageMemoryBarrier {
2103    ///Must be `VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER`.
2104    pub s_type: StructureType,
2105    ///Optional, may be null.
2106    pub p_next: *const core::ffi::c_void,
2107    pub src_access_mask: AccessFlags,
2108    pub dst_access_mask: AccessFlags,
2109    pub old_layout: ImageLayout,
2110    pub new_layout: ImageLayout,
2111    pub src_queue_family_index: u32,
2112    pub dst_queue_family_index: u32,
2113    pub image: Image,
2114    pub subresource_range: ImageSubresourceRange,
2115}
2116impl Default for ImageMemoryBarrier {
2117    #[inline]
2118    fn default() -> Self {
2119        Self {
2120            s_type: StructureType::from_raw(45i32),
2121            p_next: core::ptr::null(),
2122            src_access_mask: Default::default(),
2123            dst_access_mask: Default::default(),
2124            old_layout: Default::default(),
2125            new_layout: Default::default(),
2126            src_queue_family_index: Default::default(),
2127            dst_queue_family_index: Default::default(),
2128            image: Default::default(),
2129            subresource_range: Default::default(),
2130        }
2131    }
2132}
2133///[`VkImageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCreateInfo.html)
2134/**
2135Provided by **VK_BASE_VERSION_1_0**.*/
2136///
2137///# Extended By
2138///- [`BufferCollectionImageCreateInfoFUCHSIA`]
2139///- [`DedicatedAllocationImageCreateInfoNV`]
2140///- [`ExportMetalObjectCreateInfoEXT`]
2141///- [`ExternalFormatANDROID`]
2142///- [`ExternalFormatOHOS`]
2143///- [`ExternalFormatQNX`]
2144///- [`ExternalMemoryImageCreateInfo`]
2145///- [`ExternalMemoryImageCreateInfoNV`]
2146///- [`ImageAlignmentControlCreateInfoMESA`]
2147///- [`ImageCompressionControlEXT`]
2148///- [`ImageDrmFormatModifierExplicitCreateInfoEXT`]
2149///- [`ImageDrmFormatModifierListCreateInfoEXT`]
2150///- [`ImageFormatListCreateInfo`]
2151///- [`ImageStencilUsageCreateInfo`]
2152///- [`ImageSwapchainCreateInfoKHR`]
2153///- [`ImportMetalIOSurfaceInfoEXT`]
2154///- [`ImportMetalTextureInfoEXT`]
2155///- [`NativeBufferANDROID`]
2156///- [`NativeBufferOHOS`]
2157///- [`OpaqueCaptureDataCreateInfoEXT`]
2158///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
2159///- [`OpticalFlowImageFormatInfoNV`]
2160///- [`SwapchainImageCreateInfoANDROID`]
2161///- [`SwapchainImageCreateInfoOHOS`]
2162///- [`VideoProfileListInfoKHR`]
2163#[repr(C)]
2164#[derive(Copy, Clone, Debug)]
2165#[doc(alias = "VkImageCreateInfo")]
2166pub struct ImageCreateInfo {
2167    ///Must be `VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO`.
2168    pub s_type: StructureType,
2169    ///Optional, may be null.
2170    pub p_next: *const core::ffi::c_void,
2171    pub flags: ImageCreateFlags,
2172    pub image_type: ImageType,
2173    pub format: Format,
2174    pub extent: Extent3D,
2175    pub mip_levels: u32,
2176    pub array_layers: u32,
2177    pub samples: SampleCountFlagBits,
2178    pub tiling: ImageTiling,
2179    pub usage: ImageUsageFlags,
2180    pub sharing_mode: SharingMode,
2181    ///Length of `p_queue_family_indices`.
2182    pub queue_family_index_count: u32,
2183    pub p_queue_family_indices: *const u32,
2184    pub initial_layout: ImageLayout,
2185}
2186impl Default for ImageCreateInfo {
2187    #[inline]
2188    fn default() -> Self {
2189        Self {
2190            s_type: StructureType::from_raw(14i32),
2191            p_next: core::ptr::null(),
2192            flags: Default::default(),
2193            image_type: Default::default(),
2194            format: Default::default(),
2195            extent: Default::default(),
2196            mip_levels: Default::default(),
2197            array_layers: Default::default(),
2198            samples: Default::default(),
2199            tiling: Default::default(),
2200            usage: Default::default(),
2201            sharing_mode: Default::default(),
2202            queue_family_index_count: Default::default(),
2203            p_queue_family_indices: core::ptr::null(),
2204            initial_layout: Default::default(),
2205        }
2206    }
2207}
2208///[`VkSubresourceLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubresourceLayout.html)
2209/**
2210Provided by **VK_BASE_VERSION_1_0**.*/
2211#[repr(C)]
2212#[derive(Copy, Clone, Debug)]
2213#[doc(alias = "VkSubresourceLayout")]
2214pub struct SubresourceLayout {
2215    pub offset: u64,
2216    pub size: u64,
2217    pub row_pitch: u64,
2218    pub array_pitch: u64,
2219    pub depth_pitch: u64,
2220}
2221impl Default for SubresourceLayout {
2222    #[inline]
2223    fn default() -> Self {
2224        unsafe { core::mem::zeroed() }
2225    }
2226}
2227///[`VkImageViewCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewCreateInfo.html)
2228/**
2229Provided by **VK_BASE_VERSION_1_0**.*/
2230///
2231///# Extended By
2232///- [`ExportMetalObjectCreateInfoEXT`]
2233///- [`ImageViewASTCDecodeModeEXT`]
2234///- [`ImageViewMinLodCreateInfoEXT`]
2235///- [`ImageViewSampleWeightCreateInfoQCOM`]
2236///- [`ImageViewSlicedCreateInfoEXT`]
2237///- [`ImageViewUsageCreateInfo`]
2238///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
2239///- [`SamplerYcbcrConversionInfo`]
2240#[repr(C)]
2241#[derive(Copy, Clone, Debug)]
2242#[doc(alias = "VkImageViewCreateInfo")]
2243pub struct ImageViewCreateInfo {
2244    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO`.
2245    pub s_type: StructureType,
2246    ///Optional, may be null.
2247    pub p_next: *const core::ffi::c_void,
2248    pub flags: ImageViewCreateFlags,
2249    pub image: Image,
2250    pub view_type: ImageViewType,
2251    pub format: Format,
2252    pub components: ComponentMapping,
2253    pub subresource_range: ImageSubresourceRange,
2254}
2255impl Default for ImageViewCreateInfo {
2256    #[inline]
2257    fn default() -> Self {
2258        Self {
2259            s_type: StructureType::from_raw(15i32),
2260            p_next: core::ptr::null(),
2261            flags: Default::default(),
2262            image: Default::default(),
2263            view_type: Default::default(),
2264            format: Default::default(),
2265            components: Default::default(),
2266            subresource_range: Default::default(),
2267        }
2268    }
2269}
2270///[`VkBufferCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCopy.html)
2271/**
2272Provided by **VK_BASE_VERSION_1_0**.*/
2273#[repr(C)]
2274#[derive(Copy, Clone, Debug)]
2275#[doc(alias = "VkBufferCopy")]
2276pub struct BufferCopy {
2277    pub src_offset: u64,
2278    pub dst_offset: u64,
2279    pub size: u64,
2280}
2281impl Default for BufferCopy {
2282    #[inline]
2283    fn default() -> Self {
2284        unsafe { core::mem::zeroed() }
2285    }
2286}
2287///[`VkSparseMemoryBind`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseMemoryBind.html)
2288/**
2289Provided by **VK_BASE_VERSION_1_0**.*/
2290#[repr(C)]
2291#[derive(Copy, Clone, Debug)]
2292#[doc(alias = "VkSparseMemoryBind")]
2293pub struct SparseMemoryBind {
2294    pub resource_offset: u64,
2295    pub size: u64,
2296    pub memory: DeviceMemory,
2297    pub memory_offset: u64,
2298    pub flags: SparseMemoryBindFlags,
2299}
2300impl Default for SparseMemoryBind {
2301    #[inline]
2302    fn default() -> Self {
2303        unsafe { core::mem::zeroed() }
2304    }
2305}
2306///[`VkSparseImageMemoryBind`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageMemoryBind.html)
2307/**
2308Provided by **VK_BASE_VERSION_1_0**.*/
2309#[repr(C)]
2310#[derive(Copy, Clone, Debug)]
2311#[doc(alias = "VkSparseImageMemoryBind")]
2312pub struct SparseImageMemoryBind {
2313    pub subresource: ImageSubresource,
2314    pub offset: Offset3D,
2315    pub extent: Extent3D,
2316    pub memory: DeviceMemory,
2317    pub memory_offset: u64,
2318    pub flags: SparseMemoryBindFlags,
2319}
2320impl Default for SparseImageMemoryBind {
2321    #[inline]
2322    fn default() -> Self {
2323        unsafe { core::mem::zeroed() }
2324    }
2325}
2326///[`VkSparseBufferMemoryBindInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseBufferMemoryBindInfo.html)
2327/**
2328Provided by **VK_BASE_VERSION_1_0**.*/
2329#[repr(C)]
2330#[derive(Copy, Clone, Debug)]
2331#[doc(alias = "VkSparseBufferMemoryBindInfo")]
2332pub struct SparseBufferMemoryBindInfo {
2333    pub buffer: Buffer,
2334    ///Length of `p_binds`.
2335    pub bind_count: u32,
2336    pub p_binds: *const SparseMemoryBind,
2337}
2338impl Default for SparseBufferMemoryBindInfo {
2339    #[inline]
2340    fn default() -> Self {
2341        unsafe { core::mem::zeroed() }
2342    }
2343}
2344///[`VkSparseImageOpaqueMemoryBindInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageOpaqueMemoryBindInfo.html)
2345/**
2346Provided by **VK_BASE_VERSION_1_0**.*/
2347#[repr(C)]
2348#[derive(Copy, Clone, Debug)]
2349#[doc(alias = "VkSparseImageOpaqueMemoryBindInfo")]
2350pub struct SparseImageOpaqueMemoryBindInfo {
2351    pub image: Image,
2352    ///Length of `p_binds`.
2353    pub bind_count: u32,
2354    pub p_binds: *const SparseMemoryBind,
2355}
2356impl Default for SparseImageOpaqueMemoryBindInfo {
2357    #[inline]
2358    fn default() -> Self {
2359        unsafe { core::mem::zeroed() }
2360    }
2361}
2362///[`VkSparseImageMemoryBindInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageMemoryBindInfo.html)
2363/**
2364Provided by **VK_BASE_VERSION_1_0**.*/
2365#[repr(C)]
2366#[derive(Copy, Clone, Debug)]
2367#[doc(alias = "VkSparseImageMemoryBindInfo")]
2368pub struct SparseImageMemoryBindInfo {
2369    pub image: Image,
2370    ///Length of `p_binds`.
2371    pub bind_count: u32,
2372    pub p_binds: *const SparseImageMemoryBind,
2373}
2374impl Default for SparseImageMemoryBindInfo {
2375    #[inline]
2376    fn default() -> Self {
2377        unsafe { core::mem::zeroed() }
2378    }
2379}
2380///[`VkBindSparseInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindSparseInfo.html)
2381/**
2382Provided by **VK_BASE_VERSION_1_0**.*/
2383///
2384///# Extended By
2385///- [`DeviceGroupBindSparseInfo`]
2386///- [`FrameBoundaryEXT`]
2387///- [`FrameBoundaryTensorsARM`]
2388///- [`TimelineSemaphoreSubmitInfo`]
2389#[repr(C)]
2390#[derive(Copy, Clone, Debug)]
2391#[doc(alias = "VkBindSparseInfo")]
2392pub struct BindSparseInfo {
2393    ///Must be `VK_STRUCTURE_TYPE_BIND_SPARSE_INFO`.
2394    pub s_type: StructureType,
2395    ///Optional, may be null.
2396    pub p_next: *const core::ffi::c_void,
2397    ///Length of `p_wait_semaphores`.
2398    pub wait_semaphore_count: u32,
2399    pub p_wait_semaphores: *const Semaphore,
2400    ///Length of `p_buffer_binds`.
2401    pub buffer_bind_count: u32,
2402    pub p_buffer_binds: *const SparseBufferMemoryBindInfo,
2403    ///Length of `p_image_opaque_binds`.
2404    pub image_opaque_bind_count: u32,
2405    pub p_image_opaque_binds: *const SparseImageOpaqueMemoryBindInfo,
2406    ///Length of `p_image_binds`.
2407    pub image_bind_count: u32,
2408    pub p_image_binds: *const SparseImageMemoryBindInfo,
2409    ///Length of `p_signal_semaphores`.
2410    pub signal_semaphore_count: u32,
2411    pub p_signal_semaphores: *const Semaphore,
2412}
2413impl Default for BindSparseInfo {
2414    #[inline]
2415    fn default() -> Self {
2416        Self {
2417            s_type: StructureType::from_raw(7i32),
2418            p_next: core::ptr::null(),
2419            wait_semaphore_count: Default::default(),
2420            p_wait_semaphores: core::ptr::null(),
2421            buffer_bind_count: Default::default(),
2422            p_buffer_binds: core::ptr::null(),
2423            image_opaque_bind_count: Default::default(),
2424            p_image_opaque_binds: core::ptr::null(),
2425            image_bind_count: Default::default(),
2426            p_image_binds: core::ptr::null(),
2427            signal_semaphore_count: Default::default(),
2428            p_signal_semaphores: core::ptr::null(),
2429        }
2430    }
2431}
2432///[`VkImageCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCopy.html)
2433/**
2434Provided by **VK_BASE_VERSION_1_0**.*/
2435#[repr(C)]
2436#[derive(Copy, Clone, Debug)]
2437#[doc(alias = "VkImageCopy")]
2438pub struct ImageCopy {
2439    pub src_subresource: ImageSubresourceLayers,
2440    pub src_offset: Offset3D,
2441    pub dst_subresource: ImageSubresourceLayers,
2442    pub dst_offset: Offset3D,
2443    pub extent: Extent3D,
2444}
2445impl Default for ImageCopy {
2446    #[inline]
2447    fn default() -> Self {
2448        unsafe { core::mem::zeroed() }
2449    }
2450}
2451///[`VkImageBlit`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageBlit.html)
2452/**
2453Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2454#[repr(C)]
2455#[derive(Copy, Clone, Debug)]
2456#[doc(alias = "VkImageBlit")]
2457pub struct ImageBlit {
2458    pub src_subresource: ImageSubresourceLayers,
2459    pub src_offsets: [Offset3D; 2usize],
2460    pub dst_subresource: ImageSubresourceLayers,
2461    pub dst_offsets: [Offset3D; 2usize],
2462}
2463impl Default for ImageBlit {
2464    #[inline]
2465    fn default() -> Self {
2466        unsafe { core::mem::zeroed() }
2467    }
2468}
2469///[`VkBufferImageCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferImageCopy.html)
2470/**
2471Provided by **VK_BASE_VERSION_1_0**.*/
2472#[repr(C)]
2473#[derive(Copy, Clone, Debug)]
2474#[doc(alias = "VkBufferImageCopy")]
2475pub struct BufferImageCopy {
2476    pub buffer_offset: u64,
2477    pub buffer_row_length: u32,
2478    pub buffer_image_height: u32,
2479    pub image_subresource: ImageSubresourceLayers,
2480    pub image_offset: Offset3D,
2481    pub image_extent: Extent3D,
2482}
2483impl Default for BufferImageCopy {
2484    #[inline]
2485    fn default() -> Self {
2486        unsafe { core::mem::zeroed() }
2487    }
2488}
2489///[`VkStridedDeviceAddressRangeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStridedDeviceAddressRangeKHR.html)
2490/**
2491Provided by **VK_KHR_device_address_commands**.*/
2492#[repr(C)]
2493#[derive(Copy, Clone, Debug)]
2494#[doc(alias = "VkStridedDeviceAddressRangeKHR")]
2495pub struct StridedDeviceAddressRangeKHR {
2496    pub address: u64,
2497    pub size: u64,
2498    pub stride: u64,
2499}
2500impl Default for StridedDeviceAddressRangeKHR {
2501    #[inline]
2502    fn default() -> Self {
2503        unsafe { core::mem::zeroed() }
2504    }
2505}
2506///[`VkCopyMemoryIndirectCommandKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryIndirectCommandKHR.html)
2507/**
2508Provided by **VK_KHR_copy_memory_indirect**.*/
2509#[repr(C)]
2510#[derive(Copy, Clone, Debug)]
2511#[doc(alias = "VkCopyMemoryIndirectCommandKHR")]
2512pub struct CopyMemoryIndirectCommandKHR {
2513    pub src_address: u64,
2514    pub dst_address: u64,
2515    pub size: u64,
2516}
2517impl Default for CopyMemoryIndirectCommandKHR {
2518    #[inline]
2519    fn default() -> Self {
2520        unsafe { core::mem::zeroed() }
2521    }
2522}
2523///[`VkCopyMemoryIndirectInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryIndirectInfoKHR.html)
2524/**
2525Provided by **VK_KHR_copy_memory_indirect**.*/
2526#[repr(C)]
2527#[derive(Copy, Clone, Debug)]
2528#[doc(alias = "VkCopyMemoryIndirectInfoKHR")]
2529pub struct CopyMemoryIndirectInfoKHR {
2530    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR`.
2531    pub s_type: StructureType,
2532    ///Optional, may be null.
2533    pub p_next: *const core::ffi::c_void,
2534    pub src_copy_flags: AddressCopyFlagsKHR,
2535    pub dst_copy_flags: AddressCopyFlagsKHR,
2536    pub copy_count: u32,
2537    pub copy_address_range: StridedDeviceAddressRangeKHR,
2538}
2539impl Default for CopyMemoryIndirectInfoKHR {
2540    #[inline]
2541    fn default() -> Self {
2542        Self {
2543            s_type: StructureType::from_raw(1000549002i32),
2544            p_next: core::ptr::null(),
2545            src_copy_flags: Default::default(),
2546            dst_copy_flags: Default::default(),
2547            copy_count: Default::default(),
2548            copy_address_range: Default::default(),
2549        }
2550    }
2551}
2552///[`VkCopyMemoryToImageIndirectCommandKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageIndirectCommandKHR.html)
2553/**
2554Provided by **VK_KHR_copy_memory_indirect**.*/
2555#[repr(C)]
2556#[derive(Copy, Clone, Debug)]
2557#[doc(alias = "VkCopyMemoryToImageIndirectCommandKHR")]
2558pub struct CopyMemoryToImageIndirectCommandKHR {
2559    pub src_address: u64,
2560    pub buffer_row_length: u32,
2561    pub buffer_image_height: u32,
2562    pub image_subresource: ImageSubresourceLayers,
2563    pub image_offset: Offset3D,
2564    pub image_extent: Extent3D,
2565}
2566impl Default for CopyMemoryToImageIndirectCommandKHR {
2567    #[inline]
2568    fn default() -> Self {
2569        unsafe { core::mem::zeroed() }
2570    }
2571}
2572///[`VkCopyMemoryToImageIndirectInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageIndirectInfoKHR.html)
2573/**
2574Provided by **VK_KHR_copy_memory_indirect**.*/
2575#[repr(C)]
2576#[derive(Copy, Clone, Debug)]
2577#[doc(alias = "VkCopyMemoryToImageIndirectInfoKHR")]
2578pub struct CopyMemoryToImageIndirectInfoKHR {
2579    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR`.
2580    pub s_type: StructureType,
2581    ///Optional, may be null.
2582    pub p_next: *const core::ffi::c_void,
2583    pub src_copy_flags: AddressCopyFlagsKHR,
2584    ///Length of `p_image_subresources`.
2585    pub copy_count: u32,
2586    pub copy_address_range: StridedDeviceAddressRangeKHR,
2587    pub dst_image: Image,
2588    pub dst_image_layout: ImageLayout,
2589    pub p_image_subresources: *const ImageSubresourceLayers,
2590}
2591impl Default for CopyMemoryToImageIndirectInfoKHR {
2592    #[inline]
2593    fn default() -> Self {
2594        Self {
2595            s_type: StructureType::from_raw(1000549003i32),
2596            p_next: core::ptr::null(),
2597            src_copy_flags: Default::default(),
2598            copy_count: Default::default(),
2599            copy_address_range: Default::default(),
2600            dst_image: Default::default(),
2601            dst_image_layout: Default::default(),
2602            p_image_subresources: core::ptr::null(),
2603        }
2604    }
2605}
2606///[`VkImageResolve`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageResolve.html)
2607/**
2608Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2609#[repr(C)]
2610#[derive(Copy, Clone, Debug)]
2611#[doc(alias = "VkImageResolve")]
2612pub struct ImageResolve {
2613    pub src_subresource: ImageSubresourceLayers,
2614    pub src_offset: Offset3D,
2615    pub dst_subresource: ImageSubresourceLayers,
2616    pub dst_offset: Offset3D,
2617    pub extent: Extent3D,
2618}
2619impl Default for ImageResolve {
2620    #[inline]
2621    fn default() -> Self {
2622        unsafe { core::mem::zeroed() }
2623    }
2624}
2625///[`VkShaderModuleCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderModuleCreateInfo.html)
2626/**
2627Provided by **VK_COMPUTE_VERSION_1_0**.*/
2628///
2629///# Extends
2630///- [`PipelineShaderStageCreateInfo`]
2631///- [`DataGraphPipelineCreateInfoARM`]
2632///
2633///# Extended By
2634///- [`ShaderModuleValidationCacheCreateInfoEXT`]
2635///- [`ValidationFeaturesEXT`]
2636#[repr(C)]
2637#[derive(Copy, Clone, Debug)]
2638#[doc(alias = "VkShaderModuleCreateInfo")]
2639pub struct ShaderModuleCreateInfo {
2640    ///Must be `VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO`.
2641    pub s_type: StructureType,
2642    ///Optional, may be null.
2643    pub p_next: *const core::ffi::c_void,
2644    pub flags: ShaderModuleCreateFlags,
2645    pub code_size: usize,
2646    pub p_code: *const u32,
2647}
2648impl Default for ShaderModuleCreateInfo {
2649    #[inline]
2650    fn default() -> Self {
2651        Self {
2652            s_type: StructureType::from_raw(16i32),
2653            p_next: core::ptr::null(),
2654            flags: Default::default(),
2655            code_size: Default::default(),
2656            p_code: core::ptr::null(),
2657        }
2658    }
2659}
2660///[`VkDescriptorSetLayoutBinding`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutBinding.html)
2661/**
2662Provided by **VK_COMPUTE_VERSION_1_0**.*/
2663#[repr(C)]
2664#[derive(Copy, Clone, Debug)]
2665#[doc(alias = "VkDescriptorSetLayoutBinding")]
2666pub struct DescriptorSetLayoutBinding {
2667    pub binding: u32,
2668    pub descriptor_type: DescriptorType,
2669    ///Length of `p_immutable_samplers`.
2670    pub descriptor_count: u32,
2671    pub stage_flags: ShaderStageFlags,
2672    ///Optional, may be null.
2673    pub p_immutable_samplers: *const Sampler,
2674}
2675impl Default for DescriptorSetLayoutBinding {
2676    #[inline]
2677    fn default() -> Self {
2678        unsafe { core::mem::zeroed() }
2679    }
2680}
2681///[`VkDescriptorSetLayoutCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutCreateInfo.html)
2682/**
2683Provided by **VK_COMPUTE_VERSION_1_0**.*/
2684///
2685///# Extended By
2686///- [`DescriptorSetLayoutBindingFlagsCreateInfo`]
2687///- [`MutableDescriptorTypeCreateInfoEXT`]
2688#[repr(C)]
2689#[derive(Copy, Clone, Debug)]
2690#[doc(alias = "VkDescriptorSetLayoutCreateInfo")]
2691pub struct DescriptorSetLayoutCreateInfo {
2692    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO`.
2693    pub s_type: StructureType,
2694    ///Optional, may be null.
2695    pub p_next: *const core::ffi::c_void,
2696    pub flags: DescriptorSetLayoutCreateFlags,
2697    ///Length of `p_bindings`.
2698    pub binding_count: u32,
2699    pub p_bindings: *const DescriptorSetLayoutBinding,
2700}
2701impl Default for DescriptorSetLayoutCreateInfo {
2702    #[inline]
2703    fn default() -> Self {
2704        Self {
2705            s_type: StructureType::from_raw(32i32),
2706            p_next: core::ptr::null(),
2707            flags: Default::default(),
2708            binding_count: Default::default(),
2709            p_bindings: core::ptr::null(),
2710        }
2711    }
2712}
2713///[`VkDescriptorPoolSize`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorPoolSize.html)
2714/**
2715Provided by **VK_COMPUTE_VERSION_1_0**.*/
2716#[repr(C)]
2717#[derive(Copy, Clone, Debug)]
2718#[doc(alias = "VkDescriptorPoolSize")]
2719pub struct DescriptorPoolSize {
2720    pub r#type: DescriptorType,
2721    pub descriptor_count: u32,
2722}
2723impl Default for DescriptorPoolSize {
2724    #[inline]
2725    fn default() -> Self {
2726        unsafe { core::mem::zeroed() }
2727    }
2728}
2729///[`VkDescriptorPoolCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorPoolCreateInfo.html)
2730/**
2731Provided by **VK_COMPUTE_VERSION_1_0**.*/
2732///
2733///# Extended By
2734///- [`DataGraphProcessingEngineCreateInfoARM`]
2735///- [`DescriptorPoolInlineUniformBlockCreateInfo`]
2736///- [`MutableDescriptorTypeCreateInfoEXT`]
2737#[repr(C)]
2738#[derive(Copy, Clone, Debug)]
2739#[doc(alias = "VkDescriptorPoolCreateInfo")]
2740pub struct DescriptorPoolCreateInfo {
2741    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO`.
2742    pub s_type: StructureType,
2743    ///Optional, may be null.
2744    pub p_next: *const core::ffi::c_void,
2745    pub flags: DescriptorPoolCreateFlags,
2746    pub max_sets: u32,
2747    ///Length of `p_pool_sizes`.
2748    pub pool_size_count: u32,
2749    pub p_pool_sizes: *const DescriptorPoolSize,
2750}
2751impl Default for DescriptorPoolCreateInfo {
2752    #[inline]
2753    fn default() -> Self {
2754        Self {
2755            s_type: StructureType::from_raw(33i32),
2756            p_next: core::ptr::null(),
2757            flags: Default::default(),
2758            max_sets: Default::default(),
2759            pool_size_count: Default::default(),
2760            p_pool_sizes: core::ptr::null(),
2761        }
2762    }
2763}
2764///[`VkDescriptorSetAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetAllocateInfo.html)
2765/**
2766Provided by **VK_COMPUTE_VERSION_1_0**.*/
2767///
2768///# Extended By
2769///- [`DescriptorSetVariableDescriptorCountAllocateInfo`]
2770#[repr(C)]
2771#[derive(Copy, Clone, Debug)]
2772#[doc(alias = "VkDescriptorSetAllocateInfo")]
2773pub struct DescriptorSetAllocateInfo {
2774    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO`.
2775    pub s_type: StructureType,
2776    ///Optional, may be null.
2777    pub p_next: *const core::ffi::c_void,
2778    ///**Thread safety:** must be externally synchronized.
2779    pub descriptor_pool: DescriptorPool,
2780    ///Length of `p_set_layouts`.
2781    pub descriptor_set_count: u32,
2782    pub p_set_layouts: *const DescriptorSetLayout,
2783}
2784impl Default for DescriptorSetAllocateInfo {
2785    #[inline]
2786    fn default() -> Self {
2787        Self {
2788            s_type: StructureType::from_raw(34i32),
2789            p_next: core::ptr::null(),
2790            descriptor_pool: Default::default(),
2791            descriptor_set_count: Default::default(),
2792            p_set_layouts: core::ptr::null(),
2793        }
2794    }
2795}
2796///[`VkSpecializationMapEntry`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSpecializationMapEntry.html)
2797/**
2798Provided by **VK_COMPUTE_VERSION_1_0**.*/
2799#[repr(C)]
2800#[derive(Copy, Clone, Debug)]
2801#[doc(alias = "VkSpecializationMapEntry")]
2802pub struct SpecializationMapEntry {
2803    pub constant_id: u32,
2804    pub offset: u32,
2805    pub size: usize,
2806}
2807impl Default for SpecializationMapEntry {
2808    #[inline]
2809    fn default() -> Self {
2810        unsafe { core::mem::zeroed() }
2811    }
2812}
2813///[`VkSpecializationInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSpecializationInfo.html)
2814/**
2815Provided by **VK_COMPUTE_VERSION_1_0**.*/
2816#[repr(C)]
2817#[derive(Copy, Clone, Debug)]
2818#[doc(alias = "VkSpecializationInfo")]
2819pub struct SpecializationInfo {
2820    ///Length of `p_map_entries`.
2821    pub map_entry_count: u32,
2822    pub p_map_entries: *const SpecializationMapEntry,
2823    ///Length of `p_data`.
2824    pub data_size: usize,
2825    pub p_data: *const core::ffi::c_void,
2826}
2827impl Default for SpecializationInfo {
2828    #[inline]
2829    fn default() -> Self {
2830        unsafe { core::mem::zeroed() }
2831    }
2832}
2833///[`VkPipelineShaderStageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineShaderStageCreateInfo.html)
2834/**
2835Provided by **VK_COMPUTE_VERSION_1_0**.*/
2836///
2837///# Extended By
2838///- [`DebugUtilsObjectNameInfoEXT`]
2839///- [`PipelineRobustnessCreateInfo`]
2840///- [`PipelineShaderStageModuleIdentifierCreateInfoEXT`]
2841///- [`PipelineShaderStageNodeCreateInfoAMDX`]
2842///- [`PipelineShaderStageRequiredSubgroupSizeCreateInfo`]
2843///- [`ShaderDescriptorSetAndBindingMappingInfoEXT`]
2844///- [`ShaderModuleCreateInfo`]
2845///- [`ShaderModuleValidationCacheCreateInfoEXT`]
2846#[repr(C)]
2847#[derive(Copy, Clone, Debug)]
2848#[doc(alias = "VkPipelineShaderStageCreateInfo")]
2849pub struct PipelineShaderStageCreateInfo {
2850    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO`.
2851    pub s_type: StructureType,
2852    ///Optional, may be null.
2853    pub p_next: *const core::ffi::c_void,
2854    pub flags: PipelineShaderStageCreateFlags,
2855    pub stage: ShaderStageFlagBits,
2856    pub module: ShaderModule,
2857    pub p_name: *const core::ffi::c_char,
2858    ///Optional, may be null.
2859    pub p_specialization_info: *const SpecializationInfo,
2860}
2861impl Default for PipelineShaderStageCreateInfo {
2862    #[inline]
2863    fn default() -> Self {
2864        Self {
2865            s_type: StructureType::from_raw(18i32),
2866            p_next: core::ptr::null(),
2867            flags: Default::default(),
2868            stage: Default::default(),
2869            module: Default::default(),
2870            p_name: core::ptr::null(),
2871            p_specialization_info: core::ptr::null(),
2872        }
2873    }
2874}
2875///[`VkComputePipelineCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkComputePipelineCreateInfo.html)
2876/**
2877Provided by **VK_COMPUTE_VERSION_1_0**.*/
2878///
2879///# Extended By
2880///- [`ComputePipelineIndirectBufferInfoNV`]
2881///- [`PipelineBinaryInfoKHR`]
2882///- [`PipelineCompilerControlCreateInfoAMD`]
2883///- [`PipelineCreateFlags2CreateInfo`]
2884///- [`PipelineCreationFeedbackCreateInfo`]
2885///- [`PipelineOfflineCreateInfo`]
2886///- [`PipelineRobustnessCreateInfo`]
2887///- [`SubpassShadingPipelineCreateInfoHUAWEI`]
2888#[repr(C)]
2889#[derive(Copy, Clone, Debug)]
2890#[doc(alias = "VkComputePipelineCreateInfo")]
2891pub struct ComputePipelineCreateInfo {
2892    ///Must be `VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO`.
2893    pub s_type: StructureType,
2894    ///Optional, may be null.
2895    pub p_next: *const core::ffi::c_void,
2896    pub flags: PipelineCreateFlags,
2897    pub stage: PipelineShaderStageCreateInfo,
2898    pub layout: PipelineLayout,
2899    pub base_pipeline_handle: Pipeline,
2900    pub base_pipeline_index: i32,
2901}
2902impl Default for ComputePipelineCreateInfo {
2903    #[inline]
2904    fn default() -> Self {
2905        Self {
2906            s_type: StructureType::from_raw(29i32),
2907            p_next: core::ptr::null(),
2908            flags: Default::default(),
2909            stage: Default::default(),
2910            layout: Default::default(),
2911            base_pipeline_handle: Default::default(),
2912            base_pipeline_index: Default::default(),
2913        }
2914    }
2915}
2916///[`VkComputePipelineIndirectBufferInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkComputePipelineIndirectBufferInfoNV.html)
2917/**
2918Provided by **VK_NV_device_generated_commands_compute**.*/
2919///
2920///# Extends
2921///- [`ComputePipelineCreateInfo`]
2922#[repr(C)]
2923#[derive(Copy, Clone, Debug)]
2924#[doc(alias = "VkComputePipelineIndirectBufferInfoNV")]
2925pub struct ComputePipelineIndirectBufferInfoNV {
2926    ///Must be `VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV`.
2927    pub s_type: StructureType,
2928    ///Optional, may be null.
2929    pub p_next: *const core::ffi::c_void,
2930    pub device_address: u64,
2931    pub size: u64,
2932    pub pipeline_device_address_capture_replay: u64,
2933}
2934impl Default for ComputePipelineIndirectBufferInfoNV {
2935    #[inline]
2936    fn default() -> Self {
2937        Self {
2938            s_type: StructureType::from_raw(1000428001i32),
2939            p_next: core::ptr::null(),
2940            device_address: Default::default(),
2941            size: Default::default(),
2942            pipeline_device_address_capture_replay: Default::default(),
2943        }
2944    }
2945}
2946///[`VkPipelineCreateFlags2CreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCreateFlags2CreateInfo.html)
2947/**
2948Provided by **VK_COMPUTE_VERSION_1_4**.*/
2949///
2950///# Extends
2951///- [`ComputePipelineCreateInfo`]
2952///- [`GraphicsPipelineCreateInfo`]
2953///- [`RayTracingPipelineCreateInfoNV`]
2954///- [`RayTracingPipelineCreateInfoKHR`]
2955#[repr(C)]
2956#[derive(Copy, Clone, Debug)]
2957#[doc(alias = "VkPipelineCreateFlags2CreateInfo")]
2958pub struct PipelineCreateFlags2CreateInfo {
2959    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO`.
2960    pub s_type: StructureType,
2961    ///Optional, may be null.
2962    pub p_next: *const core::ffi::c_void,
2963    pub flags: PipelineCreateFlags2,
2964}
2965impl Default for PipelineCreateFlags2CreateInfo {
2966    #[inline]
2967    fn default() -> Self {
2968        Self {
2969            s_type: StructureType::from_raw(1000470005i32),
2970            p_next: core::ptr::null(),
2971            flags: Default::default(),
2972        }
2973    }
2974}
2975///[`VkVertexInputBindingDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputBindingDescription.html)
2976/**
2977Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2978#[repr(C)]
2979#[derive(Copy, Clone, Debug)]
2980#[doc(alias = "VkVertexInputBindingDescription")]
2981pub struct VertexInputBindingDescription {
2982    pub binding: u32,
2983    pub stride: u32,
2984    pub input_rate: VertexInputRate,
2985}
2986impl Default for VertexInputBindingDescription {
2987    #[inline]
2988    fn default() -> Self {
2989        unsafe { core::mem::zeroed() }
2990    }
2991}
2992///[`VkVertexInputAttributeDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputAttributeDescription.html)
2993/**
2994Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2995#[repr(C)]
2996#[derive(Copy, Clone, Debug)]
2997#[doc(alias = "VkVertexInputAttributeDescription")]
2998pub struct VertexInputAttributeDescription {
2999    pub location: u32,
3000    pub binding: u32,
3001    pub format: Format,
3002    pub offset: u32,
3003}
3004impl Default for VertexInputAttributeDescription {
3005    #[inline]
3006    fn default() -> Self {
3007        unsafe { core::mem::zeroed() }
3008    }
3009}
3010///[`VkPipelineVertexInputStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineVertexInputStateCreateInfo.html)
3011/**
3012Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3013///
3014///# Extended By
3015///- [`PipelineVertexInputDivisorStateCreateInfo`]
3016#[repr(C)]
3017#[derive(Copy, Clone, Debug)]
3018#[doc(alias = "VkPipelineVertexInputStateCreateInfo")]
3019pub struct PipelineVertexInputStateCreateInfo {
3020    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO`.
3021    pub s_type: StructureType,
3022    ///Optional, may be null.
3023    pub p_next: *const core::ffi::c_void,
3024    pub flags: PipelineVertexInputStateCreateFlags,
3025    ///Length of `p_vertex_binding_descriptions`.
3026    pub vertex_binding_description_count: u32,
3027    pub p_vertex_binding_descriptions: *const VertexInputBindingDescription,
3028    ///Length of `p_vertex_attribute_descriptions`.
3029    pub vertex_attribute_description_count: u32,
3030    pub p_vertex_attribute_descriptions: *const VertexInputAttributeDescription,
3031}
3032impl Default for PipelineVertexInputStateCreateInfo {
3033    #[inline]
3034    fn default() -> Self {
3035        Self {
3036            s_type: StructureType::from_raw(19i32),
3037            p_next: core::ptr::null(),
3038            flags: Default::default(),
3039            vertex_binding_description_count: Default::default(),
3040            p_vertex_binding_descriptions: core::ptr::null(),
3041            vertex_attribute_description_count: Default::default(),
3042            p_vertex_attribute_descriptions: core::ptr::null(),
3043        }
3044    }
3045}
3046///[`VkPipelineInputAssemblyStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineInputAssemblyStateCreateInfo.html)
3047/**
3048Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3049#[repr(C)]
3050#[derive(Copy, Clone, Debug)]
3051#[doc(alias = "VkPipelineInputAssemblyStateCreateInfo")]
3052pub struct PipelineInputAssemblyStateCreateInfo {
3053    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO`.
3054    pub s_type: StructureType,
3055    ///Optional, may be null.
3056    pub p_next: *const core::ffi::c_void,
3057    pub flags: PipelineInputAssemblyStateCreateFlags,
3058    pub topology: PrimitiveTopology,
3059    pub primitive_restart_enable: u32,
3060}
3061impl Default for PipelineInputAssemblyStateCreateInfo {
3062    #[inline]
3063    fn default() -> Self {
3064        Self {
3065            s_type: StructureType::from_raw(20i32),
3066            p_next: core::ptr::null(),
3067            flags: Default::default(),
3068            topology: Default::default(),
3069            primitive_restart_enable: Default::default(),
3070        }
3071    }
3072}
3073///[`VkPipelineTessellationStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineTessellationStateCreateInfo.html)
3074/**
3075Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3076///
3077///# Extended By
3078///- [`PipelineTessellationDomainOriginStateCreateInfo`]
3079#[repr(C)]
3080#[derive(Copy, Clone, Debug)]
3081#[doc(alias = "VkPipelineTessellationStateCreateInfo")]
3082pub struct PipelineTessellationStateCreateInfo {
3083    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO`.
3084    pub s_type: StructureType,
3085    ///Optional, may be null.
3086    pub p_next: *const core::ffi::c_void,
3087    pub flags: PipelineTessellationStateCreateFlags,
3088    pub patch_control_points: u32,
3089}
3090impl Default for PipelineTessellationStateCreateInfo {
3091    #[inline]
3092    fn default() -> Self {
3093        Self {
3094            s_type: StructureType::from_raw(21i32),
3095            p_next: core::ptr::null(),
3096            flags: Default::default(),
3097            patch_control_points: Default::default(),
3098        }
3099    }
3100}
3101///[`VkPipelineViewportStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportStateCreateInfo.html)
3102/**
3103Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3104///
3105///# Extended By
3106///- [`PipelineViewportCoarseSampleOrderStateCreateInfoNV`]
3107///- [`PipelineViewportDepthClampControlCreateInfoEXT`]
3108///- [`PipelineViewportDepthClipControlCreateInfoEXT`]
3109///- [`PipelineViewportExclusiveScissorStateCreateInfoNV`]
3110///- [`PipelineViewportShadingRateImageStateCreateInfoNV`]
3111///- [`PipelineViewportSwizzleStateCreateInfoNV`]
3112///- [`PipelineViewportWScalingStateCreateInfoNV`]
3113#[repr(C)]
3114#[derive(Copy, Clone, Debug)]
3115#[doc(alias = "VkPipelineViewportStateCreateInfo")]
3116pub struct PipelineViewportStateCreateInfo {
3117    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO`.
3118    pub s_type: StructureType,
3119    ///Optional, may be null.
3120    pub p_next: *const core::ffi::c_void,
3121    pub flags: PipelineViewportStateCreateFlags,
3122    ///Length of `p_viewports`.
3123    pub viewport_count: u32,
3124    ///Optional, may be null.
3125    pub p_viewports: *const Viewport,
3126    ///Length of `p_scissors`.
3127    pub scissor_count: u32,
3128    ///Optional, may be null.
3129    pub p_scissors: *const Rect2D,
3130}
3131impl Default for PipelineViewportStateCreateInfo {
3132    #[inline]
3133    fn default() -> Self {
3134        Self {
3135            s_type: StructureType::from_raw(22i32),
3136            p_next: core::ptr::null(),
3137            flags: Default::default(),
3138            viewport_count: Default::default(),
3139            p_viewports: core::ptr::null(),
3140            scissor_count: Default::default(),
3141            p_scissors: core::ptr::null(),
3142        }
3143    }
3144}
3145///[`VkPipelineRasterizationStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationStateCreateInfo.html)
3146/**
3147Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3148///
3149///# Extended By
3150///- [`DepthBiasRepresentationInfoEXT`]
3151///- [`PipelineRasterizationConservativeStateCreateInfoEXT`]
3152///- [`PipelineRasterizationDepthClipStateCreateInfoEXT`]
3153///- [`PipelineRasterizationLineStateCreateInfo`]
3154///- [`PipelineRasterizationProvokingVertexStateCreateInfoEXT`]
3155///- [`PipelineRasterizationStateRasterizationOrderAMD`]
3156///- [`PipelineRasterizationStateStreamCreateInfoEXT`]
3157#[repr(C)]
3158#[derive(Copy, Clone, Debug)]
3159#[doc(alias = "VkPipelineRasterizationStateCreateInfo")]
3160pub struct PipelineRasterizationStateCreateInfo {
3161    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO`.
3162    pub s_type: StructureType,
3163    ///Optional, may be null.
3164    pub p_next: *const core::ffi::c_void,
3165    pub flags: PipelineRasterizationStateCreateFlags,
3166    pub depth_clamp_enable: u32,
3167    pub rasterizer_discard_enable: u32,
3168    pub polygon_mode: PolygonMode,
3169    pub cull_mode: CullModeFlags,
3170    pub front_face: FrontFace,
3171    pub depth_bias_enable: u32,
3172    pub depth_bias_constant_factor: f32,
3173    pub depth_bias_clamp: f32,
3174    pub depth_bias_slope_factor: f32,
3175    pub line_width: f32,
3176}
3177impl Default for PipelineRasterizationStateCreateInfo {
3178    #[inline]
3179    fn default() -> Self {
3180        Self {
3181            s_type: StructureType::from_raw(23i32),
3182            p_next: core::ptr::null(),
3183            flags: Default::default(),
3184            depth_clamp_enable: Default::default(),
3185            rasterizer_discard_enable: Default::default(),
3186            polygon_mode: Default::default(),
3187            cull_mode: Default::default(),
3188            front_face: Default::default(),
3189            depth_bias_enable: Default::default(),
3190            depth_bias_constant_factor: Default::default(),
3191            depth_bias_clamp: Default::default(),
3192            depth_bias_slope_factor: Default::default(),
3193            line_width: Default::default(),
3194        }
3195    }
3196}
3197///[`VkPipelineMultisampleStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineMultisampleStateCreateInfo.html)
3198/**
3199Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3200///
3201///# Extended By
3202///- [`PipelineCoverageModulationStateCreateInfoNV`]
3203///- [`PipelineCoverageReductionStateCreateInfoNV`]
3204///- [`PipelineCoverageToColorStateCreateInfoNV`]
3205///- [`PipelineSampleLocationsStateCreateInfoEXT`]
3206#[repr(C)]
3207#[derive(Copy, Clone, Debug)]
3208#[doc(alias = "VkPipelineMultisampleStateCreateInfo")]
3209pub struct PipelineMultisampleStateCreateInfo {
3210    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO`.
3211    pub s_type: StructureType,
3212    ///Optional, may be null.
3213    pub p_next: *const core::ffi::c_void,
3214    pub flags: PipelineMultisampleStateCreateFlags,
3215    pub rasterization_samples: SampleCountFlagBits,
3216    pub sample_shading_enable: u32,
3217    pub min_sample_shading: f32,
3218    ///Optional, may be null.
3219    pub p_sample_mask: *const u32,
3220    pub alpha_to_coverage_enable: u32,
3221    pub alpha_to_one_enable: u32,
3222}
3223impl Default for PipelineMultisampleStateCreateInfo {
3224    #[inline]
3225    fn default() -> Self {
3226        Self {
3227            s_type: StructureType::from_raw(24i32),
3228            p_next: core::ptr::null(),
3229            flags: Default::default(),
3230            rasterization_samples: Default::default(),
3231            sample_shading_enable: Default::default(),
3232            min_sample_shading: Default::default(),
3233            p_sample_mask: core::ptr::null(),
3234            alpha_to_coverage_enable: Default::default(),
3235            alpha_to_one_enable: Default::default(),
3236        }
3237    }
3238}
3239///[`VkPipelineColorBlendAttachmentState`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineColorBlendAttachmentState.html)
3240/**
3241Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3242#[repr(C)]
3243#[derive(Copy, Clone, Debug)]
3244#[doc(alias = "VkPipelineColorBlendAttachmentState")]
3245pub struct PipelineColorBlendAttachmentState {
3246    pub blend_enable: u32,
3247    pub src_color_blend_factor: BlendFactor,
3248    pub dst_color_blend_factor: BlendFactor,
3249    pub color_blend_op: BlendOp,
3250    pub src_alpha_blend_factor: BlendFactor,
3251    pub dst_alpha_blend_factor: BlendFactor,
3252    pub alpha_blend_op: BlendOp,
3253    pub color_write_mask: ColorComponentFlags,
3254}
3255impl Default for PipelineColorBlendAttachmentState {
3256    #[inline]
3257    fn default() -> Self {
3258        unsafe { core::mem::zeroed() }
3259    }
3260}
3261///[`VkPipelineColorBlendStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineColorBlendStateCreateInfo.html)
3262/**
3263Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3264///
3265///# Extended By
3266///- [`PipelineColorBlendAdvancedStateCreateInfoEXT`]
3267///- [`PipelineColorWriteCreateInfoEXT`]
3268#[repr(C)]
3269#[derive(Copy, Clone, Debug)]
3270#[doc(alias = "VkPipelineColorBlendStateCreateInfo")]
3271pub struct PipelineColorBlendStateCreateInfo {
3272    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO`.
3273    pub s_type: StructureType,
3274    ///Optional, may be null.
3275    pub p_next: *const core::ffi::c_void,
3276    pub flags: PipelineColorBlendStateCreateFlags,
3277    pub logic_op_enable: u32,
3278    pub logic_op: LogicOp,
3279    ///Length of `p_attachments`.
3280    pub attachment_count: u32,
3281    ///Optional, may be null.
3282    pub p_attachments: *const PipelineColorBlendAttachmentState,
3283    pub blend_constants: [f32; 4usize],
3284}
3285impl Default for PipelineColorBlendStateCreateInfo {
3286    #[inline]
3287    fn default() -> Self {
3288        Self {
3289            s_type: StructureType::from_raw(26i32),
3290            p_next: core::ptr::null(),
3291            flags: Default::default(),
3292            logic_op_enable: Default::default(),
3293            logic_op: Default::default(),
3294            attachment_count: Default::default(),
3295            p_attachments: core::ptr::null(),
3296            blend_constants: unsafe { core::mem::zeroed() },
3297        }
3298    }
3299}
3300///[`VkPipelineDynamicStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineDynamicStateCreateInfo.html)
3301/**
3302Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3303#[repr(C)]
3304#[derive(Copy, Clone, Debug)]
3305#[doc(alias = "VkPipelineDynamicStateCreateInfo")]
3306pub struct PipelineDynamicStateCreateInfo {
3307    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO`.
3308    pub s_type: StructureType,
3309    ///Optional, may be null.
3310    pub p_next: *const core::ffi::c_void,
3311    pub flags: PipelineDynamicStateCreateFlags,
3312    ///Length of `p_dynamic_states`.
3313    pub dynamic_state_count: u32,
3314    pub p_dynamic_states: *const DynamicState,
3315}
3316impl Default for PipelineDynamicStateCreateInfo {
3317    #[inline]
3318    fn default() -> Self {
3319        Self {
3320            s_type: StructureType::from_raw(27i32),
3321            p_next: core::ptr::null(),
3322            flags: Default::default(),
3323            dynamic_state_count: Default::default(),
3324            p_dynamic_states: core::ptr::null(),
3325        }
3326    }
3327}
3328///[`VkStencilOpState`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStencilOpState.html)
3329/**
3330Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3331#[repr(C)]
3332#[derive(Copy, Clone, Debug)]
3333#[doc(alias = "VkStencilOpState")]
3334pub struct StencilOpState {
3335    pub fail_op: StencilOp,
3336    pub pass_op: StencilOp,
3337    pub depth_fail_op: StencilOp,
3338    pub compare_op: CompareOp,
3339    pub compare_mask: u32,
3340    pub write_mask: u32,
3341    pub reference: u32,
3342}
3343impl Default for StencilOpState {
3344    #[inline]
3345    fn default() -> Self {
3346        unsafe { core::mem::zeroed() }
3347    }
3348}
3349///[`VkPipelineDepthStencilStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineDepthStencilStateCreateInfo.html)
3350/**
3351Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3352#[repr(C)]
3353#[derive(Copy, Clone, Debug)]
3354#[doc(alias = "VkPipelineDepthStencilStateCreateInfo")]
3355pub struct PipelineDepthStencilStateCreateInfo {
3356    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO`.
3357    pub s_type: StructureType,
3358    ///Optional, may be null.
3359    pub p_next: *const core::ffi::c_void,
3360    pub flags: PipelineDepthStencilStateCreateFlags,
3361    pub depth_test_enable: u32,
3362    pub depth_write_enable: u32,
3363    pub depth_compare_op: CompareOp,
3364    pub depth_bounds_test_enable: u32,
3365    pub stencil_test_enable: u32,
3366    pub front: StencilOpState,
3367    pub back: StencilOpState,
3368    pub min_depth_bounds: f32,
3369    pub max_depth_bounds: f32,
3370}
3371impl Default for PipelineDepthStencilStateCreateInfo {
3372    #[inline]
3373    fn default() -> Self {
3374        Self {
3375            s_type: StructureType::from_raw(25i32),
3376            p_next: core::ptr::null(),
3377            flags: Default::default(),
3378            depth_test_enable: Default::default(),
3379            depth_write_enable: Default::default(),
3380            depth_compare_op: Default::default(),
3381            depth_bounds_test_enable: Default::default(),
3382            stencil_test_enable: Default::default(),
3383            front: Default::default(),
3384            back: Default::default(),
3385            min_depth_bounds: Default::default(),
3386            max_depth_bounds: Default::default(),
3387        }
3388    }
3389}
3390///[`VkGraphicsPipelineCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineCreateInfo.html)
3391/**
3392Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3393///
3394///# Extended By
3395///- [`AttachmentSampleCountInfoAMD`]
3396///- [`CustomResolveCreateInfoEXT`]
3397///- [`ExternalFormatANDROID`]
3398///- [`ExternalFormatOHOS`]
3399///- [`GraphicsPipelineLibraryCreateInfoEXT`]
3400///- [`GraphicsPipelineShaderGroupsCreateInfoNV`]
3401///- [`MultiviewPerViewAttributesInfoNVX`]
3402///- [`PipelineBinaryInfoKHR`]
3403///- [`PipelineCompilerControlCreateInfoAMD`]
3404///- [`PipelineCreateFlags2CreateInfo`]
3405///- [`PipelineCreationFeedbackCreateInfo`]
3406///- [`PipelineDiscardRectangleStateCreateInfoEXT`]
3407///- [`PipelineFragmentDensityMapLayeredCreateInfoVALVE`]
3408///- [`PipelineFragmentShadingRateEnumStateCreateInfoNV`]
3409///- [`PipelineFragmentShadingRateStateCreateInfoKHR`]
3410///- [`PipelineLibraryCreateInfoKHR`]
3411///- [`PipelineOfflineCreateInfo`]
3412///- [`PipelineRenderingCreateInfo`]
3413///- [`PipelineRepresentativeFragmentTestStateCreateInfoNV`]
3414///- [`PipelineRobustnessCreateInfo`]
3415///- [`RenderingAttachmentLocationInfo`]
3416///- [`RenderingInputAttachmentIndexInfo`]
3417#[repr(C)]
3418#[derive(Copy, Clone, Debug)]
3419#[doc(alias = "VkGraphicsPipelineCreateInfo")]
3420pub struct GraphicsPipelineCreateInfo {
3421    ///Must be `VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO`.
3422    pub s_type: StructureType,
3423    ///Optional, may be null.
3424    pub p_next: *const core::ffi::c_void,
3425    pub flags: PipelineCreateFlags,
3426    ///Length of `p_stages`.
3427    pub stage_count: u32,
3428    ///Optional, may be null.
3429    pub p_stages: *const PipelineShaderStageCreateInfo,
3430    ///Optional, may be null.
3431    pub p_vertex_input_state: *const PipelineVertexInputStateCreateInfo,
3432    ///Optional, may be null.
3433    pub p_input_assembly_state: *const PipelineInputAssemblyStateCreateInfo,
3434    ///Optional, may be null.
3435    pub p_tessellation_state: *const PipelineTessellationStateCreateInfo,
3436    ///Optional, may be null.
3437    pub p_viewport_state: *const PipelineViewportStateCreateInfo,
3438    ///Optional, may be null.
3439    pub p_rasterization_state: *const PipelineRasterizationStateCreateInfo,
3440    ///Optional, may be null.
3441    pub p_multisample_state: *const PipelineMultisampleStateCreateInfo,
3442    ///Optional, may be null.
3443    pub p_depth_stencil_state: *const PipelineDepthStencilStateCreateInfo,
3444    ///Optional, may be null.
3445    pub p_color_blend_state: *const PipelineColorBlendStateCreateInfo,
3446    ///Optional, may be null.
3447    pub p_dynamic_state: *const PipelineDynamicStateCreateInfo,
3448    pub layout: PipelineLayout,
3449    pub render_pass: RenderPass,
3450    pub subpass: u32,
3451    pub base_pipeline_handle: Pipeline,
3452    pub base_pipeline_index: i32,
3453}
3454impl Default for GraphicsPipelineCreateInfo {
3455    #[inline]
3456    fn default() -> Self {
3457        Self {
3458            s_type: StructureType::from_raw(28i32),
3459            p_next: core::ptr::null(),
3460            flags: Default::default(),
3461            stage_count: Default::default(),
3462            p_stages: core::ptr::null(),
3463            p_vertex_input_state: core::ptr::null(),
3464            p_input_assembly_state: core::ptr::null(),
3465            p_tessellation_state: core::ptr::null(),
3466            p_viewport_state: core::ptr::null(),
3467            p_rasterization_state: core::ptr::null(),
3468            p_multisample_state: core::ptr::null(),
3469            p_depth_stencil_state: core::ptr::null(),
3470            p_color_blend_state: core::ptr::null(),
3471            p_dynamic_state: core::ptr::null(),
3472            layout: Default::default(),
3473            render_pass: Default::default(),
3474            subpass: Default::default(),
3475            base_pipeline_handle: Default::default(),
3476            base_pipeline_index: Default::default(),
3477        }
3478    }
3479}
3480///[`VkPipelineCacheCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheCreateInfo.html)
3481/**
3482Provided by **VK_COMPUTE_VERSION_1_0**.*/
3483#[repr(C)]
3484#[derive(Copy, Clone, Debug)]
3485#[doc(alias = "VkPipelineCacheCreateInfo")]
3486pub struct PipelineCacheCreateInfo {
3487    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO`.
3488    pub s_type: StructureType,
3489    ///Optional, may be null.
3490    pub p_next: *const core::ffi::c_void,
3491    pub flags: PipelineCacheCreateFlags,
3492    ///Length of `p_initial_data`.
3493    pub initial_data_size: usize,
3494    pub p_initial_data: *const core::ffi::c_void,
3495}
3496impl Default for PipelineCacheCreateInfo {
3497    #[inline]
3498    fn default() -> Self {
3499        Self {
3500            s_type: StructureType::from_raw(17i32),
3501            p_next: core::ptr::null(),
3502            flags: Default::default(),
3503            initial_data_size: Default::default(),
3504            p_initial_data: core::ptr::null(),
3505        }
3506    }
3507}
3508///[`VkPipelineCacheHeaderVersionOne`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheHeaderVersionOne.html)
3509/**
3510Provided by **VK_COMPUTE_VERSION_1_0**.*/
3511#[repr(C)]
3512#[derive(Copy, Clone, Debug)]
3513#[doc(alias = "VkPipelineCacheHeaderVersionOne")]
3514pub struct PipelineCacheHeaderVersionOne {
3515    pub header_size: u32,
3516    pub header_version: PipelineCacheHeaderVersion,
3517    pub vendor_id: u32,
3518    pub device_id: u32,
3519    pub pipeline_cache_uuid: [u8; UUID_SIZE as usize],
3520}
3521impl Default for PipelineCacheHeaderVersionOne {
3522    #[inline]
3523    fn default() -> Self {
3524        unsafe { core::mem::zeroed() }
3525    }
3526}
3527///[`VkPipelineCacheStageValidationIndexEntry`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheStageValidationIndexEntry.html)
3528/**
3529Provided by **VKSC_VERSION_1_0**.*/
3530#[repr(C)]
3531#[derive(Copy, Clone, Debug)]
3532#[doc(alias = "VkPipelineCacheStageValidationIndexEntry")]
3533pub struct PipelineCacheStageValidationIndexEntry {
3534    pub code_size: u64,
3535    pub code_offset: u64,
3536}
3537impl Default for PipelineCacheStageValidationIndexEntry {
3538    #[inline]
3539    fn default() -> Self {
3540        unsafe { core::mem::zeroed() }
3541    }
3542}
3543///[`VkPipelineCacheSafetyCriticalIndexEntry`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheSafetyCriticalIndexEntry.html)
3544/**
3545Provided by **VKSC_VERSION_1_0**.*/
3546#[repr(C)]
3547#[derive(Copy, Clone, Debug)]
3548#[doc(alias = "VkPipelineCacheSafetyCriticalIndexEntry")]
3549pub struct PipelineCacheSafetyCriticalIndexEntry {
3550    pub pipeline_identifier: [u8; UUID_SIZE as usize],
3551    pub pipeline_memory_size: u64,
3552    pub json_size: u64,
3553    pub json_offset: u64,
3554    pub stage_index_count: u32,
3555    pub stage_index_stride: u32,
3556    pub stage_index_offset: u64,
3557}
3558impl Default for PipelineCacheSafetyCriticalIndexEntry {
3559    #[inline]
3560    fn default() -> Self {
3561        unsafe { core::mem::zeroed() }
3562    }
3563}
3564///[`VkPipelineCacheHeaderVersionSafetyCriticalOne`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheHeaderVersionSafetyCriticalOne.html)
3565/**
3566Provided by **VKSC_VERSION_1_0**.*/
3567#[repr(C)]
3568#[derive(Copy, Clone, Debug)]
3569#[doc(alias = "VkPipelineCacheHeaderVersionSafetyCriticalOne")]
3570pub struct PipelineCacheHeaderVersionSafetyCriticalOne {
3571    pub header_version_one: PipelineCacheHeaderVersionOne,
3572    pub validation_version: PipelineCacheValidationVersion,
3573    pub implementation_data: u32,
3574    pub pipeline_index_count: u32,
3575    pub pipeline_index_stride: u32,
3576    pub pipeline_index_offset: u64,
3577}
3578impl Default for PipelineCacheHeaderVersionSafetyCriticalOne {
3579    #[inline]
3580    fn default() -> Self {
3581        unsafe { core::mem::zeroed() }
3582    }
3583}
3584///[`VkPipelineCacheHeaderVersionDataGraphQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheHeaderVersionDataGraphQCOM.html)
3585/**
3586Provided by **VK_QCOM_data_graph_model**.*/
3587#[repr(C)]
3588#[derive(Copy, Clone, Debug)]
3589#[doc(alias = "VkPipelineCacheHeaderVersionDataGraphQCOM")]
3590pub struct PipelineCacheHeaderVersionDataGraphQCOM {
3591    pub header_size: u32,
3592    pub header_version: PipelineCacheHeaderVersion,
3593    pub cache_type: DataGraphModelCacheTypeQCOM,
3594    pub cache_version: u32,
3595    pub toolchain_version: [u32; DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM
3596        as usize],
3597}
3598impl Default for PipelineCacheHeaderVersionDataGraphQCOM {
3599    #[inline]
3600    fn default() -> Self {
3601        unsafe { core::mem::zeroed() }
3602    }
3603}
3604///[`VkPushConstantRange`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushConstantRange.html)
3605/**
3606Provided by **VK_COMPUTE_VERSION_1_0**.*/
3607#[repr(C)]
3608#[derive(Copy, Clone, Debug)]
3609#[doc(alias = "VkPushConstantRange")]
3610pub struct PushConstantRange {
3611    pub stage_flags: ShaderStageFlags,
3612    pub offset: u32,
3613    pub size: u32,
3614}
3615impl Default for PushConstantRange {
3616    #[inline]
3617    fn default() -> Self {
3618        unsafe { core::mem::zeroed() }
3619    }
3620}
3621///[`VkPipelineBinaryCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryCreateInfoKHR.html)
3622/**
3623Provided by **VK_KHR_pipeline_binary**.*/
3624#[repr(C)]
3625#[derive(Copy, Clone, Debug)]
3626#[doc(alias = "VkPipelineBinaryCreateInfoKHR")]
3627pub struct PipelineBinaryCreateInfoKHR {
3628    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR`.
3629    pub s_type: StructureType,
3630    ///Optional, may be null.
3631    pub p_next: *const core::ffi::c_void,
3632    ///Optional, may be null.
3633    pub p_keys_and_data_info: *const PipelineBinaryKeysAndDataKHR,
3634    pub pipeline: Pipeline,
3635    ///Optional, may be null.
3636    pub p_pipeline_create_info: *const PipelineCreateInfoKHR,
3637}
3638impl Default for PipelineBinaryCreateInfoKHR {
3639    #[inline]
3640    fn default() -> Self {
3641        Self {
3642            s_type: StructureType::from_raw(1000483001i32),
3643            p_next: core::ptr::null(),
3644            p_keys_and_data_info: core::ptr::null(),
3645            pipeline: Default::default(),
3646            p_pipeline_create_info: core::ptr::null(),
3647        }
3648    }
3649}
3650///[`VkPipelineBinaryHandlesInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryHandlesInfoKHR.html)
3651/**
3652Provided by **VK_KHR_pipeline_binary**.*/
3653#[repr(C)]
3654#[derive(Copy, Clone, Debug)]
3655#[doc(alias = "VkPipelineBinaryHandlesInfoKHR")]
3656pub struct PipelineBinaryHandlesInfoKHR {
3657    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR`.
3658    pub s_type: StructureType,
3659    ///Optional, may be null.
3660    pub p_next: *const core::ffi::c_void,
3661    ///Length of `p_pipeline_binaries`.
3662    pub pipeline_binary_count: u32,
3663    ///Optional, may be null.
3664    pub p_pipeline_binaries: *mut PipelineBinaryKHR,
3665}
3666impl Default for PipelineBinaryHandlesInfoKHR {
3667    #[inline]
3668    fn default() -> Self {
3669        Self {
3670            s_type: StructureType::from_raw(1000483009i32),
3671            p_next: core::ptr::null(),
3672            pipeline_binary_count: Default::default(),
3673            p_pipeline_binaries: core::ptr::null_mut(),
3674        }
3675    }
3676}
3677///[`VkPipelineBinaryDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryDataKHR.html)
3678/**
3679Provided by **VK_KHR_pipeline_binary**.*/
3680#[repr(C)]
3681#[derive(Copy, Clone, Debug)]
3682#[doc(alias = "VkPipelineBinaryDataKHR")]
3683pub struct PipelineBinaryDataKHR {
3684    ///Length of `p_data`.
3685    pub data_size: usize,
3686    pub p_data: *mut core::ffi::c_void,
3687}
3688impl Default for PipelineBinaryDataKHR {
3689    #[inline]
3690    fn default() -> Self {
3691        unsafe { core::mem::zeroed() }
3692    }
3693}
3694///[`VkPipelineBinaryKeysAndDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryKeysAndDataKHR.html)
3695/**
3696Provided by **VK_KHR_pipeline_binary**.*/
3697#[repr(C)]
3698#[derive(Copy, Clone, Debug)]
3699#[doc(alias = "VkPipelineBinaryKeysAndDataKHR")]
3700pub struct PipelineBinaryKeysAndDataKHR {
3701    ///Length of `p_pipeline_binary_data`.
3702    pub binary_count: u32,
3703    pub p_pipeline_binary_keys: *const PipelineBinaryKeyKHR,
3704    pub p_pipeline_binary_data: *const PipelineBinaryDataKHR,
3705}
3706impl Default for PipelineBinaryKeysAndDataKHR {
3707    #[inline]
3708    fn default() -> Self {
3709        unsafe { core::mem::zeroed() }
3710    }
3711}
3712///[`VkPipelineBinaryKeyKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryKeyKHR.html)
3713/**
3714Provided by **VK_KHR_pipeline_binary**.*/
3715#[repr(C)]
3716#[derive(Copy, Clone, Debug)]
3717#[doc(alias = "VkPipelineBinaryKeyKHR")]
3718pub struct PipelineBinaryKeyKHR {
3719    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR`.
3720    pub s_type: StructureType,
3721    ///Optional, may be null.
3722    pub p_next: *mut core::ffi::c_void,
3723    pub key_size: u32,
3724    pub key: [u8; MAX_PIPELINE_BINARY_KEY_SIZE_KHR as usize],
3725}
3726impl Default for PipelineBinaryKeyKHR {
3727    #[inline]
3728    fn default() -> Self {
3729        Self {
3730            s_type: StructureType::from_raw(1000483003i32),
3731            p_next: core::ptr::null_mut(),
3732            key_size: Default::default(),
3733            key: unsafe { core::mem::zeroed() },
3734        }
3735    }
3736}
3737///[`VkPipelineBinaryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryInfoKHR.html)
3738/**
3739Provided by **VK_KHR_pipeline_binary**.*/
3740///
3741///# Extends
3742///- [`GraphicsPipelineCreateInfo`]
3743///- [`ComputePipelineCreateInfo`]
3744///- [`RayTracingPipelineCreateInfoKHR`]
3745#[repr(C)]
3746#[derive(Copy, Clone, Debug)]
3747#[doc(alias = "VkPipelineBinaryInfoKHR")]
3748pub struct PipelineBinaryInfoKHR {
3749    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR`.
3750    pub s_type: StructureType,
3751    ///Optional, may be null.
3752    pub p_next: *const core::ffi::c_void,
3753    ///Length of `p_pipeline_binaries`.
3754    pub binary_count: u32,
3755    pub p_pipeline_binaries: *const PipelineBinaryKHR,
3756}
3757impl Default for PipelineBinaryInfoKHR {
3758    #[inline]
3759    fn default() -> Self {
3760        Self {
3761            s_type: StructureType::from_raw(1000483002i32),
3762            p_next: core::ptr::null(),
3763            binary_count: Default::default(),
3764            p_pipeline_binaries: core::ptr::null(),
3765        }
3766    }
3767}
3768///[`VkReleaseCapturedPipelineDataInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkReleaseCapturedPipelineDataInfoKHR.html)
3769/**
3770Provided by **VK_KHR_pipeline_binary**.*/
3771#[repr(C)]
3772#[derive(Copy, Clone, Debug)]
3773#[doc(alias = "VkReleaseCapturedPipelineDataInfoKHR")]
3774pub struct ReleaseCapturedPipelineDataInfoKHR {
3775    ///Must be `VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR`.
3776    pub s_type: StructureType,
3777    ///Optional, may be null.
3778    pub p_next: *mut core::ffi::c_void,
3779    ///**Thread safety:** must be externally synchronized.
3780    pub pipeline: Pipeline,
3781}
3782impl Default for ReleaseCapturedPipelineDataInfoKHR {
3783    #[inline]
3784    fn default() -> Self {
3785        Self {
3786            s_type: StructureType::from_raw(1000483005i32),
3787            p_next: core::ptr::null_mut(),
3788            pipeline: Default::default(),
3789        }
3790    }
3791}
3792///[`VkPipelineBinaryDataInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryDataInfoKHR.html)
3793/**
3794Provided by **VK_KHR_pipeline_binary**.*/
3795#[repr(C)]
3796#[derive(Copy, Clone, Debug)]
3797#[doc(alias = "VkPipelineBinaryDataInfoKHR")]
3798pub struct PipelineBinaryDataInfoKHR {
3799    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR`.
3800    pub s_type: StructureType,
3801    ///Optional, may be null.
3802    pub p_next: *mut core::ffi::c_void,
3803    pub pipeline_binary: PipelineBinaryKHR,
3804}
3805impl Default for PipelineBinaryDataInfoKHR {
3806    #[inline]
3807    fn default() -> Self {
3808        Self {
3809            s_type: StructureType::from_raw(1000483006i32),
3810            p_next: core::ptr::null_mut(),
3811            pipeline_binary: Default::default(),
3812        }
3813    }
3814}
3815///[`VkPipelineCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCreateInfoKHR.html)
3816/**
3817Provided by **VK_KHR_pipeline_binary**.*/
3818#[repr(C)]
3819#[derive(Copy, Clone, Debug)]
3820#[doc(alias = "VkPipelineCreateInfoKHR")]
3821pub struct PipelineCreateInfoKHR {
3822    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR`.
3823    pub s_type: StructureType,
3824    ///Optional, may be null.
3825    pub p_next: *mut core::ffi::c_void,
3826}
3827impl Default for PipelineCreateInfoKHR {
3828    #[inline]
3829    fn default() -> Self {
3830        Self {
3831            s_type: StructureType::from_raw(1000483007i32),
3832            p_next: core::ptr::null_mut(),
3833        }
3834    }
3835}
3836///[`VkPipelineLayoutCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineLayoutCreateInfo.html)
3837/**
3838Provided by **VK_COMPUTE_VERSION_1_0**.*/
3839///
3840///# Extends
3841///- [`BindDescriptorSetsInfo`]
3842///- [`PushConstantsInfo`]
3843///- [`PushDescriptorSetInfo`]
3844///- [`PushDescriptorSetWithTemplateInfo`]
3845///- [`SetDescriptorBufferOffsetsInfoEXT`]
3846///- [`BindDescriptorBufferEmbeddedSamplersInfoEXT`]
3847///- [`IndirectCommandsLayoutCreateInfoEXT`]
3848#[repr(C)]
3849#[derive(Copy, Clone, Debug)]
3850#[doc(alias = "VkPipelineLayoutCreateInfo")]
3851pub struct PipelineLayoutCreateInfo {
3852    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO`.
3853    pub s_type: StructureType,
3854    ///Optional, may be null.
3855    pub p_next: *const core::ffi::c_void,
3856    pub flags: PipelineLayoutCreateFlags,
3857    ///Length of `p_set_layouts`.
3858    pub set_layout_count: u32,
3859    ///Optional, may be null.
3860    pub p_set_layouts: *const DescriptorSetLayout,
3861    ///Length of `p_push_constant_ranges`.
3862    pub push_constant_range_count: u32,
3863    pub p_push_constant_ranges: *const PushConstantRange,
3864}
3865impl Default for PipelineLayoutCreateInfo {
3866    #[inline]
3867    fn default() -> Self {
3868        Self {
3869            s_type: StructureType::from_raw(30i32),
3870            p_next: core::ptr::null(),
3871            flags: Default::default(),
3872            set_layout_count: Default::default(),
3873            p_set_layouts: core::ptr::null(),
3874            push_constant_range_count: Default::default(),
3875            p_push_constant_ranges: core::ptr::null(),
3876        }
3877    }
3878}
3879///[`VkSamplerCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCreateInfo.html)
3880/**
3881Provided by **VK_COMPUTE_VERSION_1_0**.*/
3882///
3883///# Extended By
3884///- [`DebugUtilsObjectNameInfoEXT`]
3885///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
3886///- [`SamplerBlockMatchWindowCreateInfoQCOM`]
3887///- [`SamplerBorderColorComponentMappingCreateInfoEXT`]
3888///- [`SamplerCubicWeightsCreateInfoQCOM`]
3889///- [`SamplerCustomBorderColorCreateInfoEXT`]
3890///- [`SamplerCustomBorderColorIndexCreateInfoEXT`]
3891///- [`SamplerReductionModeCreateInfo`]
3892///- [`SamplerYcbcrConversionInfo`]
3893#[repr(C)]
3894#[derive(Copy, Clone, Debug)]
3895#[doc(alias = "VkSamplerCreateInfo")]
3896pub struct SamplerCreateInfo {
3897    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO`.
3898    pub s_type: StructureType,
3899    ///Optional, may be null.
3900    pub p_next: *const core::ffi::c_void,
3901    pub flags: SamplerCreateFlags,
3902    pub mag_filter: Filter,
3903    pub min_filter: Filter,
3904    pub mipmap_mode: SamplerMipmapMode,
3905    pub address_mode_u: SamplerAddressMode,
3906    pub address_mode_v: SamplerAddressMode,
3907    pub address_mode_w: SamplerAddressMode,
3908    pub mip_lod_bias: f32,
3909    pub anisotropy_enable: u32,
3910    pub max_anisotropy: f32,
3911    pub compare_enable: u32,
3912    pub compare_op: CompareOp,
3913    pub min_lod: f32,
3914    pub max_lod: f32,
3915    pub border_color: BorderColor,
3916    pub unnormalized_coordinates: u32,
3917}
3918impl Default for SamplerCreateInfo {
3919    #[inline]
3920    fn default() -> Self {
3921        Self {
3922            s_type: StructureType::from_raw(31i32),
3923            p_next: core::ptr::null(),
3924            flags: Default::default(),
3925            mag_filter: Default::default(),
3926            min_filter: Default::default(),
3927            mipmap_mode: Default::default(),
3928            address_mode_u: Default::default(),
3929            address_mode_v: Default::default(),
3930            address_mode_w: Default::default(),
3931            mip_lod_bias: Default::default(),
3932            anisotropy_enable: Default::default(),
3933            max_anisotropy: Default::default(),
3934            compare_enable: Default::default(),
3935            compare_op: Default::default(),
3936            min_lod: Default::default(),
3937            max_lod: Default::default(),
3938            border_color: Default::default(),
3939            unnormalized_coordinates: Default::default(),
3940        }
3941    }
3942}
3943///[`VkCommandPoolCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandPoolCreateInfo.html)
3944/**
3945Provided by **VK_BASE_VERSION_1_0**.*/
3946///
3947///# Extended By
3948///- [`CommandPoolMemoryReservationCreateInfo`]
3949///- [`DataGraphProcessingEngineCreateInfoARM`]
3950#[repr(C)]
3951#[derive(Copy, Clone, Debug)]
3952#[doc(alias = "VkCommandPoolCreateInfo")]
3953pub struct CommandPoolCreateInfo {
3954    ///Must be `VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO`.
3955    pub s_type: StructureType,
3956    ///Optional, may be null.
3957    pub p_next: *const core::ffi::c_void,
3958    pub flags: CommandPoolCreateFlags,
3959    pub queue_family_index: u32,
3960}
3961impl Default for CommandPoolCreateInfo {
3962    #[inline]
3963    fn default() -> Self {
3964        Self {
3965            s_type: StructureType::from_raw(39i32),
3966            p_next: core::ptr::null(),
3967            flags: Default::default(),
3968            queue_family_index: Default::default(),
3969        }
3970    }
3971}
3972///[`VkCommandBufferAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferAllocateInfo.html)
3973/**
3974Provided by **VK_BASE_VERSION_1_0**.*/
3975#[repr(C)]
3976#[derive(Copy, Clone, Debug)]
3977#[doc(alias = "VkCommandBufferAllocateInfo")]
3978pub struct CommandBufferAllocateInfo {
3979    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO`.
3980    pub s_type: StructureType,
3981    ///Optional, may be null.
3982    pub p_next: *const core::ffi::c_void,
3983    ///**Thread safety:** must be externally synchronized.
3984    pub command_pool: CommandPool,
3985    pub level: CommandBufferLevel,
3986    pub command_buffer_count: u32,
3987}
3988impl Default for CommandBufferAllocateInfo {
3989    #[inline]
3990    fn default() -> Self {
3991        Self {
3992            s_type: StructureType::from_raw(40i32),
3993            p_next: core::ptr::null(),
3994            command_pool: Default::default(),
3995            level: Default::default(),
3996            command_buffer_count: Default::default(),
3997        }
3998    }
3999}
4000///[`VkCommandBufferInheritanceInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceInfo.html)
4001/**
4002Provided by **VK_BASE_VERSION_1_0**.*/
4003///
4004///# Extended By
4005///- [`AttachmentSampleCountInfoAMD`]
4006///- [`CommandBufferInheritanceConditionalRenderingInfoEXT`]
4007///- [`CommandBufferInheritanceDescriptorHeapInfoEXT`]
4008///- [`CommandBufferInheritanceRenderPassTransformInfoQCOM`]
4009///- [`CommandBufferInheritanceRenderingInfo`]
4010///- [`CommandBufferInheritanceViewportScissorInfoNV`]
4011///- [`CustomResolveCreateInfoEXT`]
4012///- [`ExternalFormatANDROID`]
4013///- [`ExternalFormatOHOS`]
4014///- [`MultiviewPerViewAttributesInfoNVX`]
4015///- [`RenderPassTileShadingCreateInfoQCOM`]
4016///- [`RenderingAttachmentLocationInfo`]
4017///- [`RenderingInputAttachmentIndexInfo`]
4018///- [`TileMemoryBindInfoQCOM`]
4019#[repr(C)]
4020#[derive(Copy, Clone, Debug)]
4021#[doc(alias = "VkCommandBufferInheritanceInfo")]
4022pub struct CommandBufferInheritanceInfo {
4023    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO`.
4024    pub s_type: StructureType,
4025    ///Optional, may be null.
4026    pub p_next: *const core::ffi::c_void,
4027    pub render_pass: RenderPass,
4028    pub subpass: u32,
4029    pub framebuffer: Framebuffer,
4030    pub occlusion_query_enable: u32,
4031    pub query_flags: QueryControlFlags,
4032    pub pipeline_statistics: QueryPipelineStatisticFlags,
4033}
4034impl Default for CommandBufferInheritanceInfo {
4035    #[inline]
4036    fn default() -> Self {
4037        Self {
4038            s_type: StructureType::from_raw(41i32),
4039            p_next: core::ptr::null(),
4040            render_pass: Default::default(),
4041            subpass: Default::default(),
4042            framebuffer: Default::default(),
4043            occlusion_query_enable: Default::default(),
4044            query_flags: Default::default(),
4045            pipeline_statistics: Default::default(),
4046        }
4047    }
4048}
4049///[`VkCommandBufferBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferBeginInfo.html)
4050/**
4051Provided by **VK_BASE_VERSION_1_0**.*/
4052///
4053///# Extended By
4054///- [`DeviceGroupCommandBufferBeginInfo`]
4055#[repr(C)]
4056#[derive(Copy, Clone, Debug)]
4057#[doc(alias = "VkCommandBufferBeginInfo")]
4058pub struct CommandBufferBeginInfo {
4059    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO`.
4060    pub s_type: StructureType,
4061    ///Optional, may be null.
4062    pub p_next: *const core::ffi::c_void,
4063    pub flags: CommandBufferUsageFlags,
4064    ///Optional, may be null.
4065    pub p_inheritance_info: *const CommandBufferInheritanceInfo,
4066}
4067impl Default for CommandBufferBeginInfo {
4068    #[inline]
4069    fn default() -> Self {
4070        Self {
4071            s_type: StructureType::from_raw(42i32),
4072            p_next: core::ptr::null(),
4073            flags: Default::default(),
4074            p_inheritance_info: core::ptr::null(),
4075        }
4076    }
4077}
4078///[`VkRenderPassBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassBeginInfo.html)
4079/**
4080Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4081///
4082///# Extended By
4083///- [`DeviceGroupRenderPassBeginInfo`]
4084///- [`MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM`]
4085///- [`RenderPassAttachmentBeginInfo`]
4086///- [`RenderPassPerformanceCountersByRegionBeginInfoARM`]
4087///- [`RenderPassSampleLocationsBeginInfoEXT`]
4088///- [`RenderPassStripeBeginInfoARM`]
4089///- [`RenderPassTransformBeginInfoQCOM`]
4090#[repr(C)]
4091#[derive(Copy, Clone, Debug)]
4092#[doc(alias = "VkRenderPassBeginInfo")]
4093pub struct RenderPassBeginInfo {
4094    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO`.
4095    pub s_type: StructureType,
4096    ///Optional, may be null.
4097    pub p_next: *const core::ffi::c_void,
4098    pub render_pass: RenderPass,
4099    pub framebuffer: Framebuffer,
4100    pub render_area: Rect2D,
4101    ///Length of `p_clear_values`.
4102    pub clear_value_count: u32,
4103    pub p_clear_values: *const ClearValue,
4104}
4105impl Default for RenderPassBeginInfo {
4106    #[inline]
4107    fn default() -> Self {
4108        Self {
4109            s_type: StructureType::from_raw(43i32),
4110            p_next: core::ptr::null(),
4111            render_pass: Default::default(),
4112            framebuffer: Default::default(),
4113            render_area: Default::default(),
4114            clear_value_count: Default::default(),
4115            p_clear_values: core::ptr::null(),
4116        }
4117    }
4118}
4119///[`VkClearColorValue`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearColorValue.html)
4120/**
4121Provided by **VK_COMPUTE_VERSION_1_0**.*/
4122#[repr(C)]
4123#[derive(Copy, Clone)]
4124#[doc(alias = "VkClearColorValue")]
4125pub union ClearColorValue {
4126    pub float32: [f32; 4usize],
4127    pub int32: [i32; 4usize],
4128    pub uint32: [u32; 4usize],
4129}
4130impl Default for ClearColorValue {
4131    #[inline]
4132    fn default() -> Self {
4133        unsafe { core::mem::zeroed() }
4134    }
4135}
4136impl core::fmt::Debug for ClearColorValue {
4137    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4138        f.write_str(stringify!(ClearColorValue))
4139    }
4140}
4141///[`VkClearDepthStencilValue`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearDepthStencilValue.html)
4142/**
4143Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4144#[repr(C)]
4145#[derive(Copy, Clone, Debug)]
4146#[doc(alias = "VkClearDepthStencilValue")]
4147pub struct ClearDepthStencilValue {
4148    pub depth: f32,
4149    pub stencil: u32,
4150}
4151impl Default for ClearDepthStencilValue {
4152    #[inline]
4153    fn default() -> Self {
4154        unsafe { core::mem::zeroed() }
4155    }
4156}
4157///[`VkClearValue`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearValue.html)
4158/**
4159Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4160#[repr(C)]
4161#[derive(Copy, Clone)]
4162#[doc(alias = "VkClearValue")]
4163pub union ClearValue {
4164    pub color: ClearColorValue,
4165    pub depth_stencil: ClearDepthStencilValue,
4166}
4167impl Default for ClearValue {
4168    #[inline]
4169    fn default() -> Self {
4170        unsafe { core::mem::zeroed() }
4171    }
4172}
4173impl core::fmt::Debug for ClearValue {
4174    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4175        f.write_str(stringify!(ClearValue))
4176    }
4177}
4178///[`VkClearAttachment`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearAttachment.html)
4179/**
4180Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4181#[repr(C)]
4182#[derive(Copy, Clone, Debug)]
4183#[doc(alias = "VkClearAttachment")]
4184pub struct ClearAttachment {
4185    pub aspect_mask: ImageAspectFlags,
4186    pub color_attachment: u32,
4187    pub clear_value: ClearValue,
4188}
4189impl Default for ClearAttachment {
4190    #[inline]
4191    fn default() -> Self {
4192        unsafe { core::mem::zeroed() }
4193    }
4194}
4195///[`VkAttachmentDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentDescription.html)
4196/**
4197Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4198#[repr(C)]
4199#[derive(Copy, Clone, Debug)]
4200#[doc(alias = "VkAttachmentDescription")]
4201pub struct AttachmentDescription {
4202    pub flags: AttachmentDescriptionFlags,
4203    pub format: Format,
4204    pub samples: SampleCountFlagBits,
4205    pub load_op: AttachmentLoadOp,
4206    pub store_op: AttachmentStoreOp,
4207    pub stencil_load_op: AttachmentLoadOp,
4208    pub stencil_store_op: AttachmentStoreOp,
4209    pub initial_layout: ImageLayout,
4210    pub final_layout: ImageLayout,
4211}
4212impl Default for AttachmentDescription {
4213    #[inline]
4214    fn default() -> Self {
4215        unsafe { core::mem::zeroed() }
4216    }
4217}
4218///[`VkAttachmentReference`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentReference.html)
4219/**
4220Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4221#[repr(C)]
4222#[derive(Copy, Clone, Debug)]
4223#[doc(alias = "VkAttachmentReference")]
4224pub struct AttachmentReference {
4225    pub attachment: u32,
4226    pub layout: ImageLayout,
4227}
4228impl Default for AttachmentReference {
4229    #[inline]
4230    fn default() -> Self {
4231        unsafe { core::mem::zeroed() }
4232    }
4233}
4234///[`VkSubpassDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDescription.html)
4235/**
4236Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4237#[repr(C)]
4238#[derive(Copy, Clone, Debug)]
4239#[doc(alias = "VkSubpassDescription")]
4240pub struct SubpassDescription {
4241    pub flags: SubpassDescriptionFlags,
4242    pub pipeline_bind_point: PipelineBindPoint,
4243    ///Length of `p_input_attachments`.
4244    pub input_attachment_count: u32,
4245    pub p_input_attachments: *const AttachmentReference,
4246    ///Length of `p_resolve_attachments`.
4247    pub color_attachment_count: u32,
4248    pub p_color_attachments: *const AttachmentReference,
4249    ///Optional, may be null.
4250    pub p_resolve_attachments: *const AttachmentReference,
4251    ///Optional, may be null.
4252    pub p_depth_stencil_attachment: *const AttachmentReference,
4253    ///Length of `p_preserve_attachments`.
4254    pub preserve_attachment_count: u32,
4255    pub p_preserve_attachments: *const u32,
4256}
4257impl Default for SubpassDescription {
4258    #[inline]
4259    fn default() -> Self {
4260        unsafe { core::mem::zeroed() }
4261    }
4262}
4263///[`VkSubpassDependency`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDependency.html)
4264/**
4265Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4266#[repr(C)]
4267#[derive(Copy, Clone, Debug)]
4268#[doc(alias = "VkSubpassDependency")]
4269pub struct SubpassDependency {
4270    pub src_subpass: u32,
4271    pub dst_subpass: u32,
4272    pub src_stage_mask: PipelineStageFlags,
4273    pub dst_stage_mask: PipelineStageFlags,
4274    pub src_access_mask: AccessFlags,
4275    pub dst_access_mask: AccessFlags,
4276    pub dependency_flags: DependencyFlags,
4277}
4278impl Default for SubpassDependency {
4279    #[inline]
4280    fn default() -> Self {
4281        unsafe { core::mem::zeroed() }
4282    }
4283}
4284///[`VkRenderPassCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreateInfo.html)
4285/**
4286Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4287///
4288///# Extended By
4289///- [`RenderPassFragmentDensityMapCreateInfoEXT`]
4290///- [`RenderPassInputAttachmentAspectCreateInfo`]
4291///- [`RenderPassMultiviewCreateInfo`]
4292///- [`RenderPassTileShadingCreateInfoQCOM`]
4293///- [`TileMemorySizeInfoQCOM`]
4294#[repr(C)]
4295#[derive(Copy, Clone, Debug)]
4296#[doc(alias = "VkRenderPassCreateInfo")]
4297pub struct RenderPassCreateInfo {
4298    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO`.
4299    pub s_type: StructureType,
4300    ///Optional, may be null.
4301    pub p_next: *const core::ffi::c_void,
4302    pub flags: RenderPassCreateFlags,
4303    ///Length of `p_attachments`.
4304    pub attachment_count: u32,
4305    pub p_attachments: *const AttachmentDescription,
4306    ///Length of `p_subpasses`.
4307    pub subpass_count: u32,
4308    pub p_subpasses: *const SubpassDescription,
4309    ///Length of `p_dependencies`.
4310    pub dependency_count: u32,
4311    pub p_dependencies: *const SubpassDependency,
4312}
4313impl Default for RenderPassCreateInfo {
4314    #[inline]
4315    fn default() -> Self {
4316        Self {
4317            s_type: StructureType::from_raw(38i32),
4318            p_next: core::ptr::null(),
4319            flags: Default::default(),
4320            attachment_count: Default::default(),
4321            p_attachments: core::ptr::null(),
4322            subpass_count: Default::default(),
4323            p_subpasses: core::ptr::null(),
4324            dependency_count: Default::default(),
4325            p_dependencies: core::ptr::null(),
4326        }
4327    }
4328}
4329///[`VkEventCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkEventCreateInfo.html)
4330/**
4331Provided by **VK_COMPUTE_VERSION_1_0**.*/
4332///
4333///# Extended By
4334///- [`ExportMetalObjectCreateInfoEXT`]
4335///- [`ImportMetalSharedEventInfoEXT`]
4336#[repr(C)]
4337#[derive(Copy, Clone, Debug)]
4338#[doc(alias = "VkEventCreateInfo")]
4339pub struct EventCreateInfo {
4340    ///Must be `VK_STRUCTURE_TYPE_EVENT_CREATE_INFO`.
4341    pub s_type: StructureType,
4342    ///Optional, may be null.
4343    pub p_next: *const core::ffi::c_void,
4344    pub flags: EventCreateFlags,
4345}
4346impl Default for EventCreateInfo {
4347    #[inline]
4348    fn default() -> Self {
4349        Self {
4350            s_type: StructureType::from_raw(10i32),
4351            p_next: core::ptr::null(),
4352            flags: Default::default(),
4353        }
4354    }
4355}
4356///[`VkFenceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceCreateInfo.html)
4357/**
4358Provided by **VK_BASE_VERSION_1_0**.*/
4359///
4360///# Extended By
4361///- [`ExportFenceCreateInfo`]
4362///- [`ExportFenceSciSyncInfoNV`]
4363///- [`ExportFenceWin32HandleInfoKHR`]
4364#[repr(C)]
4365#[derive(Copy, Clone, Debug)]
4366#[doc(alias = "VkFenceCreateInfo")]
4367pub struct FenceCreateInfo {
4368    ///Must be `VK_STRUCTURE_TYPE_FENCE_CREATE_INFO`.
4369    pub s_type: StructureType,
4370    ///Optional, may be null.
4371    pub p_next: *const core::ffi::c_void,
4372    pub flags: FenceCreateFlags,
4373}
4374impl Default for FenceCreateInfo {
4375    #[inline]
4376    fn default() -> Self {
4377        Self {
4378            s_type: StructureType::from_raw(8i32),
4379            p_next: core::ptr::null(),
4380            flags: Default::default(),
4381        }
4382    }
4383}
4384///[`VkPhysicalDeviceFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFeatures.html)
4385/**
4386Provided by **VK_BASE_VERSION_1_0**.*/
4387#[repr(C)]
4388#[derive(Copy, Clone, Debug)]
4389#[doc(alias = "VkPhysicalDeviceFeatures")]
4390pub struct PhysicalDeviceFeatures {
4391    pub robust_buffer_access: u32,
4392    pub full_draw_index_uint32: u32,
4393    pub image_cube_array: u32,
4394    pub independent_blend: u32,
4395    pub geometry_shader: u32,
4396    pub tessellation_shader: u32,
4397    pub sample_rate_shading: u32,
4398    pub dual_src_blend: u32,
4399    pub logic_op: u32,
4400    pub multi_draw_indirect: u32,
4401    pub draw_indirect_first_instance: u32,
4402    pub depth_clamp: u32,
4403    pub depth_bias_clamp: u32,
4404    pub fill_mode_non_solid: u32,
4405    pub depth_bounds: u32,
4406    pub wide_lines: u32,
4407    pub large_points: u32,
4408    pub alpha_to_one: u32,
4409    pub multi_viewport: u32,
4410    pub sampler_anisotropy: u32,
4411    pub texture_compression_etc2: u32,
4412    pub texture_compression_astc_ldr: u32,
4413    pub texture_compression_bc: u32,
4414    pub occlusion_query_precise: u32,
4415    pub pipeline_statistics_query: u32,
4416    pub vertex_pipeline_stores_and_atomics: u32,
4417    pub fragment_stores_and_atomics: u32,
4418    pub shader_tessellation_and_geometry_point_size: u32,
4419    pub shader_image_gather_extended: u32,
4420    pub shader_storage_image_extended_formats: u32,
4421    pub shader_storage_image_multisample: u32,
4422    pub shader_storage_image_read_without_format: u32,
4423    pub shader_storage_image_write_without_format: u32,
4424    pub shader_uniform_buffer_array_dynamic_indexing: u32,
4425    pub shader_sampled_image_array_dynamic_indexing: u32,
4426    pub shader_storage_buffer_array_dynamic_indexing: u32,
4427    pub shader_storage_image_array_dynamic_indexing: u32,
4428    pub shader_clip_distance: u32,
4429    pub shader_cull_distance: u32,
4430    pub shader_float64: u32,
4431    pub shader_int64: u32,
4432    pub shader_int16: u32,
4433    pub shader_resource_residency: u32,
4434    pub shader_resource_min_lod: u32,
4435    pub sparse_binding: u32,
4436    pub sparse_residency_buffer: u32,
4437    pub sparse_residency_image2_d: u32,
4438    pub sparse_residency_image3_d: u32,
4439    pub sparse_residency2_samples: u32,
4440    pub sparse_residency4_samples: u32,
4441    pub sparse_residency8_samples: u32,
4442    pub sparse_residency16_samples: u32,
4443    pub sparse_residency_aliased: u32,
4444    pub variable_multisample_rate: u32,
4445    pub inherited_queries: u32,
4446}
4447impl Default for PhysicalDeviceFeatures {
4448    #[inline]
4449    fn default() -> Self {
4450        unsafe { core::mem::zeroed() }
4451    }
4452}
4453///[`VkPhysicalDeviceSparseProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSparseProperties.html)
4454/**
4455Provided by **VK_BASE_VERSION_1_0**.*/
4456/**
4457**Returned only**, filled by Vulkan, not constructed by the application.*/
4458#[repr(C)]
4459#[derive(Copy, Clone, Debug)]
4460#[doc(alias = "VkPhysicalDeviceSparseProperties")]
4461pub struct PhysicalDeviceSparseProperties {
4462    pub residency_standard2_d_block_shape: u32,
4463    pub residency_standard2_d_multisample_block_shape: u32,
4464    pub residency_standard3_d_block_shape: u32,
4465    pub residency_aligned_mip_size: u32,
4466    pub residency_non_resident_strict: u32,
4467}
4468impl Default for PhysicalDeviceSparseProperties {
4469    #[inline]
4470    fn default() -> Self {
4471        unsafe { core::mem::zeroed() }
4472    }
4473}
4474///[`VkPhysicalDeviceLimits`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLimits.html)
4475/**
4476Provided by **VK_BASE_VERSION_1_0**.*/
4477/**
4478**Returned only**, filled by Vulkan, not constructed by the application.*/
4479#[repr(C)]
4480#[derive(Copy, Clone, Debug)]
4481#[doc(alias = "VkPhysicalDeviceLimits")]
4482pub struct PhysicalDeviceLimits {
4483    pub max_image_dimension1_d: u32,
4484    pub max_image_dimension2_d: u32,
4485    pub max_image_dimension3_d: u32,
4486    pub max_image_dimension_cube: u32,
4487    pub max_image_array_layers: u32,
4488    pub max_texel_buffer_elements: u32,
4489    pub max_uniform_buffer_range: u32,
4490    pub max_storage_buffer_range: u32,
4491    pub max_push_constants_size: u32,
4492    pub max_memory_allocation_count: u32,
4493    pub max_sampler_allocation_count: u32,
4494    pub buffer_image_granularity: u64,
4495    pub sparse_address_space_size: u64,
4496    pub max_bound_descriptor_sets: u32,
4497    pub max_per_stage_descriptor_samplers: u32,
4498    pub max_per_stage_descriptor_uniform_buffers: u32,
4499    pub max_per_stage_descriptor_storage_buffers: u32,
4500    pub max_per_stage_descriptor_sampled_images: u32,
4501    pub max_per_stage_descriptor_storage_images: u32,
4502    pub max_per_stage_descriptor_input_attachments: u32,
4503    pub max_per_stage_resources: u32,
4504    pub max_descriptor_set_samplers: u32,
4505    pub max_descriptor_set_uniform_buffers: u32,
4506    pub max_descriptor_set_uniform_buffers_dynamic: u32,
4507    pub max_descriptor_set_storage_buffers: u32,
4508    pub max_descriptor_set_storage_buffers_dynamic: u32,
4509    pub max_descriptor_set_sampled_images: u32,
4510    pub max_descriptor_set_storage_images: u32,
4511    pub max_descriptor_set_input_attachments: u32,
4512    pub max_vertex_input_attributes: u32,
4513    pub max_vertex_input_bindings: u32,
4514    pub max_vertex_input_attribute_offset: u32,
4515    pub max_vertex_input_binding_stride: u32,
4516    pub max_vertex_output_components: u32,
4517    pub max_tessellation_generation_level: u32,
4518    pub max_tessellation_patch_size: u32,
4519    pub max_tessellation_control_per_vertex_input_components: u32,
4520    pub max_tessellation_control_per_vertex_output_components: u32,
4521    pub max_tessellation_control_per_patch_output_components: u32,
4522    pub max_tessellation_control_total_output_components: u32,
4523    pub max_tessellation_evaluation_input_components: u32,
4524    pub max_tessellation_evaluation_output_components: u32,
4525    pub max_geometry_shader_invocations: u32,
4526    pub max_geometry_input_components: u32,
4527    pub max_geometry_output_components: u32,
4528    pub max_geometry_output_vertices: u32,
4529    pub max_geometry_total_output_components: u32,
4530    pub max_fragment_input_components: u32,
4531    pub max_fragment_output_attachments: u32,
4532    pub max_fragment_dual_src_attachments: u32,
4533    pub max_fragment_combined_output_resources: u32,
4534    pub max_compute_shared_memory_size: u32,
4535    pub max_compute_work_group_count: [u32; 3usize],
4536    pub max_compute_work_group_invocations: u32,
4537    pub max_compute_work_group_size: [u32; 3usize],
4538    pub sub_pixel_precision_bits: u32,
4539    pub sub_texel_precision_bits: u32,
4540    pub mipmap_precision_bits: u32,
4541    pub max_draw_indexed_index_value: u32,
4542    pub max_draw_indirect_count: u32,
4543    pub max_sampler_lod_bias: f32,
4544    pub max_sampler_anisotropy: f32,
4545    pub max_viewports: u32,
4546    pub max_viewport_dimensions: [u32; 2usize],
4547    pub viewport_bounds_range: [f32; 2usize],
4548    pub viewport_sub_pixel_bits: u32,
4549    pub min_memory_map_alignment: usize,
4550    pub min_texel_buffer_offset_alignment: u64,
4551    pub min_uniform_buffer_offset_alignment: u64,
4552    pub min_storage_buffer_offset_alignment: u64,
4553    pub min_texel_offset: i32,
4554    pub max_texel_offset: u32,
4555    pub min_texel_gather_offset: i32,
4556    pub max_texel_gather_offset: u32,
4557    pub min_interpolation_offset: f32,
4558    pub max_interpolation_offset: f32,
4559    pub sub_pixel_interpolation_offset_bits: u32,
4560    pub max_framebuffer_width: u32,
4561    pub max_framebuffer_height: u32,
4562    pub max_framebuffer_layers: u32,
4563    pub framebuffer_color_sample_counts: SampleCountFlags,
4564    pub framebuffer_depth_sample_counts: SampleCountFlags,
4565    pub framebuffer_stencil_sample_counts: SampleCountFlags,
4566    pub framebuffer_no_attachments_sample_counts: SampleCountFlags,
4567    pub max_color_attachments: u32,
4568    pub sampled_image_color_sample_counts: SampleCountFlags,
4569    pub sampled_image_integer_sample_counts: SampleCountFlags,
4570    pub sampled_image_depth_sample_counts: SampleCountFlags,
4571    pub sampled_image_stencil_sample_counts: SampleCountFlags,
4572    pub storage_image_sample_counts: SampleCountFlags,
4573    pub max_sample_mask_words: u32,
4574    pub timestamp_compute_and_graphics: u32,
4575    pub timestamp_period: f32,
4576    pub max_clip_distances: u32,
4577    pub max_cull_distances: u32,
4578    pub max_combined_clip_and_cull_distances: u32,
4579    pub discrete_queue_priorities: u32,
4580    pub point_size_range: [f32; 2usize],
4581    pub line_width_range: [f32; 2usize],
4582    pub point_size_granularity: f32,
4583    pub line_width_granularity: f32,
4584    pub strict_lines: u32,
4585    pub standard_sample_locations: u32,
4586    pub optimal_buffer_copy_offset_alignment: u64,
4587    pub optimal_buffer_copy_row_pitch_alignment: u64,
4588    pub non_coherent_atom_size: u64,
4589}
4590impl Default for PhysicalDeviceLimits {
4591    #[inline]
4592    fn default() -> Self {
4593        unsafe { core::mem::zeroed() }
4594    }
4595}
4596///[`VkSemaphoreCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreCreateInfo.html)
4597/**
4598Provided by **VK_BASE_VERSION_1_0**.*/
4599///
4600///# Extended By
4601///- [`ExportMetalObjectCreateInfoEXT`]
4602///- [`ExportSemaphoreCreateInfo`]
4603///- [`ExportSemaphoreSciSyncInfoNV`]
4604///- [`ExportSemaphoreWin32HandleInfoKHR`]
4605///- [`ImportMetalSharedEventInfoEXT`]
4606///- [`QueryLowLatencySupportNV`]
4607///- [`SemaphoreSciSyncCreateInfoNV`]
4608///- [`SemaphoreTypeCreateInfo`]
4609#[repr(C)]
4610#[derive(Copy, Clone, Debug)]
4611#[doc(alias = "VkSemaphoreCreateInfo")]
4612pub struct SemaphoreCreateInfo {
4613    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO`.
4614    pub s_type: StructureType,
4615    ///Optional, may be null.
4616    pub p_next: *const core::ffi::c_void,
4617    pub flags: SemaphoreCreateFlags,
4618}
4619impl Default for SemaphoreCreateInfo {
4620    #[inline]
4621    fn default() -> Self {
4622        Self {
4623            s_type: StructureType::from_raw(9i32),
4624            p_next: core::ptr::null(),
4625            flags: Default::default(),
4626        }
4627    }
4628}
4629///[`VkQueryPoolCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolCreateInfo.html)
4630/**
4631Provided by **VK_BASE_VERSION_1_0**.*/
4632///
4633///# Extended By
4634///- [`QueryPoolPerformanceCreateInfoKHR`]
4635///- [`QueryPoolPerformanceQueryCreateInfoINTEL`]
4636///- [`QueryPoolVideoEncodeFeedbackCreateInfoKHR`]
4637///- [`VideoDecodeAV1ProfileInfoKHR`]
4638///- [`VideoDecodeH264ProfileInfoKHR`]
4639///- [`VideoDecodeH265ProfileInfoKHR`]
4640///- [`VideoDecodeUsageInfoKHR`]
4641///- [`VideoDecodeVP9ProfileInfoKHR`]
4642///- [`VideoEncodeAV1ProfileInfoKHR`]
4643///- [`VideoEncodeH264ProfileInfoKHR`]
4644///- [`VideoEncodeH265ProfileInfoKHR`]
4645///- [`VideoEncodeUsageInfoKHR`]
4646///- [`VideoProfileInfoKHR`]
4647#[repr(C)]
4648#[derive(Copy, Clone, Debug)]
4649#[doc(alias = "VkQueryPoolCreateInfo")]
4650pub struct QueryPoolCreateInfo {
4651    ///Must be `VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO`.
4652    pub s_type: StructureType,
4653    ///Optional, may be null.
4654    pub p_next: *const core::ffi::c_void,
4655    pub flags: QueryPoolCreateFlags,
4656    pub query_type: QueryType,
4657    pub query_count: u32,
4658    pub pipeline_statistics: QueryPipelineStatisticFlags,
4659}
4660impl Default for QueryPoolCreateInfo {
4661    #[inline]
4662    fn default() -> Self {
4663        Self {
4664            s_type: StructureType::from_raw(11i32),
4665            p_next: core::ptr::null(),
4666            flags: Default::default(),
4667            query_type: Default::default(),
4668            query_count: Default::default(),
4669            pipeline_statistics: Default::default(),
4670        }
4671    }
4672}
4673///[`VkFramebufferCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferCreateInfo.html)
4674/**
4675Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4676///
4677///# Extended By
4678///- [`FramebufferAttachmentsCreateInfo`]
4679#[repr(C)]
4680#[derive(Copy, Clone, Debug)]
4681#[doc(alias = "VkFramebufferCreateInfo")]
4682pub struct FramebufferCreateInfo {
4683    ///Must be `VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO`.
4684    pub s_type: StructureType,
4685    ///Optional, may be null.
4686    pub p_next: *const core::ffi::c_void,
4687    pub flags: FramebufferCreateFlags,
4688    pub render_pass: RenderPass,
4689    ///Length of `p_attachments`.
4690    pub attachment_count: u32,
4691    pub p_attachments: *const ImageView,
4692    pub width: u32,
4693    pub height: u32,
4694    pub layers: u32,
4695}
4696impl Default for FramebufferCreateInfo {
4697    #[inline]
4698    fn default() -> Self {
4699        Self {
4700            s_type: StructureType::from_raw(37i32),
4701            p_next: core::ptr::null(),
4702            flags: Default::default(),
4703            render_pass: Default::default(),
4704            attachment_count: Default::default(),
4705            p_attachments: core::ptr::null(),
4706            width: Default::default(),
4707            height: Default::default(),
4708            layers: Default::default(),
4709        }
4710    }
4711}
4712///[`VkDrawIndirectCommand`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndirectCommand.html)
4713/**
4714Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4715#[repr(C)]
4716#[derive(Copy, Clone, Debug)]
4717#[doc(alias = "VkDrawIndirectCommand")]
4718pub struct DrawIndirectCommand {
4719    pub vertex_count: u32,
4720    pub instance_count: u32,
4721    pub first_vertex: u32,
4722    pub first_instance: u32,
4723}
4724impl Default for DrawIndirectCommand {
4725    #[inline]
4726    fn default() -> Self {
4727        unsafe { core::mem::zeroed() }
4728    }
4729}
4730///[`VkDrawIndexedIndirectCommand`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndexedIndirectCommand.html)
4731/**
4732Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4733#[repr(C)]
4734#[derive(Copy, Clone, Debug)]
4735#[doc(alias = "VkDrawIndexedIndirectCommand")]
4736pub struct DrawIndexedIndirectCommand {
4737    pub index_count: u32,
4738    pub instance_count: u32,
4739    pub first_index: u32,
4740    pub vertex_offset: i32,
4741    pub first_instance: u32,
4742}
4743impl Default for DrawIndexedIndirectCommand {
4744    #[inline]
4745    fn default() -> Self {
4746        unsafe { core::mem::zeroed() }
4747    }
4748}
4749///[`VkDispatchIndirectCommand`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchIndirectCommand.html)
4750/**
4751Provided by **VK_COMPUTE_VERSION_1_0**.*/
4752#[repr(C)]
4753#[derive(Copy, Clone, Debug)]
4754#[doc(alias = "VkDispatchIndirectCommand")]
4755pub struct DispatchIndirectCommand {
4756    pub x: u32,
4757    pub y: u32,
4758    pub z: u32,
4759}
4760impl Default for DispatchIndirectCommand {
4761    #[inline]
4762    fn default() -> Self {
4763        unsafe { core::mem::zeroed() }
4764    }
4765}
4766///[`VkMultiDrawInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultiDrawInfoEXT.html)
4767/**
4768Provided by **VK_EXT_multi_draw**.*/
4769#[repr(C)]
4770#[derive(Copy, Clone, Debug)]
4771#[doc(alias = "VkMultiDrawInfoEXT")]
4772pub struct MultiDrawInfoEXT {
4773    pub first_vertex: u32,
4774    pub vertex_count: u32,
4775}
4776impl Default for MultiDrawInfoEXT {
4777    #[inline]
4778    fn default() -> Self {
4779        unsafe { core::mem::zeroed() }
4780    }
4781}
4782///[`VkMultiDrawIndexedInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultiDrawIndexedInfoEXT.html)
4783/**
4784Provided by **VK_EXT_multi_draw**.*/
4785#[repr(C)]
4786#[derive(Copy, Clone, Debug)]
4787#[doc(alias = "VkMultiDrawIndexedInfoEXT")]
4788pub struct MultiDrawIndexedInfoEXT {
4789    pub first_index: u32,
4790    pub index_count: u32,
4791    pub vertex_offset: i32,
4792}
4793impl Default for MultiDrawIndexedInfoEXT {
4794    #[inline]
4795    fn default() -> Self {
4796        unsafe { core::mem::zeroed() }
4797    }
4798}
4799///[`VkSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubmitInfo.html)
4800/**
4801Provided by **VK_BASE_VERSION_1_0**.*/
4802///
4803///# Extended By
4804///- [`AmigoProfilingSubmitInfoSEC`]
4805///- [`D3D12FenceSubmitInfoKHR`]
4806///- [`DeviceGroupSubmitInfo`]
4807///- [`FrameBoundaryEXT`]
4808///- [`FrameBoundaryTensorsARM`]
4809///- [`LatencySubmissionPresentIdNV`]
4810///- [`PerformanceQuerySubmitInfoKHR`]
4811///- [`ProtectedSubmitInfo`]
4812///- [`TimelineSemaphoreSubmitInfo`]
4813///- [`Win32KeyedMutexAcquireReleaseInfoKHR`]
4814///- [`Win32KeyedMutexAcquireReleaseInfoNV`]
4815#[repr(C)]
4816#[derive(Copy, Clone, Debug)]
4817#[doc(alias = "VkSubmitInfo")]
4818pub struct SubmitInfo {
4819    ///Must be `VK_STRUCTURE_TYPE_SUBMIT_INFO`.
4820    pub s_type: StructureType,
4821    ///Optional, may be null.
4822    pub p_next: *const core::ffi::c_void,
4823    ///Length of `p_wait_dst_stage_mask`.
4824    pub wait_semaphore_count: u32,
4825    pub p_wait_semaphores: *const Semaphore,
4826    ///Optional, may be null.
4827    pub p_wait_dst_stage_mask: *const PipelineStageFlags,
4828    ///Length of `p_command_buffers`.
4829    pub command_buffer_count: u32,
4830    pub p_command_buffers: *const CommandBuffer,
4831    ///Length of `p_signal_semaphores`.
4832    pub signal_semaphore_count: u32,
4833    pub p_signal_semaphores: *const Semaphore,
4834}
4835impl Default for SubmitInfo {
4836    #[inline]
4837    fn default() -> Self {
4838        Self {
4839            s_type: StructureType::from_raw(4i32),
4840            p_next: core::ptr::null(),
4841            wait_semaphore_count: Default::default(),
4842            p_wait_semaphores: core::ptr::null(),
4843            p_wait_dst_stage_mask: core::ptr::null(),
4844            command_buffer_count: Default::default(),
4845            p_command_buffers: core::ptr::null(),
4846            signal_semaphore_count: Default::default(),
4847            p_signal_semaphores: core::ptr::null(),
4848        }
4849    }
4850}
4851///[`VkDisplayPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPropertiesKHR.html)
4852/**
4853Provided by **VK_KHR_display**.*/
4854/**
4855**Returned only**, filled by Vulkan, not constructed by the application.*/
4856#[repr(C)]
4857#[derive(Copy, Clone, Debug)]
4858#[doc(alias = "VkDisplayPropertiesKHR")]
4859pub struct DisplayPropertiesKHR {
4860    pub display: DisplayKHR,
4861    pub display_name: *const core::ffi::c_char,
4862    pub physical_dimensions: Extent2D,
4863    pub physical_resolution: Extent2D,
4864    pub supported_transforms: SurfaceTransformFlagsKHR,
4865    pub plane_reorder_possible: u32,
4866    pub persistent_content: u32,
4867}
4868impl Default for DisplayPropertiesKHR {
4869    #[inline]
4870    fn default() -> Self {
4871        unsafe { core::mem::zeroed() }
4872    }
4873}
4874///[`VkDisplayPlanePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlanePropertiesKHR.html)
4875/**
4876Provided by **VK_KHR_display**.*/
4877/**
4878**Returned only**, filled by Vulkan, not constructed by the application.*/
4879#[repr(C)]
4880#[derive(Copy, Clone, Debug)]
4881#[doc(alias = "VkDisplayPlanePropertiesKHR")]
4882pub struct DisplayPlanePropertiesKHR {
4883    pub current_display: DisplayKHR,
4884    pub current_stack_index: u32,
4885}
4886impl Default for DisplayPlanePropertiesKHR {
4887    #[inline]
4888    fn default() -> Self {
4889        unsafe { core::mem::zeroed() }
4890    }
4891}
4892///[`VkDisplayModeParametersKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModeParametersKHR.html)
4893/**
4894Provided by **VK_KHR_display**.*/
4895#[repr(C)]
4896#[derive(Copy, Clone, Debug)]
4897#[doc(alias = "VkDisplayModeParametersKHR")]
4898pub struct DisplayModeParametersKHR {
4899    pub visible_region: Extent2D,
4900    pub refresh_rate: u32,
4901}
4902impl Default for DisplayModeParametersKHR {
4903    #[inline]
4904    fn default() -> Self {
4905        unsafe { core::mem::zeroed() }
4906    }
4907}
4908///[`VkDisplayModePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModePropertiesKHR.html)
4909/**
4910Provided by **VK_KHR_display**.*/
4911/**
4912**Returned only**, filled by Vulkan, not constructed by the application.*/
4913#[repr(C)]
4914#[derive(Copy, Clone, Debug)]
4915#[doc(alias = "VkDisplayModePropertiesKHR")]
4916pub struct DisplayModePropertiesKHR {
4917    pub display_mode: DisplayModeKHR,
4918    pub parameters: DisplayModeParametersKHR,
4919}
4920impl Default for DisplayModePropertiesKHR {
4921    #[inline]
4922    fn default() -> Self {
4923        unsafe { core::mem::zeroed() }
4924    }
4925}
4926///[`VkDisplayModeCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModeCreateInfoKHR.html)
4927/**
4928Provided by **VK_KHR_display**.*/
4929#[repr(C)]
4930#[derive(Copy, Clone, Debug)]
4931#[doc(alias = "VkDisplayModeCreateInfoKHR")]
4932pub struct DisplayModeCreateInfoKHR {
4933    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR`.
4934    pub s_type: StructureType,
4935    ///Optional, may be null.
4936    pub p_next: *const core::ffi::c_void,
4937    pub flags: DisplayModeCreateFlagsKHR,
4938    pub parameters: DisplayModeParametersKHR,
4939}
4940impl Default for DisplayModeCreateInfoKHR {
4941    #[inline]
4942    fn default() -> Self {
4943        Self {
4944            s_type: StructureType::from_raw(1000002000i32),
4945            p_next: core::ptr::null(),
4946            flags: Default::default(),
4947            parameters: Default::default(),
4948        }
4949    }
4950}
4951///[`VkDisplayPlaneCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlaneCapabilitiesKHR.html)
4952/**
4953Provided by **VK_KHR_display**.*/
4954/**
4955**Returned only**, filled by Vulkan, not constructed by the application.*/
4956#[repr(C)]
4957#[derive(Copy, Clone, Debug)]
4958#[doc(alias = "VkDisplayPlaneCapabilitiesKHR")]
4959pub struct DisplayPlaneCapabilitiesKHR {
4960    pub supported_alpha: DisplayPlaneAlphaFlagsKHR,
4961    pub min_src_position: Offset2D,
4962    pub max_src_position: Offset2D,
4963    pub min_src_extent: Extent2D,
4964    pub max_src_extent: Extent2D,
4965    pub min_dst_position: Offset2D,
4966    pub max_dst_position: Offset2D,
4967    pub min_dst_extent: Extent2D,
4968    pub max_dst_extent: Extent2D,
4969}
4970impl Default for DisplayPlaneCapabilitiesKHR {
4971    #[inline]
4972    fn default() -> Self {
4973        unsafe { core::mem::zeroed() }
4974    }
4975}
4976///[`VkDisplaySurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplaySurfaceCreateInfoKHR.html)
4977/**
4978Provided by **VK_KHR_display**.*/
4979///
4980///# Extended By
4981///- [`DisplaySurfaceStereoCreateInfoNV`]
4982#[repr(C)]
4983#[derive(Copy, Clone, Debug)]
4984#[doc(alias = "VkDisplaySurfaceCreateInfoKHR")]
4985pub struct DisplaySurfaceCreateInfoKHR {
4986    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR`.
4987    pub s_type: StructureType,
4988    ///Optional, may be null.
4989    pub p_next: *const core::ffi::c_void,
4990    pub flags: DisplaySurfaceCreateFlagsKHR,
4991    pub display_mode: DisplayModeKHR,
4992    pub plane_index: u32,
4993    pub plane_stack_index: u32,
4994    pub transform: SurfaceTransformFlagBitsKHR,
4995    pub global_alpha: f32,
4996    pub alpha_mode: DisplayPlaneAlphaFlagBitsKHR,
4997    pub image_extent: Extent2D,
4998}
4999impl Default for DisplaySurfaceCreateInfoKHR {
5000    #[inline]
5001    fn default() -> Self {
5002        Self {
5003            s_type: StructureType::from_raw(1000002001i32),
5004            p_next: core::ptr::null(),
5005            flags: Default::default(),
5006            display_mode: Default::default(),
5007            plane_index: Default::default(),
5008            plane_stack_index: Default::default(),
5009            transform: Default::default(),
5010            global_alpha: Default::default(),
5011            alpha_mode: Default::default(),
5012            image_extent: Default::default(),
5013        }
5014    }
5015}
5016///[`VkDisplaySurfaceStereoCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplaySurfaceStereoCreateInfoNV.html)
5017/**
5018Provided by **VK_NV_display_stereo**.*/
5019///
5020///# Extends
5021///- [`DisplaySurfaceCreateInfoKHR`]
5022#[repr(C)]
5023#[derive(Copy, Clone, Debug)]
5024#[doc(alias = "VkDisplaySurfaceStereoCreateInfoNV")]
5025pub struct DisplaySurfaceStereoCreateInfoNV {
5026    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV`.
5027    pub s_type: StructureType,
5028    ///Optional, may be null.
5029    pub p_next: *const core::ffi::c_void,
5030    pub stereo_type: DisplaySurfaceStereoTypeNV,
5031}
5032impl Default for DisplaySurfaceStereoCreateInfoNV {
5033    #[inline]
5034    fn default() -> Self {
5035        Self {
5036            s_type: StructureType::from_raw(1000551000i32),
5037            p_next: core::ptr::null(),
5038            stereo_type: Default::default(),
5039        }
5040    }
5041}
5042///[`VkDisplayPresentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPresentInfoKHR.html)
5043/**
5044Provided by **VK_KHR_display_swapchain**.*/
5045///
5046///# Extends
5047///- [`PresentInfoKHR`]
5048#[repr(C)]
5049#[derive(Copy, Clone, Debug)]
5050#[doc(alias = "VkDisplayPresentInfoKHR")]
5051pub struct DisplayPresentInfoKHR {
5052    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR`.
5053    pub s_type: StructureType,
5054    ///Optional, may be null.
5055    pub p_next: *const core::ffi::c_void,
5056    pub src_rect: Rect2D,
5057    pub dst_rect: Rect2D,
5058    pub persistent: u32,
5059}
5060impl Default for DisplayPresentInfoKHR {
5061    #[inline]
5062    fn default() -> Self {
5063        Self {
5064            s_type: StructureType::from_raw(1000003000i32),
5065            p_next: core::ptr::null(),
5066            src_rect: Default::default(),
5067            dst_rect: Default::default(),
5068            persistent: Default::default(),
5069        }
5070    }
5071}
5072///[`VkSurfaceCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesKHR.html)
5073/**
5074Provided by **VK_KHR_surface**.*/
5075/**
5076**Returned only**, filled by Vulkan, not constructed by the application.*/
5077#[repr(C)]
5078#[derive(Copy, Clone, Debug)]
5079#[doc(alias = "VkSurfaceCapabilitiesKHR")]
5080pub struct SurfaceCapabilitiesKHR {
5081    pub min_image_count: u32,
5082    pub max_image_count: u32,
5083    pub current_extent: Extent2D,
5084    pub min_image_extent: Extent2D,
5085    pub max_image_extent: Extent2D,
5086    pub max_image_array_layers: u32,
5087    pub supported_transforms: SurfaceTransformFlagsKHR,
5088    pub current_transform: SurfaceTransformFlagBitsKHR,
5089    pub supported_composite_alpha: CompositeAlphaFlagsKHR,
5090    pub supported_usage_flags: ImageUsageFlags,
5091}
5092impl Default for SurfaceCapabilitiesKHR {
5093    #[inline]
5094    fn default() -> Self {
5095        unsafe { core::mem::zeroed() }
5096    }
5097}
5098///[`VkAndroidSurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidSurfaceCreateInfoKHR.html)
5099/**
5100Provided by **VK_KHR_android_surface**.*/
5101#[repr(C)]
5102#[derive(Copy, Clone, Debug)]
5103#[doc(alias = "VkAndroidSurfaceCreateInfoKHR")]
5104pub struct AndroidSurfaceCreateInfoKHR {
5105    ///Must be `VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR`.
5106    pub s_type: StructureType,
5107    ///Optional, may be null.
5108    pub p_next: *const core::ffi::c_void,
5109    pub flags: AndroidSurfaceCreateFlagsKHR,
5110    pub window: *mut core::ffi::c_void,
5111}
5112impl Default for AndroidSurfaceCreateInfoKHR {
5113    #[inline]
5114    fn default() -> Self {
5115        Self {
5116            s_type: StructureType::from_raw(1000008000i32),
5117            p_next: core::ptr::null(),
5118            flags: Default::default(),
5119            window: core::ptr::null_mut(),
5120        }
5121    }
5122}
5123///[`VkViSurfaceCreateInfoNN`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkViSurfaceCreateInfoNN.html)
5124/**
5125Provided by **VK_NN_vi_surface**.*/
5126#[repr(C)]
5127#[derive(Copy, Clone, Debug)]
5128#[doc(alias = "VkViSurfaceCreateInfoNN")]
5129pub struct ViSurfaceCreateInfoNN {
5130    ///Must be `VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN`.
5131    pub s_type: StructureType,
5132    ///Optional, may be null.
5133    pub p_next: *const core::ffi::c_void,
5134    pub flags: ViSurfaceCreateFlagsNN,
5135    pub window: *mut core::ffi::c_void,
5136}
5137impl Default for ViSurfaceCreateInfoNN {
5138    #[inline]
5139    fn default() -> Self {
5140        Self {
5141            s_type: StructureType::from_raw(1000062000i32),
5142            p_next: core::ptr::null(),
5143            flags: Default::default(),
5144            window: core::ptr::null_mut(),
5145        }
5146    }
5147}
5148///[`VkWaylandSurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWaylandSurfaceCreateInfoKHR.html)
5149/**
5150Provided by **VK_KHR_wayland_surface**.*/
5151#[repr(C)]
5152#[derive(Copy, Clone, Debug)]
5153#[doc(alias = "VkWaylandSurfaceCreateInfoKHR")]
5154pub struct WaylandSurfaceCreateInfoKHR {
5155    ///Must be `VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR`.
5156    pub s_type: StructureType,
5157    ///Optional, may be null.
5158    pub p_next: *const core::ffi::c_void,
5159    pub flags: WaylandSurfaceCreateFlagsKHR,
5160    pub display: *mut core::ffi::c_void,
5161    pub surface: *mut core::ffi::c_void,
5162}
5163impl Default for WaylandSurfaceCreateInfoKHR {
5164    #[inline]
5165    fn default() -> Self {
5166        Self {
5167            s_type: StructureType::from_raw(1000006000i32),
5168            p_next: core::ptr::null(),
5169            flags: Default::default(),
5170            display: core::ptr::null_mut(),
5171            surface: core::ptr::null_mut(),
5172        }
5173    }
5174}
5175///[`VkUbmSurfaceCreateInfoSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkUbmSurfaceCreateInfoSEC.html)
5176/**
5177Provided by **VK_SEC_ubm_surface**.*/
5178#[repr(C)]
5179#[derive(Copy, Clone, Debug)]
5180#[doc(alias = "VkUbmSurfaceCreateInfoSEC")]
5181pub struct UbmSurfaceCreateInfoSEC {
5182    ///Must be `VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC`.
5183    pub s_type: StructureType,
5184    ///Optional, may be null.
5185    pub p_next: *const core::ffi::c_void,
5186    pub flags: UbmSurfaceCreateFlagsSEC,
5187    pub device: *mut core::ffi::c_void,
5188    pub surface: *mut core::ffi::c_void,
5189}
5190impl Default for UbmSurfaceCreateInfoSEC {
5191    #[inline]
5192    fn default() -> Self {
5193        Self {
5194            s_type: StructureType::from_raw(1000664000i32),
5195            p_next: core::ptr::null(),
5196            flags: Default::default(),
5197            device: core::ptr::null_mut(),
5198            surface: core::ptr::null_mut(),
5199        }
5200    }
5201}
5202///[`VkWin32SurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWin32SurfaceCreateInfoKHR.html)
5203/**
5204Provided by **VK_KHR_win32_surface**.*/
5205#[repr(C)]
5206#[derive(Copy, Clone, Debug)]
5207#[doc(alias = "VkWin32SurfaceCreateInfoKHR")]
5208pub struct Win32SurfaceCreateInfoKHR {
5209    ///Must be `VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR`.
5210    pub s_type: StructureType,
5211    ///Optional, may be null.
5212    pub p_next: *const core::ffi::c_void,
5213    pub flags: Win32SurfaceCreateFlagsKHR,
5214    pub hinstance: isize,
5215    pub hwnd: isize,
5216}
5217impl Default for Win32SurfaceCreateInfoKHR {
5218    #[inline]
5219    fn default() -> Self {
5220        Self {
5221            s_type: StructureType::from_raw(1000009000i32),
5222            p_next: core::ptr::null(),
5223            flags: Default::default(),
5224            hinstance: Default::default(),
5225            hwnd: Default::default(),
5226        }
5227    }
5228}
5229///[`VkXlibSurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkXlibSurfaceCreateInfoKHR.html)
5230/**
5231Provided by **VK_KHR_xlib_surface**.*/
5232#[repr(C)]
5233#[derive(Copy, Clone, Debug)]
5234#[doc(alias = "VkXlibSurfaceCreateInfoKHR")]
5235pub struct XlibSurfaceCreateInfoKHR {
5236    ///Must be `VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR`.
5237    pub s_type: StructureType,
5238    ///Optional, may be null.
5239    pub p_next: *const core::ffi::c_void,
5240    pub flags: XlibSurfaceCreateFlagsKHR,
5241    pub dpy: *mut core::ffi::c_void,
5242    pub window: core::ffi::c_ulong,
5243}
5244impl Default for XlibSurfaceCreateInfoKHR {
5245    #[inline]
5246    fn default() -> Self {
5247        Self {
5248            s_type: StructureType::from_raw(1000004000i32),
5249            p_next: core::ptr::null(),
5250            flags: Default::default(),
5251            dpy: core::ptr::null_mut(),
5252            window: Default::default(),
5253        }
5254    }
5255}
5256///[`VkXcbSurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkXcbSurfaceCreateInfoKHR.html)
5257/**
5258Provided by **VK_KHR_xcb_surface**.*/
5259#[repr(C)]
5260#[derive(Copy, Clone, Debug)]
5261#[doc(alias = "VkXcbSurfaceCreateInfoKHR")]
5262pub struct XcbSurfaceCreateInfoKHR {
5263    ///Must be `VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR`.
5264    pub s_type: StructureType,
5265    ///Optional, may be null.
5266    pub p_next: *const core::ffi::c_void,
5267    pub flags: XcbSurfaceCreateFlagsKHR,
5268    pub connection: *mut core::ffi::c_void,
5269    pub window: u32,
5270}
5271impl Default for XcbSurfaceCreateInfoKHR {
5272    #[inline]
5273    fn default() -> Self {
5274        Self {
5275            s_type: StructureType::from_raw(1000005000i32),
5276            p_next: core::ptr::null(),
5277            flags: Default::default(),
5278            connection: core::ptr::null_mut(),
5279            window: Default::default(),
5280        }
5281    }
5282}
5283///[`VkDirectFBSurfaceCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDirectFBSurfaceCreateInfoEXT.html)
5284/**
5285Provided by **VK_EXT_directfb_surface**.*/
5286#[repr(C)]
5287#[derive(Copy, Clone, Debug)]
5288#[doc(alias = "VkDirectFBSurfaceCreateInfoEXT")]
5289pub struct DirectFBSurfaceCreateInfoEXT {
5290    ///Must be `VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT`.
5291    pub s_type: StructureType,
5292    ///Optional, may be null.
5293    pub p_next: *const core::ffi::c_void,
5294    pub flags: DirectFBSurfaceCreateFlagsEXT,
5295    pub dfb: *mut core::ffi::c_void,
5296    pub surface: *mut core::ffi::c_void,
5297}
5298impl Default for DirectFBSurfaceCreateInfoEXT {
5299    #[inline]
5300    fn default() -> Self {
5301        Self {
5302            s_type: StructureType::from_raw(1000346000i32),
5303            p_next: core::ptr::null(),
5304            flags: Default::default(),
5305            dfb: core::ptr::null_mut(),
5306            surface: core::ptr::null_mut(),
5307        }
5308    }
5309}
5310///[`VkImagePipeSurfaceCreateInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImagePipeSurfaceCreateInfoFUCHSIA.html)
5311/**
5312Provided by **VK_FUCHSIA_imagepipe_surface**.*/
5313#[repr(C)]
5314#[derive(Copy, Clone, Debug)]
5315#[doc(alias = "VkImagePipeSurfaceCreateInfoFUCHSIA")]
5316pub struct ImagePipeSurfaceCreateInfoFUCHSIA {
5317    ///Must be `VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA`.
5318    pub s_type: StructureType,
5319    ///Optional, may be null.
5320    pub p_next: *const core::ffi::c_void,
5321    pub flags: ImagePipeSurfaceCreateFlagsFUCHSIA,
5322    pub image_pipe_handle: u32,
5323}
5324impl Default for ImagePipeSurfaceCreateInfoFUCHSIA {
5325    #[inline]
5326    fn default() -> Self {
5327        Self {
5328            s_type: StructureType::from_raw(1000214000i32),
5329            p_next: core::ptr::null(),
5330            flags: Default::default(),
5331            image_pipe_handle: Default::default(),
5332        }
5333    }
5334}
5335///[`VkStreamDescriptorSurfaceCreateInfoGGP`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStreamDescriptorSurfaceCreateInfoGGP.html)
5336/**
5337Provided by **VK_GGP_stream_descriptor_surface**.*/
5338#[repr(C)]
5339#[derive(Copy, Clone, Debug)]
5340#[doc(alias = "VkStreamDescriptorSurfaceCreateInfoGGP")]
5341pub struct StreamDescriptorSurfaceCreateInfoGGP {
5342    ///Must be `VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP`.
5343    pub s_type: StructureType,
5344    ///Optional, may be null.
5345    pub p_next: *const core::ffi::c_void,
5346    pub flags: StreamDescriptorSurfaceCreateFlagsGGP,
5347    pub stream_descriptor: u32,
5348}
5349impl Default for StreamDescriptorSurfaceCreateInfoGGP {
5350    #[inline]
5351    fn default() -> Self {
5352        Self {
5353            s_type: StructureType::from_raw(1000049000i32),
5354            p_next: core::ptr::null(),
5355            flags: Default::default(),
5356            stream_descriptor: Default::default(),
5357        }
5358    }
5359}
5360///[`VkScreenSurfaceCreateInfoQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkScreenSurfaceCreateInfoQNX.html)
5361/**
5362Provided by **VK_QNX_screen_surface**.*/
5363#[repr(C)]
5364#[derive(Copy, Clone, Debug)]
5365#[doc(alias = "VkScreenSurfaceCreateInfoQNX")]
5366pub struct ScreenSurfaceCreateInfoQNX {
5367    ///Must be `VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX`.
5368    pub s_type: StructureType,
5369    ///Optional, may be null.
5370    pub p_next: *const core::ffi::c_void,
5371    pub flags: ScreenSurfaceCreateFlagsQNX,
5372    pub context: *mut core::ffi::c_void,
5373    pub window: *mut core::ffi::c_void,
5374}
5375impl Default for ScreenSurfaceCreateInfoQNX {
5376    #[inline]
5377    fn default() -> Self {
5378        Self {
5379            s_type: StructureType::from_raw(1000378000i32),
5380            p_next: core::ptr::null(),
5381            flags: Default::default(),
5382            context: core::ptr::null_mut(),
5383            window: core::ptr::null_mut(),
5384        }
5385    }
5386}
5387///[`VkSurfaceFormatKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFormatKHR.html)
5388/**
5389Provided by **VK_KHR_surface**.*/
5390/**
5391**Returned only**, filled by Vulkan, not constructed by the application.*/
5392#[repr(C)]
5393#[derive(Copy, Clone, Debug)]
5394#[doc(alias = "VkSurfaceFormatKHR")]
5395pub struct SurfaceFormatKHR {
5396    pub format: Format,
5397    pub color_space: ColorSpaceKHR,
5398}
5399impl Default for SurfaceFormatKHR {
5400    #[inline]
5401    fn default() -> Self {
5402        unsafe { core::mem::zeroed() }
5403    }
5404}
5405///[`VkSwapchainCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainCreateInfoKHR.html)
5406/**
5407Provided by **VK_KHR_swapchain**.*/
5408///
5409///# Extended By
5410///- [`DeviceGroupSwapchainCreateInfoKHR`]
5411///- [`ImageCompressionControlEXT`]
5412///- [`ImageFormatListCreateInfo`]
5413///- [`SurfaceFullScreenExclusiveInfoEXT`]
5414///- [`SurfaceFullScreenExclusiveWin32InfoEXT`]
5415///- [`SwapchainCounterCreateInfoEXT`]
5416///- [`SwapchainDisplayNativeHdrCreateInfoAMD`]
5417///- [`SwapchainLatencyCreateInfoNV`]
5418///- [`SwapchainPresentBarrierCreateInfoNV`]
5419///- [`SwapchainPresentModesCreateInfoKHR`]
5420///- [`SwapchainPresentScalingCreateInfoKHR`]
5421#[repr(C)]
5422#[derive(Copy, Clone, Debug)]
5423#[doc(alias = "VkSwapchainCreateInfoKHR")]
5424pub struct SwapchainCreateInfoKHR {
5425    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR`.
5426    pub s_type: StructureType,
5427    ///Optional, may be null.
5428    pub p_next: *const core::ffi::c_void,
5429    pub flags: SwapchainCreateFlagsKHR,
5430    ///**Thread safety:** must be externally synchronized.
5431    pub surface: SurfaceKHR,
5432    pub min_image_count: u32,
5433    pub image_format: Format,
5434    pub image_color_space: ColorSpaceKHR,
5435    pub image_extent: Extent2D,
5436    pub image_array_layers: u32,
5437    pub image_usage: ImageUsageFlags,
5438    pub image_sharing_mode: SharingMode,
5439    ///Length of `p_queue_family_indices`.
5440    pub queue_family_index_count: u32,
5441    pub p_queue_family_indices: *const u32,
5442    pub pre_transform: SurfaceTransformFlagBitsKHR,
5443    pub composite_alpha: CompositeAlphaFlagBitsKHR,
5444    pub present_mode: PresentModeKHR,
5445    pub clipped: u32,
5446    ///**Thread safety:** must be externally synchronized.
5447    pub old_swapchain: SwapchainKHR,
5448}
5449impl Default for SwapchainCreateInfoKHR {
5450    #[inline]
5451    fn default() -> Self {
5452        Self {
5453            s_type: StructureType::from_raw(1000001000i32),
5454            p_next: core::ptr::null(),
5455            flags: Default::default(),
5456            surface: Default::default(),
5457            min_image_count: Default::default(),
5458            image_format: Default::default(),
5459            image_color_space: Default::default(),
5460            image_extent: Default::default(),
5461            image_array_layers: Default::default(),
5462            image_usage: Default::default(),
5463            image_sharing_mode: Default::default(),
5464            queue_family_index_count: Default::default(),
5465            p_queue_family_indices: core::ptr::null(),
5466            pre_transform: Default::default(),
5467            composite_alpha: Default::default(),
5468            present_mode: Default::default(),
5469            clipped: Default::default(),
5470            old_swapchain: Default::default(),
5471        }
5472    }
5473}
5474///[`VkPresentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentInfoKHR.html)
5475/**
5476Provided by **VK_KHR_swapchain**.*/
5477///
5478///# Extended By
5479///- [`DeviceGroupPresentInfoKHR`]
5480///- [`DisplayPresentInfoKHR`]
5481///- [`FrameBoundaryEXT`]
5482///- [`FrameBoundaryTensorsARM`]
5483///- [`PresentFrameTokenGGP`]
5484///- [`PresentId2KHR`]
5485///- [`PresentIdKHR`]
5486///- [`PresentRegionsKHR`]
5487///- [`PresentTimesInfoGOOGLE`]
5488///- [`PresentTimingsInfoEXT`]
5489///- [`SetPresentConfigNV`]
5490///- [`SwapchainPresentFenceInfoKHR`]
5491///- [`SwapchainPresentModeInfoKHR`]
5492#[repr(C)]
5493#[derive(Copy, Clone, Debug)]
5494#[doc(alias = "VkPresentInfoKHR")]
5495pub struct PresentInfoKHR {
5496    ///Must be `VK_STRUCTURE_TYPE_PRESENT_INFO_KHR`.
5497    pub s_type: StructureType,
5498    ///Optional, may be null.
5499    pub p_next: *const core::ffi::c_void,
5500    ///Length of `p_wait_semaphores`.
5501    pub wait_semaphore_count: u32,
5502    ///**Thread safety:** must be externally synchronized.
5503    pub p_wait_semaphores: *const Semaphore,
5504    ///Length of `p_results`.
5505    pub swapchain_count: u32,
5506    ///**Thread safety:** must be externally synchronized.
5507    pub p_swapchains: *const SwapchainKHR,
5508    pub p_image_indices: *const u32,
5509    ///Optional, may be null.
5510    pub p_results: *mut Result,
5511}
5512impl Default for PresentInfoKHR {
5513    #[inline]
5514    fn default() -> Self {
5515        Self {
5516            s_type: StructureType::from_raw(1000001001i32),
5517            p_next: core::ptr::null(),
5518            wait_semaphore_count: Default::default(),
5519            p_wait_semaphores: core::ptr::null(),
5520            swapchain_count: Default::default(),
5521            p_swapchains: core::ptr::null(),
5522            p_image_indices: core::ptr::null(),
5523            p_results: core::ptr::null_mut(),
5524        }
5525    }
5526}
5527///[`VkDebugReportCallbackCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugReportCallbackCreateInfoEXT.html)
5528/**
5529Provided by **VK_EXT_debug_report**.*/
5530///
5531///# Extends
5532///- [`InstanceCreateInfo`]
5533#[repr(C)]
5534#[derive(Copy, Clone, Debug)]
5535#[doc(alias = "VkDebugReportCallbackCreateInfoEXT")]
5536pub struct DebugReportCallbackCreateInfoEXT {
5537    ///Must be `VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT`.
5538    pub s_type: StructureType,
5539    ///Optional, may be null.
5540    pub p_next: *const core::ffi::c_void,
5541    pub flags: DebugReportFlagsEXT,
5542    pub pfn_callback: PFN_vkDebugReportCallbackEXT,
5543    ///Optional, may be null.
5544    pub p_user_data: *mut core::ffi::c_void,
5545}
5546impl Default for DebugReportCallbackCreateInfoEXT {
5547    #[inline]
5548    fn default() -> Self {
5549        Self {
5550            s_type: StructureType::from_raw(1000011000i32),
5551            p_next: core::ptr::null(),
5552            flags: Default::default(),
5553            pfn_callback: Default::default(),
5554            p_user_data: core::ptr::null_mut(),
5555        }
5556    }
5557}
5558///[`VkValidationFlagsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkValidationFlagsEXT.html)
5559/**
5560Provided by **VK_EXT_validation_flags**.*/
5561///
5562///# Extends
5563///- [`InstanceCreateInfo`]
5564#[repr(C)]
5565#[derive(Copy, Clone, Debug)]
5566#[doc(alias = "VkValidationFlagsEXT")]
5567pub struct ValidationFlagsEXT {
5568    ///Must be `VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT`.
5569    pub s_type: StructureType,
5570    ///Optional, may be null.
5571    pub p_next: *const core::ffi::c_void,
5572    ///Length of `p_disabled_validation_checks`.
5573    pub disabled_validation_check_count: u32,
5574    pub p_disabled_validation_checks: *const ValidationCheckEXT,
5575}
5576impl Default for ValidationFlagsEXT {
5577    #[inline]
5578    fn default() -> Self {
5579        Self {
5580            s_type: StructureType::from_raw(1000061000i32),
5581            p_next: core::ptr::null(),
5582            disabled_validation_check_count: Default::default(),
5583            p_disabled_validation_checks: core::ptr::null(),
5584        }
5585    }
5586}
5587///[`VkValidationFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkValidationFeaturesEXT.html)
5588/**
5589Provided by **VK_EXT_validation_features**.*/
5590///
5591///# Extends
5592///- [`InstanceCreateInfo`]
5593///- [`ShaderModuleCreateInfo`]
5594///- [`ShaderCreateInfoEXT`]
5595#[repr(C)]
5596#[derive(Copy, Clone, Debug)]
5597#[doc(alias = "VkValidationFeaturesEXT")]
5598pub struct ValidationFeaturesEXT {
5599    ///Must be `VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT`.
5600    pub s_type: StructureType,
5601    ///Optional, may be null.
5602    pub p_next: *const core::ffi::c_void,
5603    ///Length of `p_enabled_validation_features`.
5604    pub enabled_validation_feature_count: u32,
5605    pub p_enabled_validation_features: *const ValidationFeatureEnableEXT,
5606    ///Length of `p_disabled_validation_features`.
5607    pub disabled_validation_feature_count: u32,
5608    pub p_disabled_validation_features: *const ValidationFeatureDisableEXT,
5609}
5610impl Default for ValidationFeaturesEXT {
5611    #[inline]
5612    fn default() -> Self {
5613        Self {
5614            s_type: StructureType::from_raw(1000247000i32),
5615            p_next: core::ptr::null(),
5616            enabled_validation_feature_count: Default::default(),
5617            p_enabled_validation_features: core::ptr::null(),
5618            disabled_validation_feature_count: Default::default(),
5619            p_disabled_validation_features: core::ptr::null(),
5620        }
5621    }
5622}
5623///[`VkLayerSettingsCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLayerSettingsCreateInfoEXT.html)
5624/**
5625Provided by **VK_EXT_layer_settings**.*/
5626///
5627///# Extends
5628///- [`InstanceCreateInfo`]
5629#[repr(C)]
5630#[derive(Copy, Clone, Debug)]
5631#[doc(alias = "VkLayerSettingsCreateInfoEXT")]
5632pub struct LayerSettingsCreateInfoEXT {
5633    ///Must be `VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT`.
5634    pub s_type: StructureType,
5635    ///Optional, may be null.
5636    pub p_next: *const core::ffi::c_void,
5637    ///Length of `p_settings`.
5638    pub setting_count: u32,
5639    pub p_settings: *const LayerSettingEXT,
5640}
5641impl Default for LayerSettingsCreateInfoEXT {
5642    #[inline]
5643    fn default() -> Self {
5644        Self {
5645            s_type: StructureType::from_raw(1000496000i32),
5646            p_next: core::ptr::null(),
5647            setting_count: Default::default(),
5648            p_settings: core::ptr::null(),
5649        }
5650    }
5651}
5652///[`VkLayerSettingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLayerSettingEXT.html)
5653/**
5654Provided by **VK_EXT_layer_settings**.*/
5655#[repr(C)]
5656#[derive(Copy, Clone, Debug)]
5657#[doc(alias = "VkLayerSettingEXT")]
5658pub struct LayerSettingEXT {
5659    pub p_layer_name: *const core::ffi::c_char,
5660    pub p_setting_name: *const core::ffi::c_char,
5661    pub r#type: LayerSettingTypeEXT,
5662    ///Length of `p_values`.
5663    pub value_count: u32,
5664    pub p_values: *const core::ffi::c_void,
5665}
5666impl Default for LayerSettingEXT {
5667    #[inline]
5668    fn default() -> Self {
5669        unsafe { core::mem::zeroed() }
5670    }
5671}
5672///[`VkApplicationParametersEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkApplicationParametersEXT.html)
5673///
5674///# Extends
5675///- [`ApplicationInfo`]
5676///- [`DeviceCreateInfo`]
5677#[repr(C)]
5678#[derive(Copy, Clone, Debug)]
5679#[doc(alias = "VkApplicationParametersEXT")]
5680pub struct ApplicationParametersEXT {
5681    ///Must be `VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT`.
5682    pub s_type: StructureType,
5683    ///Optional, may be null.
5684    pub p_next: *const core::ffi::c_void,
5685    pub vendor_id: u32,
5686    pub device_id: u32,
5687    pub key: u32,
5688    pub value: u64,
5689}
5690impl Default for ApplicationParametersEXT {
5691    #[inline]
5692    fn default() -> Self {
5693        Self {
5694            s_type: Default::default(),
5695            p_next: core::ptr::null(),
5696            vendor_id: Default::default(),
5697            device_id: Default::default(),
5698            key: Default::default(),
5699            value: Default::default(),
5700        }
5701    }
5702}
5703///[`VkPipelineRasterizationStateRasterizationOrderAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationStateRasterizationOrderAMD.html)
5704/**
5705Provided by **VK_AMD_rasterization_order**.*/
5706///
5707///# Extends
5708///- [`PipelineRasterizationStateCreateInfo`]
5709#[repr(C)]
5710#[derive(Copy, Clone, Debug)]
5711#[doc(alias = "VkPipelineRasterizationStateRasterizationOrderAMD")]
5712pub struct PipelineRasterizationStateRasterizationOrderAMD {
5713    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD`.
5714    pub s_type: StructureType,
5715    ///Optional, may be null.
5716    pub p_next: *const core::ffi::c_void,
5717    pub rasterization_order: RasterizationOrderAMD,
5718}
5719impl Default for PipelineRasterizationStateRasterizationOrderAMD {
5720    #[inline]
5721    fn default() -> Self {
5722        Self {
5723            s_type: StructureType::from_raw(1000018000i32),
5724            p_next: core::ptr::null(),
5725            rasterization_order: Default::default(),
5726        }
5727    }
5728}
5729///[`VkDebugMarkerObjectNameInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugMarkerObjectNameInfoEXT.html)
5730/**
5731Provided by **VK_EXT_debug_marker**.*/
5732#[repr(C)]
5733#[derive(Copy, Clone, Debug)]
5734#[doc(alias = "VkDebugMarkerObjectNameInfoEXT")]
5735pub struct DebugMarkerObjectNameInfoEXT {
5736    ///Must be `VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT`.
5737    pub s_type: StructureType,
5738    ///Optional, may be null.
5739    pub p_next: *const core::ffi::c_void,
5740    pub object_type: DebugReportObjectTypeEXT,
5741    ///**Thread safety:** must be externally synchronized.
5742    pub object: u64,
5743    pub p_object_name: *const core::ffi::c_char,
5744}
5745impl Default for DebugMarkerObjectNameInfoEXT {
5746    #[inline]
5747    fn default() -> Self {
5748        Self {
5749            s_type: StructureType::from_raw(1000022000i32),
5750            p_next: core::ptr::null(),
5751            object_type: Default::default(),
5752            object: Default::default(),
5753            p_object_name: core::ptr::null(),
5754        }
5755    }
5756}
5757///[`VkDebugMarkerObjectTagInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugMarkerObjectTagInfoEXT.html)
5758/**
5759Provided by **VK_EXT_debug_marker**.*/
5760#[repr(C)]
5761#[derive(Copy, Clone, Debug)]
5762#[doc(alias = "VkDebugMarkerObjectTagInfoEXT")]
5763pub struct DebugMarkerObjectTagInfoEXT {
5764    ///Must be `VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT`.
5765    pub s_type: StructureType,
5766    ///Optional, may be null.
5767    pub p_next: *const core::ffi::c_void,
5768    pub object_type: DebugReportObjectTypeEXT,
5769    ///**Thread safety:** must be externally synchronized.
5770    pub object: u64,
5771    pub tag_name: u64,
5772    ///Length of `p_tag`.
5773    pub tag_size: usize,
5774    pub p_tag: *const core::ffi::c_void,
5775}
5776impl Default for DebugMarkerObjectTagInfoEXT {
5777    #[inline]
5778    fn default() -> Self {
5779        Self {
5780            s_type: StructureType::from_raw(1000022001i32),
5781            p_next: core::ptr::null(),
5782            object_type: Default::default(),
5783            object: Default::default(),
5784            tag_name: Default::default(),
5785            tag_size: Default::default(),
5786            p_tag: core::ptr::null(),
5787        }
5788    }
5789}
5790///[`VkDebugMarkerMarkerInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugMarkerMarkerInfoEXT.html)
5791/**
5792Provided by **VK_EXT_debug_marker**.*/
5793#[repr(C)]
5794#[derive(Copy, Clone, Debug)]
5795#[doc(alias = "VkDebugMarkerMarkerInfoEXT")]
5796pub struct DebugMarkerMarkerInfoEXT {
5797    ///Must be `VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT`.
5798    pub s_type: StructureType,
5799    ///Optional, may be null.
5800    pub p_next: *const core::ffi::c_void,
5801    pub p_marker_name: *const core::ffi::c_char,
5802    pub color: [f32; 4usize],
5803}
5804impl Default for DebugMarkerMarkerInfoEXT {
5805    #[inline]
5806    fn default() -> Self {
5807        Self {
5808            s_type: StructureType::from_raw(1000022002i32),
5809            p_next: core::ptr::null(),
5810            p_marker_name: core::ptr::null(),
5811            color: unsafe { core::mem::zeroed() },
5812        }
5813    }
5814}
5815///[`VkDedicatedAllocationImageCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDedicatedAllocationImageCreateInfoNV.html)
5816/**
5817Provided by **VK_NV_dedicated_allocation**.*/
5818///
5819///# Extends
5820///- [`ImageCreateInfo`]
5821#[repr(C)]
5822#[derive(Copy, Clone, Debug)]
5823#[doc(alias = "VkDedicatedAllocationImageCreateInfoNV")]
5824pub struct DedicatedAllocationImageCreateInfoNV {
5825    ///Must be `VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV`.
5826    pub s_type: StructureType,
5827    ///Optional, may be null.
5828    pub p_next: *const core::ffi::c_void,
5829    pub dedicated_allocation: u32,
5830}
5831impl Default for DedicatedAllocationImageCreateInfoNV {
5832    #[inline]
5833    fn default() -> Self {
5834        Self {
5835            s_type: StructureType::from_raw(1000026000i32),
5836            p_next: core::ptr::null(),
5837            dedicated_allocation: Default::default(),
5838        }
5839    }
5840}
5841///[`VkDedicatedAllocationBufferCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDedicatedAllocationBufferCreateInfoNV.html)
5842/**
5843Provided by **VK_NV_dedicated_allocation**.*/
5844///
5845///# Extends
5846///- [`BufferCreateInfo`]
5847#[repr(C)]
5848#[derive(Copy, Clone, Debug)]
5849#[doc(alias = "VkDedicatedAllocationBufferCreateInfoNV")]
5850pub struct DedicatedAllocationBufferCreateInfoNV {
5851    ///Must be `VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV`.
5852    pub s_type: StructureType,
5853    ///Optional, may be null.
5854    pub p_next: *const core::ffi::c_void,
5855    pub dedicated_allocation: u32,
5856}
5857impl Default for DedicatedAllocationBufferCreateInfoNV {
5858    #[inline]
5859    fn default() -> Self {
5860        Self {
5861            s_type: StructureType::from_raw(1000026001i32),
5862            p_next: core::ptr::null(),
5863            dedicated_allocation: Default::default(),
5864        }
5865    }
5866}
5867///[`VkDedicatedAllocationMemoryAllocateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDedicatedAllocationMemoryAllocateInfoNV.html)
5868/**
5869Provided by **VK_NV_dedicated_allocation**.*/
5870///
5871///# Extends
5872///- [`MemoryAllocateInfo`]
5873#[repr(C)]
5874#[derive(Copy, Clone, Debug)]
5875#[doc(alias = "VkDedicatedAllocationMemoryAllocateInfoNV")]
5876pub struct DedicatedAllocationMemoryAllocateInfoNV {
5877    ///Must be `VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV`.
5878    pub s_type: StructureType,
5879    ///Optional, may be null.
5880    pub p_next: *const core::ffi::c_void,
5881    pub image: Image,
5882    pub buffer: Buffer,
5883}
5884impl Default for DedicatedAllocationMemoryAllocateInfoNV {
5885    #[inline]
5886    fn default() -> Self {
5887        Self {
5888            s_type: StructureType::from_raw(1000026002i32),
5889            p_next: core::ptr::null(),
5890            image: Default::default(),
5891            buffer: Default::default(),
5892        }
5893    }
5894}
5895///[`VkExternalImageFormatPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalImageFormatPropertiesNV.html)
5896/**
5897Provided by **VK_NV_external_memory_capabilities**.*/
5898/**
5899**Returned only**, filled by Vulkan, not constructed by the application.*/
5900#[repr(C)]
5901#[derive(Copy, Clone, Debug)]
5902#[doc(alias = "VkExternalImageFormatPropertiesNV")]
5903pub struct ExternalImageFormatPropertiesNV {
5904    pub image_format_properties: ImageFormatProperties,
5905    pub external_memory_features: ExternalMemoryFeatureFlagsNV,
5906    pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlagsNV,
5907    pub compatible_handle_types: ExternalMemoryHandleTypeFlagsNV,
5908}
5909impl Default for ExternalImageFormatPropertiesNV {
5910    #[inline]
5911    fn default() -> Self {
5912        unsafe { core::mem::zeroed() }
5913    }
5914}
5915///[`VkExternalMemoryImageCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryImageCreateInfoNV.html)
5916/**
5917Provided by **VK_NV_external_memory**.*/
5918///
5919///# Extends
5920///- [`ImageCreateInfo`]
5921#[repr(C)]
5922#[derive(Copy, Clone, Debug)]
5923#[doc(alias = "VkExternalMemoryImageCreateInfoNV")]
5924pub struct ExternalMemoryImageCreateInfoNV {
5925    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV`.
5926    pub s_type: StructureType,
5927    ///Optional, may be null.
5928    pub p_next: *const core::ffi::c_void,
5929    pub handle_types: ExternalMemoryHandleTypeFlagsNV,
5930}
5931impl Default for ExternalMemoryImageCreateInfoNV {
5932    #[inline]
5933    fn default() -> Self {
5934        Self {
5935            s_type: StructureType::from_raw(1000056000i32),
5936            p_next: core::ptr::null(),
5937            handle_types: Default::default(),
5938        }
5939    }
5940}
5941///[`VkExportMemoryAllocateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemoryAllocateInfoNV.html)
5942/**
5943Provided by **VK_NV_external_memory**.*/
5944///
5945///# Extends
5946///- [`MemoryAllocateInfo`]
5947#[repr(C)]
5948#[derive(Copy, Clone, Debug)]
5949#[doc(alias = "VkExportMemoryAllocateInfoNV")]
5950pub struct ExportMemoryAllocateInfoNV {
5951    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV`.
5952    pub s_type: StructureType,
5953    ///Optional, may be null.
5954    pub p_next: *const core::ffi::c_void,
5955    pub handle_types: ExternalMemoryHandleTypeFlagsNV,
5956}
5957impl Default for ExportMemoryAllocateInfoNV {
5958    #[inline]
5959    fn default() -> Self {
5960        Self {
5961            s_type: StructureType::from_raw(1000056001i32),
5962            p_next: core::ptr::null(),
5963            handle_types: Default::default(),
5964        }
5965    }
5966}
5967///[`VkImportMemoryWin32HandleInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryWin32HandleInfoNV.html)
5968/**
5969Provided by **VK_NV_external_memory_win32**.*/
5970///
5971///# Extends
5972///- [`MemoryAllocateInfo`]
5973#[repr(C)]
5974#[derive(Copy, Clone, Debug)]
5975#[doc(alias = "VkImportMemoryWin32HandleInfoNV")]
5976pub struct ImportMemoryWin32HandleInfoNV {
5977    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV`.
5978    pub s_type: StructureType,
5979    ///Optional, may be null.
5980    pub p_next: *const core::ffi::c_void,
5981    pub handle_type: ExternalMemoryHandleTypeFlagsNV,
5982    pub handle: isize,
5983}
5984impl Default for ImportMemoryWin32HandleInfoNV {
5985    #[inline]
5986    fn default() -> Self {
5987        Self {
5988            s_type: StructureType::from_raw(1000057000i32),
5989            p_next: core::ptr::null(),
5990            handle_type: Default::default(),
5991            handle: Default::default(),
5992        }
5993    }
5994}
5995///[`VkExportMemoryWin32HandleInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemoryWin32HandleInfoNV.html)
5996/**
5997Provided by **VK_NV_external_memory_win32**.*/
5998///
5999///# Extends
6000///- [`MemoryAllocateInfo`]
6001#[repr(C)]
6002#[derive(Copy, Clone, Debug)]
6003#[doc(alias = "VkExportMemoryWin32HandleInfoNV")]
6004pub struct ExportMemoryWin32HandleInfoNV {
6005    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV`.
6006    pub s_type: StructureType,
6007    ///Optional, may be null.
6008    pub p_next: *const core::ffi::c_void,
6009    ///Optional, may be null.
6010    pub p_attributes: *const core::ffi::c_void,
6011    pub dw_access: u32,
6012}
6013impl Default for ExportMemoryWin32HandleInfoNV {
6014    #[inline]
6015    fn default() -> Self {
6016        Self {
6017            s_type: StructureType::from_raw(1000057001i32),
6018            p_next: core::ptr::null(),
6019            p_attributes: core::ptr::null(),
6020            dw_access: Default::default(),
6021        }
6022    }
6023}
6024///[`VkExportMemorySciBufInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemorySciBufInfoNV.html)
6025///
6026///# Extends
6027///- [`MemoryAllocateInfo`]
6028#[repr(C)]
6029#[derive(Copy, Clone, Debug)]
6030#[doc(alias = "VkExportMemorySciBufInfoNV")]
6031pub struct ExportMemorySciBufInfoNV {
6032    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV`.
6033    pub s_type: StructureType,
6034    ///Optional, may be null.
6035    pub p_next: *const core::ffi::c_void,
6036    pub p_attributes: *const core::ffi::c_void,
6037}
6038impl Default for ExportMemorySciBufInfoNV {
6039    #[inline]
6040    fn default() -> Self {
6041        Self {
6042            s_type: Default::default(),
6043            p_next: core::ptr::null(),
6044            p_attributes: core::ptr::null(),
6045        }
6046    }
6047}
6048///[`VkImportMemorySciBufInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemorySciBufInfoNV.html)
6049///
6050///# Extends
6051///- [`MemoryAllocateInfo`]
6052#[repr(C)]
6053#[derive(Copy, Clone, Debug)]
6054#[doc(alias = "VkImportMemorySciBufInfoNV")]
6055pub struct ImportMemorySciBufInfoNV {
6056    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV`.
6057    pub s_type: StructureType,
6058    ///Optional, may be null.
6059    pub p_next: *const core::ffi::c_void,
6060    pub handle_type: ExternalMemoryHandleTypeFlagBits,
6061    pub handle: *const core::ffi::c_void,
6062}
6063impl Default for ImportMemorySciBufInfoNV {
6064    #[inline]
6065    fn default() -> Self {
6066        Self {
6067            s_type: Default::default(),
6068            p_next: core::ptr::null(),
6069            handle_type: Default::default(),
6070            handle: core::ptr::null(),
6071        }
6072    }
6073}
6074///[`VkMemoryGetSciBufInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetSciBufInfoNV.html)
6075#[repr(C)]
6076#[derive(Copy, Clone, Debug)]
6077#[doc(alias = "VkMemoryGetSciBufInfoNV")]
6078pub struct MemoryGetSciBufInfoNV {
6079    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV`.
6080    pub s_type: StructureType,
6081    ///Optional, may be null.
6082    pub p_next: *const core::ffi::c_void,
6083    pub memory: DeviceMemory,
6084    pub handle_type: ExternalMemoryHandleTypeFlagBits,
6085}
6086impl Default for MemoryGetSciBufInfoNV {
6087    #[inline]
6088    fn default() -> Self {
6089        Self {
6090            s_type: Default::default(),
6091            p_next: core::ptr::null(),
6092            memory: Default::default(),
6093            handle_type: Default::default(),
6094        }
6095    }
6096}
6097///[`VkMemorySciBufPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemorySciBufPropertiesNV.html)
6098#[repr(C)]
6099#[derive(Copy, Clone, Debug)]
6100#[doc(alias = "VkMemorySciBufPropertiesNV")]
6101pub struct MemorySciBufPropertiesNV {
6102    ///Must be `VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV`.
6103    pub s_type: StructureType,
6104    ///Optional, may be null.
6105    pub p_next: *const core::ffi::c_void,
6106    pub memory_type_bits: u32,
6107}
6108impl Default for MemorySciBufPropertiesNV {
6109    #[inline]
6110    fn default() -> Self {
6111        Self {
6112            s_type: Default::default(),
6113            p_next: core::ptr::null(),
6114            memory_type_bits: Default::default(),
6115        }
6116    }
6117}
6118///[`VkPhysicalDeviceExternalMemorySciBufFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalMemorySciBufFeaturesNV.html)
6119///
6120///# Extends
6121///- [`PhysicalDeviceFeatures2`]
6122///- [`DeviceCreateInfo`]
6123#[repr(C)]
6124#[derive(Copy, Clone, Debug)]
6125#[doc(alias = "VkPhysicalDeviceExternalMemorySciBufFeaturesNV")]
6126pub struct PhysicalDeviceExternalMemorySciBufFeaturesNV {
6127    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV`.
6128    pub s_type: StructureType,
6129    ///Optional, may be null.
6130    pub p_next: *mut core::ffi::c_void,
6131    pub sci_buf_import: u32,
6132    pub sci_buf_export: u32,
6133}
6134impl Default for PhysicalDeviceExternalMemorySciBufFeaturesNV {
6135    #[inline]
6136    fn default() -> Self {
6137        Self {
6138            s_type: Default::default(),
6139            p_next: core::ptr::null_mut(),
6140            sci_buf_import: Default::default(),
6141            sci_buf_export: Default::default(),
6142        }
6143    }
6144}
6145///[`VkWin32KeyedMutexAcquireReleaseInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWin32KeyedMutexAcquireReleaseInfoNV.html)
6146/**
6147Provided by **VK_NV_win32_keyed_mutex**.*/
6148///
6149///# Extends
6150///- [`SubmitInfo`]
6151///- [`SubmitInfo2`]
6152#[repr(C)]
6153#[derive(Copy, Clone, Debug)]
6154#[doc(alias = "VkWin32KeyedMutexAcquireReleaseInfoNV")]
6155pub struct Win32KeyedMutexAcquireReleaseInfoNV {
6156    ///Must be `VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV`.
6157    pub s_type: StructureType,
6158    ///Optional, may be null.
6159    pub p_next: *const core::ffi::c_void,
6160    ///Length of `p_acquire_timeout_milliseconds`.
6161    pub acquire_count: u32,
6162    pub p_acquire_syncs: *const DeviceMemory,
6163    pub p_acquire_keys: *const u64,
6164    pub p_acquire_timeout_milliseconds: *const u32,
6165    ///Length of `p_release_keys`.
6166    pub release_count: u32,
6167    pub p_release_syncs: *const DeviceMemory,
6168    pub p_release_keys: *const u64,
6169}
6170impl Default for Win32KeyedMutexAcquireReleaseInfoNV {
6171    #[inline]
6172    fn default() -> Self {
6173        Self {
6174            s_type: StructureType::from_raw(1000058000i32),
6175            p_next: core::ptr::null(),
6176            acquire_count: Default::default(),
6177            p_acquire_syncs: core::ptr::null(),
6178            p_acquire_keys: core::ptr::null(),
6179            p_acquire_timeout_milliseconds: core::ptr::null(),
6180            release_count: Default::default(),
6181            p_release_syncs: core::ptr::null(),
6182            p_release_keys: core::ptr::null(),
6183        }
6184    }
6185}
6186///[`VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.html)
6187/**
6188Provided by **VK_NV_device_generated_commands**.*/
6189///
6190///# Extends
6191///- [`PhysicalDeviceFeatures2`]
6192///- [`DeviceCreateInfo`]
6193#[repr(C)]
6194#[derive(Copy, Clone, Debug)]
6195#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV")]
6196pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
6197    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV`.
6198    pub s_type: StructureType,
6199    ///Optional, may be null.
6200    pub p_next: *mut core::ffi::c_void,
6201    pub device_generated_commands: u32,
6202}
6203impl Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
6204    #[inline]
6205    fn default() -> Self {
6206        Self {
6207            s_type: StructureType::from_raw(1000277007i32),
6208            p_next: core::ptr::null_mut(),
6209            device_generated_commands: Default::default(),
6210        }
6211    }
6212}
6213///[`VkPushConstantBankInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushConstantBankInfoNV.html)
6214/**
6215Provided by **VK_NV_push_constant_bank**.*/
6216///
6217///# Extends
6218///- [`DescriptorSetAndBindingMappingEXT`]
6219///- [`PushDataInfoEXT`]
6220///- [`PushConstantsInfo`]
6221///- [`IndirectCommandsLayoutTokenEXT`]
6222#[repr(C)]
6223#[derive(Copy, Clone, Debug)]
6224#[doc(alias = "VkPushConstantBankInfoNV")]
6225pub struct PushConstantBankInfoNV {
6226    ///Must be `VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV`.
6227    pub s_type: StructureType,
6228    ///Optional, may be null.
6229    pub p_next: *const core::ffi::c_void,
6230    pub bank: u32,
6231}
6232impl Default for PushConstantBankInfoNV {
6233    #[inline]
6234    fn default() -> Self {
6235        Self {
6236            s_type: StructureType::from_raw(1000580000i32),
6237            p_next: core::ptr::null(),
6238            bank: Default::default(),
6239        }
6240    }
6241}
6242///[`VkPhysicalDevicePushConstantBankFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePushConstantBankFeaturesNV.html)
6243/**
6244Provided by **VK_NV_push_constant_bank**.*/
6245///
6246///# Extends
6247///- [`PhysicalDeviceFeatures2`]
6248///- [`DeviceCreateInfo`]
6249#[repr(C)]
6250#[derive(Copy, Clone, Debug)]
6251#[doc(alias = "VkPhysicalDevicePushConstantBankFeaturesNV")]
6252pub struct PhysicalDevicePushConstantBankFeaturesNV {
6253    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV`.
6254    pub s_type: StructureType,
6255    ///Optional, may be null.
6256    pub p_next: *mut core::ffi::c_void,
6257    pub push_constant_bank: u32,
6258}
6259impl Default for PhysicalDevicePushConstantBankFeaturesNV {
6260    #[inline]
6261    fn default() -> Self {
6262        Self {
6263            s_type: StructureType::from_raw(1000580001i32),
6264            p_next: core::ptr::null_mut(),
6265            push_constant_bank: Default::default(),
6266        }
6267    }
6268}
6269///[`VkPhysicalDevicePushConstantBankPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePushConstantBankPropertiesNV.html)
6270/**
6271Provided by **VK_NV_push_constant_bank**.*/
6272/**
6273**Returned only**, filled by Vulkan, not constructed by the application.*/
6274///
6275///# Extends
6276///- [`PhysicalDeviceProperties2`]
6277#[repr(C)]
6278#[derive(Copy, Clone, Debug)]
6279#[doc(alias = "VkPhysicalDevicePushConstantBankPropertiesNV")]
6280pub struct PhysicalDevicePushConstantBankPropertiesNV {
6281    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV`.
6282    pub s_type: StructureType,
6283    ///Optional, may be null.
6284    pub p_next: *mut core::ffi::c_void,
6285    pub max_graphics_push_constant_banks: u32,
6286    pub max_compute_push_constant_banks: u32,
6287    pub max_graphics_push_data_banks: u32,
6288    pub max_compute_push_data_banks: u32,
6289}
6290impl Default for PhysicalDevicePushConstantBankPropertiesNV {
6291    #[inline]
6292    fn default() -> Self {
6293        Self {
6294            s_type: StructureType::from_raw(1000580002i32),
6295            p_next: core::ptr::null_mut(),
6296            max_graphics_push_constant_banks: Default::default(),
6297            max_compute_push_constant_banks: Default::default(),
6298            max_graphics_push_data_banks: Default::default(),
6299            max_compute_push_data_banks: Default::default(),
6300        }
6301    }
6302}
6303///[`VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.html)
6304/**
6305Provided by **VK_NV_device_generated_commands_compute**.*/
6306///
6307///# Extends
6308///- [`PhysicalDeviceFeatures2`]
6309///- [`DeviceCreateInfo`]
6310#[repr(C)]
6311#[derive(Copy, Clone, Debug)]
6312#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV")]
6313pub struct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
6314    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV`.
6315    pub s_type: StructureType,
6316    ///Optional, may be null.
6317    pub p_next: *mut core::ffi::c_void,
6318    pub device_generated_compute: u32,
6319    pub device_generated_compute_pipelines: u32,
6320    pub device_generated_compute_capture_replay: u32,
6321}
6322impl Default for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
6323    #[inline]
6324    fn default() -> Self {
6325        Self {
6326            s_type: StructureType::from_raw(1000428000i32),
6327            p_next: core::ptr::null_mut(),
6328            device_generated_compute: Default::default(),
6329            device_generated_compute_pipelines: Default::default(),
6330            device_generated_compute_capture_replay: Default::default(),
6331        }
6332    }
6333}
6334///[`VkDevicePrivateDataCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDevicePrivateDataCreateInfo.html)
6335/**
6336Provided by **VK_BASE_VERSION_1_3**.*/
6337///
6338///# Extends
6339///- [`DeviceCreateInfo`]
6340#[repr(C)]
6341#[derive(Copy, Clone, Debug)]
6342#[doc(alias = "VkDevicePrivateDataCreateInfo")]
6343pub struct DevicePrivateDataCreateInfo {
6344    ///Must be `VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO`.
6345    pub s_type: StructureType,
6346    ///Optional, may be null.
6347    pub p_next: *const core::ffi::c_void,
6348    pub private_data_slot_request_count: u32,
6349}
6350impl Default for DevicePrivateDataCreateInfo {
6351    #[inline]
6352    fn default() -> Self {
6353        Self {
6354            s_type: StructureType::from_raw(1000295001i32),
6355            p_next: core::ptr::null(),
6356            private_data_slot_request_count: Default::default(),
6357        }
6358    }
6359}
6360///[`VkPrivateDataSlotCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPrivateDataSlotCreateInfo.html)
6361/**
6362Provided by **VK_BASE_VERSION_1_3**.*/
6363#[repr(C)]
6364#[derive(Copy, Clone, Debug)]
6365#[doc(alias = "VkPrivateDataSlotCreateInfo")]
6366pub struct PrivateDataSlotCreateInfo {
6367    ///Must be `VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO`.
6368    pub s_type: StructureType,
6369    ///Optional, may be null.
6370    pub p_next: *const core::ffi::c_void,
6371    pub flags: PrivateDataSlotCreateFlags,
6372}
6373impl Default for PrivateDataSlotCreateInfo {
6374    #[inline]
6375    fn default() -> Self {
6376        Self {
6377            s_type: StructureType::from_raw(1000295002i32),
6378            p_next: core::ptr::null(),
6379            flags: Default::default(),
6380        }
6381    }
6382}
6383///[`VkPhysicalDevicePrivateDataFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePrivateDataFeatures.html)
6384/**
6385Provided by **VK_BASE_VERSION_1_3**.*/
6386///
6387///# Extends
6388///- [`PhysicalDeviceFeatures2`]
6389///- [`DeviceCreateInfo`]
6390#[repr(C)]
6391#[derive(Copy, Clone, Debug)]
6392#[doc(alias = "VkPhysicalDevicePrivateDataFeatures")]
6393pub struct PhysicalDevicePrivateDataFeatures {
6394    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES`.
6395    pub s_type: StructureType,
6396    ///Optional, may be null.
6397    pub p_next: *mut core::ffi::c_void,
6398    pub private_data: u32,
6399}
6400impl Default for PhysicalDevicePrivateDataFeatures {
6401    #[inline]
6402    fn default() -> Self {
6403        Self {
6404            s_type: StructureType::from_raw(1000295000i32),
6405            p_next: core::ptr::null_mut(),
6406            private_data: Default::default(),
6407        }
6408    }
6409}
6410///[`VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV.html)
6411/**
6412Provided by **VK_NV_device_generated_commands**.*/
6413/**
6414**Returned only**, filled by Vulkan, not constructed by the application.*/
6415///
6416///# Extends
6417///- [`PhysicalDeviceProperties2`]
6418#[repr(C)]
6419#[derive(Copy, Clone, Debug)]
6420#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV")]
6421pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
6422    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV`.
6423    pub s_type: StructureType,
6424    ///Optional, may be null.
6425    pub p_next: *mut core::ffi::c_void,
6426    pub max_graphics_shader_group_count: u32,
6427    pub max_indirect_sequence_count: u32,
6428    pub max_indirect_commands_token_count: u32,
6429    pub max_indirect_commands_stream_count: u32,
6430    pub max_indirect_commands_token_offset: u32,
6431    pub max_indirect_commands_stream_stride: u32,
6432    pub min_sequences_count_buffer_offset_alignment: u32,
6433    pub min_sequences_index_buffer_offset_alignment: u32,
6434    pub min_indirect_commands_buffer_offset_alignment: u32,
6435}
6436impl Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
6437    #[inline]
6438    fn default() -> Self {
6439        Self {
6440            s_type: StructureType::from_raw(1000277000i32),
6441            p_next: core::ptr::null_mut(),
6442            max_graphics_shader_group_count: Default::default(),
6443            max_indirect_sequence_count: Default::default(),
6444            max_indirect_commands_token_count: Default::default(),
6445            max_indirect_commands_stream_count: Default::default(),
6446            max_indirect_commands_token_offset: Default::default(),
6447            max_indirect_commands_stream_stride: Default::default(),
6448            min_sequences_count_buffer_offset_alignment: Default::default(),
6449            min_sequences_index_buffer_offset_alignment: Default::default(),
6450            min_indirect_commands_buffer_offset_alignment: Default::default(),
6451        }
6452    }
6453}
6454///[`VkPhysicalDeviceClusterAccelerationStructureFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterAccelerationStructureFeaturesNV.html)
6455/**
6456Provided by **VK_NV_cluster_acceleration_structure**.*/
6457///
6458///# Extends
6459///- [`PhysicalDeviceFeatures2`]
6460///- [`DeviceCreateInfo`]
6461#[repr(C)]
6462#[derive(Copy, Clone, Debug)]
6463#[doc(alias = "VkPhysicalDeviceClusterAccelerationStructureFeaturesNV")]
6464pub struct PhysicalDeviceClusterAccelerationStructureFeaturesNV {
6465    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV`.
6466    pub s_type: StructureType,
6467    ///Optional, may be null.
6468    pub p_next: *mut core::ffi::c_void,
6469    pub cluster_acceleration_structure: u32,
6470}
6471impl Default for PhysicalDeviceClusterAccelerationStructureFeaturesNV {
6472    #[inline]
6473    fn default() -> Self {
6474        Self {
6475            s_type: StructureType::from_raw(1000569000i32),
6476            p_next: core::ptr::null_mut(),
6477            cluster_acceleration_structure: Default::default(),
6478        }
6479    }
6480}
6481///[`VkPhysicalDeviceClusterAccelerationStructurePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterAccelerationStructurePropertiesNV.html)
6482/**
6483Provided by **VK_NV_cluster_acceleration_structure**.*/
6484/**
6485**Returned only**, filled by Vulkan, not constructed by the application.*/
6486///
6487///# Extends
6488///- [`PhysicalDeviceProperties2`]
6489#[repr(C)]
6490#[derive(Copy, Clone, Debug)]
6491#[doc(alias = "VkPhysicalDeviceClusterAccelerationStructurePropertiesNV")]
6492pub struct PhysicalDeviceClusterAccelerationStructurePropertiesNV {
6493    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV`.
6494    pub s_type: StructureType,
6495    ///Optional, may be null.
6496    pub p_next: *mut core::ffi::c_void,
6497    pub max_vertices_per_cluster: u32,
6498    pub max_triangles_per_cluster: u32,
6499    pub cluster_scratch_byte_alignment: u32,
6500    pub cluster_byte_alignment: u32,
6501    pub cluster_template_byte_alignment: u32,
6502    pub cluster_bottom_level_byte_alignment: u32,
6503    pub cluster_template_bounds_byte_alignment: u32,
6504    pub max_cluster_geometry_index: u32,
6505}
6506impl Default for PhysicalDeviceClusterAccelerationStructurePropertiesNV {
6507    #[inline]
6508    fn default() -> Self {
6509        Self {
6510            s_type: StructureType::from_raw(1000569001i32),
6511            p_next: core::ptr::null_mut(),
6512            max_vertices_per_cluster: Default::default(),
6513            max_triangles_per_cluster: Default::default(),
6514            cluster_scratch_byte_alignment: Default::default(),
6515            cluster_byte_alignment: Default::default(),
6516            cluster_template_byte_alignment: Default::default(),
6517            cluster_bottom_level_byte_alignment: Default::default(),
6518            cluster_template_bounds_byte_alignment: Default::default(),
6519            max_cluster_geometry_index: Default::default(),
6520        }
6521    }
6522}
6523///[`VkStridedDeviceAddressNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStridedDeviceAddressNV.html)
6524/**
6525Provided by **VK_NV_cluster_acceleration_structure**.*/
6526#[repr(C)]
6527#[derive(Copy, Clone, Debug)]
6528#[doc(alias = "VkStridedDeviceAddressNV")]
6529pub struct StridedDeviceAddressNV {
6530    pub start_address: u64,
6531    pub stride_in_bytes: u64,
6532}
6533impl Default for StridedDeviceAddressNV {
6534    #[inline]
6535    fn default() -> Self {
6536        unsafe { core::mem::zeroed() }
6537    }
6538}
6539///[`VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV.html)
6540/**
6541Provided by **VK_NV_cluster_acceleration_structure**.*/
6542///
6543///# Extends
6544///- [`RayTracingPipelineCreateInfoKHR`]
6545#[repr(C)]
6546#[derive(Copy, Clone, Debug)]
6547#[doc(alias = "VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV")]
6548pub struct RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
6549    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV`.
6550    pub s_type: StructureType,
6551    ///Optional, may be null.
6552    pub p_next: *mut core::ffi::c_void,
6553    pub allow_cluster_acceleration_structure: u32,
6554}
6555impl Default for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
6556    #[inline]
6557    fn default() -> Self {
6558        Self {
6559            s_type: StructureType::from_raw(1000569007i32),
6560            p_next: core::ptr::null_mut(),
6561            allow_cluster_acceleration_structure: Default::default(),
6562        }
6563    }
6564}
6565///[`VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV.html)
6566/**
6567Provided by **VK_NV_cluster_acceleration_structure**.*/
6568#[repr(C)]
6569#[derive(Copy, Clone, Debug)]
6570#[doc(alias = "VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV")]
6571pub struct ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
6572    pub bitfield_0: u32,
6573}
6574impl Default for ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
6575    #[inline]
6576    fn default() -> Self {
6577        unsafe { core::mem::zeroed() }
6578    }
6579}
6580impl ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
6581    #[inline]
6582    pub fn geometry_index(&self) -> u32 {
6583        self.bitfield_0 & 16777215u32
6584    }
6585    #[inline]
6586    pub fn set_geometry_index(&mut self, val: u32) {
6587        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
6588    }
6589    #[inline]
6590    pub fn geometry_flags(&self) -> u32 {
6591        (self.bitfield_0 >> 29u32) & 7u32
6592    }
6593    #[inline]
6594    pub fn set_geometry_flags(&mut self, val: u32) {
6595        self.bitfield_0 = (self.bitfield_0 & !(7u32 << 29u32)) | ((val & 7u32) << 29u32);
6596    }
6597}
6598///[`VkClusterAccelerationStructureMoveObjectsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureMoveObjectsInfoNV.html)
6599/**
6600Provided by **VK_NV_cluster_acceleration_structure**.*/
6601#[repr(C)]
6602#[derive(Copy, Clone, Debug)]
6603#[doc(alias = "VkClusterAccelerationStructureMoveObjectsInfoNV")]
6604pub struct ClusterAccelerationStructureMoveObjectsInfoNV {
6605    pub src_acceleration_structure: u64,
6606}
6607impl Default for ClusterAccelerationStructureMoveObjectsInfoNV {
6608    #[inline]
6609    fn default() -> Self {
6610        unsafe { core::mem::zeroed() }
6611    }
6612}
6613///[`VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV.html)
6614/**
6615Provided by **VK_NV_cluster_acceleration_structure**.*/
6616#[repr(C)]
6617#[derive(Copy, Clone, Debug)]
6618#[doc(alias = "VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV")]
6619pub struct ClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
6620    pub cluster_references_count: u32,
6621    pub cluster_references_stride: u32,
6622    pub cluster_references: u64,
6623}
6624impl Default for ClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
6625    #[inline]
6626    fn default() -> Self {
6627        unsafe { core::mem::zeroed() }
6628    }
6629}
6630///[`VkClusterAccelerationStructureGetTemplateIndicesInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureGetTemplateIndicesInfoNV.html)
6631/**
6632Provided by **VK_NV_cluster_acceleration_structure**.*/
6633#[repr(C)]
6634#[derive(Copy, Clone, Debug)]
6635#[doc(alias = "VkClusterAccelerationStructureGetTemplateIndicesInfoNV")]
6636pub struct ClusterAccelerationStructureGetTemplateIndicesInfoNV {
6637    pub cluster_template_address: u64,
6638}
6639impl Default for ClusterAccelerationStructureGetTemplateIndicesInfoNV {
6640    #[inline]
6641    fn default() -> Self {
6642        unsafe { core::mem::zeroed() }
6643    }
6644}
6645///[`VkClusterAccelerationStructureBuildTriangleClusterInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureBuildTriangleClusterInfoNV.html)
6646/**
6647Provided by **VK_NV_cluster_acceleration_structure**.*/
6648#[repr(C)]
6649#[derive(Copy, Clone, Debug)]
6650#[doc(alias = "VkClusterAccelerationStructureBuildTriangleClusterInfoNV")]
6651pub struct ClusterAccelerationStructureBuildTriangleClusterInfoNV {
6652    pub cluster_id: u32,
6653    pub cluster_flags: ClusterAccelerationStructureClusterFlagsNV,
6654    pub bitfield_0: u32,
6655    pub base_geometry_index_and_geometry_flags: ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV,
6656    pub index_buffer_stride: u16,
6657    pub vertex_buffer_stride: u16,
6658    pub geometry_index_and_flags_buffer_stride: u16,
6659    pub opacity_micromap_index_buffer_stride: u16,
6660    pub index_buffer: u64,
6661    pub vertex_buffer: u64,
6662    pub geometry_index_and_flags_buffer: u64,
6663    pub opacity_micromap_array: u64,
6664    pub opacity_micromap_index_buffer: u64,
6665}
6666impl Default for ClusterAccelerationStructureBuildTriangleClusterInfoNV {
6667    #[inline]
6668    fn default() -> Self {
6669        unsafe { core::mem::zeroed() }
6670    }
6671}
6672impl ClusterAccelerationStructureBuildTriangleClusterInfoNV {
6673    #[inline]
6674    pub fn triangle_count(&self) -> u32 {
6675        self.bitfield_0 & 511u32
6676    }
6677    #[inline]
6678    pub fn set_triangle_count(&mut self, val: u32) {
6679        self.bitfield_0 = (self.bitfield_0 & !511u32) | (val & 511u32);
6680    }
6681    #[inline]
6682    pub fn vertex_count(&self) -> u32 {
6683        (self.bitfield_0 >> 9u32) & 511u32
6684    }
6685    #[inline]
6686    pub fn set_vertex_count(&mut self, val: u32) {
6687        self.bitfield_0 = (self.bitfield_0 & !(511u32 << 9u32))
6688            | ((val & 511u32) << 9u32);
6689    }
6690    #[inline]
6691    pub fn position_truncate_bit_count(&self) -> u32 {
6692        (self.bitfield_0 >> 18u32) & 63u32
6693    }
6694    #[inline]
6695    pub fn set_position_truncate_bit_count(&mut self, val: u32) {
6696        self.bitfield_0 = (self.bitfield_0 & !(63u32 << 18u32))
6697            | ((val & 63u32) << 18u32);
6698    }
6699    #[inline]
6700    pub fn index_type(&self) -> u32 {
6701        (self.bitfield_0 >> 24u32) & 15u32
6702    }
6703    #[inline]
6704    pub fn set_index_type(&mut self, val: u32) {
6705        self.bitfield_0 = (self.bitfield_0 & !(15u32 << 24u32))
6706            | ((val & 15u32) << 24u32);
6707    }
6708    #[inline]
6709    pub fn opacity_micromap_index_type(&self) -> u32 {
6710        (self.bitfield_0 >> 28u32) & 15u32
6711    }
6712    #[inline]
6713    pub fn set_opacity_micromap_index_type(&mut self, val: u32) {
6714        self.bitfield_0 = (self.bitfield_0 & !(15u32 << 28u32))
6715            | ((val & 15u32) << 28u32);
6716    }
6717}
6718///[`VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV.html)
6719/**
6720Provided by **VK_NV_cluster_acceleration_structure**.*/
6721#[repr(C)]
6722#[derive(Copy, Clone, Debug)]
6723#[doc(alias = "VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV")]
6724pub struct ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
6725    pub cluster_id: u32,
6726    pub cluster_flags: ClusterAccelerationStructureClusterFlagsNV,
6727    pub bitfield_0: u32,
6728    pub base_geometry_index_and_geometry_flags: ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV,
6729    pub index_buffer_stride: u16,
6730    pub vertex_buffer_stride: u16,
6731    pub geometry_index_and_flags_buffer_stride: u16,
6732    pub opacity_micromap_index_buffer_stride: u16,
6733    pub index_buffer: u64,
6734    pub vertex_buffer: u64,
6735    pub geometry_index_and_flags_buffer: u64,
6736    pub opacity_micromap_array: u64,
6737    pub opacity_micromap_index_buffer: u64,
6738    pub instantiation_bounding_box_limit: u64,
6739}
6740impl Default for ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
6741    #[inline]
6742    fn default() -> Self {
6743        unsafe { core::mem::zeroed() }
6744    }
6745}
6746impl ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
6747    #[inline]
6748    pub fn triangle_count(&self) -> u32 {
6749        self.bitfield_0 & 511u32
6750    }
6751    #[inline]
6752    pub fn set_triangle_count(&mut self, val: u32) {
6753        self.bitfield_0 = (self.bitfield_0 & !511u32) | (val & 511u32);
6754    }
6755    #[inline]
6756    pub fn vertex_count(&self) -> u32 {
6757        (self.bitfield_0 >> 9u32) & 511u32
6758    }
6759    #[inline]
6760    pub fn set_vertex_count(&mut self, val: u32) {
6761        self.bitfield_0 = (self.bitfield_0 & !(511u32 << 9u32))
6762            | ((val & 511u32) << 9u32);
6763    }
6764    #[inline]
6765    pub fn position_truncate_bit_count(&self) -> u32 {
6766        (self.bitfield_0 >> 18u32) & 63u32
6767    }
6768    #[inline]
6769    pub fn set_position_truncate_bit_count(&mut self, val: u32) {
6770        self.bitfield_0 = (self.bitfield_0 & !(63u32 << 18u32))
6771            | ((val & 63u32) << 18u32);
6772    }
6773    #[inline]
6774    pub fn index_type(&self) -> u32 {
6775        (self.bitfield_0 >> 24u32) & 15u32
6776    }
6777    #[inline]
6778    pub fn set_index_type(&mut self, val: u32) {
6779        self.bitfield_0 = (self.bitfield_0 & !(15u32 << 24u32))
6780            | ((val & 15u32) << 24u32);
6781    }
6782    #[inline]
6783    pub fn opacity_micromap_index_type(&self) -> u32 {
6784        (self.bitfield_0 >> 28u32) & 15u32
6785    }
6786    #[inline]
6787    pub fn set_opacity_micromap_index_type(&mut self, val: u32) {
6788        self.bitfield_0 = (self.bitfield_0 & !(15u32 << 28u32))
6789            | ((val & 15u32) << 28u32);
6790    }
6791}
6792///[`VkClusterAccelerationStructureInstantiateClusterInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureInstantiateClusterInfoNV.html)
6793/**
6794Provided by **VK_NV_cluster_acceleration_structure**.*/
6795#[repr(C)]
6796#[derive(Copy, Clone, Debug)]
6797#[doc(alias = "VkClusterAccelerationStructureInstantiateClusterInfoNV")]
6798pub struct ClusterAccelerationStructureInstantiateClusterInfoNV {
6799    pub cluster_id_offset: u32,
6800    pub bitfield_0: u32,
6801    pub cluster_template_address: u64,
6802    pub vertex_buffer: StridedDeviceAddressNV,
6803}
6804impl Default for ClusterAccelerationStructureInstantiateClusterInfoNV {
6805    #[inline]
6806    fn default() -> Self {
6807        unsafe { core::mem::zeroed() }
6808    }
6809}
6810impl ClusterAccelerationStructureInstantiateClusterInfoNV {
6811    #[inline]
6812    pub fn geometry_index_offset(&self) -> u32 {
6813        self.bitfield_0 & 16777215u32
6814    }
6815    #[inline]
6816    pub fn set_geometry_index_offset(&mut self, val: u32) {
6817        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
6818    }
6819}
6820///[`VkClusterAccelerationStructureClustersBottomLevelInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureClustersBottomLevelInputNV.html)
6821/**
6822Provided by **VK_NV_cluster_acceleration_structure**.*/
6823#[repr(C)]
6824#[derive(Copy, Clone, Debug)]
6825#[doc(alias = "VkClusterAccelerationStructureClustersBottomLevelInputNV")]
6826pub struct ClusterAccelerationStructureClustersBottomLevelInputNV {
6827    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV`.
6828    pub s_type: StructureType,
6829    ///Optional, may be null.
6830    pub p_next: *mut core::ffi::c_void,
6831    pub max_total_cluster_count: u32,
6832    pub max_cluster_count_per_acceleration_structure: u32,
6833}
6834impl Default for ClusterAccelerationStructureClustersBottomLevelInputNV {
6835    #[inline]
6836    fn default() -> Self {
6837        Self {
6838            s_type: StructureType::from_raw(1000569002i32),
6839            p_next: core::ptr::null_mut(),
6840            max_total_cluster_count: Default::default(),
6841            max_cluster_count_per_acceleration_structure: Default::default(),
6842        }
6843    }
6844}
6845///[`VkClusterAccelerationStructureTriangleClusterInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureTriangleClusterInputNV.html)
6846/**
6847Provided by **VK_NV_cluster_acceleration_structure**.*/
6848#[repr(C)]
6849#[derive(Copy, Clone, Debug)]
6850#[doc(alias = "VkClusterAccelerationStructureTriangleClusterInputNV")]
6851pub struct ClusterAccelerationStructureTriangleClusterInputNV {
6852    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV`.
6853    pub s_type: StructureType,
6854    ///Optional, may be null.
6855    pub p_next: *mut core::ffi::c_void,
6856    pub vertex_format: Format,
6857    pub max_geometry_index_value: u32,
6858    pub max_cluster_unique_geometry_count: u32,
6859    pub max_cluster_triangle_count: u32,
6860    pub max_cluster_vertex_count: u32,
6861    pub max_total_triangle_count: u32,
6862    pub max_total_vertex_count: u32,
6863    pub min_position_truncate_bit_count: u32,
6864}
6865impl Default for ClusterAccelerationStructureTriangleClusterInputNV {
6866    #[inline]
6867    fn default() -> Self {
6868        Self {
6869            s_type: StructureType::from_raw(1000569003i32),
6870            p_next: core::ptr::null_mut(),
6871            vertex_format: Default::default(),
6872            max_geometry_index_value: Default::default(),
6873            max_cluster_unique_geometry_count: Default::default(),
6874            max_cluster_triangle_count: Default::default(),
6875            max_cluster_vertex_count: Default::default(),
6876            max_total_triangle_count: Default::default(),
6877            max_total_vertex_count: Default::default(),
6878            min_position_truncate_bit_count: Default::default(),
6879        }
6880    }
6881}
6882///[`VkClusterAccelerationStructureMoveObjectsInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureMoveObjectsInputNV.html)
6883/**
6884Provided by **VK_NV_cluster_acceleration_structure**.*/
6885#[repr(C)]
6886#[derive(Copy, Clone, Debug)]
6887#[doc(alias = "VkClusterAccelerationStructureMoveObjectsInputNV")]
6888pub struct ClusterAccelerationStructureMoveObjectsInputNV {
6889    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV`.
6890    pub s_type: StructureType,
6891    ///Optional, may be null.
6892    pub p_next: *mut core::ffi::c_void,
6893    pub r#type: ClusterAccelerationStructureTypeNV,
6894    pub no_move_overlap: u32,
6895    pub max_moved_bytes: u64,
6896}
6897impl Default for ClusterAccelerationStructureMoveObjectsInputNV {
6898    #[inline]
6899    fn default() -> Self {
6900        Self {
6901            s_type: StructureType::from_raw(1000569004i32),
6902            p_next: core::ptr::null_mut(),
6903            r#type: Default::default(),
6904            no_move_overlap: Default::default(),
6905            max_moved_bytes: Default::default(),
6906        }
6907    }
6908}
6909///[`VkClusterAccelerationStructureOpInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureOpInputNV.html)
6910/**
6911Provided by **VK_NV_cluster_acceleration_structure**.*/
6912#[repr(C)]
6913#[derive(Copy, Clone)]
6914#[doc(alias = "VkClusterAccelerationStructureOpInputNV")]
6915pub union ClusterAccelerationStructureOpInputNV {
6916    pub p_clusters_bottom_level: *mut ClusterAccelerationStructureClustersBottomLevelInputNV,
6917    pub p_triangle_clusters: *mut ClusterAccelerationStructureTriangleClusterInputNV,
6918    pub p_move_objects: *mut ClusterAccelerationStructureMoveObjectsInputNV,
6919}
6920impl Default for ClusterAccelerationStructureOpInputNV {
6921    #[inline]
6922    fn default() -> Self {
6923        unsafe { core::mem::zeroed() }
6924    }
6925}
6926impl core::fmt::Debug for ClusterAccelerationStructureOpInputNV {
6927    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6928        f.write_str(stringify!(ClusterAccelerationStructureOpInputNV))
6929    }
6930}
6931///[`VkClusterAccelerationStructureInputInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureInputInfoNV.html)
6932/**
6933Provided by **VK_NV_cluster_acceleration_structure**.*/
6934#[repr(C)]
6935#[derive(Copy, Clone, Debug)]
6936#[doc(alias = "VkClusterAccelerationStructureInputInfoNV")]
6937pub struct ClusterAccelerationStructureInputInfoNV {
6938    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV`.
6939    pub s_type: StructureType,
6940    ///Optional, may be null.
6941    pub p_next: *mut core::ffi::c_void,
6942    pub max_acceleration_structure_count: u32,
6943    pub flags: BuildAccelerationStructureFlagsKHR,
6944    pub op_type: ClusterAccelerationStructureOpTypeNV,
6945    pub op_mode: ClusterAccelerationStructureOpModeNV,
6946    pub op_input: ClusterAccelerationStructureOpInputNV,
6947}
6948impl Default for ClusterAccelerationStructureInputInfoNV {
6949    #[inline]
6950    fn default() -> Self {
6951        Self {
6952            s_type: StructureType::from_raw(1000569005i32),
6953            p_next: core::ptr::null_mut(),
6954            max_acceleration_structure_count: Default::default(),
6955            flags: Default::default(),
6956            op_type: Default::default(),
6957            op_mode: Default::default(),
6958            op_input: Default::default(),
6959        }
6960    }
6961}
6962///[`VkClusterAccelerationStructureCommandsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureCommandsInfoNV.html)
6963/**
6964Provided by **VK_NV_cluster_acceleration_structure**.*/
6965#[repr(C)]
6966#[derive(Copy, Clone, Debug)]
6967#[doc(alias = "VkClusterAccelerationStructureCommandsInfoNV")]
6968pub struct ClusterAccelerationStructureCommandsInfoNV {
6969    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV`.
6970    pub s_type: StructureType,
6971    ///Optional, may be null.
6972    pub p_next: *mut core::ffi::c_void,
6973    pub input: ClusterAccelerationStructureInputInfoNV,
6974    pub dst_implicit_data: u64,
6975    pub scratch_data: u64,
6976    pub dst_addresses_array: StridedDeviceAddressRegionKHR,
6977    pub dst_sizes_array: StridedDeviceAddressRegionKHR,
6978    pub src_infos_array: StridedDeviceAddressRegionKHR,
6979    pub src_infos_count: u64,
6980    pub address_resolution_flags: ClusterAccelerationStructureAddressResolutionFlagsNV,
6981}
6982impl Default for ClusterAccelerationStructureCommandsInfoNV {
6983    #[inline]
6984    fn default() -> Self {
6985        Self {
6986            s_type: StructureType::from_raw(1000569006i32),
6987            p_next: core::ptr::null_mut(),
6988            input: Default::default(),
6989            dst_implicit_data: Default::default(),
6990            scratch_data: Default::default(),
6991            dst_addresses_array: Default::default(),
6992            dst_sizes_array: Default::default(),
6993            src_infos_array: Default::default(),
6994            src_infos_count: Default::default(),
6995            address_resolution_flags: Default::default(),
6996        }
6997    }
6998}
6999///[`VkPhysicalDeviceMultiDrawPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiDrawPropertiesEXT.html)
7000/**
7001Provided by **VK_EXT_multi_draw**.*/
7002/**
7003**Returned only**, filled by Vulkan, not constructed by the application.*/
7004///
7005///# Extends
7006///- [`PhysicalDeviceProperties2`]
7007#[repr(C)]
7008#[derive(Copy, Clone, Debug)]
7009#[doc(alias = "VkPhysicalDeviceMultiDrawPropertiesEXT")]
7010pub struct PhysicalDeviceMultiDrawPropertiesEXT {
7011    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT`.
7012    pub s_type: StructureType,
7013    ///Optional, may be null.
7014    pub p_next: *mut core::ffi::c_void,
7015    pub max_multi_draw_count: u32,
7016}
7017impl Default for PhysicalDeviceMultiDrawPropertiesEXT {
7018    #[inline]
7019    fn default() -> Self {
7020        Self {
7021            s_type: StructureType::from_raw(1000392001i32),
7022            p_next: core::ptr::null_mut(),
7023            max_multi_draw_count: Default::default(),
7024        }
7025    }
7026}
7027///[`VkGraphicsShaderGroupCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsShaderGroupCreateInfoNV.html)
7028/**
7029Provided by **VK_NV_device_generated_commands**.*/
7030#[repr(C)]
7031#[derive(Copy, Clone, Debug)]
7032#[doc(alias = "VkGraphicsShaderGroupCreateInfoNV")]
7033pub struct GraphicsShaderGroupCreateInfoNV {
7034    ///Must be `VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV`.
7035    pub s_type: StructureType,
7036    ///Optional, may be null.
7037    pub p_next: *const core::ffi::c_void,
7038    ///Length of `p_stages`.
7039    pub stage_count: u32,
7040    pub p_stages: *const PipelineShaderStageCreateInfo,
7041    ///Optional, may be null.
7042    pub p_vertex_input_state: *const PipelineVertexInputStateCreateInfo,
7043    ///Optional, may be null.
7044    pub p_tessellation_state: *const PipelineTessellationStateCreateInfo,
7045}
7046impl Default for GraphicsShaderGroupCreateInfoNV {
7047    #[inline]
7048    fn default() -> Self {
7049        Self {
7050            s_type: StructureType::from_raw(1000277001i32),
7051            p_next: core::ptr::null(),
7052            stage_count: Default::default(),
7053            p_stages: core::ptr::null(),
7054            p_vertex_input_state: core::ptr::null(),
7055            p_tessellation_state: core::ptr::null(),
7056        }
7057    }
7058}
7059///[`VkGraphicsPipelineShaderGroupsCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineShaderGroupsCreateInfoNV.html)
7060/**
7061Provided by **VK_NV_device_generated_commands**.*/
7062///
7063///# Extends
7064///- [`GraphicsPipelineCreateInfo`]
7065#[repr(C)]
7066#[derive(Copy, Clone, Debug)]
7067#[doc(alias = "VkGraphicsPipelineShaderGroupsCreateInfoNV")]
7068pub struct GraphicsPipelineShaderGroupsCreateInfoNV {
7069    ///Must be `VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV`.
7070    pub s_type: StructureType,
7071    ///Optional, may be null.
7072    pub p_next: *const core::ffi::c_void,
7073    ///Length of `p_groups`.
7074    pub group_count: u32,
7075    pub p_groups: *const GraphicsShaderGroupCreateInfoNV,
7076    ///Length of `p_pipelines`.
7077    pub pipeline_count: u32,
7078    pub p_pipelines: *const Pipeline,
7079}
7080impl Default for GraphicsPipelineShaderGroupsCreateInfoNV {
7081    #[inline]
7082    fn default() -> Self {
7083        Self {
7084            s_type: StructureType::from_raw(1000277002i32),
7085            p_next: core::ptr::null(),
7086            group_count: Default::default(),
7087            p_groups: core::ptr::null(),
7088            pipeline_count: Default::default(),
7089            p_pipelines: core::ptr::null(),
7090        }
7091    }
7092}
7093///[`VkBindShaderGroupIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindShaderGroupIndirectCommandNV.html)
7094/**
7095Provided by **VK_NV_device_generated_commands**.*/
7096#[repr(C)]
7097#[derive(Copy, Clone, Debug)]
7098#[doc(alias = "VkBindShaderGroupIndirectCommandNV")]
7099pub struct BindShaderGroupIndirectCommandNV {
7100    pub group_index: u32,
7101}
7102impl Default for BindShaderGroupIndirectCommandNV {
7103    #[inline]
7104    fn default() -> Self {
7105        unsafe { core::mem::zeroed() }
7106    }
7107}
7108///[`VkBindIndexBufferIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindIndexBufferIndirectCommandNV.html)
7109/**
7110Provided by **VK_NV_device_generated_commands**.*/
7111#[repr(C)]
7112#[derive(Copy, Clone, Debug)]
7113#[doc(alias = "VkBindIndexBufferIndirectCommandNV")]
7114pub struct BindIndexBufferIndirectCommandNV {
7115    pub buffer_address: u64,
7116    pub size: u32,
7117    pub index_type: IndexType,
7118}
7119impl Default for BindIndexBufferIndirectCommandNV {
7120    #[inline]
7121    fn default() -> Self {
7122        unsafe { core::mem::zeroed() }
7123    }
7124}
7125///[`VkBindVertexBufferIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVertexBufferIndirectCommandNV.html)
7126/**
7127Provided by **VK_NV_device_generated_commands**.*/
7128#[repr(C)]
7129#[derive(Copy, Clone, Debug)]
7130#[doc(alias = "VkBindVertexBufferIndirectCommandNV")]
7131pub struct BindVertexBufferIndirectCommandNV {
7132    pub buffer_address: u64,
7133    pub size: u32,
7134    pub stride: u32,
7135}
7136impl Default for BindVertexBufferIndirectCommandNV {
7137    #[inline]
7138    fn default() -> Self {
7139        unsafe { core::mem::zeroed() }
7140    }
7141}
7142///[`VkSetStateFlagsIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSetStateFlagsIndirectCommandNV.html)
7143/**
7144Provided by **VK_NV_device_generated_commands**.*/
7145#[repr(C)]
7146#[derive(Copy, Clone, Debug)]
7147#[doc(alias = "VkSetStateFlagsIndirectCommandNV")]
7148pub struct SetStateFlagsIndirectCommandNV {
7149    pub data: u32,
7150}
7151impl Default for SetStateFlagsIndirectCommandNV {
7152    #[inline]
7153    fn default() -> Self {
7154        unsafe { core::mem::zeroed() }
7155    }
7156}
7157///[`VkIndirectCommandsStreamNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsStreamNV.html)
7158/**
7159Provided by **VK_NV_device_generated_commands**.*/
7160#[repr(C)]
7161#[derive(Copy, Clone, Debug)]
7162#[doc(alias = "VkIndirectCommandsStreamNV")]
7163pub struct IndirectCommandsStreamNV {
7164    pub buffer: Buffer,
7165    pub offset: u64,
7166}
7167impl Default for IndirectCommandsStreamNV {
7168    #[inline]
7169    fn default() -> Self {
7170        unsafe { core::mem::zeroed() }
7171    }
7172}
7173///[`VkIndirectCommandsLayoutTokenNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutTokenNV.html)
7174/**
7175Provided by **VK_NV_device_generated_commands**.*/
7176///
7177///# Extended By
7178///- [`IndirectCommandsLayoutPushDataTokenNV`]
7179#[repr(C)]
7180#[derive(Copy, Clone, Debug)]
7181#[doc(alias = "VkIndirectCommandsLayoutTokenNV")]
7182pub struct IndirectCommandsLayoutTokenNV {
7183    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV`.
7184    pub s_type: StructureType,
7185    ///Optional, may be null.
7186    pub p_next: *const core::ffi::c_void,
7187    pub token_type: IndirectCommandsTokenTypeNV,
7188    pub stream: u32,
7189    pub offset: u32,
7190    pub vertex_binding_unit: u32,
7191    pub vertex_dynamic_stride: u32,
7192    pub pushconstant_pipeline_layout: PipelineLayout,
7193    pub pushconstant_shader_stage_flags: ShaderStageFlags,
7194    pub pushconstant_offset: u32,
7195    pub pushconstant_size: u32,
7196    pub indirect_state_flags: IndirectStateFlagsNV,
7197    ///Length of `p_index_type_values`.
7198    pub index_type_count: u32,
7199    pub p_index_types: *const IndexType,
7200    pub p_index_type_values: *const u32,
7201}
7202impl Default for IndirectCommandsLayoutTokenNV {
7203    #[inline]
7204    fn default() -> Self {
7205        Self {
7206            s_type: StructureType::from_raw(1000277003i32),
7207            p_next: core::ptr::null(),
7208            token_type: Default::default(),
7209            stream: Default::default(),
7210            offset: Default::default(),
7211            vertex_binding_unit: Default::default(),
7212            vertex_dynamic_stride: Default::default(),
7213            pushconstant_pipeline_layout: Default::default(),
7214            pushconstant_shader_stage_flags: Default::default(),
7215            pushconstant_offset: Default::default(),
7216            pushconstant_size: Default::default(),
7217            indirect_state_flags: Default::default(),
7218            index_type_count: Default::default(),
7219            p_index_types: core::ptr::null(),
7220            p_index_type_values: core::ptr::null(),
7221        }
7222    }
7223}
7224///[`VkIndirectCommandsLayoutCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutCreateInfoNV.html)
7225/**
7226Provided by **VK_NV_device_generated_commands**.*/
7227#[repr(C)]
7228#[derive(Copy, Clone, Debug)]
7229#[doc(alias = "VkIndirectCommandsLayoutCreateInfoNV")]
7230pub struct IndirectCommandsLayoutCreateInfoNV {
7231    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV`.
7232    pub s_type: StructureType,
7233    ///Optional, may be null.
7234    pub p_next: *const core::ffi::c_void,
7235    pub flags: IndirectCommandsLayoutUsageFlagsNV,
7236    pub pipeline_bind_point: PipelineBindPoint,
7237    ///Length of `p_tokens`.
7238    pub token_count: u32,
7239    pub p_tokens: *const IndirectCommandsLayoutTokenNV,
7240    ///Length of `p_stream_strides`.
7241    pub stream_count: u32,
7242    pub p_stream_strides: *const u32,
7243}
7244impl Default for IndirectCommandsLayoutCreateInfoNV {
7245    #[inline]
7246    fn default() -> Self {
7247        Self {
7248            s_type: StructureType::from_raw(1000277004i32),
7249            p_next: core::ptr::null(),
7250            flags: Default::default(),
7251            pipeline_bind_point: Default::default(),
7252            token_count: Default::default(),
7253            p_tokens: core::ptr::null(),
7254            stream_count: Default::default(),
7255            p_stream_strides: core::ptr::null(),
7256        }
7257    }
7258}
7259///[`VkGeneratedCommandsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsInfoNV.html)
7260/**
7261Provided by **VK_NV_device_generated_commands**.*/
7262#[repr(C)]
7263#[derive(Copy, Clone, Debug)]
7264#[doc(alias = "VkGeneratedCommandsInfoNV")]
7265pub struct GeneratedCommandsInfoNV {
7266    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV`.
7267    pub s_type: StructureType,
7268    ///Optional, may be null.
7269    pub p_next: *const core::ffi::c_void,
7270    pub pipeline_bind_point: PipelineBindPoint,
7271    pub pipeline: Pipeline,
7272    pub indirect_commands_layout: IndirectCommandsLayoutNV,
7273    ///Length of `p_streams`.
7274    pub stream_count: u32,
7275    pub p_streams: *const IndirectCommandsStreamNV,
7276    pub sequences_count: u32,
7277    pub preprocess_buffer: Buffer,
7278    pub preprocess_offset: u64,
7279    pub preprocess_size: u64,
7280    pub sequences_count_buffer: Buffer,
7281    pub sequences_count_offset: u64,
7282    pub sequences_index_buffer: Buffer,
7283    pub sequences_index_offset: u64,
7284}
7285impl Default for GeneratedCommandsInfoNV {
7286    #[inline]
7287    fn default() -> Self {
7288        Self {
7289            s_type: StructureType::from_raw(1000277005i32),
7290            p_next: core::ptr::null(),
7291            pipeline_bind_point: Default::default(),
7292            pipeline: Default::default(),
7293            indirect_commands_layout: Default::default(),
7294            stream_count: Default::default(),
7295            p_streams: core::ptr::null(),
7296            sequences_count: Default::default(),
7297            preprocess_buffer: Default::default(),
7298            preprocess_offset: Default::default(),
7299            preprocess_size: Default::default(),
7300            sequences_count_buffer: Default::default(),
7301            sequences_count_offset: Default::default(),
7302            sequences_index_buffer: Default::default(),
7303            sequences_index_offset: Default::default(),
7304        }
7305    }
7306}
7307///[`VkGeneratedCommandsMemoryRequirementsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsMemoryRequirementsInfoNV.html)
7308/**
7309Provided by **VK_NV_device_generated_commands**.*/
7310#[repr(C)]
7311#[derive(Copy, Clone, Debug)]
7312#[doc(alias = "VkGeneratedCommandsMemoryRequirementsInfoNV")]
7313pub struct GeneratedCommandsMemoryRequirementsInfoNV {
7314    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV`.
7315    pub s_type: StructureType,
7316    ///Optional, may be null.
7317    pub p_next: *const core::ffi::c_void,
7318    pub pipeline_bind_point: PipelineBindPoint,
7319    pub pipeline: Pipeline,
7320    pub indirect_commands_layout: IndirectCommandsLayoutNV,
7321    pub max_sequences_count: u32,
7322}
7323impl Default for GeneratedCommandsMemoryRequirementsInfoNV {
7324    #[inline]
7325    fn default() -> Self {
7326        Self {
7327            s_type: StructureType::from_raw(1000277006i32),
7328            p_next: core::ptr::null(),
7329            pipeline_bind_point: Default::default(),
7330            pipeline: Default::default(),
7331            indirect_commands_layout: Default::default(),
7332            max_sequences_count: Default::default(),
7333        }
7334    }
7335}
7336///[`VkPipelineIndirectDeviceAddressInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineIndirectDeviceAddressInfoNV.html)
7337/**
7338Provided by **VK_NV_device_generated_commands_compute**.*/
7339#[repr(C)]
7340#[derive(Copy, Clone, Debug)]
7341#[doc(alias = "VkPipelineIndirectDeviceAddressInfoNV")]
7342pub struct PipelineIndirectDeviceAddressInfoNV {
7343    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV`.
7344    pub s_type: StructureType,
7345    ///Optional, may be null.
7346    pub p_next: *const core::ffi::c_void,
7347    pub pipeline_bind_point: PipelineBindPoint,
7348    pub pipeline: Pipeline,
7349}
7350impl Default for PipelineIndirectDeviceAddressInfoNV {
7351    #[inline]
7352    fn default() -> Self {
7353        Self {
7354            s_type: StructureType::from_raw(1000428002i32),
7355            p_next: core::ptr::null(),
7356            pipeline_bind_point: Default::default(),
7357            pipeline: Default::default(),
7358        }
7359    }
7360}
7361///[`VkBindPipelineIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindPipelineIndirectCommandNV.html)
7362/**
7363Provided by **VK_NV_device_generated_commands_compute**.*/
7364#[repr(C)]
7365#[derive(Copy, Clone, Debug)]
7366#[doc(alias = "VkBindPipelineIndirectCommandNV")]
7367pub struct BindPipelineIndirectCommandNV {
7368    pub pipeline_address: u64,
7369}
7370impl Default for BindPipelineIndirectCommandNV {
7371    #[inline]
7372    fn default() -> Self {
7373        unsafe { core::mem::zeroed() }
7374    }
7375}
7376///[`VkPhysicalDeviceFeatures2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFeatures2.html)
7377/**
7378Provided by **VK_BASE_VERSION_1_1**.*/
7379///
7380///# Extends
7381///- [`DeviceCreateInfo`]
7382///
7383///# Extended By
7384///- [`PhysicalDevice16BitStorageFeatures`]
7385///- [`PhysicalDevice4444FormatsFeaturesEXT`]
7386///- [`PhysicalDevice8BitStorageFeatures`]
7387///- [`PhysicalDeviceASTCDecodeFeaturesEXT`]
7388///- [`PhysicalDeviceAccelerationStructureFeaturesKHR`]
7389///- [`PhysicalDeviceAddressBindingReportFeaturesEXT`]
7390///- [`PhysicalDeviceAmigoProfilingFeaturesSEC`]
7391///- [`PhysicalDeviceAntiLagFeaturesAMD`]
7392///- [`PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT`]
7393///- [`PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT`]
7394///- [`PhysicalDeviceBlendOperationAdvancedFeaturesEXT`]
7395///- [`PhysicalDeviceBorderColorSwizzleFeaturesEXT`]
7396///- [`PhysicalDeviceBufferDeviceAddressFeatures`]
7397///- [`PhysicalDeviceBufferDeviceAddressFeaturesEXT`]
7398///- [`PhysicalDeviceClusterAccelerationStructureFeaturesNV`]
7399///- [`PhysicalDeviceClusterCullingShaderFeaturesHUAWEI`]
7400///- [`PhysicalDeviceCoherentMemoryFeaturesAMD`]
7401///- [`PhysicalDeviceColorWriteEnableFeaturesEXT`]
7402///- [`PhysicalDeviceCommandBufferInheritanceFeaturesNV`]
7403///- [`PhysicalDeviceComputeOccupancyPriorityFeaturesNV`]
7404///- [`PhysicalDeviceComputeShaderDerivativesFeaturesKHR`]
7405///- [`PhysicalDeviceConditionalRenderingFeaturesEXT`]
7406///- [`PhysicalDeviceCooperativeMatrix2FeaturesNV`]
7407///- [`PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM`]
7408///- [`PhysicalDeviceCooperativeMatrixFeaturesKHR`]
7409///- [`PhysicalDeviceCooperativeMatrixFeaturesNV`]
7410///- [`PhysicalDeviceCooperativeVectorFeaturesNV`]
7411///- [`PhysicalDeviceCopyMemoryIndirectFeaturesKHR`]
7412///- [`PhysicalDeviceCopyMemoryIndirectFeaturesNV`]
7413///- [`PhysicalDeviceCornerSampledImageFeaturesNV`]
7414///- [`PhysicalDeviceCoverageReductionModeFeaturesNV`]
7415///- [`PhysicalDeviceCubicClampFeaturesQCOM`]
7416///- [`PhysicalDeviceCubicWeightsFeaturesQCOM`]
7417///- [`PhysicalDeviceCudaKernelLaunchFeaturesNV`]
7418///- [`PhysicalDeviceCustomBorderColorFeaturesEXT`]
7419///- [`PhysicalDeviceCustomResolveFeaturesEXT`]
7420///- [`PhysicalDeviceDataGraphFeaturesARM`]
7421///- [`PhysicalDeviceDataGraphModelFeaturesQCOM`]
7422///- [`PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV`]
7423///- [`PhysicalDeviceDenseGeometryFormatFeaturesAMDX`]
7424///- [`PhysicalDeviceDepthBiasControlFeaturesEXT`]
7425///- [`PhysicalDeviceDepthClampControlFeaturesEXT`]
7426///- [`PhysicalDeviceDepthClampZeroOneFeaturesKHR`]
7427///- [`PhysicalDeviceDepthClipControlFeaturesEXT`]
7428///- [`PhysicalDeviceDepthClipEnableFeaturesEXT`]
7429///- [`PhysicalDeviceDescriptorBufferFeaturesEXT`]
7430///- [`PhysicalDeviceDescriptorBufferTensorFeaturesARM`]
7431///- [`PhysicalDeviceDescriptorHeapFeaturesEXT`]
7432///- [`PhysicalDeviceDescriptorIndexingFeatures`]
7433///- [`PhysicalDeviceDescriptorPoolOverallocationFeaturesNV`]
7434///- [`PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE`]
7435///- [`PhysicalDeviceDeviceAddressCommandsFeaturesKHR`]
7436///- [`PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV`]
7437///- [`PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT`]
7438///- [`PhysicalDeviceDeviceGeneratedCommandsFeaturesNV`]
7439///- [`PhysicalDeviceDeviceMemoryReportFeaturesEXT`]
7440///- [`PhysicalDeviceDiagnosticsConfigFeaturesNV`]
7441///- [`PhysicalDeviceDisplacementMicromapFeaturesNV`]
7442///- [`PhysicalDeviceDynamicRenderingFeatures`]
7443///- [`PhysicalDeviceDynamicRenderingLocalReadFeatures`]
7444///- [`PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT`]
7445///- [`PhysicalDeviceExclusiveScissorFeaturesNV`]
7446///- [`PhysicalDeviceExtendedDynamicState2FeaturesEXT`]
7447///- [`PhysicalDeviceExtendedDynamicState3FeaturesEXT`]
7448///- [`PhysicalDeviceExtendedDynamicStateFeaturesEXT`]
7449///- [`PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV`]
7450///- [`PhysicalDeviceExternalFormatResolveFeaturesANDROID`]
7451///- [`PhysicalDeviceExternalMemoryRDMAFeaturesNV`]
7452///- [`PhysicalDeviceExternalMemorySciBufFeaturesNV`]
7453///- [`PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX`]
7454///- [`PhysicalDeviceExternalSciSync2FeaturesNV`]
7455///- [`PhysicalDeviceExternalSciSyncFeaturesNV`]
7456///- [`PhysicalDeviceFaultFeaturesEXT`]
7457///- [`PhysicalDeviceFaultFeaturesKHR`]
7458///- [`PhysicalDeviceFormatPackFeaturesARM`]
7459///- [`PhysicalDeviceFragmentDensityMap2FeaturesEXT`]
7460///- [`PhysicalDeviceFragmentDensityMapFeaturesEXT`]
7461///- [`PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE`]
7462///- [`PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT`]
7463///- [`PhysicalDeviceFragmentShaderBarycentricFeaturesKHR`]
7464///- [`PhysicalDeviceFragmentShaderInterlockFeaturesEXT`]
7465///- [`PhysicalDeviceFragmentShadingRateEnumsFeaturesNV`]
7466///- [`PhysicalDeviceFragmentShadingRateFeaturesKHR`]
7467///- [`PhysicalDeviceFrameBoundaryFeaturesEXT`]
7468///- [`PhysicalDeviceGlobalPriorityQueryFeatures`]
7469///- [`PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT`]
7470///- [`PhysicalDeviceHdrVividFeaturesHUAWEI`]
7471///- [`PhysicalDeviceHostImageCopyFeatures`]
7472///- [`PhysicalDeviceHostQueryResetFeatures`]
7473///- [`PhysicalDeviceImage2DViewOf3DFeaturesEXT`]
7474///- [`PhysicalDeviceImageAlignmentControlFeaturesMESA`]
7475///- [`PhysicalDeviceImageCompressionControlFeaturesEXT`]
7476///- [`PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT`]
7477///- [`PhysicalDeviceImageProcessing2FeaturesQCOM`]
7478///- [`PhysicalDeviceImageProcessingFeaturesQCOM`]
7479///- [`PhysicalDeviceImageRobustnessFeatures`]
7480///- [`PhysicalDeviceImageSlicedViewOf3DFeaturesEXT`]
7481///- [`PhysicalDeviceImageViewMinLodFeaturesEXT`]
7482///- [`PhysicalDeviceImagelessFramebufferFeatures`]
7483///- [`PhysicalDeviceIndexTypeUint8Features`]
7484///- [`PhysicalDeviceInheritedViewportScissorFeaturesNV`]
7485///- [`PhysicalDeviceInlineUniformBlockFeatures`]
7486///- [`PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR`]
7487///- [`PhysicalDeviceInvocationMaskFeaturesHUAWEI`]
7488///- [`PhysicalDeviceLegacyDitheringFeaturesEXT`]
7489///- [`PhysicalDeviceLegacyVertexAttributesFeaturesEXT`]
7490///- [`PhysicalDeviceLineRasterizationFeatures`]
7491///- [`PhysicalDeviceLinearColorAttachmentFeaturesNV`]
7492///- [`PhysicalDeviceMaintenance10FeaturesKHR`]
7493///- [`PhysicalDeviceMaintenance4Features`]
7494///- [`PhysicalDeviceMaintenance5Features`]
7495///- [`PhysicalDeviceMaintenance6Features`]
7496///- [`PhysicalDeviceMaintenance7FeaturesKHR`]
7497///- [`PhysicalDeviceMaintenance8FeaturesKHR`]
7498///- [`PhysicalDeviceMaintenance9FeaturesKHR`]
7499///- [`PhysicalDeviceMapMemoryPlacedFeaturesEXT`]
7500///- [`PhysicalDeviceMemoryDecompressionFeaturesEXT`]
7501///- [`PhysicalDeviceMemoryPriorityFeaturesEXT`]
7502///- [`PhysicalDeviceMeshShaderFeaturesEXT`]
7503///- [`PhysicalDeviceMeshShaderFeaturesNV`]
7504///- [`PhysicalDeviceMultiDrawFeaturesEXT`]
7505///- [`PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT`]
7506///- [`PhysicalDeviceMultiviewFeatures`]
7507///- [`PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM`]
7508///- [`PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM`]
7509///- [`PhysicalDeviceMutableDescriptorTypeFeaturesEXT`]
7510///- [`PhysicalDeviceNestedCommandBufferFeaturesEXT`]
7511///- [`PhysicalDeviceNonSeamlessCubeMapFeaturesEXT`]
7512///- [`PhysicalDeviceOpacityMicromapFeaturesEXT`]
7513///- [`PhysicalDeviceOpticalFlowFeaturesNV`]
7514///- [`PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT`]
7515///- [`PhysicalDevicePartitionedAccelerationStructureFeaturesNV`]
7516///- [`PhysicalDevicePerStageDescriptorSetFeaturesNV`]
7517///- [`PhysicalDevicePerformanceCountersByRegionFeaturesARM`]
7518///- [`PhysicalDevicePerformanceQueryFeaturesKHR`]
7519///- [`PhysicalDevicePipelineBinaryFeaturesKHR`]
7520///- [`PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC`]
7521///- [`PhysicalDevicePipelineCreationCacheControlFeatures`]
7522///- [`PhysicalDevicePipelineExecutablePropertiesFeaturesKHR`]
7523///- [`PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT`]
7524///- [`PhysicalDevicePipelineOpacityMicromapFeaturesARM`]
7525///- [`PhysicalDevicePipelinePropertiesFeaturesEXT`]
7526///- [`PhysicalDevicePipelineProtectedAccessFeatures`]
7527///- [`PhysicalDevicePipelineRobustnessFeatures`]
7528///- [`PhysicalDevicePortabilitySubsetFeaturesKHR`]
7529///- [`PhysicalDevicePresentBarrierFeaturesNV`]
7530///- [`PhysicalDevicePresentId2FeaturesKHR`]
7531///- [`PhysicalDevicePresentIdFeaturesKHR`]
7532///- [`PhysicalDevicePresentMeteringFeaturesNV`]
7533///- [`PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR`]
7534///- [`PhysicalDevicePresentTimingFeaturesEXT`]
7535///- [`PhysicalDevicePresentWait2FeaturesKHR`]
7536///- [`PhysicalDevicePresentWaitFeaturesKHR`]
7537///- [`PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT`]
7538///- [`PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT`]
7539///- [`PhysicalDevicePrivateDataFeatures`]
7540///- [`PhysicalDeviceProtectedMemoryFeatures`]
7541///- [`PhysicalDeviceProvokingVertexFeaturesEXT`]
7542///- [`PhysicalDevicePushConstantBankFeaturesNV`]
7543///- [`PhysicalDeviceRGBA10X6FormatsFeaturesEXT`]
7544///- [`PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT`]
7545///- [`PhysicalDeviceRawAccessChainsFeaturesNV`]
7546///- [`PhysicalDeviceRayQueryFeaturesKHR`]
7547///- [`PhysicalDeviceRayTracingInvocationReorderFeaturesEXT`]
7548///- [`PhysicalDeviceRayTracingInvocationReorderFeaturesNV`]
7549///- [`PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV`]
7550///- [`PhysicalDeviceRayTracingMaintenance1FeaturesKHR`]
7551///- [`PhysicalDeviceRayTracingMotionBlurFeaturesNV`]
7552///- [`PhysicalDeviceRayTracingPipelineFeaturesKHR`]
7553///- [`PhysicalDeviceRayTracingPositionFetchFeaturesKHR`]
7554///- [`PhysicalDeviceRayTracingValidationFeaturesNV`]
7555///- [`PhysicalDeviceRelaxedLineRasterizationFeaturesIMG`]
7556///- [`PhysicalDeviceRenderPassStripedFeaturesARM`]
7557///- [`PhysicalDeviceRepresentativeFragmentTestFeaturesNV`]
7558///- [`PhysicalDeviceRobustness2FeaturesKHR`]
7559///- [`PhysicalDeviceSamplerYcbcrConversionFeatures`]
7560///- [`PhysicalDeviceScalarBlockLayoutFeatures`]
7561///- [`PhysicalDeviceSchedulingControlsFeaturesARM`]
7562///- [`PhysicalDeviceSeparateDepthStencilLayoutsFeatures`]
7563///- [`PhysicalDeviceShader64BitIndexingFeaturesEXT`]
7564///- [`PhysicalDeviceShaderAbortFeaturesKHR`]
7565///- [`PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV`]
7566///- [`PhysicalDeviceShaderAtomicFloat2FeaturesEXT`]
7567///- [`PhysicalDeviceShaderAtomicFloatFeaturesEXT`]
7568///- [`PhysicalDeviceShaderAtomicInt64Features`]
7569///- [`PhysicalDeviceShaderBfloat16FeaturesKHR`]
7570///- [`PhysicalDeviceShaderClockFeaturesKHR`]
7571///- [`PhysicalDeviceShaderConstantDataFeaturesKHR`]
7572///- [`PhysicalDeviceShaderCoreBuiltinsFeaturesARM`]
7573///- [`PhysicalDeviceShaderDemoteToHelperInvocationFeatures`]
7574///- [`PhysicalDeviceShaderDrawParametersFeatures`]
7575///- [`PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD`]
7576///- [`PhysicalDeviceShaderEnqueueFeaturesAMDX`]
7577///- [`PhysicalDeviceShaderExpectAssumeFeatures`]
7578///- [`PhysicalDeviceShaderFloat16Int8Features`]
7579///- [`PhysicalDeviceShaderFloat8FeaturesEXT`]
7580///- [`PhysicalDeviceShaderFloatControls2Features`]
7581///- [`PhysicalDeviceShaderFmaFeaturesKHR`]
7582///- [`PhysicalDeviceShaderImageAtomicInt64FeaturesEXT`]
7583///- [`PhysicalDeviceShaderImageFootprintFeaturesNV`]
7584///- [`PhysicalDeviceShaderInstrumentationFeaturesARM`]
7585///- [`PhysicalDeviceShaderIntegerDotProductFeatures`]
7586///- [`PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL`]
7587///- [`PhysicalDeviceShaderLongVectorFeaturesEXT`]
7588///- [`PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR`]
7589///- [`PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE`]
7590///- [`PhysicalDeviceShaderModuleIdentifierFeaturesEXT`]
7591///- [`PhysicalDeviceShaderObjectFeaturesEXT`]
7592///- [`PhysicalDeviceShaderQuadControlFeaturesKHR`]
7593///- [`PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR`]
7594///- [`PhysicalDeviceShaderReplicatedCompositesFeaturesEXT`]
7595///- [`PhysicalDeviceShaderSMBuiltinsFeaturesNV`]
7596///- [`PhysicalDeviceShaderSubgroupExtendedTypesFeatures`]
7597///- [`PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT`]
7598///- [`PhysicalDeviceShaderSubgroupRotateFeatures`]
7599///- [`PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR`]
7600///- [`PhysicalDeviceShaderTerminateInvocationFeatures`]
7601///- [`PhysicalDeviceShaderTileImageFeaturesEXT`]
7602///- [`PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT`]
7603///- [`PhysicalDeviceShaderUntypedPointersFeaturesKHR`]
7604///- [`PhysicalDeviceShadingRateImageFeaturesNV`]
7605///- [`PhysicalDeviceSubgroupSizeControlFeatures`]
7606///- [`PhysicalDeviceSubpassMergeFeedbackFeaturesEXT`]
7607///- [`PhysicalDeviceSubpassShadingFeaturesHUAWEI`]
7608///- [`PhysicalDeviceSwapchainMaintenance1FeaturesKHR`]
7609///- [`PhysicalDeviceSynchronization2Features`]
7610///- [`PhysicalDeviceTensorFeaturesARM`]
7611///- [`PhysicalDeviceTexelBufferAlignmentFeaturesEXT`]
7612///- [`PhysicalDeviceTextureCompressionASTC3DFeaturesEXT`]
7613///- [`PhysicalDeviceTextureCompressionASTCHDRFeatures`]
7614///- [`PhysicalDeviceTileMemoryHeapFeaturesQCOM`]
7615///- [`PhysicalDeviceTilePropertiesFeaturesQCOM`]
7616///- [`PhysicalDeviceTileShadingFeaturesQCOM`]
7617///- [`PhysicalDeviceTimelineSemaphoreFeatures`]
7618///- [`PhysicalDeviceTransformFeedbackFeaturesEXT`]
7619///- [`PhysicalDeviceUnifiedImageLayoutsFeaturesKHR`]
7620///- [`PhysicalDeviceUniformBufferStandardLayoutFeatures`]
7621///- [`PhysicalDeviceVariablePointersFeatures`]
7622///- [`PhysicalDeviceVertexAttributeDivisorFeatures`]
7623///- [`PhysicalDeviceVertexAttributeRobustnessFeaturesEXT`]
7624///- [`PhysicalDeviceVertexInputDynamicStateFeaturesEXT`]
7625///- [`PhysicalDeviceVideoDecodeVP9FeaturesKHR`]
7626///- [`PhysicalDeviceVideoEncodeAV1FeaturesKHR`]
7627///- [`PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR`]
7628///- [`PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR`]
7629///- [`PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE`]
7630///- [`PhysicalDeviceVideoMaintenance1FeaturesKHR`]
7631///- [`PhysicalDeviceVideoMaintenance2FeaturesKHR`]
7632///- [`PhysicalDeviceVulkan11Features`]
7633///- [`PhysicalDeviceVulkan12Features`]
7634///- [`PhysicalDeviceVulkan13Features`]
7635///- [`PhysicalDeviceVulkan14Features`]
7636///- [`PhysicalDeviceVulkanMemoryModelFeatures`]
7637///- [`PhysicalDeviceVulkanSC10Features`]
7638///- [`PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR`]
7639///- [`PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT`]
7640///- [`PhysicalDeviceYcbcrDegammaFeaturesQCOM`]
7641///- [`PhysicalDeviceYcbcrImageArraysFeaturesEXT`]
7642///- [`PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT`]
7643///- [`PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures`]
7644#[repr(C)]
7645#[derive(Copy, Clone, Debug)]
7646#[doc(alias = "VkPhysicalDeviceFeatures2")]
7647pub struct PhysicalDeviceFeatures2 {
7648    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2`.
7649    pub s_type: StructureType,
7650    ///Optional, may be null.
7651    pub p_next: *mut core::ffi::c_void,
7652    pub features: PhysicalDeviceFeatures,
7653}
7654impl Default for PhysicalDeviceFeatures2 {
7655    #[inline]
7656    fn default() -> Self {
7657        Self {
7658            s_type: StructureType::from_raw(1000059000i32),
7659            p_next: core::ptr::null_mut(),
7660            features: Default::default(),
7661        }
7662    }
7663}
7664///[`VkPhysicalDeviceProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProperties2.html)
7665/**
7666Provided by **VK_BASE_VERSION_1_1**.*/
7667/**
7668**Returned only**, filled by Vulkan, not constructed by the application.*/
7669///
7670///# Extended By
7671///- [`PhysicalDeviceAccelerationStructurePropertiesKHR`]
7672///- [`PhysicalDeviceBlendOperationAdvancedPropertiesEXT`]
7673///- [`PhysicalDeviceClusterAccelerationStructurePropertiesNV`]
7674///- [`PhysicalDeviceClusterCullingShaderPropertiesHUAWEI`]
7675///- [`PhysicalDeviceComputeShaderDerivativesPropertiesKHR`]
7676///- [`PhysicalDeviceConservativeRasterizationPropertiesEXT`]
7677///- [`PhysicalDeviceCooperativeMatrix2PropertiesNV`]
7678///- [`PhysicalDeviceCooperativeMatrixPropertiesKHR`]
7679///- [`PhysicalDeviceCooperativeMatrixPropertiesNV`]
7680///- [`PhysicalDeviceCooperativeVectorPropertiesNV`]
7681///- [`PhysicalDeviceCopyMemoryIndirectPropertiesKHR`]
7682///- [`PhysicalDeviceCudaKernelLaunchPropertiesNV`]
7683///- [`PhysicalDeviceCustomBorderColorPropertiesEXT`]
7684///- [`PhysicalDeviceDepthStencilResolveProperties`]
7685///- [`PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT`]
7686///- [`PhysicalDeviceDescriptorBufferPropertiesEXT`]
7687///- [`PhysicalDeviceDescriptorBufferTensorPropertiesARM`]
7688///- [`PhysicalDeviceDescriptorHeapPropertiesEXT`]
7689///- [`PhysicalDeviceDescriptorHeapTensorPropertiesARM`]
7690///- [`PhysicalDeviceDescriptorIndexingProperties`]
7691///- [`PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT`]
7692///- [`PhysicalDeviceDeviceGeneratedCommandsPropertiesNV`]
7693///- [`PhysicalDeviceDiscardRectanglePropertiesEXT`]
7694///- [`PhysicalDeviceDisplacementMicromapPropertiesNV`]
7695///- [`PhysicalDeviceDriverProperties`]
7696///- [`PhysicalDeviceDrmPropertiesEXT`]
7697///- [`PhysicalDeviceExtendedDynamicState3PropertiesEXT`]
7698///- [`PhysicalDeviceExtendedSparseAddressSpacePropertiesNV`]
7699///- [`PhysicalDeviceExternalComputeQueuePropertiesNV`]
7700///- [`PhysicalDeviceExternalFormatResolvePropertiesANDROID`]
7701///- [`PhysicalDeviceExternalMemoryHostPropertiesEXT`]
7702///- [`PhysicalDeviceFaultPropertiesKHR`]
7703///- [`PhysicalDeviceFloatControlsProperties`]
7704///- [`PhysicalDeviceFragmentDensityMap2PropertiesEXT`]
7705///- [`PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE`]
7706///- [`PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT`]
7707///- [`PhysicalDeviceFragmentDensityMapPropertiesEXT`]
7708///- [`PhysicalDeviceFragmentShaderBarycentricPropertiesKHR`]
7709///- [`PhysicalDeviceFragmentShadingRateEnumsPropertiesNV`]
7710///- [`PhysicalDeviceFragmentShadingRatePropertiesKHR`]
7711///- [`PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT`]
7712///- [`PhysicalDeviceHostImageCopyProperties`]
7713///- [`PhysicalDeviceIDProperties`]
7714///- [`PhysicalDeviceImageAlignmentControlPropertiesMESA`]
7715///- [`PhysicalDeviceImageProcessing2PropertiesQCOM`]
7716///- [`PhysicalDeviceImageProcessingPropertiesQCOM`]
7717///- [`PhysicalDeviceInlineUniformBlockProperties`]
7718///- [`PhysicalDeviceLayeredApiPropertiesListKHR`]
7719///- [`PhysicalDeviceLayeredDriverPropertiesMSFT`]
7720///- [`PhysicalDeviceLegacyVertexAttributesPropertiesEXT`]
7721///- [`PhysicalDeviceLineRasterizationProperties`]
7722///- [`PhysicalDeviceMaintenance10PropertiesKHR`]
7723///- [`PhysicalDeviceMaintenance3Properties`]
7724///- [`PhysicalDeviceMaintenance4Properties`]
7725///- [`PhysicalDeviceMaintenance5Properties`]
7726///- [`PhysicalDeviceMaintenance6Properties`]
7727///- [`PhysicalDeviceMaintenance7PropertiesKHR`]
7728///- [`PhysicalDeviceMaintenance9PropertiesKHR`]
7729///- [`PhysicalDeviceMapMemoryPlacedPropertiesEXT`]
7730///- [`PhysicalDeviceMemoryDecompressionPropertiesEXT`]
7731///- [`PhysicalDeviceMeshShaderPropertiesEXT`]
7732///- [`PhysicalDeviceMeshShaderPropertiesNV`]
7733///- [`PhysicalDeviceMultiDrawPropertiesEXT`]
7734///- [`PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX`]
7735///- [`PhysicalDeviceMultiviewProperties`]
7736///- [`PhysicalDeviceNestedCommandBufferPropertiesEXT`]
7737///- [`PhysicalDeviceOpacityMicromapPropertiesEXT`]
7738///- [`PhysicalDeviceOpticalFlowPropertiesNV`]
7739///- [`PhysicalDevicePCIBusInfoPropertiesEXT`]
7740///- [`PhysicalDevicePartitionedAccelerationStructurePropertiesNV`]
7741///- [`PhysicalDevicePerformanceCountersByRegionPropertiesARM`]
7742///- [`PhysicalDevicePerformanceQueryPropertiesKHR`]
7743///- [`PhysicalDevicePipelineBinaryPropertiesKHR`]
7744///- [`PhysicalDevicePipelineRobustnessProperties`]
7745///- [`PhysicalDevicePointClippingProperties`]
7746///- [`PhysicalDevicePortabilitySubsetPropertiesKHR`]
7747///- [`PhysicalDevicePresentationPropertiesANDROID`]
7748///- [`PhysicalDevicePresentationPropertiesOHOS`]
7749///- [`PhysicalDeviceProtectedMemoryProperties`]
7750///- [`PhysicalDeviceProvokingVertexPropertiesEXT`]
7751///- [`PhysicalDevicePushConstantBankPropertiesNV`]
7752///- [`PhysicalDevicePushDescriptorProperties`]
7753///- [`PhysicalDeviceRayTracingInvocationReorderPropertiesEXT`]
7754///- [`PhysicalDeviceRayTracingInvocationReorderPropertiesNV`]
7755///- [`PhysicalDeviceRayTracingPipelinePropertiesKHR`]
7756///- [`PhysicalDeviceRayTracingPropertiesNV`]
7757///- [`PhysicalDeviceRenderPassStripedPropertiesARM`]
7758///- [`PhysicalDeviceRobustness2PropertiesKHR`]
7759///- [`PhysicalDeviceSampleLocationsPropertiesEXT`]
7760///- [`PhysicalDeviceSamplerFilterMinmaxProperties`]
7761///- [`PhysicalDeviceSchedulingControlsPropertiesARM`]
7762///- [`PhysicalDeviceShaderAbortPropertiesKHR`]
7763///- [`PhysicalDeviceShaderCoreBuiltinsPropertiesARM`]
7764///- [`PhysicalDeviceShaderCoreProperties2AMD`]
7765///- [`PhysicalDeviceShaderCorePropertiesAMD`]
7766///- [`PhysicalDeviceShaderCorePropertiesARM`]
7767///- [`PhysicalDeviceShaderEnqueuePropertiesAMDX`]
7768///- [`PhysicalDeviceShaderInstrumentationPropertiesARM`]
7769///- [`PhysicalDeviceShaderIntegerDotProductProperties`]
7770///- [`PhysicalDeviceShaderLongVectorPropertiesEXT`]
7771///- [`PhysicalDeviceShaderModuleIdentifierPropertiesEXT`]
7772///- [`PhysicalDeviceShaderObjectPropertiesEXT`]
7773///- [`PhysicalDeviceShaderSMBuiltinsPropertiesNV`]
7774///- [`PhysicalDeviceShaderTileImagePropertiesEXT`]
7775///- [`PhysicalDeviceShadingRateImagePropertiesNV`]
7776///- [`PhysicalDeviceSubgroupProperties`]
7777///- [`PhysicalDeviceSubgroupSizeControlProperties`]
7778///- [`PhysicalDeviceSubpassShadingPropertiesHUAWEI`]
7779///- [`PhysicalDeviceTensorPropertiesARM`]
7780///- [`PhysicalDeviceTexelBufferAlignmentProperties`]
7781///- [`PhysicalDeviceTileMemoryHeapPropertiesQCOM`]
7782///- [`PhysicalDeviceTileShadingPropertiesQCOM`]
7783///- [`PhysicalDeviceTimelineSemaphoreProperties`]
7784///- [`PhysicalDeviceTransformFeedbackPropertiesEXT`]
7785///- [`PhysicalDeviceVertexAttributeDivisorProperties`]
7786///- [`PhysicalDeviceVertexAttributeDivisorPropertiesEXT`]
7787///- [`PhysicalDeviceVulkan11Properties`]
7788///- [`PhysicalDeviceVulkan12Properties`]
7789///- [`PhysicalDeviceVulkan13Properties`]
7790///- [`PhysicalDeviceVulkan14Properties`]
7791///- [`PhysicalDeviceVulkanSC10Properties`]
7792#[repr(C)]
7793#[derive(Copy, Clone, Debug)]
7794#[doc(alias = "VkPhysicalDeviceProperties2")]
7795pub struct PhysicalDeviceProperties2 {
7796    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2`.
7797    pub s_type: StructureType,
7798    ///Optional, may be null.
7799    pub p_next: *mut core::ffi::c_void,
7800    pub properties: PhysicalDeviceProperties,
7801}
7802impl Default for PhysicalDeviceProperties2 {
7803    #[inline]
7804    fn default() -> Self {
7805        Self {
7806            s_type: StructureType::from_raw(1000059001i32),
7807            p_next: core::ptr::null_mut(),
7808            properties: Default::default(),
7809        }
7810    }
7811}
7812///[`VkFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFormatProperties2.html)
7813/**
7814Provided by **VK_BASE_VERSION_1_1**.*/
7815/**
7816**Returned only**, filled by Vulkan, not constructed by the application.*/
7817///
7818///# Extended By
7819///- [`DrmFormatModifierPropertiesList2EXT`]
7820///- [`DrmFormatModifierPropertiesListEXT`]
7821///- [`FormatProperties3`]
7822///- [`SubpassResolvePerformanceQueryEXT`]
7823///- [`TensorFormatPropertiesARM`]
7824#[repr(C)]
7825#[derive(Copy, Clone, Debug)]
7826#[doc(alias = "VkFormatProperties2")]
7827pub struct FormatProperties2 {
7828    ///Must be `VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2`.
7829    pub s_type: StructureType,
7830    ///Optional, may be null.
7831    pub p_next: *mut core::ffi::c_void,
7832    pub format_properties: FormatProperties,
7833}
7834impl Default for FormatProperties2 {
7835    #[inline]
7836    fn default() -> Self {
7837        Self {
7838            s_type: StructureType::from_raw(1000059002i32),
7839            p_next: core::ptr::null_mut(),
7840            format_properties: Default::default(),
7841        }
7842    }
7843}
7844///[`VkImageFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageFormatProperties2.html)
7845/**
7846Provided by **VK_BASE_VERSION_1_1**.*/
7847/**
7848**Returned only**, filled by Vulkan, not constructed by the application.*/
7849///
7850///# Extended By
7851///- [`AndroidHardwareBufferUsageANDROID`]
7852///- [`ExternalImageFormatProperties`]
7853///- [`FilterCubicImageViewImageFormatPropertiesEXT`]
7854///- [`HostImageCopyDevicePerformanceQuery`]
7855///- [`ImageCompressionPropertiesEXT`]
7856///- [`NativeBufferUsageOHOS`]
7857///- [`SamplerYcbcrConversionImageFormatProperties`]
7858///- [`SubsampledImageFormatPropertiesEXT`]
7859///- [`TextureLODGatherFormatPropertiesAMD`]
7860#[repr(C)]
7861#[derive(Copy, Clone, Debug)]
7862#[doc(alias = "VkImageFormatProperties2")]
7863pub struct ImageFormatProperties2 {
7864    ///Must be `VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2`.
7865    pub s_type: StructureType,
7866    ///Optional, may be null.
7867    pub p_next: *mut core::ffi::c_void,
7868    pub image_format_properties: ImageFormatProperties,
7869}
7870impl Default for ImageFormatProperties2 {
7871    #[inline]
7872    fn default() -> Self {
7873        Self {
7874            s_type: StructureType::from_raw(1000059003i32),
7875            p_next: core::ptr::null_mut(),
7876            image_format_properties: Default::default(),
7877        }
7878    }
7879}
7880///[`VkPhysicalDeviceImageFormatInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageFormatInfo2.html)
7881/**
7882Provided by **VK_BASE_VERSION_1_1**.*/
7883///
7884///# Extended By
7885///- [`ImageCompressionControlEXT`]
7886///- [`ImageFormatListCreateInfo`]
7887///- [`ImageStencilUsageCreateInfo`]
7888///- [`OpticalFlowImageFormatInfoNV`]
7889///- [`PhysicalDeviceExternalImageFormatInfo`]
7890///- [`PhysicalDeviceImageDrmFormatModifierInfoEXT`]
7891///- [`PhysicalDeviceImageViewImageFormatInfoEXT`]
7892///- [`VideoProfileListInfoKHR`]
7893#[repr(C)]
7894#[derive(Copy, Clone, Debug)]
7895#[doc(alias = "VkPhysicalDeviceImageFormatInfo2")]
7896pub struct PhysicalDeviceImageFormatInfo2 {
7897    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2`.
7898    pub s_type: StructureType,
7899    ///Optional, may be null.
7900    pub p_next: *const core::ffi::c_void,
7901    pub format: Format,
7902    pub r#type: ImageType,
7903    pub tiling: ImageTiling,
7904    pub usage: ImageUsageFlags,
7905    pub flags: ImageCreateFlags,
7906}
7907impl Default for PhysicalDeviceImageFormatInfo2 {
7908    #[inline]
7909    fn default() -> Self {
7910        Self {
7911            s_type: StructureType::from_raw(1000059004i32),
7912            p_next: core::ptr::null(),
7913            format: Default::default(),
7914            r#type: Default::default(),
7915            tiling: Default::default(),
7916            usage: Default::default(),
7917            flags: Default::default(),
7918        }
7919    }
7920}
7921///[`VkQueueFamilyProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyProperties2.html)
7922/**
7923Provided by **VK_BASE_VERSION_1_1**.*/
7924/**
7925**Returned only**, filled by Vulkan, not constructed by the application.*/
7926///
7927///# Extended By
7928///- [`QueueFamilyCheckpointProperties2NV`]
7929///- [`QueueFamilyCheckpointPropertiesNV`]
7930///- [`QueueFamilyGlobalPriorityProperties`]
7931///- [`QueueFamilyOwnershipTransferPropertiesKHR`]
7932///- [`QueueFamilyQueryResultStatusPropertiesKHR`]
7933///- [`QueueFamilyVideoPropertiesKHR`]
7934#[repr(C)]
7935#[derive(Copy, Clone, Debug)]
7936#[doc(alias = "VkQueueFamilyProperties2")]
7937pub struct QueueFamilyProperties2 {
7938    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2`.
7939    pub s_type: StructureType,
7940    ///Optional, may be null.
7941    pub p_next: *mut core::ffi::c_void,
7942    pub queue_family_properties: QueueFamilyProperties,
7943}
7944impl Default for QueueFamilyProperties2 {
7945    #[inline]
7946    fn default() -> Self {
7947        Self {
7948            s_type: StructureType::from_raw(1000059005i32),
7949            p_next: core::ptr::null_mut(),
7950            queue_family_properties: Default::default(),
7951        }
7952    }
7953}
7954///[`VkPhysicalDeviceMemoryProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryProperties2.html)
7955/**
7956Provided by **VK_BASE_VERSION_1_1**.*/
7957/**
7958**Returned only**, filled by Vulkan, not constructed by the application.*/
7959///
7960///# Extended By
7961///- [`PhysicalDeviceMemoryBudgetPropertiesEXT`]
7962#[repr(C)]
7963#[derive(Copy, Clone, Debug)]
7964#[doc(alias = "VkPhysicalDeviceMemoryProperties2")]
7965pub struct PhysicalDeviceMemoryProperties2 {
7966    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2`.
7967    pub s_type: StructureType,
7968    ///Optional, may be null.
7969    pub p_next: *mut core::ffi::c_void,
7970    pub memory_properties: PhysicalDeviceMemoryProperties,
7971}
7972impl Default for PhysicalDeviceMemoryProperties2 {
7973    #[inline]
7974    fn default() -> Self {
7975        Self {
7976            s_type: StructureType::from_raw(1000059006i32),
7977            p_next: core::ptr::null_mut(),
7978            memory_properties: Default::default(),
7979        }
7980    }
7981}
7982///[`VkSparseImageFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageFormatProperties2.html)
7983/**
7984Provided by **VK_BASE_VERSION_1_1**.*/
7985/**
7986**Returned only**, filled by Vulkan, not constructed by the application.*/
7987#[repr(C)]
7988#[derive(Copy, Clone, Debug)]
7989#[doc(alias = "VkSparseImageFormatProperties2")]
7990pub struct SparseImageFormatProperties2 {
7991    ///Must be `VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2`.
7992    pub s_type: StructureType,
7993    ///Optional, may be null.
7994    pub p_next: *mut core::ffi::c_void,
7995    pub properties: SparseImageFormatProperties,
7996}
7997impl Default for SparseImageFormatProperties2 {
7998    #[inline]
7999    fn default() -> Self {
8000        Self {
8001            s_type: StructureType::from_raw(1000059007i32),
8002            p_next: core::ptr::null_mut(),
8003            properties: Default::default(),
8004        }
8005    }
8006}
8007///[`VkPhysicalDeviceSparseImageFormatInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSparseImageFormatInfo2.html)
8008/**
8009Provided by **VK_BASE_VERSION_1_1**.*/
8010#[repr(C)]
8011#[derive(Copy, Clone, Debug)]
8012#[doc(alias = "VkPhysicalDeviceSparseImageFormatInfo2")]
8013pub struct PhysicalDeviceSparseImageFormatInfo2 {
8014    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2`.
8015    pub s_type: StructureType,
8016    ///Optional, may be null.
8017    pub p_next: *const core::ffi::c_void,
8018    pub format: Format,
8019    pub r#type: ImageType,
8020    pub samples: SampleCountFlagBits,
8021    pub usage: ImageUsageFlags,
8022    pub tiling: ImageTiling,
8023}
8024impl Default for PhysicalDeviceSparseImageFormatInfo2 {
8025    #[inline]
8026    fn default() -> Self {
8027        Self {
8028            s_type: StructureType::from_raw(1000059008i32),
8029            p_next: core::ptr::null(),
8030            format: Default::default(),
8031            r#type: Default::default(),
8032            samples: Default::default(),
8033            usage: Default::default(),
8034            tiling: Default::default(),
8035        }
8036    }
8037}
8038///[`VkPhysicalDevicePushDescriptorProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePushDescriptorProperties.html)
8039/**
8040Provided by **VK_COMPUTE_VERSION_1_4**.*/
8041/**
8042**Returned only**, filled by Vulkan, not constructed by the application.*/
8043///
8044///# Extends
8045///- [`PhysicalDeviceProperties2`]
8046#[repr(C)]
8047#[derive(Copy, Clone, Debug)]
8048#[doc(alias = "VkPhysicalDevicePushDescriptorProperties")]
8049pub struct PhysicalDevicePushDescriptorProperties {
8050    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES`.
8051    pub s_type: StructureType,
8052    ///Optional, may be null.
8053    pub p_next: *mut core::ffi::c_void,
8054    pub max_push_descriptors: u32,
8055}
8056impl Default for PhysicalDevicePushDescriptorProperties {
8057    #[inline]
8058    fn default() -> Self {
8059        Self {
8060            s_type: StructureType::from_raw(1000080000i32),
8061            p_next: core::ptr::null_mut(),
8062            max_push_descriptors: Default::default(),
8063        }
8064    }
8065}
8066///[`VkConformanceVersion`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkConformanceVersion.html)
8067/**
8068Provided by **VK_BASE_VERSION_1_2**.*/
8069#[repr(C)]
8070#[derive(Copy, Clone, Debug)]
8071#[doc(alias = "VkConformanceVersion")]
8072pub struct ConformanceVersion {
8073    pub major: u8,
8074    pub minor: u8,
8075    pub subminor: u8,
8076    pub patch: u8,
8077}
8078impl Default for ConformanceVersion {
8079    #[inline]
8080    fn default() -> Self {
8081        unsafe { core::mem::zeroed() }
8082    }
8083}
8084///[`VkPhysicalDeviceDriverProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDriverProperties.html)
8085/**
8086Provided by **VK_BASE_VERSION_1_2**.*/
8087/**
8088**Returned only**, filled by Vulkan, not constructed by the application.*/
8089///
8090///# Extends
8091///- [`PhysicalDeviceProperties2`]
8092#[repr(C)]
8093#[derive(Copy, Clone, Debug)]
8094#[doc(alias = "VkPhysicalDeviceDriverProperties")]
8095pub struct PhysicalDeviceDriverProperties {
8096    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES`.
8097    pub s_type: StructureType,
8098    ///Optional, may be null.
8099    pub p_next: *mut core::ffi::c_void,
8100    pub driver_id: DriverId,
8101    pub driver_name: crate::StringArray<{ MAX_DRIVER_NAME_SIZE as usize }>,
8102    pub driver_info: crate::StringArray<{ MAX_DRIVER_INFO_SIZE as usize }>,
8103    pub conformance_version: ConformanceVersion,
8104}
8105impl Default for PhysicalDeviceDriverProperties {
8106    #[inline]
8107    fn default() -> Self {
8108        Self {
8109            s_type: StructureType::from_raw(1000196000i32),
8110            p_next: core::ptr::null_mut(),
8111            driver_id: Default::default(),
8112            driver_name: unsafe { core::mem::zeroed() },
8113            driver_info: unsafe { core::mem::zeroed() },
8114            conformance_version: Default::default(),
8115        }
8116    }
8117}
8118///[`VkPresentRegionsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentRegionsKHR.html)
8119/**
8120Provided by **VK_KHR_incremental_present**.*/
8121///
8122///# Extends
8123///- [`PresentInfoKHR`]
8124#[repr(C)]
8125#[derive(Copy, Clone, Debug)]
8126#[doc(alias = "VkPresentRegionsKHR")]
8127pub struct PresentRegionsKHR {
8128    ///Must be `VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR`.
8129    pub s_type: StructureType,
8130    ///Optional, may be null.
8131    pub p_next: *const core::ffi::c_void,
8132    ///Length of `p_regions`.
8133    pub swapchain_count: u32,
8134    ///Optional, may be null.
8135    pub p_regions: *const PresentRegionKHR,
8136}
8137impl Default for PresentRegionsKHR {
8138    #[inline]
8139    fn default() -> Self {
8140        Self {
8141            s_type: StructureType::from_raw(1000084000i32),
8142            p_next: core::ptr::null(),
8143            swapchain_count: Default::default(),
8144            p_regions: core::ptr::null(),
8145        }
8146    }
8147}
8148///[`VkPresentRegionKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentRegionKHR.html)
8149/**
8150Provided by **VK_KHR_incremental_present**.*/
8151#[repr(C)]
8152#[derive(Copy, Clone, Debug)]
8153#[doc(alias = "VkPresentRegionKHR")]
8154pub struct PresentRegionKHR {
8155    ///Length of `p_rectangles`.
8156    pub rectangle_count: u32,
8157    ///Optional, may be null.
8158    pub p_rectangles: *const RectLayerKHR,
8159}
8160impl Default for PresentRegionKHR {
8161    #[inline]
8162    fn default() -> Self {
8163        unsafe { core::mem::zeroed() }
8164    }
8165}
8166///[`VkRectLayerKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRectLayerKHR.html)
8167/**
8168Provided by **VK_KHR_incremental_present**.*/
8169#[repr(C)]
8170#[derive(Copy, Clone, Debug)]
8171#[doc(alias = "VkRectLayerKHR")]
8172pub struct RectLayerKHR {
8173    pub offset: Offset2D,
8174    pub extent: Extent2D,
8175    pub layer: u32,
8176}
8177impl Default for RectLayerKHR {
8178    #[inline]
8179    fn default() -> Self {
8180        unsafe { core::mem::zeroed() }
8181    }
8182}
8183///[`VkPhysicalDeviceVariablePointersFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVariablePointersFeatures.html)
8184/**
8185Provided by **VK_COMPUTE_VERSION_1_1**.*/
8186///
8187///# Extends
8188///- [`PhysicalDeviceFeatures2`]
8189///- [`DeviceCreateInfo`]
8190#[repr(C)]
8191#[derive(Copy, Clone, Debug)]
8192#[doc(alias = "VkPhysicalDeviceVariablePointersFeatures")]
8193pub struct PhysicalDeviceVariablePointersFeatures {
8194    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES`.
8195    pub s_type: StructureType,
8196    ///Optional, may be null.
8197    pub p_next: *mut core::ffi::c_void,
8198    pub variable_pointers_storage_buffer: u32,
8199    pub variable_pointers: u32,
8200}
8201impl Default for PhysicalDeviceVariablePointersFeatures {
8202    #[inline]
8203    fn default() -> Self {
8204        Self {
8205            s_type: StructureType::from_raw(1000120000i32),
8206            p_next: core::ptr::null_mut(),
8207            variable_pointers_storage_buffer: Default::default(),
8208            variable_pointers: Default::default(),
8209        }
8210    }
8211}
8212///[`VkExternalMemoryProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryProperties.html)
8213/**
8214Provided by **VK_BASE_VERSION_1_1**.*/
8215/**
8216**Returned only**, filled by Vulkan, not constructed by the application.*/
8217#[repr(C)]
8218#[derive(Copy, Clone, Debug)]
8219#[doc(alias = "VkExternalMemoryProperties")]
8220pub struct ExternalMemoryProperties {
8221    pub external_memory_features: ExternalMemoryFeatureFlags,
8222    pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlags,
8223    pub compatible_handle_types: ExternalMemoryHandleTypeFlags,
8224}
8225impl Default for ExternalMemoryProperties {
8226    #[inline]
8227    fn default() -> Self {
8228        unsafe { core::mem::zeroed() }
8229    }
8230}
8231///[`VkPhysicalDeviceExternalImageFormatInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalImageFormatInfo.html)
8232/**
8233Provided by **VK_BASE_VERSION_1_1**.*/
8234///
8235///# Extends
8236///- [`PhysicalDeviceImageFormatInfo2`]
8237#[repr(C)]
8238#[derive(Copy, Clone, Debug)]
8239#[doc(alias = "VkPhysicalDeviceExternalImageFormatInfo")]
8240pub struct PhysicalDeviceExternalImageFormatInfo {
8241    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO`.
8242    pub s_type: StructureType,
8243    ///Optional, may be null.
8244    pub p_next: *const core::ffi::c_void,
8245    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8246}
8247impl Default for PhysicalDeviceExternalImageFormatInfo {
8248    #[inline]
8249    fn default() -> Self {
8250        Self {
8251            s_type: StructureType::from_raw(1000071000i32),
8252            p_next: core::ptr::null(),
8253            handle_type: Default::default(),
8254        }
8255    }
8256}
8257///[`VkExternalImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalImageFormatProperties.html)
8258/**
8259Provided by **VK_BASE_VERSION_1_1**.*/
8260/**
8261**Returned only**, filled by Vulkan, not constructed by the application.*/
8262///
8263///# Extends
8264///- [`ImageFormatProperties2`]
8265#[repr(C)]
8266#[derive(Copy, Clone, Debug)]
8267#[doc(alias = "VkExternalImageFormatProperties")]
8268pub struct ExternalImageFormatProperties {
8269    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES`.
8270    pub s_type: StructureType,
8271    ///Optional, may be null.
8272    pub p_next: *mut core::ffi::c_void,
8273    pub external_memory_properties: ExternalMemoryProperties,
8274}
8275impl Default for ExternalImageFormatProperties {
8276    #[inline]
8277    fn default() -> Self {
8278        Self {
8279            s_type: StructureType::from_raw(1000071001i32),
8280            p_next: core::ptr::null_mut(),
8281            external_memory_properties: Default::default(),
8282        }
8283    }
8284}
8285///[`VkPhysicalDeviceExternalBufferInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalBufferInfo.html)
8286/**
8287Provided by **VK_BASE_VERSION_1_1**.*/
8288///
8289///# Extended By
8290///- [`BufferUsageFlags2CreateInfo`]
8291#[repr(C)]
8292#[derive(Copy, Clone, Debug)]
8293#[doc(alias = "VkPhysicalDeviceExternalBufferInfo")]
8294pub struct PhysicalDeviceExternalBufferInfo {
8295    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO`.
8296    pub s_type: StructureType,
8297    ///Optional, may be null.
8298    pub p_next: *const core::ffi::c_void,
8299    pub flags: BufferCreateFlags,
8300    pub usage: BufferUsageFlags,
8301    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8302}
8303impl Default for PhysicalDeviceExternalBufferInfo {
8304    #[inline]
8305    fn default() -> Self {
8306        Self {
8307            s_type: StructureType::from_raw(1000071002i32),
8308            p_next: core::ptr::null(),
8309            flags: Default::default(),
8310            usage: Default::default(),
8311            handle_type: Default::default(),
8312        }
8313    }
8314}
8315///[`VkExternalBufferProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalBufferProperties.html)
8316/**
8317Provided by **VK_BASE_VERSION_1_1**.*/
8318/**
8319**Returned only**, filled by Vulkan, not constructed by the application.*/
8320#[repr(C)]
8321#[derive(Copy, Clone, Debug)]
8322#[doc(alias = "VkExternalBufferProperties")]
8323pub struct ExternalBufferProperties {
8324    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES`.
8325    pub s_type: StructureType,
8326    ///Optional, may be null.
8327    pub p_next: *mut core::ffi::c_void,
8328    pub external_memory_properties: ExternalMemoryProperties,
8329}
8330impl Default for ExternalBufferProperties {
8331    #[inline]
8332    fn default() -> Self {
8333        Self {
8334            s_type: StructureType::from_raw(1000071003i32),
8335            p_next: core::ptr::null_mut(),
8336            external_memory_properties: Default::default(),
8337        }
8338    }
8339}
8340///[`VkPhysicalDeviceIDProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceIDProperties.html)
8341/**
8342Provided by **VK_BASE_VERSION_1_1**.*/
8343/**
8344**Returned only**, filled by Vulkan, not constructed by the application.*/
8345///
8346///# Extends
8347///- [`PhysicalDeviceProperties2`]
8348#[repr(C)]
8349#[derive(Copy, Clone, Debug)]
8350#[doc(alias = "VkPhysicalDeviceIDProperties")]
8351pub struct PhysicalDeviceIDProperties {
8352    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES`.
8353    pub s_type: StructureType,
8354    ///Optional, may be null.
8355    pub p_next: *mut core::ffi::c_void,
8356    pub device_uuid: [u8; UUID_SIZE as usize],
8357    pub driver_uuid: [u8; UUID_SIZE as usize],
8358    pub device_luid: [u8; LUID_SIZE as usize],
8359    pub device_node_mask: u32,
8360    pub device_luid_valid: u32,
8361}
8362impl Default for PhysicalDeviceIDProperties {
8363    #[inline]
8364    fn default() -> Self {
8365        Self {
8366            s_type: StructureType::from_raw(1000071004i32),
8367            p_next: core::ptr::null_mut(),
8368            device_uuid: unsafe { core::mem::zeroed() },
8369            driver_uuid: unsafe { core::mem::zeroed() },
8370            device_luid: unsafe { core::mem::zeroed() },
8371            device_node_mask: Default::default(),
8372            device_luid_valid: Default::default(),
8373        }
8374    }
8375}
8376///[`VkExternalMemoryImageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryImageCreateInfo.html)
8377/**
8378Provided by **VK_BASE_VERSION_1_1**.*/
8379///
8380///# Extends
8381///- [`ImageCreateInfo`]
8382#[repr(C)]
8383#[derive(Copy, Clone, Debug)]
8384#[doc(alias = "VkExternalMemoryImageCreateInfo")]
8385pub struct ExternalMemoryImageCreateInfo {
8386    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO`.
8387    pub s_type: StructureType,
8388    ///Optional, may be null.
8389    pub p_next: *const core::ffi::c_void,
8390    pub handle_types: ExternalMemoryHandleTypeFlags,
8391}
8392impl Default for ExternalMemoryImageCreateInfo {
8393    #[inline]
8394    fn default() -> Self {
8395        Self {
8396            s_type: StructureType::from_raw(1000072001i32),
8397            p_next: core::ptr::null(),
8398            handle_types: Default::default(),
8399        }
8400    }
8401}
8402///[`VkExternalMemoryBufferCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryBufferCreateInfo.html)
8403/**
8404Provided by **VK_BASE_VERSION_1_1**.*/
8405///
8406///# Extends
8407///- [`BufferCreateInfo`]
8408#[repr(C)]
8409#[derive(Copy, Clone, Debug)]
8410#[doc(alias = "VkExternalMemoryBufferCreateInfo")]
8411pub struct ExternalMemoryBufferCreateInfo {
8412    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO`.
8413    pub s_type: StructureType,
8414    ///Optional, may be null.
8415    pub p_next: *const core::ffi::c_void,
8416    pub handle_types: ExternalMemoryHandleTypeFlags,
8417}
8418impl Default for ExternalMemoryBufferCreateInfo {
8419    #[inline]
8420    fn default() -> Self {
8421        Self {
8422            s_type: StructureType::from_raw(1000072000i32),
8423            p_next: core::ptr::null(),
8424            handle_types: Default::default(),
8425        }
8426    }
8427}
8428///[`VkExportMemoryAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemoryAllocateInfo.html)
8429/**
8430Provided by **VK_BASE_VERSION_1_1**.*/
8431///
8432///# Extends
8433///- [`MemoryAllocateInfo`]
8434#[repr(C)]
8435#[derive(Copy, Clone, Debug)]
8436#[doc(alias = "VkExportMemoryAllocateInfo")]
8437pub struct ExportMemoryAllocateInfo {
8438    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO`.
8439    pub s_type: StructureType,
8440    ///Optional, may be null.
8441    pub p_next: *const core::ffi::c_void,
8442    pub handle_types: ExternalMemoryHandleTypeFlags,
8443}
8444impl Default for ExportMemoryAllocateInfo {
8445    #[inline]
8446    fn default() -> Self {
8447        Self {
8448            s_type: StructureType::from_raw(1000072002i32),
8449            p_next: core::ptr::null(),
8450            handle_types: Default::default(),
8451        }
8452    }
8453}
8454///[`VkImportMemoryWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryWin32HandleInfoKHR.html)
8455/**
8456Provided by **VK_KHR_external_memory_win32**.*/
8457///
8458///# Extends
8459///- [`MemoryAllocateInfo`]
8460#[repr(C)]
8461#[derive(Copy, Clone, Debug)]
8462#[doc(alias = "VkImportMemoryWin32HandleInfoKHR")]
8463pub struct ImportMemoryWin32HandleInfoKHR {
8464    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR`.
8465    pub s_type: StructureType,
8466    ///Optional, may be null.
8467    pub p_next: *const core::ffi::c_void,
8468    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8469    pub handle: isize,
8470    pub name: *const u16,
8471}
8472impl Default for ImportMemoryWin32HandleInfoKHR {
8473    #[inline]
8474    fn default() -> Self {
8475        Self {
8476            s_type: StructureType::from_raw(1000073000i32),
8477            p_next: core::ptr::null(),
8478            handle_type: Default::default(),
8479            handle: Default::default(),
8480            name: core::ptr::null(),
8481        }
8482    }
8483}
8484///[`VkExportMemoryWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemoryWin32HandleInfoKHR.html)
8485/**
8486Provided by **VK_KHR_external_memory_win32**.*/
8487///
8488///# Extends
8489///- [`MemoryAllocateInfo`]
8490#[repr(C)]
8491#[derive(Copy, Clone, Debug)]
8492#[doc(alias = "VkExportMemoryWin32HandleInfoKHR")]
8493pub struct ExportMemoryWin32HandleInfoKHR {
8494    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR`.
8495    pub s_type: StructureType,
8496    ///Optional, may be null.
8497    pub p_next: *const core::ffi::c_void,
8498    ///Optional, may be null.
8499    pub p_attributes: *const core::ffi::c_void,
8500    pub dw_access: u32,
8501    pub name: *const u16,
8502}
8503impl Default for ExportMemoryWin32HandleInfoKHR {
8504    #[inline]
8505    fn default() -> Self {
8506        Self {
8507            s_type: StructureType::from_raw(1000073001i32),
8508            p_next: core::ptr::null(),
8509            p_attributes: core::ptr::null(),
8510            dw_access: Default::default(),
8511            name: core::ptr::null(),
8512        }
8513    }
8514}
8515///[`VkImportMemoryZirconHandleInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryZirconHandleInfoFUCHSIA.html)
8516/**
8517Provided by **VK_FUCHSIA_external_memory**.*/
8518///
8519///# Extends
8520///- [`MemoryAllocateInfo`]
8521#[repr(C)]
8522#[derive(Copy, Clone, Debug)]
8523#[doc(alias = "VkImportMemoryZirconHandleInfoFUCHSIA")]
8524pub struct ImportMemoryZirconHandleInfoFUCHSIA {
8525    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA`.
8526    pub s_type: StructureType,
8527    ///Optional, may be null.
8528    pub p_next: *const core::ffi::c_void,
8529    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8530    pub handle: u32,
8531}
8532impl Default for ImportMemoryZirconHandleInfoFUCHSIA {
8533    #[inline]
8534    fn default() -> Self {
8535        Self {
8536            s_type: StructureType::from_raw(1000364000i32),
8537            p_next: core::ptr::null(),
8538            handle_type: Default::default(),
8539            handle: Default::default(),
8540        }
8541    }
8542}
8543///[`VkMemoryZirconHandlePropertiesFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryZirconHandlePropertiesFUCHSIA.html)
8544/**
8545Provided by **VK_FUCHSIA_external_memory**.*/
8546/**
8547**Returned only**, filled by Vulkan, not constructed by the application.*/
8548#[repr(C)]
8549#[derive(Copy, Clone, Debug)]
8550#[doc(alias = "VkMemoryZirconHandlePropertiesFUCHSIA")]
8551pub struct MemoryZirconHandlePropertiesFUCHSIA {
8552    ///Must be `VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA`.
8553    pub s_type: StructureType,
8554    ///Optional, may be null.
8555    pub p_next: *mut core::ffi::c_void,
8556    pub memory_type_bits: u32,
8557}
8558impl Default for MemoryZirconHandlePropertiesFUCHSIA {
8559    #[inline]
8560    fn default() -> Self {
8561        Self {
8562            s_type: StructureType::from_raw(1000364001i32),
8563            p_next: core::ptr::null_mut(),
8564            memory_type_bits: Default::default(),
8565        }
8566    }
8567}
8568///[`VkMemoryGetZirconHandleInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetZirconHandleInfoFUCHSIA.html)
8569/**
8570Provided by **VK_FUCHSIA_external_memory**.*/
8571#[repr(C)]
8572#[derive(Copy, Clone, Debug)]
8573#[doc(alias = "VkMemoryGetZirconHandleInfoFUCHSIA")]
8574pub struct MemoryGetZirconHandleInfoFUCHSIA {
8575    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA`.
8576    pub s_type: StructureType,
8577    ///Optional, may be null.
8578    pub p_next: *const core::ffi::c_void,
8579    pub memory: DeviceMemory,
8580    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8581}
8582impl Default for MemoryGetZirconHandleInfoFUCHSIA {
8583    #[inline]
8584    fn default() -> Self {
8585        Self {
8586            s_type: StructureType::from_raw(1000364002i32),
8587            p_next: core::ptr::null(),
8588            memory: Default::default(),
8589            handle_type: Default::default(),
8590        }
8591    }
8592}
8593///[`VkMemoryWin32HandlePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryWin32HandlePropertiesKHR.html)
8594/**
8595Provided by **VK_KHR_external_memory_win32**.*/
8596/**
8597**Returned only**, filled by Vulkan, not constructed by the application.*/
8598#[repr(C)]
8599#[derive(Copy, Clone, Debug)]
8600#[doc(alias = "VkMemoryWin32HandlePropertiesKHR")]
8601pub struct MemoryWin32HandlePropertiesKHR {
8602    ///Must be `VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR`.
8603    pub s_type: StructureType,
8604    ///Optional, may be null.
8605    pub p_next: *mut core::ffi::c_void,
8606    pub memory_type_bits: u32,
8607}
8608impl Default for MemoryWin32HandlePropertiesKHR {
8609    #[inline]
8610    fn default() -> Self {
8611        Self {
8612            s_type: StructureType::from_raw(1000073002i32),
8613            p_next: core::ptr::null_mut(),
8614            memory_type_bits: Default::default(),
8615        }
8616    }
8617}
8618///[`VkMemoryGetWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetWin32HandleInfoKHR.html)
8619/**
8620Provided by **VK_KHR_external_memory_win32**.*/
8621#[repr(C)]
8622#[derive(Copy, Clone, Debug)]
8623#[doc(alias = "VkMemoryGetWin32HandleInfoKHR")]
8624pub struct MemoryGetWin32HandleInfoKHR {
8625    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR`.
8626    pub s_type: StructureType,
8627    ///Optional, may be null.
8628    pub p_next: *const core::ffi::c_void,
8629    pub memory: DeviceMemory,
8630    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8631}
8632impl Default for MemoryGetWin32HandleInfoKHR {
8633    #[inline]
8634    fn default() -> Self {
8635        Self {
8636            s_type: StructureType::from_raw(1000073003i32),
8637            p_next: core::ptr::null(),
8638            memory: Default::default(),
8639            handle_type: Default::default(),
8640        }
8641    }
8642}
8643///[`VkImportMemoryFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryFdInfoKHR.html)
8644/**
8645Provided by **VK_KHR_external_memory_fd**.*/
8646///
8647///# Extends
8648///- [`MemoryAllocateInfo`]
8649#[repr(C)]
8650#[derive(Copy, Clone, Debug)]
8651#[doc(alias = "VkImportMemoryFdInfoKHR")]
8652pub struct ImportMemoryFdInfoKHR {
8653    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR`.
8654    pub s_type: StructureType,
8655    ///Optional, may be null.
8656    pub p_next: *const core::ffi::c_void,
8657    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8658    pub fd: core::ffi::c_int,
8659}
8660impl Default for ImportMemoryFdInfoKHR {
8661    #[inline]
8662    fn default() -> Self {
8663        Self {
8664            s_type: StructureType::from_raw(1000074000i32),
8665            p_next: core::ptr::null(),
8666            handle_type: Default::default(),
8667            fd: Default::default(),
8668        }
8669    }
8670}
8671///[`VkMemoryFdPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryFdPropertiesKHR.html)
8672/**
8673Provided by **VK_KHR_external_memory_fd**.*/
8674/**
8675**Returned only**, filled by Vulkan, not constructed by the application.*/
8676#[repr(C)]
8677#[derive(Copy, Clone, Debug)]
8678#[doc(alias = "VkMemoryFdPropertiesKHR")]
8679pub struct MemoryFdPropertiesKHR {
8680    ///Must be `VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR`.
8681    pub s_type: StructureType,
8682    ///Optional, may be null.
8683    pub p_next: *mut core::ffi::c_void,
8684    pub memory_type_bits: u32,
8685}
8686impl Default for MemoryFdPropertiesKHR {
8687    #[inline]
8688    fn default() -> Self {
8689        Self {
8690            s_type: StructureType::from_raw(1000074001i32),
8691            p_next: core::ptr::null_mut(),
8692            memory_type_bits: Default::default(),
8693        }
8694    }
8695}
8696///[`VkMemoryGetFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetFdInfoKHR.html)
8697/**
8698Provided by **VK_KHR_external_memory_fd**.*/
8699#[repr(C)]
8700#[derive(Copy, Clone, Debug)]
8701#[doc(alias = "VkMemoryGetFdInfoKHR")]
8702pub struct MemoryGetFdInfoKHR {
8703    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR`.
8704    pub s_type: StructureType,
8705    ///Optional, may be null.
8706    pub p_next: *const core::ffi::c_void,
8707    pub memory: DeviceMemory,
8708    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8709}
8710impl Default for MemoryGetFdInfoKHR {
8711    #[inline]
8712    fn default() -> Self {
8713        Self {
8714            s_type: StructureType::from_raw(1000074002i32),
8715            p_next: core::ptr::null(),
8716            memory: Default::default(),
8717            handle_type: Default::default(),
8718        }
8719    }
8720}
8721///[`VkWin32KeyedMutexAcquireReleaseInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWin32KeyedMutexAcquireReleaseInfoKHR.html)
8722/**
8723Provided by **VK_KHR_win32_keyed_mutex**.*/
8724///
8725///# Extends
8726///- [`SubmitInfo`]
8727///- [`SubmitInfo2`]
8728#[repr(C)]
8729#[derive(Copy, Clone, Debug)]
8730#[doc(alias = "VkWin32KeyedMutexAcquireReleaseInfoKHR")]
8731pub struct Win32KeyedMutexAcquireReleaseInfoKHR {
8732    ///Must be `VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR`.
8733    pub s_type: StructureType,
8734    ///Optional, may be null.
8735    pub p_next: *const core::ffi::c_void,
8736    ///Length of `p_acquire_timeouts`.
8737    pub acquire_count: u32,
8738    pub p_acquire_syncs: *const DeviceMemory,
8739    pub p_acquire_keys: *const u64,
8740    pub p_acquire_timeouts: *const u32,
8741    ///Length of `p_release_keys`.
8742    pub release_count: u32,
8743    pub p_release_syncs: *const DeviceMemory,
8744    pub p_release_keys: *const u64,
8745}
8746impl Default for Win32KeyedMutexAcquireReleaseInfoKHR {
8747    #[inline]
8748    fn default() -> Self {
8749        Self {
8750            s_type: StructureType::from_raw(1000075000i32),
8751            p_next: core::ptr::null(),
8752            acquire_count: Default::default(),
8753            p_acquire_syncs: core::ptr::null(),
8754            p_acquire_keys: core::ptr::null(),
8755            p_acquire_timeouts: core::ptr::null(),
8756            release_count: Default::default(),
8757            p_release_syncs: core::ptr::null(),
8758            p_release_keys: core::ptr::null(),
8759        }
8760    }
8761}
8762///[`VkImportMemoryMetalHandleInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryMetalHandleInfoEXT.html)
8763/**
8764Provided by **VK_EXT_external_memory_metal**.*/
8765///
8766///# Extends
8767///- [`MemoryAllocateInfo`]
8768#[repr(C)]
8769#[derive(Copy, Clone, Debug)]
8770#[doc(alias = "VkImportMemoryMetalHandleInfoEXT")]
8771pub struct ImportMemoryMetalHandleInfoEXT {
8772    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT`.
8773    pub s_type: StructureType,
8774    ///Optional, may be null.
8775    pub p_next: *const core::ffi::c_void,
8776    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8777    ///Optional, may be null.
8778    pub handle: *mut core::ffi::c_void,
8779}
8780impl Default for ImportMemoryMetalHandleInfoEXT {
8781    #[inline]
8782    fn default() -> Self {
8783        Self {
8784            s_type: StructureType::from_raw(1000602000i32),
8785            p_next: core::ptr::null(),
8786            handle_type: Default::default(),
8787            handle: core::ptr::null_mut(),
8788        }
8789    }
8790}
8791///[`VkMemoryMetalHandlePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryMetalHandlePropertiesEXT.html)
8792/**
8793Provided by **VK_EXT_external_memory_metal**.*/
8794/**
8795**Returned only**, filled by Vulkan, not constructed by the application.*/
8796#[repr(C)]
8797#[derive(Copy, Clone, Debug)]
8798#[doc(alias = "VkMemoryMetalHandlePropertiesEXT")]
8799pub struct MemoryMetalHandlePropertiesEXT {
8800    ///Must be `VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT`.
8801    pub s_type: StructureType,
8802    ///Optional, may be null.
8803    pub p_next: *mut core::ffi::c_void,
8804    pub memory_type_bits: u32,
8805}
8806impl Default for MemoryMetalHandlePropertiesEXT {
8807    #[inline]
8808    fn default() -> Self {
8809        Self {
8810            s_type: StructureType::from_raw(1000602001i32),
8811            p_next: core::ptr::null_mut(),
8812            memory_type_bits: Default::default(),
8813        }
8814    }
8815}
8816///[`VkMemoryGetMetalHandleInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetMetalHandleInfoEXT.html)
8817/**
8818Provided by **VK_EXT_external_memory_metal**.*/
8819#[repr(C)]
8820#[derive(Copy, Clone, Debug)]
8821#[doc(alias = "VkMemoryGetMetalHandleInfoEXT")]
8822pub struct MemoryGetMetalHandleInfoEXT {
8823    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT`.
8824    pub s_type: StructureType,
8825    ///Optional, may be null.
8826    pub p_next: *const core::ffi::c_void,
8827    pub memory: DeviceMemory,
8828    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8829}
8830impl Default for MemoryGetMetalHandleInfoEXT {
8831    #[inline]
8832    fn default() -> Self {
8833        Self {
8834            s_type: StructureType::from_raw(1000602002i32),
8835            p_next: core::ptr::null(),
8836            memory: Default::default(),
8837            handle_type: Default::default(),
8838        }
8839    }
8840}
8841///[`VkPhysicalDeviceExternalSemaphoreInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html)
8842/**
8843Provided by **VK_BASE_VERSION_1_1**.*/
8844///
8845///# Extended By
8846///- [`SemaphoreTypeCreateInfo`]
8847#[repr(C)]
8848#[derive(Copy, Clone, Debug)]
8849#[doc(alias = "VkPhysicalDeviceExternalSemaphoreInfo")]
8850pub struct PhysicalDeviceExternalSemaphoreInfo {
8851    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO`.
8852    pub s_type: StructureType,
8853    ///Optional, may be null.
8854    pub p_next: *const core::ffi::c_void,
8855    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
8856}
8857impl Default for PhysicalDeviceExternalSemaphoreInfo {
8858    #[inline]
8859    fn default() -> Self {
8860        Self {
8861            s_type: StructureType::from_raw(1000076000i32),
8862            p_next: core::ptr::null(),
8863            handle_type: Default::default(),
8864        }
8865    }
8866}
8867///[`VkExternalSemaphoreProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalSemaphoreProperties.html)
8868/**
8869Provided by **VK_BASE_VERSION_1_1**.*/
8870/**
8871**Returned only**, filled by Vulkan, not constructed by the application.*/
8872#[repr(C)]
8873#[derive(Copy, Clone, Debug)]
8874#[doc(alias = "VkExternalSemaphoreProperties")]
8875pub struct ExternalSemaphoreProperties {
8876    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES`.
8877    pub s_type: StructureType,
8878    ///Optional, may be null.
8879    pub p_next: *mut core::ffi::c_void,
8880    pub export_from_imported_handle_types: ExternalSemaphoreHandleTypeFlags,
8881    pub compatible_handle_types: ExternalSemaphoreHandleTypeFlags,
8882    pub external_semaphore_features: ExternalSemaphoreFeatureFlags,
8883}
8884impl Default for ExternalSemaphoreProperties {
8885    #[inline]
8886    fn default() -> Self {
8887        Self {
8888            s_type: StructureType::from_raw(1000076001i32),
8889            p_next: core::ptr::null_mut(),
8890            export_from_imported_handle_types: Default::default(),
8891            compatible_handle_types: Default::default(),
8892            external_semaphore_features: Default::default(),
8893        }
8894    }
8895}
8896///[`VkExportSemaphoreCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportSemaphoreCreateInfo.html)
8897/**
8898Provided by **VK_BASE_VERSION_1_1**.*/
8899///
8900///# Extends
8901///- [`SemaphoreCreateInfo`]
8902#[repr(C)]
8903#[derive(Copy, Clone, Debug)]
8904#[doc(alias = "VkExportSemaphoreCreateInfo")]
8905pub struct ExportSemaphoreCreateInfo {
8906    ///Must be `VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO`.
8907    pub s_type: StructureType,
8908    ///Optional, may be null.
8909    pub p_next: *const core::ffi::c_void,
8910    pub handle_types: ExternalSemaphoreHandleTypeFlags,
8911}
8912impl Default for ExportSemaphoreCreateInfo {
8913    #[inline]
8914    fn default() -> Self {
8915        Self {
8916            s_type: StructureType::from_raw(1000077000i32),
8917            p_next: core::ptr::null(),
8918            handle_types: Default::default(),
8919        }
8920    }
8921}
8922///[`VkImportSemaphoreWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportSemaphoreWin32HandleInfoKHR.html)
8923/**
8924Provided by **VK_KHR_external_semaphore_win32**.*/
8925#[repr(C)]
8926#[derive(Copy, Clone, Debug)]
8927#[doc(alias = "VkImportSemaphoreWin32HandleInfoKHR")]
8928pub struct ImportSemaphoreWin32HandleInfoKHR {
8929    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR`.
8930    pub s_type: StructureType,
8931    ///Optional, may be null.
8932    pub p_next: *const core::ffi::c_void,
8933    ///**Thread safety:** must be externally synchronized.
8934    pub semaphore: Semaphore,
8935    pub flags: SemaphoreImportFlags,
8936    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
8937    pub handle: isize,
8938    pub name: *const u16,
8939}
8940impl Default for ImportSemaphoreWin32HandleInfoKHR {
8941    #[inline]
8942    fn default() -> Self {
8943        Self {
8944            s_type: StructureType::from_raw(1000078000i32),
8945            p_next: core::ptr::null(),
8946            semaphore: Default::default(),
8947            flags: Default::default(),
8948            handle_type: Default::default(),
8949            handle: Default::default(),
8950            name: core::ptr::null(),
8951        }
8952    }
8953}
8954///[`VkExportSemaphoreWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportSemaphoreWin32HandleInfoKHR.html)
8955/**
8956Provided by **VK_KHR_external_semaphore_win32**.*/
8957///
8958///# Extends
8959///- [`SemaphoreCreateInfo`]
8960#[repr(C)]
8961#[derive(Copy, Clone, Debug)]
8962#[doc(alias = "VkExportSemaphoreWin32HandleInfoKHR")]
8963pub struct ExportSemaphoreWin32HandleInfoKHR {
8964    ///Must be `VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR`.
8965    pub s_type: StructureType,
8966    ///Optional, may be null.
8967    pub p_next: *const core::ffi::c_void,
8968    ///Optional, may be null.
8969    pub p_attributes: *const core::ffi::c_void,
8970    pub dw_access: u32,
8971    pub name: *const u16,
8972}
8973impl Default for ExportSemaphoreWin32HandleInfoKHR {
8974    #[inline]
8975    fn default() -> Self {
8976        Self {
8977            s_type: StructureType::from_raw(1000078001i32),
8978            p_next: core::ptr::null(),
8979            p_attributes: core::ptr::null(),
8980            dw_access: Default::default(),
8981            name: core::ptr::null(),
8982        }
8983    }
8984}
8985///[`VkD3D12FenceSubmitInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkD3D12FenceSubmitInfoKHR.html)
8986/**
8987Provided by **VK_KHR_external_semaphore_win32**.*/
8988///
8989///# Extends
8990///- [`SubmitInfo`]
8991#[repr(C)]
8992#[derive(Copy, Clone, Debug)]
8993#[doc(alias = "VkD3D12FenceSubmitInfoKHR")]
8994pub struct D3D12FenceSubmitInfoKHR {
8995    ///Must be `VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR`.
8996    pub s_type: StructureType,
8997    ///Optional, may be null.
8998    pub p_next: *const core::ffi::c_void,
8999    ///Length of `p_wait_semaphore_values`.
9000    pub wait_semaphore_values_count: u32,
9001    ///Optional, may be null.
9002    pub p_wait_semaphore_values: *const u64,
9003    ///Length of `p_signal_semaphore_values`.
9004    pub signal_semaphore_values_count: u32,
9005    ///Optional, may be null.
9006    pub p_signal_semaphore_values: *const u64,
9007}
9008impl Default for D3D12FenceSubmitInfoKHR {
9009    #[inline]
9010    fn default() -> Self {
9011        Self {
9012            s_type: StructureType::from_raw(1000078002i32),
9013            p_next: core::ptr::null(),
9014            wait_semaphore_values_count: Default::default(),
9015            p_wait_semaphore_values: core::ptr::null(),
9016            signal_semaphore_values_count: Default::default(),
9017            p_signal_semaphore_values: core::ptr::null(),
9018        }
9019    }
9020}
9021///[`VkSemaphoreGetWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreGetWin32HandleInfoKHR.html)
9022/**
9023Provided by **VK_KHR_external_semaphore_win32**.*/
9024#[repr(C)]
9025#[derive(Copy, Clone, Debug)]
9026#[doc(alias = "VkSemaphoreGetWin32HandleInfoKHR")]
9027pub struct SemaphoreGetWin32HandleInfoKHR {
9028    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR`.
9029    pub s_type: StructureType,
9030    ///Optional, may be null.
9031    pub p_next: *const core::ffi::c_void,
9032    pub semaphore: Semaphore,
9033    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9034}
9035impl Default for SemaphoreGetWin32HandleInfoKHR {
9036    #[inline]
9037    fn default() -> Self {
9038        Self {
9039            s_type: StructureType::from_raw(1000078003i32),
9040            p_next: core::ptr::null(),
9041            semaphore: Default::default(),
9042            handle_type: Default::default(),
9043        }
9044    }
9045}
9046///[`VkImportSemaphoreFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportSemaphoreFdInfoKHR.html)
9047/**
9048Provided by **VK_KHR_external_semaphore_fd**.*/
9049#[repr(C)]
9050#[derive(Copy, Clone, Debug)]
9051#[doc(alias = "VkImportSemaphoreFdInfoKHR")]
9052pub struct ImportSemaphoreFdInfoKHR {
9053    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR`.
9054    pub s_type: StructureType,
9055    ///Optional, may be null.
9056    pub p_next: *const core::ffi::c_void,
9057    ///**Thread safety:** must be externally synchronized.
9058    pub semaphore: Semaphore,
9059    pub flags: SemaphoreImportFlags,
9060    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9061    pub fd: core::ffi::c_int,
9062}
9063impl Default for ImportSemaphoreFdInfoKHR {
9064    #[inline]
9065    fn default() -> Self {
9066        Self {
9067            s_type: StructureType::from_raw(1000079000i32),
9068            p_next: core::ptr::null(),
9069            semaphore: Default::default(),
9070            flags: Default::default(),
9071            handle_type: Default::default(),
9072            fd: Default::default(),
9073        }
9074    }
9075}
9076///[`VkSemaphoreGetFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreGetFdInfoKHR.html)
9077/**
9078Provided by **VK_KHR_external_semaphore_fd**.*/
9079#[repr(C)]
9080#[derive(Copy, Clone, Debug)]
9081#[doc(alias = "VkSemaphoreGetFdInfoKHR")]
9082pub struct SemaphoreGetFdInfoKHR {
9083    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR`.
9084    pub s_type: StructureType,
9085    ///Optional, may be null.
9086    pub p_next: *const core::ffi::c_void,
9087    pub semaphore: Semaphore,
9088    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9089}
9090impl Default for SemaphoreGetFdInfoKHR {
9091    #[inline]
9092    fn default() -> Self {
9093        Self {
9094            s_type: StructureType::from_raw(1000079001i32),
9095            p_next: core::ptr::null(),
9096            semaphore: Default::default(),
9097            handle_type: Default::default(),
9098        }
9099    }
9100}
9101///[`VkImportSemaphoreZirconHandleInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportSemaphoreZirconHandleInfoFUCHSIA.html)
9102/**
9103Provided by **VK_FUCHSIA_external_semaphore**.*/
9104#[repr(C)]
9105#[derive(Copy, Clone, Debug)]
9106#[doc(alias = "VkImportSemaphoreZirconHandleInfoFUCHSIA")]
9107pub struct ImportSemaphoreZirconHandleInfoFUCHSIA {
9108    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA`.
9109    pub s_type: StructureType,
9110    ///Optional, may be null.
9111    pub p_next: *const core::ffi::c_void,
9112    ///**Thread safety:** must be externally synchronized.
9113    pub semaphore: Semaphore,
9114    pub flags: SemaphoreImportFlags,
9115    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9116    pub zircon_handle: u32,
9117}
9118impl Default for ImportSemaphoreZirconHandleInfoFUCHSIA {
9119    #[inline]
9120    fn default() -> Self {
9121        Self {
9122            s_type: StructureType::from_raw(1000365000i32),
9123            p_next: core::ptr::null(),
9124            semaphore: Default::default(),
9125            flags: Default::default(),
9126            handle_type: Default::default(),
9127            zircon_handle: Default::default(),
9128        }
9129    }
9130}
9131///[`VkSemaphoreGetZirconHandleInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreGetZirconHandleInfoFUCHSIA.html)
9132/**
9133Provided by **VK_FUCHSIA_external_semaphore**.*/
9134#[repr(C)]
9135#[derive(Copy, Clone, Debug)]
9136#[doc(alias = "VkSemaphoreGetZirconHandleInfoFUCHSIA")]
9137pub struct SemaphoreGetZirconHandleInfoFUCHSIA {
9138    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA`.
9139    pub s_type: StructureType,
9140    ///Optional, may be null.
9141    pub p_next: *const core::ffi::c_void,
9142    pub semaphore: Semaphore,
9143    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9144}
9145impl Default for SemaphoreGetZirconHandleInfoFUCHSIA {
9146    #[inline]
9147    fn default() -> Self {
9148        Self {
9149            s_type: StructureType::from_raw(1000365001i32),
9150            p_next: core::ptr::null(),
9151            semaphore: Default::default(),
9152            handle_type: Default::default(),
9153        }
9154    }
9155}
9156///[`VkPhysicalDeviceExternalFenceInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalFenceInfo.html)
9157/**
9158Provided by **VK_BASE_VERSION_1_1**.*/
9159#[repr(C)]
9160#[derive(Copy, Clone, Debug)]
9161#[doc(alias = "VkPhysicalDeviceExternalFenceInfo")]
9162pub struct PhysicalDeviceExternalFenceInfo {
9163    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO`.
9164    pub s_type: StructureType,
9165    ///Optional, may be null.
9166    pub p_next: *const core::ffi::c_void,
9167    pub handle_type: ExternalFenceHandleTypeFlagBits,
9168}
9169impl Default for PhysicalDeviceExternalFenceInfo {
9170    #[inline]
9171    fn default() -> Self {
9172        Self {
9173            s_type: StructureType::from_raw(1000112000i32),
9174            p_next: core::ptr::null(),
9175            handle_type: Default::default(),
9176        }
9177    }
9178}
9179///[`VkExternalFenceProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalFenceProperties.html)
9180/**
9181Provided by **VK_BASE_VERSION_1_1**.*/
9182/**
9183**Returned only**, filled by Vulkan, not constructed by the application.*/
9184#[repr(C)]
9185#[derive(Copy, Clone, Debug)]
9186#[doc(alias = "VkExternalFenceProperties")]
9187pub struct ExternalFenceProperties {
9188    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES`.
9189    pub s_type: StructureType,
9190    ///Optional, may be null.
9191    pub p_next: *mut core::ffi::c_void,
9192    pub export_from_imported_handle_types: ExternalFenceHandleTypeFlags,
9193    pub compatible_handle_types: ExternalFenceHandleTypeFlags,
9194    pub external_fence_features: ExternalFenceFeatureFlags,
9195}
9196impl Default for ExternalFenceProperties {
9197    #[inline]
9198    fn default() -> Self {
9199        Self {
9200            s_type: StructureType::from_raw(1000112001i32),
9201            p_next: core::ptr::null_mut(),
9202            export_from_imported_handle_types: Default::default(),
9203            compatible_handle_types: Default::default(),
9204            external_fence_features: Default::default(),
9205        }
9206    }
9207}
9208///[`VkExportFenceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportFenceCreateInfo.html)
9209/**
9210Provided by **VK_BASE_VERSION_1_1**.*/
9211///
9212///# Extends
9213///- [`FenceCreateInfo`]
9214#[repr(C)]
9215#[derive(Copy, Clone, Debug)]
9216#[doc(alias = "VkExportFenceCreateInfo")]
9217pub struct ExportFenceCreateInfo {
9218    ///Must be `VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO`.
9219    pub s_type: StructureType,
9220    ///Optional, may be null.
9221    pub p_next: *const core::ffi::c_void,
9222    pub handle_types: ExternalFenceHandleTypeFlags,
9223}
9224impl Default for ExportFenceCreateInfo {
9225    #[inline]
9226    fn default() -> Self {
9227        Self {
9228            s_type: StructureType::from_raw(1000113000i32),
9229            p_next: core::ptr::null(),
9230            handle_types: Default::default(),
9231        }
9232    }
9233}
9234///[`VkImportFenceWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportFenceWin32HandleInfoKHR.html)
9235/**
9236Provided by **VK_KHR_external_fence_win32**.*/
9237#[repr(C)]
9238#[derive(Copy, Clone, Debug)]
9239#[doc(alias = "VkImportFenceWin32HandleInfoKHR")]
9240pub struct ImportFenceWin32HandleInfoKHR {
9241    ///Must be `VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR`.
9242    pub s_type: StructureType,
9243    ///Optional, may be null.
9244    pub p_next: *const core::ffi::c_void,
9245    ///**Thread safety:** must be externally synchronized.
9246    pub fence: Fence,
9247    pub flags: FenceImportFlags,
9248    pub handle_type: ExternalFenceHandleTypeFlagBits,
9249    pub handle: isize,
9250    pub name: *const u16,
9251}
9252impl Default for ImportFenceWin32HandleInfoKHR {
9253    #[inline]
9254    fn default() -> Self {
9255        Self {
9256            s_type: StructureType::from_raw(1000114000i32),
9257            p_next: core::ptr::null(),
9258            fence: Default::default(),
9259            flags: Default::default(),
9260            handle_type: Default::default(),
9261            handle: Default::default(),
9262            name: core::ptr::null(),
9263        }
9264    }
9265}
9266///[`VkExportFenceWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportFenceWin32HandleInfoKHR.html)
9267/**
9268Provided by **VK_KHR_external_fence_win32**.*/
9269///
9270///# Extends
9271///- [`FenceCreateInfo`]
9272#[repr(C)]
9273#[derive(Copy, Clone, Debug)]
9274#[doc(alias = "VkExportFenceWin32HandleInfoKHR")]
9275pub struct ExportFenceWin32HandleInfoKHR {
9276    ///Must be `VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR`.
9277    pub s_type: StructureType,
9278    ///Optional, may be null.
9279    pub p_next: *const core::ffi::c_void,
9280    ///Optional, may be null.
9281    pub p_attributes: *const core::ffi::c_void,
9282    pub dw_access: u32,
9283    pub name: *const u16,
9284}
9285impl Default for ExportFenceWin32HandleInfoKHR {
9286    #[inline]
9287    fn default() -> Self {
9288        Self {
9289            s_type: StructureType::from_raw(1000114001i32),
9290            p_next: core::ptr::null(),
9291            p_attributes: core::ptr::null(),
9292            dw_access: Default::default(),
9293            name: core::ptr::null(),
9294        }
9295    }
9296}
9297///[`VkFenceGetWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceGetWin32HandleInfoKHR.html)
9298/**
9299Provided by **VK_KHR_external_fence_win32**.*/
9300#[repr(C)]
9301#[derive(Copy, Clone, Debug)]
9302#[doc(alias = "VkFenceGetWin32HandleInfoKHR")]
9303pub struct FenceGetWin32HandleInfoKHR {
9304    ///Must be `VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR`.
9305    pub s_type: StructureType,
9306    ///Optional, may be null.
9307    pub p_next: *const core::ffi::c_void,
9308    pub fence: Fence,
9309    pub handle_type: ExternalFenceHandleTypeFlagBits,
9310}
9311impl Default for FenceGetWin32HandleInfoKHR {
9312    #[inline]
9313    fn default() -> Self {
9314        Self {
9315            s_type: StructureType::from_raw(1000114002i32),
9316            p_next: core::ptr::null(),
9317            fence: Default::default(),
9318            handle_type: Default::default(),
9319        }
9320    }
9321}
9322///[`VkImportFenceFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportFenceFdInfoKHR.html)
9323/**
9324Provided by **VK_KHR_external_fence_fd**.*/
9325#[repr(C)]
9326#[derive(Copy, Clone, Debug)]
9327#[doc(alias = "VkImportFenceFdInfoKHR")]
9328pub struct ImportFenceFdInfoKHR {
9329    ///Must be `VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR`.
9330    pub s_type: StructureType,
9331    ///Optional, may be null.
9332    pub p_next: *const core::ffi::c_void,
9333    ///**Thread safety:** must be externally synchronized.
9334    pub fence: Fence,
9335    pub flags: FenceImportFlags,
9336    pub handle_type: ExternalFenceHandleTypeFlagBits,
9337    pub fd: core::ffi::c_int,
9338}
9339impl Default for ImportFenceFdInfoKHR {
9340    #[inline]
9341    fn default() -> Self {
9342        Self {
9343            s_type: StructureType::from_raw(1000115000i32),
9344            p_next: core::ptr::null(),
9345            fence: Default::default(),
9346            flags: Default::default(),
9347            handle_type: Default::default(),
9348            fd: Default::default(),
9349        }
9350    }
9351}
9352///[`VkFenceGetFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceGetFdInfoKHR.html)
9353/**
9354Provided by **VK_KHR_external_fence_fd**.*/
9355#[repr(C)]
9356#[derive(Copy, Clone, Debug)]
9357#[doc(alias = "VkFenceGetFdInfoKHR")]
9358pub struct FenceGetFdInfoKHR {
9359    ///Must be `VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR`.
9360    pub s_type: StructureType,
9361    ///Optional, may be null.
9362    pub p_next: *const core::ffi::c_void,
9363    pub fence: Fence,
9364    pub handle_type: ExternalFenceHandleTypeFlagBits,
9365}
9366impl Default for FenceGetFdInfoKHR {
9367    #[inline]
9368    fn default() -> Self {
9369        Self {
9370            s_type: StructureType::from_raw(1000115001i32),
9371            p_next: core::ptr::null(),
9372            fence: Default::default(),
9373            handle_type: Default::default(),
9374        }
9375    }
9376}
9377///[`VkExportFenceSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportFenceSciSyncInfoNV.html)
9378///
9379///# Extends
9380///- [`FenceCreateInfo`]
9381#[repr(C)]
9382#[derive(Copy, Clone, Debug)]
9383#[doc(alias = "VkExportFenceSciSyncInfoNV")]
9384pub struct ExportFenceSciSyncInfoNV {
9385    ///Must be `VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV`.
9386    pub s_type: StructureType,
9387    ///Optional, may be null.
9388    pub p_next: *const core::ffi::c_void,
9389    pub p_attributes: *const core::ffi::c_void,
9390}
9391impl Default for ExportFenceSciSyncInfoNV {
9392    #[inline]
9393    fn default() -> Self {
9394        Self {
9395            s_type: Default::default(),
9396            p_next: core::ptr::null(),
9397            p_attributes: core::ptr::null(),
9398        }
9399    }
9400}
9401///[`VkImportFenceSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportFenceSciSyncInfoNV.html)
9402#[repr(C)]
9403#[derive(Copy, Clone, Debug)]
9404#[doc(alias = "VkImportFenceSciSyncInfoNV")]
9405pub struct ImportFenceSciSyncInfoNV {
9406    ///Must be `VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV`.
9407    pub s_type: StructureType,
9408    ///Optional, may be null.
9409    pub p_next: *const core::ffi::c_void,
9410    ///**Thread safety:** must be externally synchronized.
9411    pub fence: Fence,
9412    pub handle_type: ExternalFenceHandleTypeFlagBits,
9413    pub handle: *mut core::ffi::c_void,
9414}
9415impl Default for ImportFenceSciSyncInfoNV {
9416    #[inline]
9417    fn default() -> Self {
9418        Self {
9419            s_type: Default::default(),
9420            p_next: core::ptr::null(),
9421            fence: Default::default(),
9422            handle_type: Default::default(),
9423            handle: core::ptr::null_mut(),
9424        }
9425    }
9426}
9427///[`VkFenceGetSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceGetSciSyncInfoNV.html)
9428#[repr(C)]
9429#[derive(Copy, Clone, Debug)]
9430#[doc(alias = "VkFenceGetSciSyncInfoNV")]
9431pub struct FenceGetSciSyncInfoNV {
9432    ///Must be `VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV`.
9433    pub s_type: StructureType,
9434    ///Optional, may be null.
9435    pub p_next: *const core::ffi::c_void,
9436    pub fence: Fence,
9437    pub handle_type: ExternalFenceHandleTypeFlagBits,
9438}
9439impl Default for FenceGetSciSyncInfoNV {
9440    #[inline]
9441    fn default() -> Self {
9442        Self {
9443            s_type: Default::default(),
9444            p_next: core::ptr::null(),
9445            fence: Default::default(),
9446            handle_type: Default::default(),
9447        }
9448    }
9449}
9450///[`VkExportSemaphoreSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportSemaphoreSciSyncInfoNV.html)
9451///
9452///# Extends
9453///- [`SemaphoreCreateInfo`]
9454#[repr(C)]
9455#[derive(Copy, Clone, Debug)]
9456#[doc(alias = "VkExportSemaphoreSciSyncInfoNV")]
9457pub struct ExportSemaphoreSciSyncInfoNV {
9458    ///Must be `VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV`.
9459    pub s_type: StructureType,
9460    ///Optional, may be null.
9461    pub p_next: *const core::ffi::c_void,
9462    pub p_attributes: *const core::ffi::c_void,
9463}
9464impl Default for ExportSemaphoreSciSyncInfoNV {
9465    #[inline]
9466    fn default() -> Self {
9467        Self {
9468            s_type: Default::default(),
9469            p_next: core::ptr::null(),
9470            p_attributes: core::ptr::null(),
9471        }
9472    }
9473}
9474///[`VkImportSemaphoreSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportSemaphoreSciSyncInfoNV.html)
9475#[repr(C)]
9476#[derive(Copy, Clone, Debug)]
9477#[doc(alias = "VkImportSemaphoreSciSyncInfoNV")]
9478pub struct ImportSemaphoreSciSyncInfoNV {
9479    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV`.
9480    pub s_type: StructureType,
9481    ///Optional, may be null.
9482    pub p_next: *const core::ffi::c_void,
9483    ///**Thread safety:** must be externally synchronized.
9484    pub semaphore: Semaphore,
9485    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9486    pub handle: *mut core::ffi::c_void,
9487}
9488impl Default for ImportSemaphoreSciSyncInfoNV {
9489    #[inline]
9490    fn default() -> Self {
9491        Self {
9492            s_type: Default::default(),
9493            p_next: core::ptr::null(),
9494            semaphore: Default::default(),
9495            handle_type: Default::default(),
9496            handle: core::ptr::null_mut(),
9497        }
9498    }
9499}
9500///[`VkSemaphoreGetSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreGetSciSyncInfoNV.html)
9501#[repr(C)]
9502#[derive(Copy, Clone, Debug)]
9503#[doc(alias = "VkSemaphoreGetSciSyncInfoNV")]
9504pub struct SemaphoreGetSciSyncInfoNV {
9505    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_GET_SCI_SYNC_INFO_NV`.
9506    pub s_type: StructureType,
9507    ///Optional, may be null.
9508    pub p_next: *const core::ffi::c_void,
9509    pub semaphore: Semaphore,
9510    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9511}
9512impl Default for SemaphoreGetSciSyncInfoNV {
9513    #[inline]
9514    fn default() -> Self {
9515        Self {
9516            s_type: Default::default(),
9517            p_next: core::ptr::null(),
9518            semaphore: Default::default(),
9519            handle_type: Default::default(),
9520        }
9521    }
9522}
9523///[`VkSciSyncAttributesInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSciSyncAttributesInfoNV.html)
9524#[repr(C)]
9525#[derive(Copy, Clone, Debug)]
9526#[doc(alias = "VkSciSyncAttributesInfoNV")]
9527pub struct SciSyncAttributesInfoNV {
9528    ///Must be `VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV`.
9529    pub s_type: StructureType,
9530    ///Optional, may be null.
9531    pub p_next: *const core::ffi::c_void,
9532    pub client_type: SciSyncClientTypeNV,
9533    pub primitive_type: SciSyncPrimitiveTypeNV,
9534}
9535impl Default for SciSyncAttributesInfoNV {
9536    #[inline]
9537    fn default() -> Self {
9538        Self {
9539            s_type: Default::default(),
9540            p_next: core::ptr::null(),
9541            client_type: Default::default(),
9542            primitive_type: Default::default(),
9543        }
9544    }
9545}
9546///[`VkPhysicalDeviceExternalSciSyncFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalSciSyncFeaturesNV.html)
9547///
9548///# Extends
9549///- [`PhysicalDeviceFeatures2`]
9550///- [`DeviceCreateInfo`]
9551#[repr(C)]
9552#[derive(Copy, Clone, Debug)]
9553#[doc(alias = "VkPhysicalDeviceExternalSciSyncFeaturesNV")]
9554pub struct PhysicalDeviceExternalSciSyncFeaturesNV {
9555    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV`.
9556    pub s_type: StructureType,
9557    ///Optional, may be null.
9558    pub p_next: *mut core::ffi::c_void,
9559    pub sci_sync_fence: u32,
9560    pub sci_sync_semaphore: u32,
9561    pub sci_sync_import: u32,
9562    pub sci_sync_export: u32,
9563}
9564impl Default for PhysicalDeviceExternalSciSyncFeaturesNV {
9565    #[inline]
9566    fn default() -> Self {
9567        Self {
9568            s_type: Default::default(),
9569            p_next: core::ptr::null_mut(),
9570            sci_sync_fence: Default::default(),
9571            sci_sync_semaphore: Default::default(),
9572            sci_sync_import: Default::default(),
9573            sci_sync_export: Default::default(),
9574        }
9575    }
9576}
9577///[`VkPhysicalDeviceExternalSciSync2FeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalSciSync2FeaturesNV.html)
9578///
9579///# Extends
9580///- [`PhysicalDeviceFeatures2`]
9581///- [`DeviceCreateInfo`]
9582#[repr(C)]
9583#[derive(Copy, Clone, Debug)]
9584#[doc(alias = "VkPhysicalDeviceExternalSciSync2FeaturesNV")]
9585pub struct PhysicalDeviceExternalSciSync2FeaturesNV {
9586    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV`.
9587    pub s_type: StructureType,
9588    ///Optional, may be null.
9589    pub p_next: *mut core::ffi::c_void,
9590    pub sci_sync_fence: u32,
9591    pub sci_sync_semaphore2: u32,
9592    pub sci_sync_import: u32,
9593    pub sci_sync_export: u32,
9594}
9595impl Default for PhysicalDeviceExternalSciSync2FeaturesNV {
9596    #[inline]
9597    fn default() -> Self {
9598        Self {
9599            s_type: Default::default(),
9600            p_next: core::ptr::null_mut(),
9601            sci_sync_fence: Default::default(),
9602            sci_sync_semaphore2: Default::default(),
9603            sci_sync_import: Default::default(),
9604            sci_sync_export: Default::default(),
9605        }
9606    }
9607}
9608///[`VkSemaphoreSciSyncPoolCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreSciSyncPoolCreateInfoNV.html)
9609#[repr(C)]
9610#[derive(Copy, Clone, Debug)]
9611#[doc(alias = "VkSemaphoreSciSyncPoolCreateInfoNV")]
9612pub struct SemaphoreSciSyncPoolCreateInfoNV {
9613    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV`.
9614    pub s_type: StructureType,
9615    ///Optional, may be null.
9616    pub p_next: *const core::ffi::c_void,
9617    pub handle: *const core::ffi::c_void,
9618}
9619impl Default for SemaphoreSciSyncPoolCreateInfoNV {
9620    #[inline]
9621    fn default() -> Self {
9622        Self {
9623            s_type: Default::default(),
9624            p_next: core::ptr::null(),
9625            handle: core::ptr::null(),
9626        }
9627    }
9628}
9629///[`VkSemaphoreSciSyncCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreSciSyncCreateInfoNV.html)
9630///
9631///# Extends
9632///- [`SemaphoreCreateInfo`]
9633#[repr(C)]
9634#[derive(Copy, Clone, Debug)]
9635#[doc(alias = "VkSemaphoreSciSyncCreateInfoNV")]
9636pub struct SemaphoreSciSyncCreateInfoNV {
9637    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV`.
9638    pub s_type: StructureType,
9639    ///Optional, may be null.
9640    pub p_next: *const core::ffi::c_void,
9641    pub semaphore_pool: SemaphoreSciSyncPoolNV,
9642    pub p_fence: *const core::ffi::c_void,
9643}
9644impl Default for SemaphoreSciSyncCreateInfoNV {
9645    #[inline]
9646    fn default() -> Self {
9647        Self {
9648            s_type: Default::default(),
9649            p_next: core::ptr::null(),
9650            semaphore_pool: Default::default(),
9651            p_fence: core::ptr::null(),
9652        }
9653    }
9654}
9655///[`VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV.html)
9656///
9657///# Extends
9658///- [`DeviceCreateInfo`]
9659#[repr(C)]
9660#[derive(Copy, Clone, Debug)]
9661#[doc(alias = "VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV")]
9662pub struct DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
9663    ///Must be `VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV`.
9664    pub s_type: StructureType,
9665    ///Optional, may be null.
9666    pub p_next: *const core::ffi::c_void,
9667    pub semaphore_sci_sync_pool_request_count: u32,
9668}
9669impl Default for DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
9670    #[inline]
9671    fn default() -> Self {
9672        Self {
9673            s_type: Default::default(),
9674            p_next: core::ptr::null(),
9675            semaphore_sci_sync_pool_request_count: Default::default(),
9676        }
9677    }
9678}
9679///[`VkPhysicalDeviceMultiviewFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewFeatures.html)
9680/**
9681Provided by **VK_GRAPHICS_VERSION_1_1**.*/
9682///
9683///# Extends
9684///- [`PhysicalDeviceFeatures2`]
9685///- [`DeviceCreateInfo`]
9686#[repr(C)]
9687#[derive(Copy, Clone, Debug)]
9688#[doc(alias = "VkPhysicalDeviceMultiviewFeatures")]
9689pub struct PhysicalDeviceMultiviewFeatures {
9690    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES`.
9691    pub s_type: StructureType,
9692    ///Optional, may be null.
9693    pub p_next: *mut core::ffi::c_void,
9694    pub multiview: u32,
9695    pub multiview_geometry_shader: u32,
9696    pub multiview_tessellation_shader: u32,
9697}
9698impl Default for PhysicalDeviceMultiviewFeatures {
9699    #[inline]
9700    fn default() -> Self {
9701        Self {
9702            s_type: StructureType::from_raw(1000053001i32),
9703            p_next: core::ptr::null_mut(),
9704            multiview: Default::default(),
9705            multiview_geometry_shader: Default::default(),
9706            multiview_tessellation_shader: Default::default(),
9707        }
9708    }
9709}
9710///[`VkPhysicalDeviceMultiviewProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewProperties.html)
9711/**
9712Provided by **VK_GRAPHICS_VERSION_1_1**.*/
9713/**
9714**Returned only**, filled by Vulkan, not constructed by the application.*/
9715///
9716///# Extends
9717///- [`PhysicalDeviceProperties2`]
9718#[repr(C)]
9719#[derive(Copy, Clone, Debug)]
9720#[doc(alias = "VkPhysicalDeviceMultiviewProperties")]
9721pub struct PhysicalDeviceMultiviewProperties {
9722    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES`.
9723    pub s_type: StructureType,
9724    ///Optional, may be null.
9725    pub p_next: *mut core::ffi::c_void,
9726    pub max_multiview_view_count: u32,
9727    pub max_multiview_instance_index: u32,
9728}
9729impl Default for PhysicalDeviceMultiviewProperties {
9730    #[inline]
9731    fn default() -> Self {
9732        Self {
9733            s_type: StructureType::from_raw(1000053002i32),
9734            p_next: core::ptr::null_mut(),
9735            max_multiview_view_count: Default::default(),
9736            max_multiview_instance_index: Default::default(),
9737        }
9738    }
9739}
9740///[`VkRenderPassMultiviewCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassMultiviewCreateInfo.html)
9741/**
9742Provided by **VK_GRAPHICS_VERSION_1_1**.*/
9743///
9744///# Extends
9745///- [`RenderPassCreateInfo`]
9746#[repr(C)]
9747#[derive(Copy, Clone, Debug)]
9748#[doc(alias = "VkRenderPassMultiviewCreateInfo")]
9749pub struct RenderPassMultiviewCreateInfo {
9750    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO`.
9751    pub s_type: StructureType,
9752    ///Optional, may be null.
9753    pub p_next: *const core::ffi::c_void,
9754    ///Length of `p_view_masks`.
9755    pub subpass_count: u32,
9756    pub p_view_masks: *const u32,
9757    ///Length of `p_view_offsets`.
9758    pub dependency_count: u32,
9759    pub p_view_offsets: *const i32,
9760    ///Length of `p_correlation_masks`.
9761    pub correlation_mask_count: u32,
9762    pub p_correlation_masks: *const u32,
9763}
9764impl Default for RenderPassMultiviewCreateInfo {
9765    #[inline]
9766    fn default() -> Self {
9767        Self {
9768            s_type: StructureType::from_raw(1000053000i32),
9769            p_next: core::ptr::null(),
9770            subpass_count: Default::default(),
9771            p_view_masks: core::ptr::null(),
9772            dependency_count: Default::default(),
9773            p_view_offsets: core::ptr::null(),
9774            correlation_mask_count: Default::default(),
9775            p_correlation_masks: core::ptr::null(),
9776        }
9777    }
9778}
9779///[`VkSurfaceCapabilities2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilities2EXT.html)
9780/**
9781Provided by **VK_EXT_display_surface_counter**.*/
9782/**
9783**Returned only**, filled by Vulkan, not constructed by the application.*/
9784#[repr(C)]
9785#[derive(Copy, Clone, Debug)]
9786#[doc(alias = "VkSurfaceCapabilities2EXT")]
9787pub struct SurfaceCapabilities2EXT {
9788    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT`.
9789    pub s_type: StructureType,
9790    ///Optional, may be null.
9791    pub p_next: *mut core::ffi::c_void,
9792    pub min_image_count: u32,
9793    pub max_image_count: u32,
9794    pub current_extent: Extent2D,
9795    pub min_image_extent: Extent2D,
9796    pub max_image_extent: Extent2D,
9797    pub max_image_array_layers: u32,
9798    pub supported_transforms: SurfaceTransformFlagsKHR,
9799    pub current_transform: SurfaceTransformFlagBitsKHR,
9800    pub supported_composite_alpha: CompositeAlphaFlagsKHR,
9801    pub supported_usage_flags: ImageUsageFlags,
9802    pub supported_surface_counters: SurfaceCounterFlagsEXT,
9803}
9804impl Default for SurfaceCapabilities2EXT {
9805    #[inline]
9806    fn default() -> Self {
9807        Self {
9808            s_type: StructureType::from_raw(1000090000i32),
9809            p_next: core::ptr::null_mut(),
9810            min_image_count: Default::default(),
9811            max_image_count: Default::default(),
9812            current_extent: Default::default(),
9813            min_image_extent: Default::default(),
9814            max_image_extent: Default::default(),
9815            max_image_array_layers: Default::default(),
9816            supported_transforms: Default::default(),
9817            current_transform: Default::default(),
9818            supported_composite_alpha: Default::default(),
9819            supported_usage_flags: Default::default(),
9820            supported_surface_counters: Default::default(),
9821        }
9822    }
9823}
9824///[`VkDisplayPowerInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPowerInfoEXT.html)
9825/**
9826Provided by **VK_EXT_display_control**.*/
9827#[repr(C)]
9828#[derive(Copy, Clone, Debug)]
9829#[doc(alias = "VkDisplayPowerInfoEXT")]
9830pub struct DisplayPowerInfoEXT {
9831    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT`.
9832    pub s_type: StructureType,
9833    ///Optional, may be null.
9834    pub p_next: *const core::ffi::c_void,
9835    pub power_state: DisplayPowerStateEXT,
9836}
9837impl Default for DisplayPowerInfoEXT {
9838    #[inline]
9839    fn default() -> Self {
9840        Self {
9841            s_type: StructureType::from_raw(1000091000i32),
9842            p_next: core::ptr::null(),
9843            power_state: Default::default(),
9844        }
9845    }
9846}
9847///[`VkDeviceEventInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceEventInfoEXT.html)
9848/**
9849Provided by **VK_EXT_display_control**.*/
9850#[repr(C)]
9851#[derive(Copy, Clone, Debug)]
9852#[doc(alias = "VkDeviceEventInfoEXT")]
9853pub struct DeviceEventInfoEXT {
9854    ///Must be `VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT`.
9855    pub s_type: StructureType,
9856    ///Optional, may be null.
9857    pub p_next: *const core::ffi::c_void,
9858    pub device_event: DeviceEventTypeEXT,
9859}
9860impl Default for DeviceEventInfoEXT {
9861    #[inline]
9862    fn default() -> Self {
9863        Self {
9864            s_type: StructureType::from_raw(1000091001i32),
9865            p_next: core::ptr::null(),
9866            device_event: Default::default(),
9867        }
9868    }
9869}
9870///[`VkDisplayEventInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayEventInfoEXT.html)
9871/**
9872Provided by **VK_EXT_display_control**.*/
9873#[repr(C)]
9874#[derive(Copy, Clone, Debug)]
9875#[doc(alias = "VkDisplayEventInfoEXT")]
9876pub struct DisplayEventInfoEXT {
9877    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT`.
9878    pub s_type: StructureType,
9879    ///Optional, may be null.
9880    pub p_next: *const core::ffi::c_void,
9881    pub display_event: DisplayEventTypeEXT,
9882}
9883impl Default for DisplayEventInfoEXT {
9884    #[inline]
9885    fn default() -> Self {
9886        Self {
9887            s_type: StructureType::from_raw(1000091002i32),
9888            p_next: core::ptr::null(),
9889            display_event: Default::default(),
9890        }
9891    }
9892}
9893///[`VkSwapchainCounterCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainCounterCreateInfoEXT.html)
9894/**
9895Provided by **VK_EXT_display_control**.*/
9896///
9897///# Extends
9898///- [`SwapchainCreateInfoKHR`]
9899#[repr(C)]
9900#[derive(Copy, Clone, Debug)]
9901#[doc(alias = "VkSwapchainCounterCreateInfoEXT")]
9902pub struct SwapchainCounterCreateInfoEXT {
9903    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT`.
9904    pub s_type: StructureType,
9905    ///Optional, may be null.
9906    pub p_next: *const core::ffi::c_void,
9907    pub surface_counters: SurfaceCounterFlagsEXT,
9908}
9909impl Default for SwapchainCounterCreateInfoEXT {
9910    #[inline]
9911    fn default() -> Self {
9912        Self {
9913            s_type: StructureType::from_raw(1000091003i32),
9914            p_next: core::ptr::null(),
9915            surface_counters: Default::default(),
9916        }
9917    }
9918}
9919///[`VkPhysicalDeviceGroupProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceGroupProperties.html)
9920/**
9921Provided by **VK_BASE_VERSION_1_1**.*/
9922/**
9923**Returned only**, filled by Vulkan, not constructed by the application.*/
9924#[repr(C)]
9925#[derive(Copy, Clone, Debug)]
9926#[doc(alias = "VkPhysicalDeviceGroupProperties")]
9927pub struct PhysicalDeviceGroupProperties {
9928    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES`.
9929    pub s_type: StructureType,
9930    ///Optional, may be null.
9931    pub p_next: *mut core::ffi::c_void,
9932    pub physical_device_count: u32,
9933    pub physical_devices: [PhysicalDevice; MAX_DEVICE_GROUP_SIZE as usize],
9934    pub subset_allocation: u32,
9935}
9936impl Default for PhysicalDeviceGroupProperties {
9937    #[inline]
9938    fn default() -> Self {
9939        Self {
9940            s_type: StructureType::from_raw(1000070000i32),
9941            p_next: core::ptr::null_mut(),
9942            physical_device_count: Default::default(),
9943            physical_devices: unsafe { core::mem::zeroed() },
9944            subset_allocation: Default::default(),
9945        }
9946    }
9947}
9948///[`VkMemoryAllocateFlagsInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryAllocateFlagsInfo.html)
9949/**
9950Provided by **VK_BASE_VERSION_1_1**.*/
9951///
9952///# Extends
9953///- [`MemoryAllocateInfo`]
9954#[repr(C)]
9955#[derive(Copy, Clone, Debug)]
9956#[doc(alias = "VkMemoryAllocateFlagsInfo")]
9957pub struct MemoryAllocateFlagsInfo {
9958    ///Must be `VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO`.
9959    pub s_type: StructureType,
9960    ///Optional, may be null.
9961    pub p_next: *const core::ffi::c_void,
9962    pub flags: MemoryAllocateFlags,
9963    pub device_mask: u32,
9964}
9965impl Default for MemoryAllocateFlagsInfo {
9966    #[inline]
9967    fn default() -> Self {
9968        Self {
9969            s_type: StructureType::from_raw(1000060000i32),
9970            p_next: core::ptr::null(),
9971            flags: Default::default(),
9972            device_mask: Default::default(),
9973        }
9974    }
9975}
9976///[`VkBindBufferMemoryInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindBufferMemoryInfo.html)
9977/**
9978Provided by **VK_BASE_VERSION_1_1**.*/
9979///
9980///# Extended By
9981///- [`BindBufferMemoryDeviceGroupInfo`]
9982///- [`BindMemoryStatus`]
9983#[repr(C)]
9984#[derive(Copy, Clone, Debug)]
9985#[doc(alias = "VkBindBufferMemoryInfo")]
9986pub struct BindBufferMemoryInfo {
9987    ///Must be `VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO`.
9988    pub s_type: StructureType,
9989    ///Optional, may be null.
9990    pub p_next: *const core::ffi::c_void,
9991    ///**Thread safety:** must be externally synchronized.
9992    pub buffer: Buffer,
9993    pub memory: DeviceMemory,
9994    pub memory_offset: u64,
9995}
9996impl Default for BindBufferMemoryInfo {
9997    #[inline]
9998    fn default() -> Self {
9999        Self {
10000            s_type: StructureType::from_raw(1000157000i32),
10001            p_next: core::ptr::null(),
10002            buffer: Default::default(),
10003            memory: Default::default(),
10004            memory_offset: Default::default(),
10005        }
10006    }
10007}
10008///[`VkBindBufferMemoryDeviceGroupInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindBufferMemoryDeviceGroupInfo.html)
10009/**
10010Provided by **VK_BASE_VERSION_1_1**.*/
10011///
10012///# Extends
10013///- [`BindBufferMemoryInfo`]
10014#[repr(C)]
10015#[derive(Copy, Clone, Debug)]
10016#[doc(alias = "VkBindBufferMemoryDeviceGroupInfo")]
10017pub struct BindBufferMemoryDeviceGroupInfo {
10018    ///Must be `VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO`.
10019    pub s_type: StructureType,
10020    ///Optional, may be null.
10021    pub p_next: *const core::ffi::c_void,
10022    ///Length of `p_device_indices`.
10023    pub device_index_count: u32,
10024    pub p_device_indices: *const u32,
10025}
10026impl Default for BindBufferMemoryDeviceGroupInfo {
10027    #[inline]
10028    fn default() -> Self {
10029        Self {
10030            s_type: StructureType::from_raw(1000060013i32),
10031            p_next: core::ptr::null(),
10032            device_index_count: Default::default(),
10033            p_device_indices: core::ptr::null(),
10034        }
10035    }
10036}
10037///[`VkBindImageMemoryInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindImageMemoryInfo.html)
10038/**
10039Provided by **VK_BASE_VERSION_1_1**.*/
10040///
10041///# Extended By
10042///- [`BindImageMemoryDeviceGroupInfo`]
10043///- [`BindImageMemorySwapchainInfoKHR`]
10044///- [`BindImagePlaneMemoryInfo`]
10045///- [`BindMemoryStatus`]
10046///- [`NativeBufferANDROID`]
10047///- [`NativeBufferOHOS`]
10048#[repr(C)]
10049#[derive(Copy, Clone, Debug)]
10050#[doc(alias = "VkBindImageMemoryInfo")]
10051pub struct BindImageMemoryInfo {
10052    ///Must be `VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO`.
10053    pub s_type: StructureType,
10054    ///Optional, may be null.
10055    pub p_next: *const core::ffi::c_void,
10056    ///**Thread safety:** must be externally synchronized.
10057    pub image: Image,
10058    pub memory: DeviceMemory,
10059    pub memory_offset: u64,
10060}
10061impl Default for BindImageMemoryInfo {
10062    #[inline]
10063    fn default() -> Self {
10064        Self {
10065            s_type: StructureType::from_raw(1000157001i32),
10066            p_next: core::ptr::null(),
10067            image: Default::default(),
10068            memory: Default::default(),
10069            memory_offset: Default::default(),
10070        }
10071    }
10072}
10073///[`VkBindImageMemoryDeviceGroupInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindImageMemoryDeviceGroupInfo.html)
10074/**
10075Provided by **VK_BASE_VERSION_1_1**.*/
10076///
10077///# Extends
10078///- [`BindImageMemoryInfo`]
10079#[repr(C)]
10080#[derive(Copy, Clone, Debug)]
10081#[doc(alias = "VkBindImageMemoryDeviceGroupInfo")]
10082pub struct BindImageMemoryDeviceGroupInfo {
10083    ///Must be `VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO`.
10084    pub s_type: StructureType,
10085    ///Optional, may be null.
10086    pub p_next: *const core::ffi::c_void,
10087    ///Length of `p_device_indices`.
10088    pub device_index_count: u32,
10089    pub p_device_indices: *const u32,
10090    ///Length of `p_split_instance_bind_regions`.
10091    pub split_instance_bind_region_count: u32,
10092    pub p_split_instance_bind_regions: *const Rect2D,
10093}
10094impl Default for BindImageMemoryDeviceGroupInfo {
10095    #[inline]
10096    fn default() -> Self {
10097        Self {
10098            s_type: StructureType::from_raw(1000060014i32),
10099            p_next: core::ptr::null(),
10100            device_index_count: Default::default(),
10101            p_device_indices: core::ptr::null(),
10102            split_instance_bind_region_count: Default::default(),
10103            p_split_instance_bind_regions: core::ptr::null(),
10104        }
10105    }
10106}
10107///[`VkDeviceGroupRenderPassBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupRenderPassBeginInfo.html)
10108/**
10109Provided by **VK_GRAPHICS_VERSION_1_1**.*/
10110///
10111///# Extends
10112///- [`RenderPassBeginInfo`]
10113///- [`RenderingInfo`]
10114#[repr(C)]
10115#[derive(Copy, Clone, Debug)]
10116#[doc(alias = "VkDeviceGroupRenderPassBeginInfo")]
10117pub struct DeviceGroupRenderPassBeginInfo {
10118    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO`.
10119    pub s_type: StructureType,
10120    ///Optional, may be null.
10121    pub p_next: *const core::ffi::c_void,
10122    pub device_mask: u32,
10123    ///Length of `p_device_render_areas`.
10124    pub device_render_area_count: u32,
10125    pub p_device_render_areas: *const Rect2D,
10126}
10127impl Default for DeviceGroupRenderPassBeginInfo {
10128    #[inline]
10129    fn default() -> Self {
10130        Self {
10131            s_type: StructureType::from_raw(1000060003i32),
10132            p_next: core::ptr::null(),
10133            device_mask: Default::default(),
10134            device_render_area_count: Default::default(),
10135            p_device_render_areas: core::ptr::null(),
10136        }
10137    }
10138}
10139///[`VkDeviceGroupCommandBufferBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupCommandBufferBeginInfo.html)
10140/**
10141Provided by **VK_BASE_VERSION_1_1**.*/
10142///
10143///# Extends
10144///- [`CommandBufferBeginInfo`]
10145#[repr(C)]
10146#[derive(Copy, Clone, Debug)]
10147#[doc(alias = "VkDeviceGroupCommandBufferBeginInfo")]
10148pub struct DeviceGroupCommandBufferBeginInfo {
10149    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO`.
10150    pub s_type: StructureType,
10151    ///Optional, may be null.
10152    pub p_next: *const core::ffi::c_void,
10153    pub device_mask: u32,
10154}
10155impl Default for DeviceGroupCommandBufferBeginInfo {
10156    #[inline]
10157    fn default() -> Self {
10158        Self {
10159            s_type: StructureType::from_raw(1000060004i32),
10160            p_next: core::ptr::null(),
10161            device_mask: Default::default(),
10162        }
10163    }
10164}
10165///[`VkDeviceGroupSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupSubmitInfo.html)
10166/**
10167Provided by **VK_BASE_VERSION_1_1**.*/
10168///
10169///# Extends
10170///- [`SubmitInfo`]
10171#[repr(C)]
10172#[derive(Copy, Clone, Debug)]
10173#[doc(alias = "VkDeviceGroupSubmitInfo")]
10174pub struct DeviceGroupSubmitInfo {
10175    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO`.
10176    pub s_type: StructureType,
10177    ///Optional, may be null.
10178    pub p_next: *const core::ffi::c_void,
10179    ///Length of `p_wait_semaphore_device_indices`.
10180    pub wait_semaphore_count: u32,
10181    pub p_wait_semaphore_device_indices: *const u32,
10182    ///Length of `p_command_buffer_device_masks`.
10183    pub command_buffer_count: u32,
10184    pub p_command_buffer_device_masks: *const u32,
10185    ///Length of `p_signal_semaphore_device_indices`.
10186    pub signal_semaphore_count: u32,
10187    pub p_signal_semaphore_device_indices: *const u32,
10188}
10189impl Default for DeviceGroupSubmitInfo {
10190    #[inline]
10191    fn default() -> Self {
10192        Self {
10193            s_type: StructureType::from_raw(1000060005i32),
10194            p_next: core::ptr::null(),
10195            wait_semaphore_count: Default::default(),
10196            p_wait_semaphore_device_indices: core::ptr::null(),
10197            command_buffer_count: Default::default(),
10198            p_command_buffer_device_masks: core::ptr::null(),
10199            signal_semaphore_count: Default::default(),
10200            p_signal_semaphore_device_indices: core::ptr::null(),
10201        }
10202    }
10203}
10204///[`VkDeviceGroupBindSparseInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupBindSparseInfo.html)
10205/**
10206Provided by **VK_BASE_VERSION_1_1**.*/
10207///
10208///# Extends
10209///- [`BindSparseInfo`]
10210#[repr(C)]
10211#[derive(Copy, Clone, Debug)]
10212#[doc(alias = "VkDeviceGroupBindSparseInfo")]
10213pub struct DeviceGroupBindSparseInfo {
10214    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO`.
10215    pub s_type: StructureType,
10216    ///Optional, may be null.
10217    pub p_next: *const core::ffi::c_void,
10218    pub resource_device_index: u32,
10219    pub memory_device_index: u32,
10220}
10221impl Default for DeviceGroupBindSparseInfo {
10222    #[inline]
10223    fn default() -> Self {
10224        Self {
10225            s_type: StructureType::from_raw(1000060006i32),
10226            p_next: core::ptr::null(),
10227            resource_device_index: Default::default(),
10228            memory_device_index: Default::default(),
10229        }
10230    }
10231}
10232///[`VkDeviceGroupPresentCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupPresentCapabilitiesKHR.html)
10233/**
10234Provided by **VK_KHR_swapchain**.*/
10235/**
10236**Returned only**, filled by Vulkan, not constructed by the application.*/
10237#[repr(C)]
10238#[derive(Copy, Clone, Debug)]
10239#[doc(alias = "VkDeviceGroupPresentCapabilitiesKHR")]
10240pub struct DeviceGroupPresentCapabilitiesKHR {
10241    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR`.
10242    pub s_type: StructureType,
10243    ///Optional, may be null.
10244    pub p_next: *mut core::ffi::c_void,
10245    pub present_mask: [u32; MAX_DEVICE_GROUP_SIZE as usize],
10246    pub modes: DeviceGroupPresentModeFlagsKHR,
10247}
10248impl Default for DeviceGroupPresentCapabilitiesKHR {
10249    #[inline]
10250    fn default() -> Self {
10251        Self {
10252            s_type: StructureType::from_raw(1000060007i32),
10253            p_next: core::ptr::null_mut(),
10254            present_mask: unsafe { core::mem::zeroed() },
10255            modes: Default::default(),
10256        }
10257    }
10258}
10259///[`VkImageSwapchainCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSwapchainCreateInfoKHR.html)
10260/**
10261Provided by **VK_KHR_swapchain**.*/
10262///
10263///# Extends
10264///- [`ImageCreateInfo`]
10265#[repr(C)]
10266#[derive(Copy, Clone, Debug)]
10267#[doc(alias = "VkImageSwapchainCreateInfoKHR")]
10268pub struct ImageSwapchainCreateInfoKHR {
10269    ///Must be `VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR`.
10270    pub s_type: StructureType,
10271    ///Optional, may be null.
10272    pub p_next: *const core::ffi::c_void,
10273    pub swapchain: SwapchainKHR,
10274}
10275impl Default for ImageSwapchainCreateInfoKHR {
10276    #[inline]
10277    fn default() -> Self {
10278        Self {
10279            s_type: StructureType::from_raw(1000060008i32),
10280            p_next: core::ptr::null(),
10281            swapchain: Default::default(),
10282        }
10283    }
10284}
10285///[`VkBindImageMemorySwapchainInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindImageMemorySwapchainInfoKHR.html)
10286/**
10287Provided by **VK_KHR_swapchain**.*/
10288///
10289///# Extends
10290///- [`BindImageMemoryInfo`]
10291#[repr(C)]
10292#[derive(Copy, Clone, Debug)]
10293#[doc(alias = "VkBindImageMemorySwapchainInfoKHR")]
10294pub struct BindImageMemorySwapchainInfoKHR {
10295    ///Must be `VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR`.
10296    pub s_type: StructureType,
10297    ///Optional, may be null.
10298    pub p_next: *const core::ffi::c_void,
10299    ///**Thread safety:** must be externally synchronized.
10300    pub swapchain: SwapchainKHR,
10301    pub image_index: u32,
10302}
10303impl Default for BindImageMemorySwapchainInfoKHR {
10304    #[inline]
10305    fn default() -> Self {
10306        Self {
10307            s_type: StructureType::from_raw(1000060009i32),
10308            p_next: core::ptr::null(),
10309            swapchain: Default::default(),
10310            image_index: Default::default(),
10311        }
10312    }
10313}
10314///[`VkAcquireNextImageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAcquireNextImageInfoKHR.html)
10315/**
10316Provided by **VK_KHR_swapchain**.*/
10317#[repr(C)]
10318#[derive(Copy, Clone, Debug)]
10319#[doc(alias = "VkAcquireNextImageInfoKHR")]
10320pub struct AcquireNextImageInfoKHR {
10321    ///Must be `VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR`.
10322    pub s_type: StructureType,
10323    ///Optional, may be null.
10324    pub p_next: *const core::ffi::c_void,
10325    ///**Thread safety:** must be externally synchronized.
10326    pub swapchain: SwapchainKHR,
10327    pub timeout: u64,
10328    ///**Thread safety:** must be externally synchronized.
10329    pub semaphore: Semaphore,
10330    ///**Thread safety:** must be externally synchronized.
10331    pub fence: Fence,
10332    pub device_mask: u32,
10333}
10334impl Default for AcquireNextImageInfoKHR {
10335    #[inline]
10336    fn default() -> Self {
10337        Self {
10338            s_type: StructureType::from_raw(1000060010i32),
10339            p_next: core::ptr::null(),
10340            swapchain: Default::default(),
10341            timeout: Default::default(),
10342            semaphore: Default::default(),
10343            fence: Default::default(),
10344            device_mask: Default::default(),
10345        }
10346    }
10347}
10348///[`VkDeviceGroupPresentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupPresentInfoKHR.html)
10349/**
10350Provided by **VK_KHR_swapchain**.*/
10351///
10352///# Extends
10353///- [`PresentInfoKHR`]
10354#[repr(C)]
10355#[derive(Copy, Clone, Debug)]
10356#[doc(alias = "VkDeviceGroupPresentInfoKHR")]
10357pub struct DeviceGroupPresentInfoKHR {
10358    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR`.
10359    pub s_type: StructureType,
10360    ///Optional, may be null.
10361    pub p_next: *const core::ffi::c_void,
10362    ///Length of `p_device_masks`.
10363    pub swapchain_count: u32,
10364    pub p_device_masks: *const u32,
10365    pub mode: DeviceGroupPresentModeFlagBitsKHR,
10366}
10367impl Default for DeviceGroupPresentInfoKHR {
10368    #[inline]
10369    fn default() -> Self {
10370        Self {
10371            s_type: StructureType::from_raw(1000060011i32),
10372            p_next: core::ptr::null(),
10373            swapchain_count: Default::default(),
10374            p_device_masks: core::ptr::null(),
10375            mode: Default::default(),
10376        }
10377    }
10378}
10379///[`VkDeviceGroupDeviceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupDeviceCreateInfo.html)
10380/**
10381Provided by **VK_BASE_VERSION_1_1**.*/
10382///
10383///# Extends
10384///- [`DeviceCreateInfo`]
10385#[repr(C)]
10386#[derive(Copy, Clone, Debug)]
10387#[doc(alias = "VkDeviceGroupDeviceCreateInfo")]
10388pub struct DeviceGroupDeviceCreateInfo {
10389    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO`.
10390    pub s_type: StructureType,
10391    ///Optional, may be null.
10392    pub p_next: *const core::ffi::c_void,
10393    ///Length of `p_physical_devices`.
10394    pub physical_device_count: u32,
10395    pub p_physical_devices: *const PhysicalDevice,
10396}
10397impl Default for DeviceGroupDeviceCreateInfo {
10398    #[inline]
10399    fn default() -> Self {
10400        Self {
10401            s_type: StructureType::from_raw(1000070001i32),
10402            p_next: core::ptr::null(),
10403            physical_device_count: Default::default(),
10404            p_physical_devices: core::ptr::null(),
10405        }
10406    }
10407}
10408///[`VkDeviceGroupSwapchainCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupSwapchainCreateInfoKHR.html)
10409/**
10410Provided by **VK_KHR_swapchain**.*/
10411///
10412///# Extends
10413///- [`SwapchainCreateInfoKHR`]
10414#[repr(C)]
10415#[derive(Copy, Clone, Debug)]
10416#[doc(alias = "VkDeviceGroupSwapchainCreateInfoKHR")]
10417pub struct DeviceGroupSwapchainCreateInfoKHR {
10418    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR`.
10419    pub s_type: StructureType,
10420    ///Optional, may be null.
10421    pub p_next: *const core::ffi::c_void,
10422    pub modes: DeviceGroupPresentModeFlagsKHR,
10423}
10424impl Default for DeviceGroupSwapchainCreateInfoKHR {
10425    #[inline]
10426    fn default() -> Self {
10427        Self {
10428            s_type: StructureType::from_raw(1000060012i32),
10429            p_next: core::ptr::null(),
10430            modes: Default::default(),
10431        }
10432    }
10433}
10434///[`VkDescriptorUpdateTemplateEntry`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorUpdateTemplateEntry.html)
10435/**
10436Provided by **VK_COMPUTE_VERSION_1_1**.*/
10437#[repr(C)]
10438#[derive(Copy, Clone, Debug)]
10439#[doc(alias = "VkDescriptorUpdateTemplateEntry")]
10440pub struct DescriptorUpdateTemplateEntry {
10441    pub dst_binding: u32,
10442    pub dst_array_element: u32,
10443    pub descriptor_count: u32,
10444    pub descriptor_type: DescriptorType,
10445    pub offset: usize,
10446    pub stride: usize,
10447}
10448impl Default for DescriptorUpdateTemplateEntry {
10449    #[inline]
10450    fn default() -> Self {
10451        unsafe { core::mem::zeroed() }
10452    }
10453}
10454///[`VkDescriptorUpdateTemplateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorUpdateTemplateCreateInfo.html)
10455/**
10456Provided by **VK_COMPUTE_VERSION_1_1**.*/
10457#[repr(C)]
10458#[derive(Copy, Clone, Debug)]
10459#[doc(alias = "VkDescriptorUpdateTemplateCreateInfo")]
10460pub struct DescriptorUpdateTemplateCreateInfo {
10461    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO`.
10462    pub s_type: StructureType,
10463    ///Optional, may be null.
10464    pub p_next: *const core::ffi::c_void,
10465    pub flags: DescriptorUpdateTemplateCreateFlags,
10466    ///Length of `p_descriptor_update_entries`.
10467    pub descriptor_update_entry_count: u32,
10468    pub p_descriptor_update_entries: *const DescriptorUpdateTemplateEntry,
10469    pub template_type: DescriptorUpdateTemplateType,
10470    pub descriptor_set_layout: DescriptorSetLayout,
10471    pub pipeline_bind_point: PipelineBindPoint,
10472    pub pipeline_layout: PipelineLayout,
10473    pub set: u32,
10474}
10475impl Default for DescriptorUpdateTemplateCreateInfo {
10476    #[inline]
10477    fn default() -> Self {
10478        Self {
10479            s_type: StructureType::from_raw(1000085000i32),
10480            p_next: core::ptr::null(),
10481            flags: Default::default(),
10482            descriptor_update_entry_count: Default::default(),
10483            p_descriptor_update_entries: core::ptr::null(),
10484            template_type: Default::default(),
10485            descriptor_set_layout: Default::default(),
10486            pipeline_bind_point: Default::default(),
10487            pipeline_layout: Default::default(),
10488            set: Default::default(),
10489        }
10490    }
10491}
10492///[`VkXYColorEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkXYColorEXT.html)
10493/**
10494Provided by **VK_EXT_hdr_metadata**.*/
10495#[repr(C)]
10496#[derive(Copy, Clone, Debug)]
10497#[doc(alias = "VkXYColorEXT")]
10498pub struct XYColorEXT {
10499    pub x: f32,
10500    pub y: f32,
10501}
10502impl Default for XYColorEXT {
10503    #[inline]
10504    fn default() -> Self {
10505        unsafe { core::mem::zeroed() }
10506    }
10507}
10508///[`VkPhysicalDevicePresentIdFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentIdFeaturesKHR.html)
10509/**
10510Provided by **VK_KHR_present_id**.*/
10511///
10512///# Extends
10513///- [`PhysicalDeviceFeatures2`]
10514///- [`DeviceCreateInfo`]
10515#[repr(C)]
10516#[derive(Copy, Clone, Debug)]
10517#[doc(alias = "VkPhysicalDevicePresentIdFeaturesKHR")]
10518pub struct PhysicalDevicePresentIdFeaturesKHR {
10519    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR`.
10520    pub s_type: StructureType,
10521    ///Optional, may be null.
10522    pub p_next: *mut core::ffi::c_void,
10523    pub present_id: u32,
10524}
10525impl Default for PhysicalDevicePresentIdFeaturesKHR {
10526    #[inline]
10527    fn default() -> Self {
10528        Self {
10529            s_type: StructureType::from_raw(1000294001i32),
10530            p_next: core::ptr::null_mut(),
10531            present_id: Default::default(),
10532        }
10533    }
10534}
10535///[`VkPresentIdKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentIdKHR.html)
10536/**
10537Provided by **VK_KHR_present_id**.*/
10538///
10539///# Extends
10540///- [`PresentInfoKHR`]
10541#[repr(C)]
10542#[derive(Copy, Clone, Debug)]
10543#[doc(alias = "VkPresentIdKHR")]
10544pub struct PresentIdKHR {
10545    ///Must be `VK_STRUCTURE_TYPE_PRESENT_ID_KHR`.
10546    pub s_type: StructureType,
10547    ///Optional, may be null.
10548    pub p_next: *const core::ffi::c_void,
10549    ///Length of `p_present_ids`.
10550    pub swapchain_count: u32,
10551    ///Optional, may be null.
10552    pub p_present_ids: *const u64,
10553}
10554impl Default for PresentIdKHR {
10555    #[inline]
10556    fn default() -> Self {
10557        Self {
10558            s_type: StructureType::from_raw(1000294000i32),
10559            p_next: core::ptr::null(),
10560            swapchain_count: Default::default(),
10561            p_present_ids: core::ptr::null(),
10562        }
10563    }
10564}
10565///[`VkPhysicalDevicePresentId2FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentId2FeaturesKHR.html)
10566/**
10567Provided by **VK_KHR_present_id2**.*/
10568///
10569///# Extends
10570///- [`PhysicalDeviceFeatures2`]
10571///- [`DeviceCreateInfo`]
10572#[repr(C)]
10573#[derive(Copy, Clone, Debug)]
10574#[doc(alias = "VkPhysicalDevicePresentId2FeaturesKHR")]
10575pub struct PhysicalDevicePresentId2FeaturesKHR {
10576    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR`.
10577    pub s_type: StructureType,
10578    ///Optional, may be null.
10579    pub p_next: *mut core::ffi::c_void,
10580    pub present_id2: u32,
10581}
10582impl Default for PhysicalDevicePresentId2FeaturesKHR {
10583    #[inline]
10584    fn default() -> Self {
10585        Self {
10586            s_type: StructureType::from_raw(1000479002i32),
10587            p_next: core::ptr::null_mut(),
10588            present_id2: Default::default(),
10589        }
10590    }
10591}
10592///[`VkPresentId2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentId2KHR.html)
10593/**
10594Provided by **VK_KHR_present_id2**.*/
10595///
10596///# Extends
10597///- [`PresentInfoKHR`]
10598#[repr(C)]
10599#[derive(Copy, Clone, Debug)]
10600#[doc(alias = "VkPresentId2KHR")]
10601pub struct PresentId2KHR {
10602    ///Must be `VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR`.
10603    pub s_type: StructureType,
10604    ///Optional, may be null.
10605    pub p_next: *const core::ffi::c_void,
10606    ///Length of `p_present_ids`.
10607    pub swapchain_count: u32,
10608    ///Optional, may be null.
10609    pub p_present_ids: *const u64,
10610}
10611impl Default for PresentId2KHR {
10612    #[inline]
10613    fn default() -> Self {
10614        Self {
10615            s_type: StructureType::from_raw(1000479001i32),
10616            p_next: core::ptr::null(),
10617            swapchain_count: Default::default(),
10618            p_present_ids: core::ptr::null(),
10619        }
10620    }
10621}
10622///[`VkPresentWait2InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentWait2InfoKHR.html)
10623/**
10624Provided by **VK_KHR_present_wait2**.*/
10625#[repr(C)]
10626#[derive(Copy, Clone, Debug)]
10627#[doc(alias = "VkPresentWait2InfoKHR")]
10628pub struct PresentWait2InfoKHR {
10629    ///Must be `VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR`.
10630    pub s_type: StructureType,
10631    ///Optional, may be null.
10632    pub p_next: *const core::ffi::c_void,
10633    pub present_id: u64,
10634    pub timeout: u64,
10635}
10636impl Default for PresentWait2InfoKHR {
10637    #[inline]
10638    fn default() -> Self {
10639        Self {
10640            s_type: StructureType::from_raw(1000480002i32),
10641            p_next: core::ptr::null(),
10642            present_id: Default::default(),
10643            timeout: Default::default(),
10644        }
10645    }
10646}
10647///[`VkPhysicalDevicePresentWaitFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentWaitFeaturesKHR.html)
10648/**
10649Provided by **VK_KHR_present_wait**.*/
10650///
10651///# Extends
10652///- [`PhysicalDeviceFeatures2`]
10653///- [`DeviceCreateInfo`]
10654#[repr(C)]
10655#[derive(Copy, Clone, Debug)]
10656#[doc(alias = "VkPhysicalDevicePresentWaitFeaturesKHR")]
10657pub struct PhysicalDevicePresentWaitFeaturesKHR {
10658    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR`.
10659    pub s_type: StructureType,
10660    ///Optional, may be null.
10661    pub p_next: *mut core::ffi::c_void,
10662    pub present_wait: u32,
10663}
10664impl Default for PhysicalDevicePresentWaitFeaturesKHR {
10665    #[inline]
10666    fn default() -> Self {
10667        Self {
10668            s_type: StructureType::from_raw(1000248000i32),
10669            p_next: core::ptr::null_mut(),
10670            present_wait: Default::default(),
10671        }
10672    }
10673}
10674///[`VkPhysicalDevicePresentWait2FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentWait2FeaturesKHR.html)
10675/**
10676Provided by **VK_KHR_present_wait2**.*/
10677///
10678///# Extends
10679///- [`PhysicalDeviceFeatures2`]
10680///- [`DeviceCreateInfo`]
10681#[repr(C)]
10682#[derive(Copy, Clone, Debug)]
10683#[doc(alias = "VkPhysicalDevicePresentWait2FeaturesKHR")]
10684pub struct PhysicalDevicePresentWait2FeaturesKHR {
10685    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR`.
10686    pub s_type: StructureType,
10687    ///Optional, may be null.
10688    pub p_next: *mut core::ffi::c_void,
10689    pub present_wait2: u32,
10690}
10691impl Default for PhysicalDevicePresentWait2FeaturesKHR {
10692    #[inline]
10693    fn default() -> Self {
10694        Self {
10695            s_type: StructureType::from_raw(1000480001i32),
10696            p_next: core::ptr::null_mut(),
10697            present_wait2: Default::default(),
10698        }
10699    }
10700}
10701///[`VkPhysicalDevicePresentTimingFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentTimingFeaturesEXT.html)
10702/**
10703Provided by **VK_EXT_present_timing**.*/
10704///
10705///# Extends
10706///- [`PhysicalDeviceFeatures2`]
10707///- [`DeviceCreateInfo`]
10708#[repr(C)]
10709#[derive(Copy, Clone, Debug)]
10710#[doc(alias = "VkPhysicalDevicePresentTimingFeaturesEXT")]
10711pub struct PhysicalDevicePresentTimingFeaturesEXT {
10712    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT`.
10713    pub s_type: StructureType,
10714    ///Optional, may be null.
10715    pub p_next: *mut core::ffi::c_void,
10716    pub present_timing: u32,
10717    pub present_at_absolute_time: u32,
10718    pub present_at_relative_time: u32,
10719}
10720impl Default for PhysicalDevicePresentTimingFeaturesEXT {
10721    #[inline]
10722    fn default() -> Self {
10723        Self {
10724            s_type: StructureType::from_raw(1000208000i32),
10725            p_next: core::ptr::null_mut(),
10726            present_timing: Default::default(),
10727            present_at_absolute_time: Default::default(),
10728            present_at_relative_time: Default::default(),
10729        }
10730    }
10731}
10732///[`VkPresentTimingSurfaceCapabilitiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimingSurfaceCapabilitiesEXT.html)
10733/**
10734Provided by **VK_EXT_present_timing**.*/
10735/**
10736**Returned only**, filled by Vulkan, not constructed by the application.*/
10737///
10738///# Extends
10739///- [`SurfaceCapabilities2KHR`]
10740#[repr(C)]
10741#[derive(Copy, Clone, Debug)]
10742#[doc(alias = "VkPresentTimingSurfaceCapabilitiesEXT")]
10743pub struct PresentTimingSurfaceCapabilitiesEXT {
10744    ///Must be `VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT`.
10745    pub s_type: StructureType,
10746    ///Optional, may be null.
10747    pub p_next: *mut core::ffi::c_void,
10748    pub present_timing_supported: u32,
10749    pub present_at_absolute_time_supported: u32,
10750    pub present_at_relative_time_supported: u32,
10751    pub present_stage_queries: PresentStageFlagsEXT,
10752}
10753impl Default for PresentTimingSurfaceCapabilitiesEXT {
10754    #[inline]
10755    fn default() -> Self {
10756        Self {
10757            s_type: StructureType::from_raw(1000208008i32),
10758            p_next: core::ptr::null_mut(),
10759            present_timing_supported: Default::default(),
10760            present_at_absolute_time_supported: Default::default(),
10761            present_at_relative_time_supported: Default::default(),
10762            present_stage_queries: Default::default(),
10763        }
10764    }
10765}
10766///[`VkSwapchainTimingPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainTimingPropertiesEXT.html)
10767/**
10768Provided by **VK_EXT_present_timing**.*/
10769/**
10770**Returned only**, filled by Vulkan, not constructed by the application.*/
10771#[repr(C)]
10772#[derive(Copy, Clone, Debug)]
10773#[doc(alias = "VkSwapchainTimingPropertiesEXT")]
10774pub struct SwapchainTimingPropertiesEXT {
10775    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT`.
10776    pub s_type: StructureType,
10777    ///Optional, may be null.
10778    pub p_next: *mut core::ffi::c_void,
10779    pub refresh_duration: u64,
10780    pub refresh_interval: u64,
10781}
10782impl Default for SwapchainTimingPropertiesEXT {
10783    #[inline]
10784    fn default() -> Self {
10785        Self {
10786            s_type: StructureType::from_raw(1000208001i32),
10787            p_next: core::ptr::null_mut(),
10788            refresh_duration: Default::default(),
10789            refresh_interval: Default::default(),
10790        }
10791    }
10792}
10793///[`VkSwapchainTimeDomainPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainTimeDomainPropertiesEXT.html)
10794/**
10795Provided by **VK_EXT_present_timing**.*/
10796/**
10797**Returned only**, filled by Vulkan, not constructed by the application.*/
10798#[repr(C)]
10799#[derive(Copy, Clone, Debug)]
10800#[doc(alias = "VkSwapchainTimeDomainPropertiesEXT")]
10801pub struct SwapchainTimeDomainPropertiesEXT {
10802    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT`.
10803    pub s_type: StructureType,
10804    ///Optional, may be null.
10805    pub p_next: *mut core::ffi::c_void,
10806    ///Length of `p_time_domain_ids`.
10807    pub time_domain_count: u32,
10808    ///Optional, may be null.
10809    pub p_time_domains: *mut TimeDomainKHR,
10810    ///Optional, may be null.
10811    pub p_time_domain_ids: *mut u64,
10812}
10813impl Default for SwapchainTimeDomainPropertiesEXT {
10814    #[inline]
10815    fn default() -> Self {
10816        Self {
10817            s_type: StructureType::from_raw(1000208002i32),
10818            p_next: core::ptr::null_mut(),
10819            time_domain_count: Default::default(),
10820            p_time_domains: core::ptr::null_mut(),
10821            p_time_domain_ids: core::ptr::null_mut(),
10822        }
10823    }
10824}
10825///[`VkPresentStageTimeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentStageTimeEXT.html)
10826/**
10827Provided by **VK_EXT_present_timing**.*/
10828/**
10829**Returned only**, filled by Vulkan, not constructed by the application.*/
10830#[repr(C)]
10831#[derive(Copy, Clone, Debug)]
10832#[doc(alias = "VkPresentStageTimeEXT")]
10833pub struct PresentStageTimeEXT {
10834    pub stage: PresentStageFlagsEXT,
10835    pub time: u64,
10836}
10837impl Default for PresentStageTimeEXT {
10838    #[inline]
10839    fn default() -> Self {
10840        unsafe { core::mem::zeroed() }
10841    }
10842}
10843///[`VkPastPresentationTimingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPastPresentationTimingInfoEXT.html)
10844/**
10845Provided by **VK_EXT_present_timing**.*/
10846#[repr(C)]
10847#[derive(Copy, Clone, Debug)]
10848#[doc(alias = "VkPastPresentationTimingInfoEXT")]
10849pub struct PastPresentationTimingInfoEXT {
10850    ///Must be `VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT`.
10851    pub s_type: StructureType,
10852    ///Optional, may be null.
10853    pub p_next: *const core::ffi::c_void,
10854    pub flags: PastPresentationTimingFlagsEXT,
10855    ///**Thread safety:** must be externally synchronized.
10856    pub swapchain: SwapchainKHR,
10857}
10858impl Default for PastPresentationTimingInfoEXT {
10859    #[inline]
10860    fn default() -> Self {
10861        Self {
10862            s_type: StructureType::from_raw(1000208005i32),
10863            p_next: core::ptr::null(),
10864            flags: Default::default(),
10865            swapchain: Default::default(),
10866        }
10867    }
10868}
10869///[`VkPastPresentationTimingPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPastPresentationTimingPropertiesEXT.html)
10870/**
10871Provided by **VK_EXT_present_timing**.*/
10872/**
10873**Returned only**, filled by Vulkan, not constructed by the application.*/
10874#[repr(C)]
10875#[derive(Copy, Clone, Debug)]
10876#[doc(alias = "VkPastPresentationTimingPropertiesEXT")]
10877pub struct PastPresentationTimingPropertiesEXT {
10878    ///Must be `VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT`.
10879    pub s_type: StructureType,
10880    ///Optional, may be null.
10881    pub p_next: *mut core::ffi::c_void,
10882    pub timing_properties_counter: u64,
10883    pub time_domains_counter: u64,
10884    ///Length of `p_presentation_timings`.
10885    pub presentation_timing_count: u32,
10886    pub p_presentation_timings: *mut PastPresentationTimingEXT,
10887}
10888impl Default for PastPresentationTimingPropertiesEXT {
10889    #[inline]
10890    fn default() -> Self {
10891        Self {
10892            s_type: StructureType::from_raw(1000208006i32),
10893            p_next: core::ptr::null_mut(),
10894            timing_properties_counter: Default::default(),
10895            time_domains_counter: Default::default(),
10896            presentation_timing_count: Default::default(),
10897            p_presentation_timings: core::ptr::null_mut(),
10898        }
10899    }
10900}
10901///[`VkPastPresentationTimingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPastPresentationTimingEXT.html)
10902/**
10903Provided by **VK_EXT_present_timing**.*/
10904/**
10905**Returned only**, filled by Vulkan, not constructed by the application.*/
10906#[repr(C)]
10907#[derive(Copy, Clone, Debug)]
10908#[doc(alias = "VkPastPresentationTimingEXT")]
10909pub struct PastPresentationTimingEXT {
10910    ///Must be `VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT`.
10911    pub s_type: StructureType,
10912    ///Optional, may be null.
10913    pub p_next: *mut core::ffi::c_void,
10914    pub present_id: u64,
10915    pub target_time: u64,
10916    ///Length of `p_present_stages`.
10917    pub present_stage_count: u32,
10918    pub p_present_stages: *mut PresentStageTimeEXT,
10919    pub time_domain: TimeDomainKHR,
10920    pub time_domain_id: u64,
10921    pub report_complete: u32,
10922}
10923impl Default for PastPresentationTimingEXT {
10924    #[inline]
10925    fn default() -> Self {
10926        Self {
10927            s_type: StructureType::from_raw(1000208007i32),
10928            p_next: core::ptr::null_mut(),
10929            present_id: Default::default(),
10930            target_time: Default::default(),
10931            present_stage_count: Default::default(),
10932            p_present_stages: core::ptr::null_mut(),
10933            time_domain: Default::default(),
10934            time_domain_id: Default::default(),
10935            report_complete: Default::default(),
10936        }
10937    }
10938}
10939///[`VkPresentTimingsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimingsInfoEXT.html)
10940/**
10941Provided by **VK_EXT_present_timing**.*/
10942///
10943///# Extends
10944///- [`PresentInfoKHR`]
10945#[repr(C)]
10946#[derive(Copy, Clone, Debug)]
10947#[doc(alias = "VkPresentTimingsInfoEXT")]
10948pub struct PresentTimingsInfoEXT {
10949    ///Must be `VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT`.
10950    pub s_type: StructureType,
10951    ///Optional, may be null.
10952    pub p_next: *const core::ffi::c_void,
10953    ///Length of `p_timing_infos`.
10954    pub swapchain_count: u32,
10955    ///Optional, may be null.
10956    pub p_timing_infos: *const PresentTimingInfoEXT,
10957}
10958impl Default for PresentTimingsInfoEXT {
10959    #[inline]
10960    fn default() -> Self {
10961        Self {
10962            s_type: StructureType::from_raw(1000208003i32),
10963            p_next: core::ptr::null(),
10964            swapchain_count: Default::default(),
10965            p_timing_infos: core::ptr::null(),
10966        }
10967    }
10968}
10969///[`VkPresentTimingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimingInfoEXT.html)
10970/**
10971Provided by **VK_EXT_present_timing**.*/
10972#[repr(C)]
10973#[derive(Copy, Clone, Debug)]
10974#[doc(alias = "VkPresentTimingInfoEXT")]
10975pub struct PresentTimingInfoEXT {
10976    ///Must be `VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT`.
10977    pub s_type: StructureType,
10978    ///Optional, may be null.
10979    pub p_next: *const core::ffi::c_void,
10980    pub flags: PresentTimingInfoFlagsEXT,
10981    pub target_time: u64,
10982    pub time_domain_id: u64,
10983    pub present_stage_queries: PresentStageFlagsEXT,
10984    pub target_time_domain_present_stage: PresentStageFlagsEXT,
10985}
10986impl Default for PresentTimingInfoEXT {
10987    #[inline]
10988    fn default() -> Self {
10989        Self {
10990            s_type: StructureType::from_raw(1000208004i32),
10991            p_next: core::ptr::null(),
10992            flags: Default::default(),
10993            target_time: Default::default(),
10994            time_domain_id: Default::default(),
10995            present_stage_queries: Default::default(),
10996            target_time_domain_present_stage: Default::default(),
10997        }
10998    }
10999}
11000///[`VkSwapchainCalibratedTimestampInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainCalibratedTimestampInfoEXT.html)
11001/**
11002Provided by **VK_EXT_present_timing**.*/
11003///
11004///# Extends
11005///- [`CalibratedTimestampInfoKHR`]
11006#[repr(C)]
11007#[derive(Copy, Clone, Debug)]
11008#[doc(alias = "VkSwapchainCalibratedTimestampInfoEXT")]
11009pub struct SwapchainCalibratedTimestampInfoEXT {
11010    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT`.
11011    pub s_type: StructureType,
11012    ///Optional, may be null.
11013    pub p_next: *const core::ffi::c_void,
11014    pub swapchain: SwapchainKHR,
11015    pub present_stage: PresentStageFlagsEXT,
11016    pub time_domain_id: u64,
11017}
11018impl Default for SwapchainCalibratedTimestampInfoEXT {
11019    #[inline]
11020    fn default() -> Self {
11021        Self {
11022            s_type: StructureType::from_raw(1000208009i32),
11023            p_next: core::ptr::null(),
11024            swapchain: Default::default(),
11025            present_stage: Default::default(),
11026            time_domain_id: Default::default(),
11027        }
11028    }
11029}
11030///[`VkHdrMetadataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHdrMetadataEXT.html)
11031/**
11032Provided by **VK_EXT_hdr_metadata**.*/
11033///
11034///# Extended By
11035///- [`HdrVividDynamicMetadataHUAWEI`]
11036#[repr(C)]
11037#[derive(Copy, Clone, Debug)]
11038#[doc(alias = "VkHdrMetadataEXT")]
11039pub struct HdrMetadataEXT {
11040    ///Must be `VK_STRUCTURE_TYPE_HDR_METADATA_EXT`.
11041    pub s_type: StructureType,
11042    ///Optional, may be null.
11043    pub p_next: *const core::ffi::c_void,
11044    pub display_primary_red: XYColorEXT,
11045    pub display_primary_green: XYColorEXT,
11046    pub display_primary_blue: XYColorEXT,
11047    pub white_point: XYColorEXT,
11048    pub max_luminance: f32,
11049    pub min_luminance: f32,
11050    pub max_content_light_level: f32,
11051    pub max_frame_average_light_level: f32,
11052}
11053impl Default for HdrMetadataEXT {
11054    #[inline]
11055    fn default() -> Self {
11056        Self {
11057            s_type: StructureType::from_raw(1000105000i32),
11058            p_next: core::ptr::null(),
11059            display_primary_red: Default::default(),
11060            display_primary_green: Default::default(),
11061            display_primary_blue: Default::default(),
11062            white_point: Default::default(),
11063            max_luminance: Default::default(),
11064            min_luminance: Default::default(),
11065            max_content_light_level: Default::default(),
11066            max_frame_average_light_level: Default::default(),
11067        }
11068    }
11069}
11070///[`VkHdrVividDynamicMetadataHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHdrVividDynamicMetadataHUAWEI.html)
11071/**
11072Provided by **VK_HUAWEI_hdr_vivid**.*/
11073///
11074///# Extends
11075///- [`HdrMetadataEXT`]
11076#[repr(C)]
11077#[derive(Copy, Clone, Debug)]
11078#[doc(alias = "VkHdrVividDynamicMetadataHUAWEI")]
11079pub struct HdrVividDynamicMetadataHUAWEI {
11080    ///Must be `VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI`.
11081    pub s_type: StructureType,
11082    ///Optional, may be null.
11083    pub p_next: *const core::ffi::c_void,
11084    ///Length of `p_dynamic_metadata`.
11085    pub dynamic_metadata_size: usize,
11086    pub p_dynamic_metadata: *const core::ffi::c_void,
11087}
11088impl Default for HdrVividDynamicMetadataHUAWEI {
11089    #[inline]
11090    fn default() -> Self {
11091        Self {
11092            s_type: StructureType::from_raw(1000590001i32),
11093            p_next: core::ptr::null(),
11094            dynamic_metadata_size: Default::default(),
11095            p_dynamic_metadata: core::ptr::null(),
11096        }
11097    }
11098}
11099///[`VkDisplayNativeHdrSurfaceCapabilitiesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayNativeHdrSurfaceCapabilitiesAMD.html)
11100/**
11101Provided by **VK_AMD_display_native_hdr**.*/
11102/**
11103**Returned only**, filled by Vulkan, not constructed by the application.*/
11104///
11105///# Extends
11106///- [`SurfaceCapabilities2KHR`]
11107#[repr(C)]
11108#[derive(Copy, Clone, Debug)]
11109#[doc(alias = "VkDisplayNativeHdrSurfaceCapabilitiesAMD")]
11110pub struct DisplayNativeHdrSurfaceCapabilitiesAMD {
11111    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD`.
11112    pub s_type: StructureType,
11113    ///Optional, may be null.
11114    pub p_next: *mut core::ffi::c_void,
11115    pub local_dimming_support: u32,
11116}
11117impl Default for DisplayNativeHdrSurfaceCapabilitiesAMD {
11118    #[inline]
11119    fn default() -> Self {
11120        Self {
11121            s_type: StructureType::from_raw(1000213000i32),
11122            p_next: core::ptr::null_mut(),
11123            local_dimming_support: Default::default(),
11124        }
11125    }
11126}
11127///[`VkSwapchainDisplayNativeHdrCreateInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainDisplayNativeHdrCreateInfoAMD.html)
11128/**
11129Provided by **VK_AMD_display_native_hdr**.*/
11130///
11131///# Extends
11132///- [`SwapchainCreateInfoKHR`]
11133#[repr(C)]
11134#[derive(Copy, Clone, Debug)]
11135#[doc(alias = "VkSwapchainDisplayNativeHdrCreateInfoAMD")]
11136pub struct SwapchainDisplayNativeHdrCreateInfoAMD {
11137    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD`.
11138    pub s_type: StructureType,
11139    ///Optional, may be null.
11140    pub p_next: *const core::ffi::c_void,
11141    pub local_dimming_enable: u32,
11142}
11143impl Default for SwapchainDisplayNativeHdrCreateInfoAMD {
11144    #[inline]
11145    fn default() -> Self {
11146        Self {
11147            s_type: StructureType::from_raw(1000213001i32),
11148            p_next: core::ptr::null(),
11149            local_dimming_enable: Default::default(),
11150        }
11151    }
11152}
11153///[`VkRefreshCycleDurationGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRefreshCycleDurationGOOGLE.html)
11154/**
11155Provided by **VK_GOOGLE_display_timing**.*/
11156/**
11157**Returned only**, filled by Vulkan, not constructed by the application.*/
11158#[repr(C)]
11159#[derive(Copy, Clone, Debug)]
11160#[doc(alias = "VkRefreshCycleDurationGOOGLE")]
11161pub struct RefreshCycleDurationGOOGLE {
11162    pub refresh_duration: u64,
11163}
11164impl Default for RefreshCycleDurationGOOGLE {
11165    #[inline]
11166    fn default() -> Self {
11167        unsafe { core::mem::zeroed() }
11168    }
11169}
11170///[`VkPastPresentationTimingGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPastPresentationTimingGOOGLE.html)
11171/**
11172Provided by **VK_GOOGLE_display_timing**.*/
11173/**
11174**Returned only**, filled by Vulkan, not constructed by the application.*/
11175#[repr(C)]
11176#[derive(Copy, Clone, Debug)]
11177#[doc(alias = "VkPastPresentationTimingGOOGLE")]
11178pub struct PastPresentationTimingGOOGLE {
11179    pub present_id: u32,
11180    pub desired_present_time: u64,
11181    pub actual_present_time: u64,
11182    pub earliest_present_time: u64,
11183    pub present_margin: u64,
11184}
11185impl Default for PastPresentationTimingGOOGLE {
11186    #[inline]
11187    fn default() -> Self {
11188        unsafe { core::mem::zeroed() }
11189    }
11190}
11191///[`VkPresentTimesInfoGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimesInfoGOOGLE.html)
11192/**
11193Provided by **VK_GOOGLE_display_timing**.*/
11194///
11195///# Extends
11196///- [`PresentInfoKHR`]
11197#[repr(C)]
11198#[derive(Copy, Clone, Debug)]
11199#[doc(alias = "VkPresentTimesInfoGOOGLE")]
11200pub struct PresentTimesInfoGOOGLE {
11201    ///Must be `VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE`.
11202    pub s_type: StructureType,
11203    ///Optional, may be null.
11204    pub p_next: *const core::ffi::c_void,
11205    ///Length of `p_times`.
11206    pub swapchain_count: u32,
11207    ///Optional, may be null.
11208    pub p_times: *const PresentTimeGOOGLE,
11209}
11210impl Default for PresentTimesInfoGOOGLE {
11211    #[inline]
11212    fn default() -> Self {
11213        Self {
11214            s_type: StructureType::from_raw(1000092000i32),
11215            p_next: core::ptr::null(),
11216            swapchain_count: Default::default(),
11217            p_times: core::ptr::null(),
11218        }
11219    }
11220}
11221///[`VkPresentTimeGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimeGOOGLE.html)
11222/**
11223Provided by **VK_GOOGLE_display_timing**.*/
11224#[repr(C)]
11225#[derive(Copy, Clone, Debug)]
11226#[doc(alias = "VkPresentTimeGOOGLE")]
11227pub struct PresentTimeGOOGLE {
11228    pub present_id: u32,
11229    pub desired_present_time: u64,
11230}
11231impl Default for PresentTimeGOOGLE {
11232    #[inline]
11233    fn default() -> Self {
11234        unsafe { core::mem::zeroed() }
11235    }
11236}
11237///[`VkIOSSurfaceCreateInfoMVK`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIOSSurfaceCreateInfoMVK.html)
11238/**
11239Provided by **VK_MVK_ios_surface**.*/
11240#[repr(C)]
11241#[derive(Copy, Clone, Debug)]
11242#[doc(alias = "VkIOSSurfaceCreateInfoMVK")]
11243pub struct IOSSurfaceCreateInfoMVK {
11244    ///Must be `VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK`.
11245    pub s_type: StructureType,
11246    ///Optional, may be null.
11247    pub p_next: *const core::ffi::c_void,
11248    pub flags: IOSSurfaceCreateFlagsMVK,
11249    pub p_view: *const core::ffi::c_void,
11250}
11251impl Default for IOSSurfaceCreateInfoMVK {
11252    #[inline]
11253    fn default() -> Self {
11254        Self {
11255            s_type: StructureType::from_raw(1000122000i32),
11256            p_next: core::ptr::null(),
11257            flags: Default::default(),
11258            p_view: core::ptr::null(),
11259        }
11260    }
11261}
11262///[`VkMacOSSurfaceCreateInfoMVK`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMacOSSurfaceCreateInfoMVK.html)
11263/**
11264Provided by **VK_MVK_macos_surface**.*/
11265#[repr(C)]
11266#[derive(Copy, Clone, Debug)]
11267#[doc(alias = "VkMacOSSurfaceCreateInfoMVK")]
11268pub struct MacOSSurfaceCreateInfoMVK {
11269    ///Must be `VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK`.
11270    pub s_type: StructureType,
11271    ///Optional, may be null.
11272    pub p_next: *const core::ffi::c_void,
11273    pub flags: MacOSSurfaceCreateFlagsMVK,
11274    pub p_view: *const core::ffi::c_void,
11275}
11276impl Default for MacOSSurfaceCreateInfoMVK {
11277    #[inline]
11278    fn default() -> Self {
11279        Self {
11280            s_type: StructureType::from_raw(1000123000i32),
11281            p_next: core::ptr::null(),
11282            flags: Default::default(),
11283            p_view: core::ptr::null(),
11284        }
11285    }
11286}
11287///[`VkMetalSurfaceCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMetalSurfaceCreateInfoEXT.html)
11288/**
11289Provided by **VK_EXT_metal_surface**.*/
11290#[repr(C)]
11291#[derive(Copy, Clone, Debug)]
11292#[doc(alias = "VkMetalSurfaceCreateInfoEXT")]
11293pub struct MetalSurfaceCreateInfoEXT {
11294    ///Must be `VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT`.
11295    pub s_type: StructureType,
11296    ///Optional, may be null.
11297    pub p_next: *const core::ffi::c_void,
11298    pub flags: MetalSurfaceCreateFlagsEXT,
11299    pub p_layer: *const core::ffi::c_void,
11300}
11301impl Default for MetalSurfaceCreateInfoEXT {
11302    #[inline]
11303    fn default() -> Self {
11304        Self {
11305            s_type: StructureType::from_raw(1000217000i32),
11306            p_next: core::ptr::null(),
11307            flags: Default::default(),
11308            p_layer: core::ptr::null(),
11309        }
11310    }
11311}
11312///[`VkViewportWScalingNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkViewportWScalingNV.html)
11313/**
11314Provided by **VK_NV_clip_space_w_scaling**.*/
11315#[repr(C)]
11316#[derive(Copy, Clone, Debug)]
11317#[doc(alias = "VkViewportWScalingNV")]
11318pub struct ViewportWScalingNV {
11319    pub xcoeff: f32,
11320    pub ycoeff: f32,
11321}
11322impl Default for ViewportWScalingNV {
11323    #[inline]
11324    fn default() -> Self {
11325        unsafe { core::mem::zeroed() }
11326    }
11327}
11328///[`VkPipelineViewportWScalingStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportWScalingStateCreateInfoNV.html)
11329/**
11330Provided by **VK_NV_clip_space_w_scaling**.*/
11331///
11332///# Extends
11333///- [`PipelineViewportStateCreateInfo`]
11334#[repr(C)]
11335#[derive(Copy, Clone, Debug)]
11336#[doc(alias = "VkPipelineViewportWScalingStateCreateInfoNV")]
11337pub struct PipelineViewportWScalingStateCreateInfoNV {
11338    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV`.
11339    pub s_type: StructureType,
11340    ///Optional, may be null.
11341    pub p_next: *const core::ffi::c_void,
11342    pub viewport_w_scaling_enable: u32,
11343    ///Length of `p_viewport_w_scalings`.
11344    pub viewport_count: u32,
11345    ///Optional, may be null.
11346    pub p_viewport_w_scalings: *const ViewportWScalingNV,
11347}
11348impl Default for PipelineViewportWScalingStateCreateInfoNV {
11349    #[inline]
11350    fn default() -> Self {
11351        Self {
11352            s_type: StructureType::from_raw(1000087000i32),
11353            p_next: core::ptr::null(),
11354            viewport_w_scaling_enable: Default::default(),
11355            viewport_count: Default::default(),
11356            p_viewport_w_scalings: core::ptr::null(),
11357        }
11358    }
11359}
11360///[`VkViewportSwizzleNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkViewportSwizzleNV.html)
11361/**
11362Provided by **VK_NV_viewport_swizzle**.*/
11363#[repr(C)]
11364#[derive(Copy, Clone, Debug)]
11365#[doc(alias = "VkViewportSwizzleNV")]
11366pub struct ViewportSwizzleNV {
11367    pub x: ViewportCoordinateSwizzleNV,
11368    pub y: ViewportCoordinateSwizzleNV,
11369    pub z: ViewportCoordinateSwizzleNV,
11370    pub w: ViewportCoordinateSwizzleNV,
11371}
11372impl Default for ViewportSwizzleNV {
11373    #[inline]
11374    fn default() -> Self {
11375        unsafe { core::mem::zeroed() }
11376    }
11377}
11378///[`VkPipelineViewportSwizzleStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportSwizzleStateCreateInfoNV.html)
11379/**
11380Provided by **VK_NV_viewport_swizzle**.*/
11381///
11382///# Extends
11383///- [`PipelineViewportStateCreateInfo`]
11384#[repr(C)]
11385#[derive(Copy, Clone, Debug)]
11386#[doc(alias = "VkPipelineViewportSwizzleStateCreateInfoNV")]
11387pub struct PipelineViewportSwizzleStateCreateInfoNV {
11388    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV`.
11389    pub s_type: StructureType,
11390    ///Optional, may be null.
11391    pub p_next: *const core::ffi::c_void,
11392    pub flags: PipelineViewportSwizzleStateCreateFlagsNV,
11393    ///Length of `p_viewport_swizzles`.
11394    pub viewport_count: u32,
11395    pub p_viewport_swizzles: *const ViewportSwizzleNV,
11396}
11397impl Default for PipelineViewportSwizzleStateCreateInfoNV {
11398    #[inline]
11399    fn default() -> Self {
11400        Self {
11401            s_type: StructureType::from_raw(1000098000i32),
11402            p_next: core::ptr::null(),
11403            flags: Default::default(),
11404            viewport_count: Default::default(),
11405            p_viewport_swizzles: core::ptr::null(),
11406        }
11407    }
11408}
11409///[`VkPhysicalDeviceDiscardRectanglePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDiscardRectanglePropertiesEXT.html)
11410/**
11411Provided by **VK_EXT_discard_rectangles**.*/
11412/**
11413**Returned only**, filled by Vulkan, not constructed by the application.*/
11414///
11415///# Extends
11416///- [`PhysicalDeviceProperties2`]
11417#[repr(C)]
11418#[derive(Copy, Clone, Debug)]
11419#[doc(alias = "VkPhysicalDeviceDiscardRectanglePropertiesEXT")]
11420pub struct PhysicalDeviceDiscardRectanglePropertiesEXT {
11421    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT`.
11422    pub s_type: StructureType,
11423    ///Optional, may be null.
11424    pub p_next: *mut core::ffi::c_void,
11425    pub max_discard_rectangles: u32,
11426}
11427impl Default for PhysicalDeviceDiscardRectanglePropertiesEXT {
11428    #[inline]
11429    fn default() -> Self {
11430        Self {
11431            s_type: StructureType::from_raw(1000099000i32),
11432            p_next: core::ptr::null_mut(),
11433            max_discard_rectangles: Default::default(),
11434        }
11435    }
11436}
11437///[`VkPipelineDiscardRectangleStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineDiscardRectangleStateCreateInfoEXT.html)
11438/**
11439Provided by **VK_EXT_discard_rectangles**.*/
11440///
11441///# Extends
11442///- [`GraphicsPipelineCreateInfo`]
11443#[repr(C)]
11444#[derive(Copy, Clone, Debug)]
11445#[doc(alias = "VkPipelineDiscardRectangleStateCreateInfoEXT")]
11446pub struct PipelineDiscardRectangleStateCreateInfoEXT {
11447    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT`.
11448    pub s_type: StructureType,
11449    ///Optional, may be null.
11450    pub p_next: *const core::ffi::c_void,
11451    pub flags: PipelineDiscardRectangleStateCreateFlagsEXT,
11452    pub discard_rectangle_mode: DiscardRectangleModeEXT,
11453    ///Length of `p_discard_rectangles`.
11454    pub discard_rectangle_count: u32,
11455    pub p_discard_rectangles: *const Rect2D,
11456}
11457impl Default for PipelineDiscardRectangleStateCreateInfoEXT {
11458    #[inline]
11459    fn default() -> Self {
11460        Self {
11461            s_type: StructureType::from_raw(1000099001i32),
11462            p_next: core::ptr::null(),
11463            flags: Default::default(),
11464            discard_rectangle_mode: Default::default(),
11465            discard_rectangle_count: Default::default(),
11466            p_discard_rectangles: core::ptr::null(),
11467        }
11468    }
11469}
11470///[`VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.html)
11471/**
11472Provided by **VK_NVX_multiview_per_view_attributes**.*/
11473/**
11474**Returned only**, filled by Vulkan, not constructed by the application.*/
11475///
11476///# Extends
11477///- [`PhysicalDeviceProperties2`]
11478#[repr(C)]
11479#[derive(Copy, Clone, Debug)]
11480#[doc(alias = "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX")]
11481pub struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11482    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX`.
11483    pub s_type: StructureType,
11484    ///Optional, may be null.
11485    pub p_next: *mut core::ffi::c_void,
11486    pub per_view_position_all_components: u32,
11487}
11488impl Default for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11489    #[inline]
11490    fn default() -> Self {
11491        Self {
11492            s_type: StructureType::from_raw(1000097000i32),
11493            p_next: core::ptr::null_mut(),
11494            per_view_position_all_components: Default::default(),
11495        }
11496    }
11497}
11498///[`VkInputAttachmentAspectReference`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkInputAttachmentAspectReference.html)
11499/**
11500Provided by **VK_GRAPHICS_VERSION_1_1**.*/
11501#[repr(C)]
11502#[derive(Copy, Clone, Debug)]
11503#[doc(alias = "VkInputAttachmentAspectReference")]
11504pub struct InputAttachmentAspectReference {
11505    pub subpass: u32,
11506    pub input_attachment_index: u32,
11507    pub aspect_mask: ImageAspectFlags,
11508}
11509impl Default for InputAttachmentAspectReference {
11510    #[inline]
11511    fn default() -> Self {
11512        unsafe { core::mem::zeroed() }
11513    }
11514}
11515///[`VkRenderPassInputAttachmentAspectCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassInputAttachmentAspectCreateInfo.html)
11516/**
11517Provided by **VK_GRAPHICS_VERSION_1_1**.*/
11518///
11519///# Extends
11520///- [`RenderPassCreateInfo`]
11521#[repr(C)]
11522#[derive(Copy, Clone, Debug)]
11523#[doc(alias = "VkRenderPassInputAttachmentAspectCreateInfo")]
11524pub struct RenderPassInputAttachmentAspectCreateInfo {
11525    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO`.
11526    pub s_type: StructureType,
11527    ///Optional, may be null.
11528    pub p_next: *const core::ffi::c_void,
11529    ///Length of `p_aspect_references`.
11530    pub aspect_reference_count: u32,
11531    pub p_aspect_references: *const InputAttachmentAspectReference,
11532}
11533impl Default for RenderPassInputAttachmentAspectCreateInfo {
11534    #[inline]
11535    fn default() -> Self {
11536        Self {
11537            s_type: StructureType::from_raw(1000117001i32),
11538            p_next: core::ptr::null(),
11539            aspect_reference_count: Default::default(),
11540            p_aspect_references: core::ptr::null(),
11541        }
11542    }
11543}
11544///[`VkPhysicalDeviceSurfaceInfo2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSurfaceInfo2KHR.html)
11545/**
11546Provided by **VK_KHR_get_surface_capabilities2**.*/
11547///
11548///# Extended By
11549///- [`SurfaceFullScreenExclusiveInfoEXT`]
11550///- [`SurfaceFullScreenExclusiveWin32InfoEXT`]
11551///- [`SurfacePresentModeKHR`]
11552#[repr(C)]
11553#[derive(Copy, Clone, Debug)]
11554#[doc(alias = "VkPhysicalDeviceSurfaceInfo2KHR")]
11555pub struct PhysicalDeviceSurfaceInfo2KHR {
11556    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR`.
11557    pub s_type: StructureType,
11558    ///Optional, may be null.
11559    pub p_next: *const core::ffi::c_void,
11560    pub surface: SurfaceKHR,
11561}
11562impl Default for PhysicalDeviceSurfaceInfo2KHR {
11563    #[inline]
11564    fn default() -> Self {
11565        Self {
11566            s_type: StructureType::from_raw(1000119000i32),
11567            p_next: core::ptr::null(),
11568            surface: Default::default(),
11569        }
11570    }
11571}
11572///[`VkSurfaceCapabilities2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilities2KHR.html)
11573/**
11574Provided by **VK_KHR_get_surface_capabilities2**.*/
11575/**
11576**Returned only**, filled by Vulkan, not constructed by the application.*/
11577///
11578///# Extended By
11579///- [`DisplayNativeHdrSurfaceCapabilitiesAMD`]
11580///- [`LatencySurfaceCapabilitiesNV`]
11581///- [`PresentTimingSurfaceCapabilitiesEXT`]
11582///- [`SharedPresentSurfaceCapabilitiesKHR`]
11583///- [`SurfaceCapabilitiesFullScreenExclusiveEXT`]
11584///- [`SurfaceCapabilitiesPresentBarrierNV`]
11585///- [`SurfaceCapabilitiesPresentId2KHR`]
11586///- [`SurfaceCapabilitiesPresentWait2KHR`]
11587///- [`SurfacePresentModeCompatibilityKHR`]
11588///- [`SurfacePresentScalingCapabilitiesKHR`]
11589///- [`SurfaceProtectedCapabilitiesKHR`]
11590#[repr(C)]
11591#[derive(Copy, Clone, Debug)]
11592#[doc(alias = "VkSurfaceCapabilities2KHR")]
11593pub struct SurfaceCapabilities2KHR {
11594    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR`.
11595    pub s_type: StructureType,
11596    ///Optional, may be null.
11597    pub p_next: *mut core::ffi::c_void,
11598    pub surface_capabilities: SurfaceCapabilitiesKHR,
11599}
11600impl Default for SurfaceCapabilities2KHR {
11601    #[inline]
11602    fn default() -> Self {
11603        Self {
11604            s_type: StructureType::from_raw(1000119001i32),
11605            p_next: core::ptr::null_mut(),
11606            surface_capabilities: Default::default(),
11607        }
11608    }
11609}
11610///[`VkSurfaceFormat2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFormat2KHR.html)
11611/**
11612Provided by **VK_KHR_get_surface_capabilities2**.*/
11613/**
11614**Returned only**, filled by Vulkan, not constructed by the application.*/
11615///
11616///# Extended By
11617///- [`ImageCompressionPropertiesEXT`]
11618#[repr(C)]
11619#[derive(Copy, Clone, Debug)]
11620#[doc(alias = "VkSurfaceFormat2KHR")]
11621pub struct SurfaceFormat2KHR {
11622    ///Must be `VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR`.
11623    pub s_type: StructureType,
11624    ///Optional, may be null.
11625    pub p_next: *mut core::ffi::c_void,
11626    pub surface_format: SurfaceFormatKHR,
11627}
11628impl Default for SurfaceFormat2KHR {
11629    #[inline]
11630    fn default() -> Self {
11631        Self {
11632            s_type: StructureType::from_raw(1000119002i32),
11633            p_next: core::ptr::null_mut(),
11634            surface_format: Default::default(),
11635        }
11636    }
11637}
11638///[`VkDisplayProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayProperties2KHR.html)
11639/**
11640Provided by **VK_KHR_get_display_properties2**.*/
11641/**
11642**Returned only**, filled by Vulkan, not constructed by the application.*/
11643#[repr(C)]
11644#[derive(Copy, Clone, Debug)]
11645#[doc(alias = "VkDisplayProperties2KHR")]
11646pub struct DisplayProperties2KHR {
11647    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR`.
11648    pub s_type: StructureType,
11649    ///Optional, may be null.
11650    pub p_next: *mut core::ffi::c_void,
11651    pub display_properties: DisplayPropertiesKHR,
11652}
11653impl Default for DisplayProperties2KHR {
11654    #[inline]
11655    fn default() -> Self {
11656        Self {
11657            s_type: StructureType::from_raw(1000121000i32),
11658            p_next: core::ptr::null_mut(),
11659            display_properties: Default::default(),
11660        }
11661    }
11662}
11663///[`VkDisplayPlaneProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlaneProperties2KHR.html)
11664/**
11665Provided by **VK_KHR_get_display_properties2**.*/
11666/**
11667**Returned only**, filled by Vulkan, not constructed by the application.*/
11668#[repr(C)]
11669#[derive(Copy, Clone, Debug)]
11670#[doc(alias = "VkDisplayPlaneProperties2KHR")]
11671pub struct DisplayPlaneProperties2KHR {
11672    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR`.
11673    pub s_type: StructureType,
11674    ///Optional, may be null.
11675    pub p_next: *mut core::ffi::c_void,
11676    pub display_plane_properties: DisplayPlanePropertiesKHR,
11677}
11678impl Default for DisplayPlaneProperties2KHR {
11679    #[inline]
11680    fn default() -> Self {
11681        Self {
11682            s_type: StructureType::from_raw(1000121001i32),
11683            p_next: core::ptr::null_mut(),
11684            display_plane_properties: Default::default(),
11685        }
11686    }
11687}
11688///[`VkDisplayModeProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModeProperties2KHR.html)
11689/**
11690Provided by **VK_KHR_get_display_properties2**.*/
11691/**
11692**Returned only**, filled by Vulkan, not constructed by the application.*/
11693///
11694///# Extended By
11695///- [`DisplayModeStereoPropertiesNV`]
11696#[repr(C)]
11697#[derive(Copy, Clone, Debug)]
11698#[doc(alias = "VkDisplayModeProperties2KHR")]
11699pub struct DisplayModeProperties2KHR {
11700    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR`.
11701    pub s_type: StructureType,
11702    ///Optional, may be null.
11703    pub p_next: *mut core::ffi::c_void,
11704    pub display_mode_properties: DisplayModePropertiesKHR,
11705}
11706impl Default for DisplayModeProperties2KHR {
11707    #[inline]
11708    fn default() -> Self {
11709        Self {
11710            s_type: StructureType::from_raw(1000121002i32),
11711            p_next: core::ptr::null_mut(),
11712            display_mode_properties: Default::default(),
11713        }
11714    }
11715}
11716///[`VkDisplayModeStereoPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModeStereoPropertiesNV.html)
11717/**
11718Provided by **VK_NV_display_stereo**.*/
11719/**
11720**Returned only**, filled by Vulkan, not constructed by the application.*/
11721///
11722///# Extends
11723///- [`DisplayModeProperties2KHR`]
11724#[repr(C)]
11725#[derive(Copy, Clone, Debug)]
11726#[doc(alias = "VkDisplayModeStereoPropertiesNV")]
11727pub struct DisplayModeStereoPropertiesNV {
11728    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV`.
11729    pub s_type: StructureType,
11730    ///Optional, may be null.
11731    pub p_next: *mut core::ffi::c_void,
11732    pub hdmi3_d_supported: u32,
11733}
11734impl Default for DisplayModeStereoPropertiesNV {
11735    #[inline]
11736    fn default() -> Self {
11737        Self {
11738            s_type: StructureType::from_raw(1000551001i32),
11739            p_next: core::ptr::null_mut(),
11740            hdmi3_d_supported: Default::default(),
11741        }
11742    }
11743}
11744///[`VkDisplayPlaneInfo2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlaneInfo2KHR.html)
11745/**
11746Provided by **VK_KHR_get_display_properties2**.*/
11747#[repr(C)]
11748#[derive(Copy, Clone, Debug)]
11749#[doc(alias = "VkDisplayPlaneInfo2KHR")]
11750pub struct DisplayPlaneInfo2KHR {
11751    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR`.
11752    pub s_type: StructureType,
11753    ///Optional, may be null.
11754    pub p_next: *const core::ffi::c_void,
11755    ///**Thread safety:** must be externally synchronized.
11756    pub mode: DisplayModeKHR,
11757    pub plane_index: u32,
11758}
11759impl Default for DisplayPlaneInfo2KHR {
11760    #[inline]
11761    fn default() -> Self {
11762        Self {
11763            s_type: StructureType::from_raw(1000121003i32),
11764            p_next: core::ptr::null(),
11765            mode: Default::default(),
11766            plane_index: Default::default(),
11767        }
11768    }
11769}
11770///[`VkDisplayPlaneCapabilities2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlaneCapabilities2KHR.html)
11771/**
11772Provided by **VK_KHR_get_display_properties2**.*/
11773/**
11774**Returned only**, filled by Vulkan, not constructed by the application.*/
11775#[repr(C)]
11776#[derive(Copy, Clone, Debug)]
11777#[doc(alias = "VkDisplayPlaneCapabilities2KHR")]
11778pub struct DisplayPlaneCapabilities2KHR {
11779    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR`.
11780    pub s_type: StructureType,
11781    ///Optional, may be null.
11782    pub p_next: *mut core::ffi::c_void,
11783    pub capabilities: DisplayPlaneCapabilitiesKHR,
11784}
11785impl Default for DisplayPlaneCapabilities2KHR {
11786    #[inline]
11787    fn default() -> Self {
11788        Self {
11789            s_type: StructureType::from_raw(1000121004i32),
11790            p_next: core::ptr::null_mut(),
11791            capabilities: Default::default(),
11792        }
11793    }
11794}
11795///[`VkSharedPresentSurfaceCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSharedPresentSurfaceCapabilitiesKHR.html)
11796/**
11797Provided by **VK_KHR_shared_presentable_image**.*/
11798/**
11799**Returned only**, filled by Vulkan, not constructed by the application.*/
11800///
11801///# Extends
11802///- [`SurfaceCapabilities2KHR`]
11803#[repr(C)]
11804#[derive(Copy, Clone, Debug)]
11805#[doc(alias = "VkSharedPresentSurfaceCapabilitiesKHR")]
11806pub struct SharedPresentSurfaceCapabilitiesKHR {
11807    ///Must be `VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR`.
11808    pub s_type: StructureType,
11809    ///Optional, may be null.
11810    pub p_next: *mut core::ffi::c_void,
11811    pub shared_present_supported_usage_flags: ImageUsageFlags,
11812}
11813impl Default for SharedPresentSurfaceCapabilitiesKHR {
11814    #[inline]
11815    fn default() -> Self {
11816        Self {
11817            s_type: StructureType::from_raw(1000111000i32),
11818            p_next: core::ptr::null_mut(),
11819            shared_present_supported_usage_flags: Default::default(),
11820        }
11821    }
11822}
11823///[`VkPhysicalDevice16BitStorageFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevice16BitStorageFeatures.html)
11824/**
11825Provided by **VK_COMPUTE_VERSION_1_1**.*/
11826///
11827///# Extends
11828///- [`PhysicalDeviceFeatures2`]
11829///- [`DeviceCreateInfo`]
11830#[repr(C)]
11831#[derive(Copy, Clone, Debug)]
11832#[doc(alias = "VkPhysicalDevice16BitStorageFeatures")]
11833pub struct PhysicalDevice16BitStorageFeatures {
11834    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES`.
11835    pub s_type: StructureType,
11836    ///Optional, may be null.
11837    pub p_next: *mut core::ffi::c_void,
11838    pub storage_buffer16_bit_access: u32,
11839    pub uniform_and_storage_buffer16_bit_access: u32,
11840    pub storage_push_constant16: u32,
11841    pub storage_input_output16: u32,
11842}
11843impl Default for PhysicalDevice16BitStorageFeatures {
11844    #[inline]
11845    fn default() -> Self {
11846        Self {
11847            s_type: StructureType::from_raw(1000083000i32),
11848            p_next: core::ptr::null_mut(),
11849            storage_buffer16_bit_access: Default::default(),
11850            uniform_and_storage_buffer16_bit_access: Default::default(),
11851            storage_push_constant16: Default::default(),
11852            storage_input_output16: Default::default(),
11853        }
11854    }
11855}
11856///[`VkPhysicalDeviceSubgroupProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubgroupProperties.html)
11857/**
11858Provided by **VK_COMPUTE_VERSION_1_1**.*/
11859/**
11860**Returned only**, filled by Vulkan, not constructed by the application.*/
11861///
11862///# Extends
11863///- [`PhysicalDeviceProperties2`]
11864#[repr(C)]
11865#[derive(Copy, Clone, Debug)]
11866#[doc(alias = "VkPhysicalDeviceSubgroupProperties")]
11867pub struct PhysicalDeviceSubgroupProperties {
11868    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES`.
11869    pub s_type: StructureType,
11870    ///Optional, may be null.
11871    pub p_next: *mut core::ffi::c_void,
11872    pub subgroup_size: u32,
11873    pub supported_stages: ShaderStageFlags,
11874    pub supported_operations: SubgroupFeatureFlags,
11875    pub quad_operations_in_all_stages: u32,
11876}
11877impl Default for PhysicalDeviceSubgroupProperties {
11878    #[inline]
11879    fn default() -> Self {
11880        Self {
11881            s_type: StructureType::from_raw(1000094000i32),
11882            p_next: core::ptr::null_mut(),
11883            subgroup_size: Default::default(),
11884            supported_stages: Default::default(),
11885            supported_operations: Default::default(),
11886            quad_operations_in_all_stages: Default::default(),
11887        }
11888    }
11889}
11890///[`VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.html)
11891/**
11892Provided by **VK_COMPUTE_VERSION_1_2**.*/
11893///
11894///# Extends
11895///- [`PhysicalDeviceFeatures2`]
11896///- [`DeviceCreateInfo`]
11897#[repr(C)]
11898#[derive(Copy, Clone, Debug)]
11899#[doc(alias = "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures")]
11900pub struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
11901    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES`.
11902    pub s_type: StructureType,
11903    ///Optional, may be null.
11904    pub p_next: *mut core::ffi::c_void,
11905    pub shader_subgroup_extended_types: u32,
11906}
11907impl Default for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
11908    #[inline]
11909    fn default() -> Self {
11910        Self {
11911            s_type: StructureType::from_raw(1000175000i32),
11912            p_next: core::ptr::null_mut(),
11913            shader_subgroup_extended_types: Default::default(),
11914        }
11915    }
11916}
11917///[`VkBufferMemoryRequirementsInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferMemoryRequirementsInfo2.html)
11918/**
11919Provided by **VK_BASE_VERSION_1_1**.*/
11920#[repr(C)]
11921#[derive(Copy, Clone, Debug)]
11922#[doc(alias = "VkBufferMemoryRequirementsInfo2")]
11923pub struct BufferMemoryRequirementsInfo2 {
11924    ///Must be `VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2`.
11925    pub s_type: StructureType,
11926    ///Optional, may be null.
11927    pub p_next: *const core::ffi::c_void,
11928    pub buffer: Buffer,
11929}
11930impl Default for BufferMemoryRequirementsInfo2 {
11931    #[inline]
11932    fn default() -> Self {
11933        Self {
11934            s_type: StructureType::from_raw(1000146000i32),
11935            p_next: core::ptr::null(),
11936            buffer: Default::default(),
11937        }
11938    }
11939}
11940///[`VkDeviceBufferMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceBufferMemoryRequirements.html)
11941/**
11942Provided by **VK_BASE_VERSION_1_3**.*/
11943#[repr(C)]
11944#[derive(Copy, Clone, Debug)]
11945#[doc(alias = "VkDeviceBufferMemoryRequirements")]
11946pub struct DeviceBufferMemoryRequirements {
11947    ///Must be `VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS`.
11948    pub s_type: StructureType,
11949    ///Optional, may be null.
11950    pub p_next: *const core::ffi::c_void,
11951    pub p_create_info: *const BufferCreateInfo,
11952}
11953impl Default for DeviceBufferMemoryRequirements {
11954    #[inline]
11955    fn default() -> Self {
11956        Self {
11957            s_type: StructureType::from_raw(1000413002i32),
11958            p_next: core::ptr::null(),
11959            p_create_info: core::ptr::null(),
11960        }
11961    }
11962}
11963///[`VkImageMemoryRequirementsInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageMemoryRequirementsInfo2.html)
11964/**
11965Provided by **VK_BASE_VERSION_1_1**.*/
11966///
11967///# Extended By
11968///- [`ImagePlaneMemoryRequirementsInfo`]
11969#[repr(C)]
11970#[derive(Copy, Clone, Debug)]
11971#[doc(alias = "VkImageMemoryRequirementsInfo2")]
11972pub struct ImageMemoryRequirementsInfo2 {
11973    ///Must be `VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2`.
11974    pub s_type: StructureType,
11975    ///Optional, may be null.
11976    pub p_next: *const core::ffi::c_void,
11977    pub image: Image,
11978}
11979impl Default for ImageMemoryRequirementsInfo2 {
11980    #[inline]
11981    fn default() -> Self {
11982        Self {
11983            s_type: StructureType::from_raw(1000146001i32),
11984            p_next: core::ptr::null(),
11985            image: Default::default(),
11986        }
11987    }
11988}
11989///[`VkImageSparseMemoryRequirementsInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSparseMemoryRequirementsInfo2.html)
11990/**
11991Provided by **VK_BASE_VERSION_1_1**.*/
11992#[repr(C)]
11993#[derive(Copy, Clone, Debug)]
11994#[doc(alias = "VkImageSparseMemoryRequirementsInfo2")]
11995pub struct ImageSparseMemoryRequirementsInfo2 {
11996    ///Must be `VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2`.
11997    pub s_type: StructureType,
11998    ///Optional, may be null.
11999    pub p_next: *const core::ffi::c_void,
12000    pub image: Image,
12001}
12002impl Default for ImageSparseMemoryRequirementsInfo2 {
12003    #[inline]
12004    fn default() -> Self {
12005        Self {
12006            s_type: StructureType::from_raw(1000146002i32),
12007            p_next: core::ptr::null(),
12008            image: Default::default(),
12009        }
12010    }
12011}
12012///[`VkDeviceImageMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceImageMemoryRequirements.html)
12013/**
12014Provided by **VK_BASE_VERSION_1_3**.*/
12015#[repr(C)]
12016#[derive(Copy, Clone, Debug)]
12017#[doc(alias = "VkDeviceImageMemoryRequirements")]
12018pub struct DeviceImageMemoryRequirements {
12019    ///Must be `VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS`.
12020    pub s_type: StructureType,
12021    ///Optional, may be null.
12022    pub p_next: *const core::ffi::c_void,
12023    pub p_create_info: *const ImageCreateInfo,
12024    pub plane_aspect: ImageAspectFlagBits,
12025}
12026impl Default for DeviceImageMemoryRequirements {
12027    #[inline]
12028    fn default() -> Self {
12029        Self {
12030            s_type: StructureType::from_raw(1000413003i32),
12031            p_next: core::ptr::null(),
12032            p_create_info: core::ptr::null(),
12033            plane_aspect: Default::default(),
12034        }
12035    }
12036}
12037///[`VkMemoryRequirements2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryRequirements2.html)
12038/**
12039Provided by **VK_BASE_VERSION_1_1**.*/
12040/**
12041**Returned only**, filled by Vulkan, not constructed by the application.*/
12042///
12043///# Extended By
12044///- [`MemoryDedicatedRequirements`]
12045///- [`TileMemoryRequirementsQCOM`]
12046#[repr(C)]
12047#[derive(Copy, Clone, Debug)]
12048#[doc(alias = "VkMemoryRequirements2")]
12049pub struct MemoryRequirements2 {
12050    ///Must be `VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2`.
12051    pub s_type: StructureType,
12052    ///Optional, may be null.
12053    pub p_next: *mut core::ffi::c_void,
12054    pub memory_requirements: MemoryRequirements,
12055}
12056impl Default for MemoryRequirements2 {
12057    #[inline]
12058    fn default() -> Self {
12059        Self {
12060            s_type: StructureType::from_raw(1000146003i32),
12061            p_next: core::ptr::null_mut(),
12062            memory_requirements: Default::default(),
12063        }
12064    }
12065}
12066///[`VkSparseImageMemoryRequirements2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageMemoryRequirements2.html)
12067/**
12068Provided by **VK_BASE_VERSION_1_1**.*/
12069/**
12070**Returned only**, filled by Vulkan, not constructed by the application.*/
12071#[repr(C)]
12072#[derive(Copy, Clone, Debug)]
12073#[doc(alias = "VkSparseImageMemoryRequirements2")]
12074pub struct SparseImageMemoryRequirements2 {
12075    ///Must be `VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2`.
12076    pub s_type: StructureType,
12077    ///Optional, may be null.
12078    pub p_next: *mut core::ffi::c_void,
12079    pub memory_requirements: SparseImageMemoryRequirements,
12080}
12081impl Default for SparseImageMemoryRequirements2 {
12082    #[inline]
12083    fn default() -> Self {
12084        Self {
12085            s_type: StructureType::from_raw(1000146004i32),
12086            p_next: core::ptr::null_mut(),
12087            memory_requirements: Default::default(),
12088        }
12089    }
12090}
12091///[`VkPhysicalDevicePointClippingProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePointClippingProperties.html)
12092/**
12093Provided by **VK_GRAPHICS_VERSION_1_1**.*/
12094/**
12095**Returned only**, filled by Vulkan, not constructed by the application.*/
12096///
12097///# Extends
12098///- [`PhysicalDeviceProperties2`]
12099#[repr(C)]
12100#[derive(Copy, Clone, Debug)]
12101#[doc(alias = "VkPhysicalDevicePointClippingProperties")]
12102pub struct PhysicalDevicePointClippingProperties {
12103    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES`.
12104    pub s_type: StructureType,
12105    ///Optional, may be null.
12106    pub p_next: *mut core::ffi::c_void,
12107    pub point_clipping_behavior: PointClippingBehavior,
12108}
12109impl Default for PhysicalDevicePointClippingProperties {
12110    #[inline]
12111    fn default() -> Self {
12112        Self {
12113            s_type: StructureType::from_raw(1000117000i32),
12114            p_next: core::ptr::null_mut(),
12115            point_clipping_behavior: Default::default(),
12116        }
12117    }
12118}
12119///[`VkMemoryDedicatedRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryDedicatedRequirements.html)
12120/**
12121Provided by **VK_BASE_VERSION_1_1**.*/
12122/**
12123**Returned only**, filled by Vulkan, not constructed by the application.*/
12124///
12125///# Extends
12126///- [`MemoryRequirements2`]
12127#[repr(C)]
12128#[derive(Copy, Clone, Debug)]
12129#[doc(alias = "VkMemoryDedicatedRequirements")]
12130pub struct MemoryDedicatedRequirements {
12131    ///Must be `VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS`.
12132    pub s_type: StructureType,
12133    ///Optional, may be null.
12134    pub p_next: *mut core::ffi::c_void,
12135    pub prefers_dedicated_allocation: u32,
12136    pub requires_dedicated_allocation: u32,
12137}
12138impl Default for MemoryDedicatedRequirements {
12139    #[inline]
12140    fn default() -> Self {
12141        Self {
12142            s_type: StructureType::from_raw(1000127000i32),
12143            p_next: core::ptr::null_mut(),
12144            prefers_dedicated_allocation: Default::default(),
12145            requires_dedicated_allocation: Default::default(),
12146        }
12147    }
12148}
12149///[`VkMemoryDedicatedAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryDedicatedAllocateInfo.html)
12150/**
12151Provided by **VK_BASE_VERSION_1_1**.*/
12152///
12153///# Extends
12154///- [`MemoryAllocateInfo`]
12155#[repr(C)]
12156#[derive(Copy, Clone, Debug)]
12157#[doc(alias = "VkMemoryDedicatedAllocateInfo")]
12158pub struct MemoryDedicatedAllocateInfo {
12159    ///Must be `VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO`.
12160    pub s_type: StructureType,
12161    ///Optional, may be null.
12162    pub p_next: *const core::ffi::c_void,
12163    pub image: Image,
12164    pub buffer: Buffer,
12165}
12166impl Default for MemoryDedicatedAllocateInfo {
12167    #[inline]
12168    fn default() -> Self {
12169        Self {
12170            s_type: StructureType::from_raw(1000127001i32),
12171            p_next: core::ptr::null(),
12172            image: Default::default(),
12173            buffer: Default::default(),
12174        }
12175    }
12176}
12177///[`VkImageViewUsageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewUsageCreateInfo.html)
12178/**
12179Provided by **VK_BASE_VERSION_1_1**.*/
12180///
12181///# Extends
12182///- [`ImageViewCreateInfo`]
12183#[repr(C)]
12184#[derive(Copy, Clone, Debug)]
12185#[doc(alias = "VkImageViewUsageCreateInfo")]
12186pub struct ImageViewUsageCreateInfo {
12187    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO`.
12188    pub s_type: StructureType,
12189    ///Optional, may be null.
12190    pub p_next: *const core::ffi::c_void,
12191    pub usage: ImageUsageFlags,
12192}
12193impl Default for ImageViewUsageCreateInfo {
12194    #[inline]
12195    fn default() -> Self {
12196        Self {
12197            s_type: StructureType::from_raw(1000117002i32),
12198            p_next: core::ptr::null(),
12199            usage: Default::default(),
12200        }
12201    }
12202}
12203///[`VkImageViewSlicedCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewSlicedCreateInfoEXT.html)
12204/**
12205Provided by **VK_EXT_image_sliced_view_of_3d**.*/
12206///
12207///# Extends
12208///- [`ImageViewCreateInfo`]
12209#[repr(C)]
12210#[derive(Copy, Clone, Debug)]
12211#[doc(alias = "VkImageViewSlicedCreateInfoEXT")]
12212pub struct ImageViewSlicedCreateInfoEXT {
12213    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT`.
12214    pub s_type: StructureType,
12215    ///Optional, may be null.
12216    pub p_next: *const core::ffi::c_void,
12217    pub slice_offset: u32,
12218    pub slice_count: u32,
12219}
12220impl Default for ImageViewSlicedCreateInfoEXT {
12221    #[inline]
12222    fn default() -> Self {
12223        Self {
12224            s_type: StructureType::from_raw(1000418001i32),
12225            p_next: core::ptr::null(),
12226            slice_offset: Default::default(),
12227            slice_count: Default::default(),
12228        }
12229    }
12230}
12231///[`VkPipelineTessellationDomainOriginStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineTessellationDomainOriginStateCreateInfo.html)
12232/**
12233Provided by **VK_GRAPHICS_VERSION_1_1**.*/
12234///
12235///# Extends
12236///- [`PipelineTessellationStateCreateInfo`]
12237#[repr(C)]
12238#[derive(Copy, Clone, Debug)]
12239#[doc(alias = "VkPipelineTessellationDomainOriginStateCreateInfo")]
12240pub struct PipelineTessellationDomainOriginStateCreateInfo {
12241    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO`.
12242    pub s_type: StructureType,
12243    ///Optional, may be null.
12244    pub p_next: *const core::ffi::c_void,
12245    pub domain_origin: TessellationDomainOrigin,
12246}
12247impl Default for PipelineTessellationDomainOriginStateCreateInfo {
12248    #[inline]
12249    fn default() -> Self {
12250        Self {
12251            s_type: StructureType::from_raw(1000117003i32),
12252            p_next: core::ptr::null(),
12253            domain_origin: Default::default(),
12254        }
12255    }
12256}
12257///[`VkSamplerYcbcrConversionInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerYcbcrConversionInfo.html)
12258/**
12259Provided by **VK_COMPUTE_VERSION_1_1**.*/
12260///
12261///# Extends
12262///- [`SamplerCreateInfo`]
12263///- [`ImageViewCreateInfo`]
12264#[repr(C)]
12265#[derive(Copy, Clone, Debug)]
12266#[doc(alias = "VkSamplerYcbcrConversionInfo")]
12267pub struct SamplerYcbcrConversionInfo {
12268    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO`.
12269    pub s_type: StructureType,
12270    ///Optional, may be null.
12271    pub p_next: *const core::ffi::c_void,
12272    pub conversion: SamplerYcbcrConversion,
12273}
12274impl Default for SamplerYcbcrConversionInfo {
12275    #[inline]
12276    fn default() -> Self {
12277        Self {
12278            s_type: StructureType::from_raw(1000156001i32),
12279            p_next: core::ptr::null(),
12280            conversion: Default::default(),
12281        }
12282    }
12283}
12284///[`VkSamplerYcbcrConversionCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerYcbcrConversionCreateInfo.html)
12285/**
12286Provided by **VK_COMPUTE_VERSION_1_1**.*/
12287///
12288///# Extended By
12289///- [`ExternalFormatANDROID`]
12290///- [`ExternalFormatOHOS`]
12291///- [`ExternalFormatQNX`]
12292///- [`SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM`]
12293#[repr(C)]
12294#[derive(Copy, Clone, Debug)]
12295#[doc(alias = "VkSamplerYcbcrConversionCreateInfo")]
12296pub struct SamplerYcbcrConversionCreateInfo {
12297    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO`.
12298    pub s_type: StructureType,
12299    ///Optional, may be null.
12300    pub p_next: *const core::ffi::c_void,
12301    pub format: Format,
12302    pub ycbcr_model: SamplerYcbcrModelConversion,
12303    pub ycbcr_range: SamplerYcbcrRange,
12304    pub components: ComponentMapping,
12305    pub x_chroma_offset: ChromaLocation,
12306    pub y_chroma_offset: ChromaLocation,
12307    pub chroma_filter: Filter,
12308    pub force_explicit_reconstruction: u32,
12309}
12310impl Default for SamplerYcbcrConversionCreateInfo {
12311    #[inline]
12312    fn default() -> Self {
12313        Self {
12314            s_type: StructureType::from_raw(1000156000i32),
12315            p_next: core::ptr::null(),
12316            format: Default::default(),
12317            ycbcr_model: Default::default(),
12318            ycbcr_range: Default::default(),
12319            components: Default::default(),
12320            x_chroma_offset: Default::default(),
12321            y_chroma_offset: Default::default(),
12322            chroma_filter: Default::default(),
12323            force_explicit_reconstruction: Default::default(),
12324        }
12325    }
12326}
12327///[`VkBindImagePlaneMemoryInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindImagePlaneMemoryInfo.html)
12328/**
12329Provided by **VK_BASE_VERSION_1_1**.*/
12330///
12331///# Extends
12332///- [`BindImageMemoryInfo`]
12333#[repr(C)]
12334#[derive(Copy, Clone, Debug)]
12335#[doc(alias = "VkBindImagePlaneMemoryInfo")]
12336pub struct BindImagePlaneMemoryInfo {
12337    ///Must be `VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO`.
12338    pub s_type: StructureType,
12339    ///Optional, may be null.
12340    pub p_next: *const core::ffi::c_void,
12341    pub plane_aspect: ImageAspectFlagBits,
12342}
12343impl Default for BindImagePlaneMemoryInfo {
12344    #[inline]
12345    fn default() -> Self {
12346        Self {
12347            s_type: StructureType::from_raw(1000156002i32),
12348            p_next: core::ptr::null(),
12349            plane_aspect: Default::default(),
12350        }
12351    }
12352}
12353///[`VkImagePlaneMemoryRequirementsInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImagePlaneMemoryRequirementsInfo.html)
12354/**
12355Provided by **VK_BASE_VERSION_1_1**.*/
12356///
12357///# Extends
12358///- [`ImageMemoryRequirementsInfo2`]
12359#[repr(C)]
12360#[derive(Copy, Clone, Debug)]
12361#[doc(alias = "VkImagePlaneMemoryRequirementsInfo")]
12362pub struct ImagePlaneMemoryRequirementsInfo {
12363    ///Must be `VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO`.
12364    pub s_type: StructureType,
12365    ///Optional, may be null.
12366    pub p_next: *const core::ffi::c_void,
12367    pub plane_aspect: ImageAspectFlagBits,
12368}
12369impl Default for ImagePlaneMemoryRequirementsInfo {
12370    #[inline]
12371    fn default() -> Self {
12372        Self {
12373            s_type: StructureType::from_raw(1000156003i32),
12374            p_next: core::ptr::null(),
12375            plane_aspect: Default::default(),
12376        }
12377    }
12378}
12379///[`VkPhysicalDeviceSamplerYcbcrConversionFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeatures.html)
12380/**
12381Provided by **VK_COMPUTE_VERSION_1_1**.*/
12382///
12383///# Extends
12384///- [`PhysicalDeviceFeatures2`]
12385///- [`DeviceCreateInfo`]
12386#[repr(C)]
12387#[derive(Copy, Clone, Debug)]
12388#[doc(alias = "VkPhysicalDeviceSamplerYcbcrConversionFeatures")]
12389pub struct PhysicalDeviceSamplerYcbcrConversionFeatures {
12390    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES`.
12391    pub s_type: StructureType,
12392    ///Optional, may be null.
12393    pub p_next: *mut core::ffi::c_void,
12394    pub sampler_ycbcr_conversion: u32,
12395}
12396impl Default for PhysicalDeviceSamplerYcbcrConversionFeatures {
12397    #[inline]
12398    fn default() -> Self {
12399        Self {
12400            s_type: StructureType::from_raw(1000156004i32),
12401            p_next: core::ptr::null_mut(),
12402            sampler_ycbcr_conversion: Default::default(),
12403        }
12404    }
12405}
12406///[`VkSamplerYcbcrConversionImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerYcbcrConversionImageFormatProperties.html)
12407/**
12408Provided by **VK_COMPUTE_VERSION_1_1**.*/
12409/**
12410**Returned only**, filled by Vulkan, not constructed by the application.*/
12411///
12412///# Extends
12413///- [`ImageFormatProperties2`]
12414#[repr(C)]
12415#[derive(Copy, Clone, Debug)]
12416#[doc(alias = "VkSamplerYcbcrConversionImageFormatProperties")]
12417pub struct SamplerYcbcrConversionImageFormatProperties {
12418    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES`.
12419    pub s_type: StructureType,
12420    ///Optional, may be null.
12421    pub p_next: *mut core::ffi::c_void,
12422    pub combined_image_sampler_descriptor_count: u32,
12423}
12424impl Default for SamplerYcbcrConversionImageFormatProperties {
12425    #[inline]
12426    fn default() -> Self {
12427        Self {
12428            s_type: StructureType::from_raw(1000156005i32),
12429            p_next: core::ptr::null_mut(),
12430            combined_image_sampler_descriptor_count: Default::default(),
12431        }
12432    }
12433}
12434///[`VkTextureLODGatherFormatPropertiesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTextureLODGatherFormatPropertiesAMD.html)
12435/**
12436Provided by **VK_AMD_texture_gather_bias_lod**.*/
12437/**
12438**Returned only**, filled by Vulkan, not constructed by the application.*/
12439///
12440///# Extends
12441///- [`ImageFormatProperties2`]
12442#[repr(C)]
12443#[derive(Copy, Clone, Debug)]
12444#[doc(alias = "VkTextureLODGatherFormatPropertiesAMD")]
12445pub struct TextureLODGatherFormatPropertiesAMD {
12446    ///Must be `VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD`.
12447    pub s_type: StructureType,
12448    ///Optional, may be null.
12449    pub p_next: *mut core::ffi::c_void,
12450    pub supports_texture_gather_lod_bias_amd: u32,
12451}
12452impl Default for TextureLODGatherFormatPropertiesAMD {
12453    #[inline]
12454    fn default() -> Self {
12455        Self {
12456            s_type: StructureType::from_raw(1000041000i32),
12457            p_next: core::ptr::null_mut(),
12458            supports_texture_gather_lod_bias_amd: Default::default(),
12459        }
12460    }
12461}
12462///[`VkConditionalRenderingBeginInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkConditionalRenderingBeginInfoEXT.html)
12463/**
12464Provided by **VK_EXT_conditional_rendering**.*/
12465#[repr(C)]
12466#[derive(Copy, Clone, Debug)]
12467#[doc(alias = "VkConditionalRenderingBeginInfoEXT")]
12468pub struct ConditionalRenderingBeginInfoEXT {
12469    ///Must be `VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT`.
12470    pub s_type: StructureType,
12471    ///Optional, may be null.
12472    pub p_next: *const core::ffi::c_void,
12473    pub buffer: Buffer,
12474    pub offset: u64,
12475    pub flags: ConditionalRenderingFlagsEXT,
12476}
12477impl Default for ConditionalRenderingBeginInfoEXT {
12478    #[inline]
12479    fn default() -> Self {
12480        Self {
12481            s_type: StructureType::from_raw(1000081002i32),
12482            p_next: core::ptr::null(),
12483            buffer: Default::default(),
12484            offset: Default::default(),
12485            flags: Default::default(),
12486        }
12487    }
12488}
12489///[`VkProtectedSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkProtectedSubmitInfo.html)
12490/**
12491Provided by **VK_BASE_VERSION_1_1**.*/
12492///
12493///# Extends
12494///- [`SubmitInfo`]
12495#[repr(C)]
12496#[derive(Copy, Clone, Debug)]
12497#[doc(alias = "VkProtectedSubmitInfo")]
12498pub struct ProtectedSubmitInfo {
12499    ///Must be `VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO`.
12500    pub s_type: StructureType,
12501    ///Optional, may be null.
12502    pub p_next: *const core::ffi::c_void,
12503    pub protected_submit: u32,
12504}
12505impl Default for ProtectedSubmitInfo {
12506    #[inline]
12507    fn default() -> Self {
12508        Self {
12509            s_type: StructureType::from_raw(1000145000i32),
12510            p_next: core::ptr::null(),
12511            protected_submit: Default::default(),
12512        }
12513    }
12514}
12515///[`VkPhysicalDeviceProtectedMemoryFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProtectedMemoryFeatures.html)
12516/**
12517Provided by **VK_BASE_VERSION_1_1**.*/
12518///
12519///# Extends
12520///- [`PhysicalDeviceFeatures2`]
12521///- [`DeviceCreateInfo`]
12522#[repr(C)]
12523#[derive(Copy, Clone, Debug)]
12524#[doc(alias = "VkPhysicalDeviceProtectedMemoryFeatures")]
12525pub struct PhysicalDeviceProtectedMemoryFeatures {
12526    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES`.
12527    pub s_type: StructureType,
12528    ///Optional, may be null.
12529    pub p_next: *mut core::ffi::c_void,
12530    pub protected_memory: u32,
12531}
12532impl Default for PhysicalDeviceProtectedMemoryFeatures {
12533    #[inline]
12534    fn default() -> Self {
12535        Self {
12536            s_type: StructureType::from_raw(1000145001i32),
12537            p_next: core::ptr::null_mut(),
12538            protected_memory: Default::default(),
12539        }
12540    }
12541}
12542///[`VkPhysicalDeviceProtectedMemoryProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProtectedMemoryProperties.html)
12543/**
12544Provided by **VK_BASE_VERSION_1_1**.*/
12545/**
12546**Returned only**, filled by Vulkan, not constructed by the application.*/
12547///
12548///# Extends
12549///- [`PhysicalDeviceProperties2`]
12550#[repr(C)]
12551#[derive(Copy, Clone, Debug)]
12552#[doc(alias = "VkPhysicalDeviceProtectedMemoryProperties")]
12553pub struct PhysicalDeviceProtectedMemoryProperties {
12554    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES`.
12555    pub s_type: StructureType,
12556    ///Optional, may be null.
12557    pub p_next: *mut core::ffi::c_void,
12558    pub protected_no_fault: u32,
12559}
12560impl Default for PhysicalDeviceProtectedMemoryProperties {
12561    #[inline]
12562    fn default() -> Self {
12563        Self {
12564            s_type: StructureType::from_raw(1000145002i32),
12565            p_next: core::ptr::null_mut(),
12566            protected_no_fault: Default::default(),
12567        }
12568    }
12569}
12570///[`VkDeviceQueueInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceQueueInfo2.html)
12571/**
12572Provided by **VK_BASE_VERSION_1_1**.*/
12573#[repr(C)]
12574#[derive(Copy, Clone, Debug)]
12575#[doc(alias = "VkDeviceQueueInfo2")]
12576pub struct DeviceQueueInfo2 {
12577    ///Must be `VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2`.
12578    pub s_type: StructureType,
12579    ///Optional, may be null.
12580    pub p_next: *const core::ffi::c_void,
12581    pub flags: DeviceQueueCreateFlags,
12582    pub queue_family_index: u32,
12583    pub queue_index: u32,
12584}
12585impl Default for DeviceQueueInfo2 {
12586    #[inline]
12587    fn default() -> Self {
12588        Self {
12589            s_type: StructureType::from_raw(1000145003i32),
12590            p_next: core::ptr::null(),
12591            flags: Default::default(),
12592            queue_family_index: Default::default(),
12593            queue_index: Default::default(),
12594        }
12595    }
12596}
12597///[`VkPipelineCoverageToColorStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCoverageToColorStateCreateInfoNV.html)
12598/**
12599Provided by **VK_NV_fragment_coverage_to_color**.*/
12600///
12601///# Extends
12602///- [`PipelineMultisampleStateCreateInfo`]
12603#[repr(C)]
12604#[derive(Copy, Clone, Debug)]
12605#[doc(alias = "VkPipelineCoverageToColorStateCreateInfoNV")]
12606pub struct PipelineCoverageToColorStateCreateInfoNV {
12607    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV`.
12608    pub s_type: StructureType,
12609    ///Optional, may be null.
12610    pub p_next: *const core::ffi::c_void,
12611    pub flags: PipelineCoverageToColorStateCreateFlagsNV,
12612    pub coverage_to_color_enable: u32,
12613    pub coverage_to_color_location: u32,
12614}
12615impl Default for PipelineCoverageToColorStateCreateInfoNV {
12616    #[inline]
12617    fn default() -> Self {
12618        Self {
12619            s_type: StructureType::from_raw(1000149000i32),
12620            p_next: core::ptr::null(),
12621            flags: Default::default(),
12622            coverage_to_color_enable: Default::default(),
12623            coverage_to_color_location: Default::default(),
12624        }
12625    }
12626}
12627///[`VkPhysicalDeviceSamplerFilterMinmaxProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSamplerFilterMinmaxProperties.html)
12628/**
12629Provided by **VK_COMPUTE_VERSION_1_2**.*/
12630/**
12631**Returned only**, filled by Vulkan, not constructed by the application.*/
12632///
12633///# Extends
12634///- [`PhysicalDeviceProperties2`]
12635#[repr(C)]
12636#[derive(Copy, Clone, Debug)]
12637#[doc(alias = "VkPhysicalDeviceSamplerFilterMinmaxProperties")]
12638pub struct PhysicalDeviceSamplerFilterMinmaxProperties {
12639    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES`.
12640    pub s_type: StructureType,
12641    ///Optional, may be null.
12642    pub p_next: *mut core::ffi::c_void,
12643    pub filter_minmax_single_component_formats: u32,
12644    pub filter_minmax_image_component_mapping: u32,
12645}
12646impl Default for PhysicalDeviceSamplerFilterMinmaxProperties {
12647    #[inline]
12648    fn default() -> Self {
12649        Self {
12650            s_type: StructureType::from_raw(1000130000i32),
12651            p_next: core::ptr::null_mut(),
12652            filter_minmax_single_component_formats: Default::default(),
12653            filter_minmax_image_component_mapping: Default::default(),
12654        }
12655    }
12656}
12657///[`VkSampleLocationEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSampleLocationEXT.html)
12658/**
12659Provided by **VK_EXT_sample_locations**.*/
12660#[repr(C)]
12661#[derive(Copy, Clone, Debug)]
12662#[doc(alias = "VkSampleLocationEXT")]
12663pub struct SampleLocationEXT {
12664    pub x: f32,
12665    pub y: f32,
12666}
12667impl Default for SampleLocationEXT {
12668    #[inline]
12669    fn default() -> Self {
12670        unsafe { core::mem::zeroed() }
12671    }
12672}
12673///[`VkSampleLocationsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSampleLocationsInfoEXT.html)
12674/**
12675Provided by **VK_EXT_sample_locations**.*/
12676///
12677///# Extends
12678///- [`ImageMemoryBarrier`]
12679///- [`ImageMemoryBarrier2`]
12680#[repr(C)]
12681#[derive(Copy, Clone, Debug)]
12682#[doc(alias = "VkSampleLocationsInfoEXT")]
12683pub struct SampleLocationsInfoEXT {
12684    ///Must be `VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT`.
12685    pub s_type: StructureType,
12686    ///Optional, may be null.
12687    pub p_next: *const core::ffi::c_void,
12688    pub sample_locations_per_pixel: SampleCountFlagBits,
12689    pub sample_location_grid_size: Extent2D,
12690    ///Length of `p_sample_locations`.
12691    pub sample_locations_count: u32,
12692    pub p_sample_locations: *const SampleLocationEXT,
12693}
12694impl Default for SampleLocationsInfoEXT {
12695    #[inline]
12696    fn default() -> Self {
12697        Self {
12698            s_type: StructureType::from_raw(1000143000i32),
12699            p_next: core::ptr::null(),
12700            sample_locations_per_pixel: Default::default(),
12701            sample_location_grid_size: Default::default(),
12702            sample_locations_count: Default::default(),
12703            p_sample_locations: core::ptr::null(),
12704        }
12705    }
12706}
12707///[`VkAttachmentSampleLocationsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentSampleLocationsEXT.html)
12708/**
12709Provided by **VK_EXT_sample_locations**.*/
12710#[repr(C)]
12711#[derive(Copy, Clone, Debug)]
12712#[doc(alias = "VkAttachmentSampleLocationsEXT")]
12713pub struct AttachmentSampleLocationsEXT {
12714    pub attachment_index: u32,
12715    pub sample_locations_info: SampleLocationsInfoEXT,
12716}
12717impl Default for AttachmentSampleLocationsEXT {
12718    #[inline]
12719    fn default() -> Self {
12720        unsafe { core::mem::zeroed() }
12721    }
12722}
12723///[`VkSubpassSampleLocationsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassSampleLocationsEXT.html)
12724/**
12725Provided by **VK_EXT_sample_locations**.*/
12726#[repr(C)]
12727#[derive(Copy, Clone, Debug)]
12728#[doc(alias = "VkSubpassSampleLocationsEXT")]
12729pub struct SubpassSampleLocationsEXT {
12730    pub subpass_index: u32,
12731    pub sample_locations_info: SampleLocationsInfoEXT,
12732}
12733impl Default for SubpassSampleLocationsEXT {
12734    #[inline]
12735    fn default() -> Self {
12736        unsafe { core::mem::zeroed() }
12737    }
12738}
12739///[`VkRenderPassSampleLocationsBeginInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassSampleLocationsBeginInfoEXT.html)
12740/**
12741Provided by **VK_EXT_sample_locations**.*/
12742///
12743///# Extends
12744///- [`RenderPassBeginInfo`]
12745#[repr(C)]
12746#[derive(Copy, Clone, Debug)]
12747#[doc(alias = "VkRenderPassSampleLocationsBeginInfoEXT")]
12748pub struct RenderPassSampleLocationsBeginInfoEXT {
12749    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT`.
12750    pub s_type: StructureType,
12751    ///Optional, may be null.
12752    pub p_next: *const core::ffi::c_void,
12753    ///Length of `p_attachment_initial_sample_locations`.
12754    pub attachment_initial_sample_locations_count: u32,
12755    pub p_attachment_initial_sample_locations: *const AttachmentSampleLocationsEXT,
12756    ///Length of `p_post_subpass_sample_locations`.
12757    pub post_subpass_sample_locations_count: u32,
12758    pub p_post_subpass_sample_locations: *const SubpassSampleLocationsEXT,
12759}
12760impl Default for RenderPassSampleLocationsBeginInfoEXT {
12761    #[inline]
12762    fn default() -> Self {
12763        Self {
12764            s_type: StructureType::from_raw(1000143001i32),
12765            p_next: core::ptr::null(),
12766            attachment_initial_sample_locations_count: Default::default(),
12767            p_attachment_initial_sample_locations: core::ptr::null(),
12768            post_subpass_sample_locations_count: Default::default(),
12769            p_post_subpass_sample_locations: core::ptr::null(),
12770        }
12771    }
12772}
12773///[`VkPipelineSampleLocationsStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineSampleLocationsStateCreateInfoEXT.html)
12774/**
12775Provided by **VK_EXT_sample_locations**.*/
12776///
12777///# Extends
12778///- [`PipelineMultisampleStateCreateInfo`]
12779#[repr(C)]
12780#[derive(Copy, Clone, Debug)]
12781#[doc(alias = "VkPipelineSampleLocationsStateCreateInfoEXT")]
12782pub struct PipelineSampleLocationsStateCreateInfoEXT {
12783    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT`.
12784    pub s_type: StructureType,
12785    ///Optional, may be null.
12786    pub p_next: *const core::ffi::c_void,
12787    pub sample_locations_enable: u32,
12788    pub sample_locations_info: SampleLocationsInfoEXT,
12789}
12790impl Default for PipelineSampleLocationsStateCreateInfoEXT {
12791    #[inline]
12792    fn default() -> Self {
12793        Self {
12794            s_type: StructureType::from_raw(1000143002i32),
12795            p_next: core::ptr::null(),
12796            sample_locations_enable: Default::default(),
12797            sample_locations_info: Default::default(),
12798        }
12799    }
12800}
12801///[`VkPhysicalDeviceSampleLocationsPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSampleLocationsPropertiesEXT.html)
12802/**
12803Provided by **VK_EXT_sample_locations**.*/
12804/**
12805**Returned only**, filled by Vulkan, not constructed by the application.*/
12806///
12807///# Extends
12808///- [`PhysicalDeviceProperties2`]
12809#[repr(C)]
12810#[derive(Copy, Clone, Debug)]
12811#[doc(alias = "VkPhysicalDeviceSampleLocationsPropertiesEXT")]
12812pub struct PhysicalDeviceSampleLocationsPropertiesEXT {
12813    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT`.
12814    pub s_type: StructureType,
12815    ///Optional, may be null.
12816    pub p_next: *mut core::ffi::c_void,
12817    pub sample_location_sample_counts: SampleCountFlags,
12818    pub max_sample_location_grid_size: Extent2D,
12819    pub sample_location_coordinate_range: [f32; 2usize],
12820    pub sample_location_sub_pixel_bits: u32,
12821    pub variable_sample_locations: u32,
12822}
12823impl Default for PhysicalDeviceSampleLocationsPropertiesEXT {
12824    #[inline]
12825    fn default() -> Self {
12826        Self {
12827            s_type: StructureType::from_raw(1000143003i32),
12828            p_next: core::ptr::null_mut(),
12829            sample_location_sample_counts: Default::default(),
12830            max_sample_location_grid_size: Default::default(),
12831            sample_location_coordinate_range: unsafe { core::mem::zeroed() },
12832            sample_location_sub_pixel_bits: Default::default(),
12833            variable_sample_locations: Default::default(),
12834        }
12835    }
12836}
12837///[`VkMultisamplePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultisamplePropertiesEXT.html)
12838/**
12839Provided by **VK_EXT_sample_locations**.*/
12840/**
12841**Returned only**, filled by Vulkan, not constructed by the application.*/
12842#[repr(C)]
12843#[derive(Copy, Clone, Debug)]
12844#[doc(alias = "VkMultisamplePropertiesEXT")]
12845pub struct MultisamplePropertiesEXT {
12846    ///Must be `VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT`.
12847    pub s_type: StructureType,
12848    ///Optional, may be null.
12849    pub p_next: *mut core::ffi::c_void,
12850    pub max_sample_location_grid_size: Extent2D,
12851}
12852impl Default for MultisamplePropertiesEXT {
12853    #[inline]
12854    fn default() -> Self {
12855        Self {
12856            s_type: StructureType::from_raw(1000143004i32),
12857            p_next: core::ptr::null_mut(),
12858            max_sample_location_grid_size: Default::default(),
12859        }
12860    }
12861}
12862///[`VkSamplerReductionModeCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerReductionModeCreateInfo.html)
12863/**
12864Provided by **VK_COMPUTE_VERSION_1_2**.*/
12865///
12866///# Extends
12867///- [`SamplerCreateInfo`]
12868#[repr(C)]
12869#[derive(Copy, Clone, Debug)]
12870#[doc(alias = "VkSamplerReductionModeCreateInfo")]
12871pub struct SamplerReductionModeCreateInfo {
12872    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO`.
12873    pub s_type: StructureType,
12874    ///Optional, may be null.
12875    pub p_next: *const core::ffi::c_void,
12876    pub reduction_mode: SamplerReductionMode,
12877}
12878impl Default for SamplerReductionModeCreateInfo {
12879    #[inline]
12880    fn default() -> Self {
12881        Self {
12882            s_type: StructureType::from_raw(1000130001i32),
12883            p_next: core::ptr::null(),
12884            reduction_mode: Default::default(),
12885        }
12886    }
12887}
12888///[`VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.html)
12889/**
12890Provided by **VK_EXT_blend_operation_advanced**.*/
12891///
12892///# Extends
12893///- [`PhysicalDeviceFeatures2`]
12894///- [`DeviceCreateInfo`]
12895#[repr(C)]
12896#[derive(Copy, Clone, Debug)]
12897#[doc(alias = "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT")]
12898pub struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
12899    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT`.
12900    pub s_type: StructureType,
12901    ///Optional, may be null.
12902    pub p_next: *mut core::ffi::c_void,
12903    pub advanced_blend_coherent_operations: u32,
12904}
12905impl Default for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
12906    #[inline]
12907    fn default() -> Self {
12908        Self {
12909            s_type: StructureType::from_raw(1000148000i32),
12910            p_next: core::ptr::null_mut(),
12911            advanced_blend_coherent_operations: Default::default(),
12912        }
12913    }
12914}
12915///[`VkPhysicalDeviceMultiDrawFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiDrawFeaturesEXT.html)
12916/**
12917Provided by **VK_EXT_multi_draw**.*/
12918///
12919///# Extends
12920///- [`PhysicalDeviceFeatures2`]
12921///- [`DeviceCreateInfo`]
12922#[repr(C)]
12923#[derive(Copy, Clone, Debug)]
12924#[doc(alias = "VkPhysicalDeviceMultiDrawFeaturesEXT")]
12925pub struct PhysicalDeviceMultiDrawFeaturesEXT {
12926    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT`.
12927    pub s_type: StructureType,
12928    ///Optional, may be null.
12929    pub p_next: *mut core::ffi::c_void,
12930    pub multi_draw: u32,
12931}
12932impl Default for PhysicalDeviceMultiDrawFeaturesEXT {
12933    #[inline]
12934    fn default() -> Self {
12935        Self {
12936            s_type: StructureType::from_raw(1000392000i32),
12937            p_next: core::ptr::null_mut(),
12938            multi_draw: Default::default(),
12939        }
12940    }
12941}
12942///[`VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.html)
12943/**
12944Provided by **VK_EXT_blend_operation_advanced**.*/
12945/**
12946**Returned only**, filled by Vulkan, not constructed by the application.*/
12947///
12948///# Extends
12949///- [`PhysicalDeviceProperties2`]
12950#[repr(C)]
12951#[derive(Copy, Clone, Debug)]
12952#[doc(alias = "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT")]
12953pub struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
12954    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT`.
12955    pub s_type: StructureType,
12956    ///Optional, may be null.
12957    pub p_next: *mut core::ffi::c_void,
12958    pub advanced_blend_max_color_attachments: u32,
12959    pub advanced_blend_independent_blend: u32,
12960    pub advanced_blend_non_premultiplied_src_color: u32,
12961    pub advanced_blend_non_premultiplied_dst_color: u32,
12962    pub advanced_blend_correlated_overlap: u32,
12963    pub advanced_blend_all_operations: u32,
12964}
12965impl Default for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
12966    #[inline]
12967    fn default() -> Self {
12968        Self {
12969            s_type: StructureType::from_raw(1000148001i32),
12970            p_next: core::ptr::null_mut(),
12971            advanced_blend_max_color_attachments: Default::default(),
12972            advanced_blend_independent_blend: Default::default(),
12973            advanced_blend_non_premultiplied_src_color: Default::default(),
12974            advanced_blend_non_premultiplied_dst_color: Default::default(),
12975            advanced_blend_correlated_overlap: Default::default(),
12976            advanced_blend_all_operations: Default::default(),
12977        }
12978    }
12979}
12980///[`VkPipelineColorBlendAdvancedStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineColorBlendAdvancedStateCreateInfoEXT.html)
12981/**
12982Provided by **VK_EXT_blend_operation_advanced**.*/
12983///
12984///# Extends
12985///- [`PipelineColorBlendStateCreateInfo`]
12986#[repr(C)]
12987#[derive(Copy, Clone, Debug)]
12988#[doc(alias = "VkPipelineColorBlendAdvancedStateCreateInfoEXT")]
12989pub struct PipelineColorBlendAdvancedStateCreateInfoEXT {
12990    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT`.
12991    pub s_type: StructureType,
12992    ///Optional, may be null.
12993    pub p_next: *const core::ffi::c_void,
12994    pub src_premultiplied: u32,
12995    pub dst_premultiplied: u32,
12996    pub blend_overlap: BlendOverlapEXT,
12997}
12998impl Default for PipelineColorBlendAdvancedStateCreateInfoEXT {
12999    #[inline]
13000    fn default() -> Self {
13001        Self {
13002            s_type: StructureType::from_raw(1000148002i32),
13003            p_next: core::ptr::null(),
13004            src_premultiplied: Default::default(),
13005            dst_premultiplied: Default::default(),
13006            blend_overlap: Default::default(),
13007        }
13008    }
13009}
13010///[`VkPhysicalDeviceInlineUniformBlockFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInlineUniformBlockFeatures.html)
13011/**
13012Provided by **VK_COMPUTE_VERSION_1_3**.*/
13013///
13014///# Extends
13015///- [`PhysicalDeviceFeatures2`]
13016///- [`DeviceCreateInfo`]
13017#[repr(C)]
13018#[derive(Copy, Clone, Debug)]
13019#[doc(alias = "VkPhysicalDeviceInlineUniformBlockFeatures")]
13020pub struct PhysicalDeviceInlineUniformBlockFeatures {
13021    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES`.
13022    pub s_type: StructureType,
13023    ///Optional, may be null.
13024    pub p_next: *mut core::ffi::c_void,
13025    pub inline_uniform_block: u32,
13026    pub descriptor_binding_inline_uniform_block_update_after_bind: u32,
13027}
13028impl Default for PhysicalDeviceInlineUniformBlockFeatures {
13029    #[inline]
13030    fn default() -> Self {
13031        Self {
13032            s_type: StructureType::from_raw(1000138000i32),
13033            p_next: core::ptr::null_mut(),
13034            inline_uniform_block: Default::default(),
13035            descriptor_binding_inline_uniform_block_update_after_bind: Default::default(),
13036        }
13037    }
13038}
13039///[`VkPhysicalDeviceInlineUniformBlockProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInlineUniformBlockProperties.html)
13040/**
13041Provided by **VK_COMPUTE_VERSION_1_3**.*/
13042/**
13043**Returned only**, filled by Vulkan, not constructed by the application.*/
13044///
13045///# Extends
13046///- [`PhysicalDeviceProperties2`]
13047#[repr(C)]
13048#[derive(Copy, Clone, Debug)]
13049#[doc(alias = "VkPhysicalDeviceInlineUniformBlockProperties")]
13050pub struct PhysicalDeviceInlineUniformBlockProperties {
13051    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES`.
13052    pub s_type: StructureType,
13053    ///Optional, may be null.
13054    pub p_next: *mut core::ffi::c_void,
13055    pub max_inline_uniform_block_size: u32,
13056    pub max_per_stage_descriptor_inline_uniform_blocks: u32,
13057    pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
13058    pub max_descriptor_set_inline_uniform_blocks: u32,
13059    pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
13060}
13061impl Default for PhysicalDeviceInlineUniformBlockProperties {
13062    #[inline]
13063    fn default() -> Self {
13064        Self {
13065            s_type: StructureType::from_raw(1000138001i32),
13066            p_next: core::ptr::null_mut(),
13067            max_inline_uniform_block_size: Default::default(),
13068            max_per_stage_descriptor_inline_uniform_blocks: Default::default(),
13069            max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: Default::default(),
13070            max_descriptor_set_inline_uniform_blocks: Default::default(),
13071            max_descriptor_set_update_after_bind_inline_uniform_blocks: Default::default(),
13072        }
13073    }
13074}
13075///[`VkWriteDescriptorSetInlineUniformBlock`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetInlineUniformBlock.html)
13076/**
13077Provided by **VK_COMPUTE_VERSION_1_3**.*/
13078///
13079///# Extends
13080///- [`WriteDescriptorSet`]
13081#[repr(C)]
13082#[derive(Copy, Clone, Debug)]
13083#[doc(alias = "VkWriteDescriptorSetInlineUniformBlock")]
13084pub struct WriteDescriptorSetInlineUniformBlock {
13085    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK`.
13086    pub s_type: StructureType,
13087    ///Optional, may be null.
13088    pub p_next: *const core::ffi::c_void,
13089    ///Length of `p_data`.
13090    pub data_size: u32,
13091    pub p_data: *const core::ffi::c_void,
13092}
13093impl Default for WriteDescriptorSetInlineUniformBlock {
13094    #[inline]
13095    fn default() -> Self {
13096        Self {
13097            s_type: StructureType::from_raw(1000138002i32),
13098            p_next: core::ptr::null(),
13099            data_size: Default::default(),
13100            p_data: core::ptr::null(),
13101        }
13102    }
13103}
13104///[`VkDescriptorPoolInlineUniformBlockCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorPoolInlineUniformBlockCreateInfo.html)
13105/**
13106Provided by **VK_COMPUTE_VERSION_1_3**.*/
13107///
13108///# Extends
13109///- [`DescriptorPoolCreateInfo`]
13110#[repr(C)]
13111#[derive(Copy, Clone, Debug)]
13112#[doc(alias = "VkDescriptorPoolInlineUniformBlockCreateInfo")]
13113pub struct DescriptorPoolInlineUniformBlockCreateInfo {
13114    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO`.
13115    pub s_type: StructureType,
13116    ///Optional, may be null.
13117    pub p_next: *const core::ffi::c_void,
13118    pub max_inline_uniform_block_bindings: u32,
13119}
13120impl Default for DescriptorPoolInlineUniformBlockCreateInfo {
13121    #[inline]
13122    fn default() -> Self {
13123        Self {
13124            s_type: StructureType::from_raw(1000138003i32),
13125            p_next: core::ptr::null(),
13126            max_inline_uniform_block_bindings: Default::default(),
13127        }
13128    }
13129}
13130///[`VkPipelineCoverageModulationStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCoverageModulationStateCreateInfoNV.html)
13131/**
13132Provided by **VK_NV_framebuffer_mixed_samples**.*/
13133///
13134///# Extends
13135///- [`PipelineMultisampleStateCreateInfo`]
13136#[repr(C)]
13137#[derive(Copy, Clone, Debug)]
13138#[doc(alias = "VkPipelineCoverageModulationStateCreateInfoNV")]
13139pub struct PipelineCoverageModulationStateCreateInfoNV {
13140    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV`.
13141    pub s_type: StructureType,
13142    ///Optional, may be null.
13143    pub p_next: *const core::ffi::c_void,
13144    pub flags: PipelineCoverageModulationStateCreateFlagsNV,
13145    pub coverage_modulation_mode: CoverageModulationModeNV,
13146    pub coverage_modulation_table_enable: u32,
13147    ///Length of `p_coverage_modulation_table`.
13148    pub coverage_modulation_table_count: u32,
13149    ///Optional, may be null.
13150    pub p_coverage_modulation_table: *const f32,
13151}
13152impl Default for PipelineCoverageModulationStateCreateInfoNV {
13153    #[inline]
13154    fn default() -> Self {
13155        Self {
13156            s_type: StructureType::from_raw(1000152000i32),
13157            p_next: core::ptr::null(),
13158            flags: Default::default(),
13159            coverage_modulation_mode: Default::default(),
13160            coverage_modulation_table_enable: Default::default(),
13161            coverage_modulation_table_count: Default::default(),
13162            p_coverage_modulation_table: core::ptr::null(),
13163        }
13164    }
13165}
13166///[`VkImageFormatListCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageFormatListCreateInfo.html)
13167/**
13168Provided by **VK_BASE_VERSION_1_2**.*/
13169///
13170///# Extends
13171///- [`ImageCreateInfo`]
13172///- [`SwapchainCreateInfoKHR`]
13173///- [`PhysicalDeviceImageFormatInfo2`]
13174#[repr(C)]
13175#[derive(Copy, Clone, Debug)]
13176#[doc(alias = "VkImageFormatListCreateInfo")]
13177pub struct ImageFormatListCreateInfo {
13178    ///Must be `VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO`.
13179    pub s_type: StructureType,
13180    ///Optional, may be null.
13181    pub p_next: *const core::ffi::c_void,
13182    ///Length of `p_view_formats`.
13183    pub view_format_count: u32,
13184    pub p_view_formats: *const Format,
13185}
13186impl Default for ImageFormatListCreateInfo {
13187    #[inline]
13188    fn default() -> Self {
13189        Self {
13190            s_type: StructureType::from_raw(1000147000i32),
13191            p_next: core::ptr::null(),
13192            view_format_count: Default::default(),
13193            p_view_formats: core::ptr::null(),
13194        }
13195    }
13196}
13197///[`VkValidationCacheCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkValidationCacheCreateInfoEXT.html)
13198/**
13199Provided by **VK_EXT_validation_cache**.*/
13200#[repr(C)]
13201#[derive(Copy, Clone, Debug)]
13202#[doc(alias = "VkValidationCacheCreateInfoEXT")]
13203pub struct ValidationCacheCreateInfoEXT {
13204    ///Must be `VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT`.
13205    pub s_type: StructureType,
13206    ///Optional, may be null.
13207    pub p_next: *const core::ffi::c_void,
13208    pub flags: ValidationCacheCreateFlagsEXT,
13209    ///Length of `p_initial_data`.
13210    pub initial_data_size: usize,
13211    pub p_initial_data: *const core::ffi::c_void,
13212}
13213impl Default for ValidationCacheCreateInfoEXT {
13214    #[inline]
13215    fn default() -> Self {
13216        Self {
13217            s_type: StructureType::from_raw(1000160000i32),
13218            p_next: core::ptr::null(),
13219            flags: Default::default(),
13220            initial_data_size: Default::default(),
13221            p_initial_data: core::ptr::null(),
13222        }
13223    }
13224}
13225///[`VkShaderModuleValidationCacheCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderModuleValidationCacheCreateInfoEXT.html)
13226/**
13227Provided by **VK_EXT_validation_cache**.*/
13228///
13229///# Extends
13230///- [`ShaderModuleCreateInfo`]
13231///- [`PipelineShaderStageCreateInfo`]
13232#[repr(C)]
13233#[derive(Copy, Clone, Debug)]
13234#[doc(alias = "VkShaderModuleValidationCacheCreateInfoEXT")]
13235pub struct ShaderModuleValidationCacheCreateInfoEXT {
13236    ///Must be `VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT`.
13237    pub s_type: StructureType,
13238    ///Optional, may be null.
13239    pub p_next: *const core::ffi::c_void,
13240    pub validation_cache: ValidationCacheEXT,
13241}
13242impl Default for ShaderModuleValidationCacheCreateInfoEXT {
13243    #[inline]
13244    fn default() -> Self {
13245        Self {
13246            s_type: StructureType::from_raw(1000160001i32),
13247            p_next: core::ptr::null(),
13248            validation_cache: Default::default(),
13249        }
13250    }
13251}
13252///[`VkPhysicalDeviceMaintenance3Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance3Properties.html)
13253/**
13254Provided by **VK_COMPUTE_VERSION_1_1**.*/
13255/**
13256**Returned only**, filled by Vulkan, not constructed by the application.*/
13257///
13258///# Extends
13259///- [`PhysicalDeviceProperties2`]
13260#[repr(C)]
13261#[derive(Copy, Clone, Debug)]
13262#[doc(alias = "VkPhysicalDeviceMaintenance3Properties")]
13263pub struct PhysicalDeviceMaintenance3Properties {
13264    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES`.
13265    pub s_type: StructureType,
13266    ///Optional, may be null.
13267    pub p_next: *mut core::ffi::c_void,
13268    pub max_per_set_descriptors: u32,
13269    pub max_memory_allocation_size: u64,
13270}
13271impl Default for PhysicalDeviceMaintenance3Properties {
13272    #[inline]
13273    fn default() -> Self {
13274        Self {
13275            s_type: StructureType::from_raw(1000168000i32),
13276            p_next: core::ptr::null_mut(),
13277            max_per_set_descriptors: Default::default(),
13278            max_memory_allocation_size: Default::default(),
13279        }
13280    }
13281}
13282///[`VkPhysicalDeviceMaintenance4Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance4Features.html)
13283/**
13284Provided by **VK_BASE_VERSION_1_3**.*/
13285///
13286///# Extends
13287///- [`PhysicalDeviceFeatures2`]
13288///- [`DeviceCreateInfo`]
13289#[repr(C)]
13290#[derive(Copy, Clone, Debug)]
13291#[doc(alias = "VkPhysicalDeviceMaintenance4Features")]
13292pub struct PhysicalDeviceMaintenance4Features {
13293    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES`.
13294    pub s_type: StructureType,
13295    ///Optional, may be null.
13296    pub p_next: *mut core::ffi::c_void,
13297    pub maintenance4: u32,
13298}
13299impl Default for PhysicalDeviceMaintenance4Features {
13300    #[inline]
13301    fn default() -> Self {
13302        Self {
13303            s_type: StructureType::from_raw(1000413000i32),
13304            p_next: core::ptr::null_mut(),
13305            maintenance4: Default::default(),
13306        }
13307    }
13308}
13309///[`VkPhysicalDeviceMaintenance4Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance4Properties.html)
13310/**
13311Provided by **VK_BASE_VERSION_1_3**.*/
13312/**
13313**Returned only**, filled by Vulkan, not constructed by the application.*/
13314///
13315///# Extends
13316///- [`PhysicalDeviceProperties2`]
13317#[repr(C)]
13318#[derive(Copy, Clone, Debug)]
13319#[doc(alias = "VkPhysicalDeviceMaintenance4Properties")]
13320pub struct PhysicalDeviceMaintenance4Properties {
13321    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES`.
13322    pub s_type: StructureType,
13323    ///Optional, may be null.
13324    pub p_next: *mut core::ffi::c_void,
13325    pub max_buffer_size: u64,
13326}
13327impl Default for PhysicalDeviceMaintenance4Properties {
13328    #[inline]
13329    fn default() -> Self {
13330        Self {
13331            s_type: StructureType::from_raw(1000413001i32),
13332            p_next: core::ptr::null_mut(),
13333            max_buffer_size: Default::default(),
13334        }
13335    }
13336}
13337///[`VkPhysicalDeviceMaintenance5Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance5Features.html)
13338/**
13339Provided by **VK_BASE_VERSION_1_4**.*/
13340///
13341///# Extends
13342///- [`PhysicalDeviceFeatures2`]
13343///- [`DeviceCreateInfo`]
13344#[repr(C)]
13345#[derive(Copy, Clone, Debug)]
13346#[doc(alias = "VkPhysicalDeviceMaintenance5Features")]
13347pub struct PhysicalDeviceMaintenance5Features {
13348    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES`.
13349    pub s_type: StructureType,
13350    ///Optional, may be null.
13351    pub p_next: *mut core::ffi::c_void,
13352    pub maintenance5: u32,
13353}
13354impl Default for PhysicalDeviceMaintenance5Features {
13355    #[inline]
13356    fn default() -> Self {
13357        Self {
13358            s_type: StructureType::from_raw(1000470000i32),
13359            p_next: core::ptr::null_mut(),
13360            maintenance5: Default::default(),
13361        }
13362    }
13363}
13364///[`VkPhysicalDeviceMaintenance5Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance5Properties.html)
13365/**
13366Provided by **VK_BASE_VERSION_1_4**.*/
13367/**
13368**Returned only**, filled by Vulkan, not constructed by the application.*/
13369///
13370///# Extends
13371///- [`PhysicalDeviceProperties2`]
13372#[repr(C)]
13373#[derive(Copy, Clone, Debug)]
13374#[doc(alias = "VkPhysicalDeviceMaintenance5Properties")]
13375pub struct PhysicalDeviceMaintenance5Properties {
13376    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES`.
13377    pub s_type: StructureType,
13378    ///Optional, may be null.
13379    pub p_next: *mut core::ffi::c_void,
13380    pub early_fragment_multisample_coverage_after_sample_counting: u32,
13381    pub early_fragment_sample_mask_test_before_sample_counting: u32,
13382    pub depth_stencil_swizzle_one_support: u32,
13383    pub polygon_mode_point_size: u32,
13384    pub non_strict_single_pixel_wide_lines_use_parallelogram: u32,
13385    pub non_strict_wide_lines_use_parallelogram: u32,
13386}
13387impl Default for PhysicalDeviceMaintenance5Properties {
13388    #[inline]
13389    fn default() -> Self {
13390        Self {
13391            s_type: StructureType::from_raw(1000470001i32),
13392            p_next: core::ptr::null_mut(),
13393            early_fragment_multisample_coverage_after_sample_counting: Default::default(),
13394            early_fragment_sample_mask_test_before_sample_counting: Default::default(),
13395            depth_stencil_swizzle_one_support: Default::default(),
13396            polygon_mode_point_size: Default::default(),
13397            non_strict_single_pixel_wide_lines_use_parallelogram: Default::default(),
13398            non_strict_wide_lines_use_parallelogram: Default::default(),
13399        }
13400    }
13401}
13402///[`VkPhysicalDeviceMaintenance6Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance6Features.html)
13403/**
13404Provided by **VK_BASE_VERSION_1_4**.*/
13405///
13406///# Extends
13407///- [`PhysicalDeviceFeatures2`]
13408///- [`DeviceCreateInfo`]
13409#[repr(C)]
13410#[derive(Copy, Clone, Debug)]
13411#[doc(alias = "VkPhysicalDeviceMaintenance6Features")]
13412pub struct PhysicalDeviceMaintenance6Features {
13413    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES`.
13414    pub s_type: StructureType,
13415    ///Optional, may be null.
13416    pub p_next: *mut core::ffi::c_void,
13417    pub maintenance6: u32,
13418}
13419impl Default for PhysicalDeviceMaintenance6Features {
13420    #[inline]
13421    fn default() -> Self {
13422        Self {
13423            s_type: StructureType::from_raw(1000545000i32),
13424            p_next: core::ptr::null_mut(),
13425            maintenance6: Default::default(),
13426        }
13427    }
13428}
13429///[`VkPhysicalDeviceMaintenance6Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance6Properties.html)
13430/**
13431Provided by **VK_BASE_VERSION_1_4**.*/
13432/**
13433**Returned only**, filled by Vulkan, not constructed by the application.*/
13434///
13435///# Extends
13436///- [`PhysicalDeviceProperties2`]
13437#[repr(C)]
13438#[derive(Copy, Clone, Debug)]
13439#[doc(alias = "VkPhysicalDeviceMaintenance6Properties")]
13440pub struct PhysicalDeviceMaintenance6Properties {
13441    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES`.
13442    pub s_type: StructureType,
13443    ///Optional, may be null.
13444    pub p_next: *mut core::ffi::c_void,
13445    pub block_texel_view_compatible_multiple_layers: u32,
13446    pub max_combined_image_sampler_descriptor_count: u32,
13447    pub fragment_shading_rate_clamp_combiner_inputs: u32,
13448}
13449impl Default for PhysicalDeviceMaintenance6Properties {
13450    #[inline]
13451    fn default() -> Self {
13452        Self {
13453            s_type: StructureType::from_raw(1000545001i32),
13454            p_next: core::ptr::null_mut(),
13455            block_texel_view_compatible_multiple_layers: Default::default(),
13456            max_combined_image_sampler_descriptor_count: Default::default(),
13457            fragment_shading_rate_clamp_combiner_inputs: Default::default(),
13458        }
13459    }
13460}
13461///[`VkPhysicalDeviceMaintenance7FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance7FeaturesKHR.html)
13462/**
13463Provided by **VK_KHR_maintenance7**.*/
13464///
13465///# Extends
13466///- [`PhysicalDeviceFeatures2`]
13467///- [`DeviceCreateInfo`]
13468#[repr(C)]
13469#[derive(Copy, Clone, Debug)]
13470#[doc(alias = "VkPhysicalDeviceMaintenance7FeaturesKHR")]
13471pub struct PhysicalDeviceMaintenance7FeaturesKHR {
13472    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR`.
13473    pub s_type: StructureType,
13474    ///Optional, may be null.
13475    pub p_next: *mut core::ffi::c_void,
13476    pub maintenance7: u32,
13477}
13478impl Default for PhysicalDeviceMaintenance7FeaturesKHR {
13479    #[inline]
13480    fn default() -> Self {
13481        Self {
13482            s_type: StructureType::from_raw(1000562000i32),
13483            p_next: core::ptr::null_mut(),
13484            maintenance7: Default::default(),
13485        }
13486    }
13487}
13488///[`VkPhysicalDeviceMaintenance7PropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance7PropertiesKHR.html)
13489/**
13490Provided by **VK_KHR_maintenance7**.*/
13491/**
13492**Returned only**, filled by Vulkan, not constructed by the application.*/
13493///
13494///# Extends
13495///- [`PhysicalDeviceProperties2`]
13496#[repr(C)]
13497#[derive(Copy, Clone, Debug)]
13498#[doc(alias = "VkPhysicalDeviceMaintenance7PropertiesKHR")]
13499pub struct PhysicalDeviceMaintenance7PropertiesKHR {
13500    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR`.
13501    pub s_type: StructureType,
13502    ///Optional, may be null.
13503    pub p_next: *mut core::ffi::c_void,
13504    pub robust_fragment_shading_rate_attachment_access: u32,
13505    pub separate_depth_stencil_attachment_access: u32,
13506    pub max_descriptor_set_total_uniform_buffers_dynamic: u32,
13507    pub max_descriptor_set_total_storage_buffers_dynamic: u32,
13508    pub max_descriptor_set_total_buffers_dynamic: u32,
13509    pub max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32,
13510    pub max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32,
13511    pub max_descriptor_set_update_after_bind_total_buffers_dynamic: u32,
13512}
13513impl Default for PhysicalDeviceMaintenance7PropertiesKHR {
13514    #[inline]
13515    fn default() -> Self {
13516        Self {
13517            s_type: StructureType::from_raw(1000562001i32),
13518            p_next: core::ptr::null_mut(),
13519            robust_fragment_shading_rate_attachment_access: Default::default(),
13520            separate_depth_stencil_attachment_access: Default::default(),
13521            max_descriptor_set_total_uniform_buffers_dynamic: Default::default(),
13522            max_descriptor_set_total_storage_buffers_dynamic: Default::default(),
13523            max_descriptor_set_total_buffers_dynamic: Default::default(),
13524            max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: Default::default(),
13525            max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: Default::default(),
13526            max_descriptor_set_update_after_bind_total_buffers_dynamic: Default::default(),
13527        }
13528    }
13529}
13530///[`VkPhysicalDeviceLayeredApiPropertiesListKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLayeredApiPropertiesListKHR.html)
13531/**
13532Provided by **VK_KHR_maintenance7**.*/
13533///
13534///# Extends
13535///- [`PhysicalDeviceProperties2`]
13536#[repr(C)]
13537#[derive(Copy, Clone, Debug)]
13538#[doc(alias = "VkPhysicalDeviceLayeredApiPropertiesListKHR")]
13539pub struct PhysicalDeviceLayeredApiPropertiesListKHR {
13540    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR`.
13541    pub s_type: StructureType,
13542    ///Optional, may be null.
13543    pub p_next: *mut core::ffi::c_void,
13544    ///Length of `p_layered_apis`.
13545    pub layered_api_count: u32,
13546    ///Optional, may be null.
13547    pub p_layered_apis: *mut PhysicalDeviceLayeredApiPropertiesKHR,
13548}
13549impl Default for PhysicalDeviceLayeredApiPropertiesListKHR {
13550    #[inline]
13551    fn default() -> Self {
13552        Self {
13553            s_type: StructureType::from_raw(1000562002i32),
13554            p_next: core::ptr::null_mut(),
13555            layered_api_count: Default::default(),
13556            p_layered_apis: core::ptr::null_mut(),
13557        }
13558    }
13559}
13560///[`VkPhysicalDeviceLayeredApiPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLayeredApiPropertiesKHR.html)
13561/**
13562Provided by **VK_KHR_maintenance7**.*/
13563/**
13564**Returned only**, filled by Vulkan, not constructed by the application.*/
13565///
13566///# Extended By
13567///- [`PhysicalDeviceLayeredApiVulkanPropertiesKHR`]
13568#[repr(C)]
13569#[derive(Copy, Clone, Debug)]
13570#[doc(alias = "VkPhysicalDeviceLayeredApiPropertiesKHR")]
13571pub struct PhysicalDeviceLayeredApiPropertiesKHR {
13572    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR`.
13573    pub s_type: StructureType,
13574    ///Optional, may be null.
13575    pub p_next: *mut core::ffi::c_void,
13576    pub vendor_id: u32,
13577    pub device_id: u32,
13578    pub layered_api: PhysicalDeviceLayeredApiKHR,
13579    pub device_name: crate::StringArray<{ MAX_PHYSICAL_DEVICE_NAME_SIZE as usize }>,
13580}
13581impl Default for PhysicalDeviceLayeredApiPropertiesKHR {
13582    #[inline]
13583    fn default() -> Self {
13584        Self {
13585            s_type: StructureType::from_raw(1000562003i32),
13586            p_next: core::ptr::null_mut(),
13587            vendor_id: Default::default(),
13588            device_id: Default::default(),
13589            layered_api: Default::default(),
13590            device_name: unsafe { core::mem::zeroed() },
13591        }
13592    }
13593}
13594///[`VkPhysicalDeviceLayeredApiVulkanPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.html)
13595/**
13596Provided by **VK_KHR_maintenance7**.*/
13597/**
13598**Returned only**, filled by Vulkan, not constructed by the application.*/
13599///
13600///# Extends
13601///- [`PhysicalDeviceLayeredApiPropertiesKHR`]
13602#[repr(C)]
13603#[derive(Copy, Clone, Debug)]
13604#[doc(alias = "VkPhysicalDeviceLayeredApiVulkanPropertiesKHR")]
13605pub struct PhysicalDeviceLayeredApiVulkanPropertiesKHR {
13606    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR`.
13607    pub s_type: StructureType,
13608    ///Optional, may be null.
13609    pub p_next: *mut core::ffi::c_void,
13610    pub properties: PhysicalDeviceProperties2,
13611}
13612impl Default for PhysicalDeviceLayeredApiVulkanPropertiesKHR {
13613    #[inline]
13614    fn default() -> Self {
13615        Self {
13616            s_type: StructureType::from_raw(1000562004i32),
13617            p_next: core::ptr::null_mut(),
13618            properties: Default::default(),
13619        }
13620    }
13621}
13622///[`VkPhysicalDeviceMaintenance8FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance8FeaturesKHR.html)
13623/**
13624Provided by **VK_KHR_maintenance8**.*/
13625///
13626///# Extends
13627///- [`PhysicalDeviceFeatures2`]
13628///- [`DeviceCreateInfo`]
13629#[repr(C)]
13630#[derive(Copy, Clone, Debug)]
13631#[doc(alias = "VkPhysicalDeviceMaintenance8FeaturesKHR")]
13632pub struct PhysicalDeviceMaintenance8FeaturesKHR {
13633    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR`.
13634    pub s_type: StructureType,
13635    ///Optional, may be null.
13636    pub p_next: *mut core::ffi::c_void,
13637    pub maintenance8: u32,
13638}
13639impl Default for PhysicalDeviceMaintenance8FeaturesKHR {
13640    #[inline]
13641    fn default() -> Self {
13642        Self {
13643            s_type: StructureType::from_raw(1000574000i32),
13644            p_next: core::ptr::null_mut(),
13645            maintenance8: Default::default(),
13646        }
13647    }
13648}
13649///[`VkPhysicalDeviceMaintenance9FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance9FeaturesKHR.html)
13650/**
13651Provided by **VK_KHR_maintenance9**.*/
13652///
13653///# Extends
13654///- [`PhysicalDeviceFeatures2`]
13655///- [`DeviceCreateInfo`]
13656#[repr(C)]
13657#[derive(Copy, Clone, Debug)]
13658#[doc(alias = "VkPhysicalDeviceMaintenance9FeaturesKHR")]
13659pub struct PhysicalDeviceMaintenance9FeaturesKHR {
13660    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR`.
13661    pub s_type: StructureType,
13662    ///Optional, may be null.
13663    pub p_next: *mut core::ffi::c_void,
13664    pub maintenance9: u32,
13665}
13666impl Default for PhysicalDeviceMaintenance9FeaturesKHR {
13667    #[inline]
13668    fn default() -> Self {
13669        Self {
13670            s_type: StructureType::from_raw(1000584000i32),
13671            p_next: core::ptr::null_mut(),
13672            maintenance9: Default::default(),
13673        }
13674    }
13675}
13676///[`VkPhysicalDeviceMaintenance9PropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance9PropertiesKHR.html)
13677/**
13678Provided by **VK_KHR_maintenance9**.*/
13679/**
13680**Returned only**, filled by Vulkan, not constructed by the application.*/
13681///
13682///# Extends
13683///- [`PhysicalDeviceProperties2`]
13684#[repr(C)]
13685#[derive(Copy, Clone, Debug)]
13686#[doc(alias = "VkPhysicalDeviceMaintenance9PropertiesKHR")]
13687pub struct PhysicalDeviceMaintenance9PropertiesKHR {
13688    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR`.
13689    pub s_type: StructureType,
13690    ///Optional, may be null.
13691    pub p_next: *mut core::ffi::c_void,
13692    pub image2_d_view_of3_d_sparse: u32,
13693    pub default_vertex_attribute_value: DefaultVertexAttributeValueKHR,
13694}
13695impl Default for PhysicalDeviceMaintenance9PropertiesKHR {
13696    #[inline]
13697    fn default() -> Self {
13698        Self {
13699            s_type: StructureType::from_raw(1000584001i32),
13700            p_next: core::ptr::null_mut(),
13701            image2_d_view_of3_d_sparse: Default::default(),
13702            default_vertex_attribute_value: Default::default(),
13703        }
13704    }
13705}
13706///[`VkPhysicalDeviceMaintenance10PropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance10PropertiesKHR.html)
13707/**
13708Provided by **VK_KHR_maintenance10**.*/
13709/**
13710**Returned only**, filled by Vulkan, not constructed by the application.*/
13711///
13712///# Extends
13713///- [`PhysicalDeviceProperties2`]
13714#[repr(C)]
13715#[derive(Copy, Clone, Debug)]
13716#[doc(alias = "VkPhysicalDeviceMaintenance10PropertiesKHR")]
13717pub struct PhysicalDeviceMaintenance10PropertiesKHR {
13718    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR`.
13719    pub s_type: StructureType,
13720    ///Optional, may be null.
13721    pub p_next: *mut core::ffi::c_void,
13722    pub rgba4_opaque_black_swizzled: u32,
13723    pub resolve_srgb_format_applies_transfer_function: u32,
13724    pub resolve_srgb_format_supports_transfer_function_control: u32,
13725}
13726impl Default for PhysicalDeviceMaintenance10PropertiesKHR {
13727    #[inline]
13728    fn default() -> Self {
13729        Self {
13730            s_type: StructureType::from_raw(1000630001i32),
13731            p_next: core::ptr::null_mut(),
13732            rgba4_opaque_black_swizzled: Default::default(),
13733            resolve_srgb_format_applies_transfer_function: Default::default(),
13734            resolve_srgb_format_supports_transfer_function_control: Default::default(),
13735        }
13736    }
13737}
13738///[`VkPhysicalDeviceMaintenance10FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance10FeaturesKHR.html)
13739/**
13740Provided by **VK_KHR_maintenance10**.*/
13741///
13742///# Extends
13743///- [`PhysicalDeviceFeatures2`]
13744///- [`DeviceCreateInfo`]
13745#[repr(C)]
13746#[derive(Copy, Clone, Debug)]
13747#[doc(alias = "VkPhysicalDeviceMaintenance10FeaturesKHR")]
13748pub struct PhysicalDeviceMaintenance10FeaturesKHR {
13749    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR`.
13750    pub s_type: StructureType,
13751    ///Optional, may be null.
13752    pub p_next: *mut core::ffi::c_void,
13753    pub maintenance10: u32,
13754}
13755impl Default for PhysicalDeviceMaintenance10FeaturesKHR {
13756    #[inline]
13757    fn default() -> Self {
13758        Self {
13759            s_type: StructureType::from_raw(1000630000i32),
13760            p_next: core::ptr::null_mut(),
13761            maintenance10: Default::default(),
13762        }
13763    }
13764}
13765///[`VkQueueFamilyOwnershipTransferPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyOwnershipTransferPropertiesKHR.html)
13766/**
13767Provided by **VK_KHR_maintenance9**.*/
13768/**
13769**Returned only**, filled by Vulkan, not constructed by the application.*/
13770///
13771///# Extends
13772///- [`QueueFamilyProperties2`]
13773#[repr(C)]
13774#[derive(Copy, Clone, Debug)]
13775#[doc(alias = "VkQueueFamilyOwnershipTransferPropertiesKHR")]
13776pub struct QueueFamilyOwnershipTransferPropertiesKHR {
13777    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR`.
13778    pub s_type: StructureType,
13779    ///Optional, may be null.
13780    pub p_next: *mut core::ffi::c_void,
13781    pub optimal_image_transfer_to_queue_families: u32,
13782}
13783impl Default for QueueFamilyOwnershipTransferPropertiesKHR {
13784    #[inline]
13785    fn default() -> Self {
13786        Self {
13787            s_type: StructureType::from_raw(1000584002i32),
13788            p_next: core::ptr::null_mut(),
13789            optimal_image_transfer_to_queue_families: Default::default(),
13790        }
13791    }
13792}
13793///[`VkRenderingAreaInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingAreaInfo.html)
13794/**
13795Provided by **VK_GRAPHICS_VERSION_1_4**.*/
13796#[repr(C)]
13797#[derive(Copy, Clone, Debug)]
13798#[doc(alias = "VkRenderingAreaInfo")]
13799pub struct RenderingAreaInfo {
13800    ///Must be `VK_STRUCTURE_TYPE_RENDERING_AREA_INFO`.
13801    pub s_type: StructureType,
13802    ///Optional, may be null.
13803    pub p_next: *const core::ffi::c_void,
13804    pub view_mask: u32,
13805    ///Length of `p_color_attachment_formats`.
13806    pub color_attachment_count: u32,
13807    pub p_color_attachment_formats: *const Format,
13808    pub depth_attachment_format: Format,
13809    pub stencil_attachment_format: Format,
13810}
13811impl Default for RenderingAreaInfo {
13812    #[inline]
13813    fn default() -> Self {
13814        Self {
13815            s_type: StructureType::from_raw(1000470003i32),
13816            p_next: core::ptr::null(),
13817            view_mask: Default::default(),
13818            color_attachment_count: Default::default(),
13819            p_color_attachment_formats: core::ptr::null(),
13820            depth_attachment_format: Default::default(),
13821            stencil_attachment_format: Default::default(),
13822        }
13823    }
13824}
13825///[`VkDescriptorSetLayoutSupport`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutSupport.html)
13826/**
13827Provided by **VK_COMPUTE_VERSION_1_1**.*/
13828/**
13829**Returned only**, filled by Vulkan, not constructed by the application.*/
13830///
13831///# Extended By
13832///- [`DescriptorSetVariableDescriptorCountLayoutSupport`]
13833#[repr(C)]
13834#[derive(Copy, Clone, Debug)]
13835#[doc(alias = "VkDescriptorSetLayoutSupport")]
13836pub struct DescriptorSetLayoutSupport {
13837    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT`.
13838    pub s_type: StructureType,
13839    ///Optional, may be null.
13840    pub p_next: *mut core::ffi::c_void,
13841    pub supported: u32,
13842}
13843impl Default for DescriptorSetLayoutSupport {
13844    #[inline]
13845    fn default() -> Self {
13846        Self {
13847            s_type: StructureType::from_raw(1000168001i32),
13848            p_next: core::ptr::null_mut(),
13849            supported: Default::default(),
13850        }
13851    }
13852}
13853///[`VkPhysicalDeviceShaderDrawParametersFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderDrawParametersFeatures.html)
13854/**
13855Provided by **VK_GRAPHICS_VERSION_1_1**.*/
13856///
13857///# Extends
13858///- [`PhysicalDeviceFeatures2`]
13859///- [`DeviceCreateInfo`]
13860#[repr(C)]
13861#[derive(Copy, Clone, Debug)]
13862#[doc(alias = "VkPhysicalDeviceShaderDrawParametersFeatures")]
13863pub struct PhysicalDeviceShaderDrawParametersFeatures {
13864    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES`.
13865    pub s_type: StructureType,
13866    ///Optional, may be null.
13867    pub p_next: *mut core::ffi::c_void,
13868    pub shader_draw_parameters: u32,
13869}
13870impl Default for PhysicalDeviceShaderDrawParametersFeatures {
13871    #[inline]
13872    fn default() -> Self {
13873        Self {
13874            s_type: StructureType::from_raw(1000063000i32),
13875            p_next: core::ptr::null_mut(),
13876            shader_draw_parameters: Default::default(),
13877        }
13878    }
13879}
13880///[`VkPhysicalDeviceShaderFloat16Int8Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFloat16Int8Features.html)
13881/**
13882Provided by **VK_COMPUTE_VERSION_1_2**.*/
13883///
13884///# Extends
13885///- [`PhysicalDeviceFeatures2`]
13886///- [`DeviceCreateInfo`]
13887#[repr(C)]
13888#[derive(Copy, Clone, Debug)]
13889#[doc(alias = "VkPhysicalDeviceShaderFloat16Int8Features")]
13890pub struct PhysicalDeviceShaderFloat16Int8Features {
13891    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES`.
13892    pub s_type: StructureType,
13893    ///Optional, may be null.
13894    pub p_next: *mut core::ffi::c_void,
13895    pub shader_float16: u32,
13896    pub shader_int8: u32,
13897}
13898impl Default for PhysicalDeviceShaderFloat16Int8Features {
13899    #[inline]
13900    fn default() -> Self {
13901        Self {
13902            s_type: StructureType::from_raw(1000082000i32),
13903            p_next: core::ptr::null_mut(),
13904            shader_float16: Default::default(),
13905            shader_int8: Default::default(),
13906        }
13907    }
13908}
13909///[`VkPhysicalDeviceFloatControlsProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFloatControlsProperties.html)
13910/**
13911Provided by **VK_COMPUTE_VERSION_1_2**.*/
13912/**
13913**Returned only**, filled by Vulkan, not constructed by the application.*/
13914///
13915///# Extends
13916///- [`PhysicalDeviceProperties2`]
13917#[repr(C)]
13918#[derive(Copy, Clone, Debug)]
13919#[doc(alias = "VkPhysicalDeviceFloatControlsProperties")]
13920pub struct PhysicalDeviceFloatControlsProperties {
13921    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES`.
13922    pub s_type: StructureType,
13923    ///Optional, may be null.
13924    pub p_next: *mut core::ffi::c_void,
13925    pub denorm_behavior_independence: ShaderFloatControlsIndependence,
13926    pub rounding_mode_independence: ShaderFloatControlsIndependence,
13927    pub shader_signed_zero_inf_nan_preserve_float16: u32,
13928    pub shader_signed_zero_inf_nan_preserve_float32: u32,
13929    pub shader_signed_zero_inf_nan_preserve_float64: u32,
13930    pub shader_denorm_preserve_float16: u32,
13931    pub shader_denorm_preserve_float32: u32,
13932    pub shader_denorm_preserve_float64: u32,
13933    pub shader_denorm_flush_to_zero_float16: u32,
13934    pub shader_denorm_flush_to_zero_float32: u32,
13935    pub shader_denorm_flush_to_zero_float64: u32,
13936    pub shader_rounding_mode_rte_float16: u32,
13937    pub shader_rounding_mode_rte_float32: u32,
13938    pub shader_rounding_mode_rte_float64: u32,
13939    pub shader_rounding_mode_rtz_float16: u32,
13940    pub shader_rounding_mode_rtz_float32: u32,
13941    pub shader_rounding_mode_rtz_float64: u32,
13942}
13943impl Default for PhysicalDeviceFloatControlsProperties {
13944    #[inline]
13945    fn default() -> Self {
13946        Self {
13947            s_type: StructureType::from_raw(1000197000i32),
13948            p_next: core::ptr::null_mut(),
13949            denorm_behavior_independence: Default::default(),
13950            rounding_mode_independence: Default::default(),
13951            shader_signed_zero_inf_nan_preserve_float16: Default::default(),
13952            shader_signed_zero_inf_nan_preserve_float32: Default::default(),
13953            shader_signed_zero_inf_nan_preserve_float64: Default::default(),
13954            shader_denorm_preserve_float16: Default::default(),
13955            shader_denorm_preserve_float32: Default::default(),
13956            shader_denorm_preserve_float64: Default::default(),
13957            shader_denorm_flush_to_zero_float16: Default::default(),
13958            shader_denorm_flush_to_zero_float32: Default::default(),
13959            shader_denorm_flush_to_zero_float64: Default::default(),
13960            shader_rounding_mode_rte_float16: Default::default(),
13961            shader_rounding_mode_rte_float32: Default::default(),
13962            shader_rounding_mode_rte_float64: Default::default(),
13963            shader_rounding_mode_rtz_float16: Default::default(),
13964            shader_rounding_mode_rtz_float32: Default::default(),
13965            shader_rounding_mode_rtz_float64: Default::default(),
13966        }
13967    }
13968}
13969///[`VkPhysicalDeviceHostQueryResetFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceHostQueryResetFeatures.html)
13970/**
13971Provided by **VK_BASE_VERSION_1_2**.*/
13972///
13973///# Extends
13974///- [`PhysicalDeviceFeatures2`]
13975///- [`DeviceCreateInfo`]
13976#[repr(C)]
13977#[derive(Copy, Clone, Debug)]
13978#[doc(alias = "VkPhysicalDeviceHostQueryResetFeatures")]
13979pub struct PhysicalDeviceHostQueryResetFeatures {
13980    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES`.
13981    pub s_type: StructureType,
13982    ///Optional, may be null.
13983    pub p_next: *mut core::ffi::c_void,
13984    pub host_query_reset: u32,
13985}
13986impl Default for PhysicalDeviceHostQueryResetFeatures {
13987    #[inline]
13988    fn default() -> Self {
13989        Self {
13990            s_type: StructureType::from_raw(1000261000i32),
13991            p_next: core::ptr::null_mut(),
13992            host_query_reset: Default::default(),
13993        }
13994    }
13995}
13996///[`VkNativeBufferUsage2ANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferUsage2ANDROID.html)
13997#[repr(C)]
13998#[derive(Copy, Clone, Debug)]
13999#[doc(alias = "VkNativeBufferUsage2ANDROID")]
14000pub struct NativeBufferUsage2ANDROID {
14001    pub consumer: u64,
14002    pub producer: u64,
14003}
14004impl Default for NativeBufferUsage2ANDROID {
14005    #[inline]
14006    fn default() -> Self {
14007        unsafe { core::mem::zeroed() }
14008    }
14009}
14010///[`VkNativeBufferANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferANDROID.html)
14011///
14012///# Extends
14013///- [`ImageCreateInfo`]
14014///- [`BindImageMemoryInfo`]
14015#[repr(C)]
14016#[derive(Copy, Clone, Debug)]
14017#[doc(alias = "VkNativeBufferANDROID")]
14018pub struct NativeBufferANDROID {
14019    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID`.
14020    pub s_type: StructureType,
14021    ///Optional, may be null.
14022    pub p_next: *const core::ffi::c_void,
14023    pub handle: *const core::ffi::c_void,
14024    pub stride: core::ffi::c_int,
14025    pub format: core::ffi::c_int,
14026    pub usage: core::ffi::c_int,
14027    pub usage2: NativeBufferUsage2ANDROID,
14028}
14029impl Default for NativeBufferANDROID {
14030    #[inline]
14031    fn default() -> Self {
14032        Self {
14033            s_type: Default::default(),
14034            p_next: core::ptr::null(),
14035            handle: core::ptr::null(),
14036            stride: Default::default(),
14037            format: Default::default(),
14038            usage: Default::default(),
14039            usage2: Default::default(),
14040        }
14041    }
14042}
14043///[`VkSwapchainImageCreateInfoANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainImageCreateInfoANDROID.html)
14044///
14045///# Extends
14046///- [`ImageCreateInfo`]
14047#[repr(C)]
14048#[derive(Copy, Clone, Debug)]
14049#[doc(alias = "VkSwapchainImageCreateInfoANDROID")]
14050pub struct SwapchainImageCreateInfoANDROID {
14051    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID`.
14052    pub s_type: StructureType,
14053    ///Optional, may be null.
14054    pub p_next: *const core::ffi::c_void,
14055    pub usage: SwapchainImageUsageFlagsANDROID,
14056}
14057impl Default for SwapchainImageCreateInfoANDROID {
14058    #[inline]
14059    fn default() -> Self {
14060        Self {
14061            s_type: Default::default(),
14062            p_next: core::ptr::null(),
14063            usage: Default::default(),
14064        }
14065    }
14066}
14067///[`VkPhysicalDevicePresentationPropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentationPropertiesANDROID.html)
14068/**
14069**Returned only**, filled by Vulkan, not constructed by the application.*/
14070///
14071///# Extends
14072///- [`PhysicalDeviceProperties2`]
14073#[repr(C)]
14074#[derive(Copy, Clone, Debug)]
14075#[doc(alias = "VkPhysicalDevicePresentationPropertiesANDROID")]
14076pub struct PhysicalDevicePresentationPropertiesANDROID {
14077    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID`.
14078    pub s_type: StructureType,
14079    ///Optional, may be null.
14080    pub p_next: *mut core::ffi::c_void,
14081    pub shared_image: u32,
14082}
14083impl Default for PhysicalDevicePresentationPropertiesANDROID {
14084    #[inline]
14085    fn default() -> Self {
14086        Self {
14087            s_type: Default::default(),
14088            p_next: core::ptr::null_mut(),
14089            shared_image: Default::default(),
14090        }
14091    }
14092}
14093///[`VkShaderResourceUsageAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderResourceUsageAMD.html)
14094/**
14095Provided by **VK_AMD_shader_info**.*/
14096/**
14097**Returned only**, filled by Vulkan, not constructed by the application.*/
14098#[repr(C)]
14099#[derive(Copy, Clone, Debug)]
14100#[doc(alias = "VkShaderResourceUsageAMD")]
14101pub struct ShaderResourceUsageAMD {
14102    pub num_used_vgprs: u32,
14103    pub num_used_sgprs: u32,
14104    pub lds_size_per_local_work_group: u32,
14105    pub lds_usage_size_in_bytes: usize,
14106    pub scratch_mem_usage_in_bytes: usize,
14107}
14108impl Default for ShaderResourceUsageAMD {
14109    #[inline]
14110    fn default() -> Self {
14111        unsafe { core::mem::zeroed() }
14112    }
14113}
14114///[`VkShaderStatisticsInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderStatisticsInfoAMD.html)
14115/**
14116Provided by **VK_AMD_shader_info**.*/
14117/**
14118**Returned only**, filled by Vulkan, not constructed by the application.*/
14119#[repr(C)]
14120#[derive(Copy, Clone, Debug)]
14121#[doc(alias = "VkShaderStatisticsInfoAMD")]
14122pub struct ShaderStatisticsInfoAMD {
14123    pub shader_stage_mask: ShaderStageFlags,
14124    pub resource_usage: ShaderResourceUsageAMD,
14125    pub num_physical_vgprs: u32,
14126    pub num_physical_sgprs: u32,
14127    pub num_available_vgprs: u32,
14128    pub num_available_sgprs: u32,
14129    pub compute_work_group_size: [u32; 3usize],
14130}
14131impl Default for ShaderStatisticsInfoAMD {
14132    #[inline]
14133    fn default() -> Self {
14134        unsafe { core::mem::zeroed() }
14135    }
14136}
14137///[`VkDeviceQueueGlobalPriorityCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceQueueGlobalPriorityCreateInfo.html)
14138/**
14139Provided by **VK_BASE_VERSION_1_4**.*/
14140///
14141///# Extends
14142///- [`DeviceQueueCreateInfo`]
14143#[repr(C)]
14144#[derive(Copy, Clone, Debug)]
14145#[doc(alias = "VkDeviceQueueGlobalPriorityCreateInfo")]
14146pub struct DeviceQueueGlobalPriorityCreateInfo {
14147    ///Must be `VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO`.
14148    pub s_type: StructureType,
14149    ///Optional, may be null.
14150    pub p_next: *const core::ffi::c_void,
14151    pub global_priority: QueueGlobalPriority,
14152}
14153impl Default for DeviceQueueGlobalPriorityCreateInfo {
14154    #[inline]
14155    fn default() -> Self {
14156        Self {
14157            s_type: StructureType::from_raw(1000174000i32),
14158            p_next: core::ptr::null(),
14159            global_priority: Default::default(),
14160        }
14161    }
14162}
14163///[`VkPhysicalDeviceGlobalPriorityQueryFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceGlobalPriorityQueryFeatures.html)
14164/**
14165Provided by **VK_BASE_VERSION_1_4**.*/
14166///
14167///# Extends
14168///- [`PhysicalDeviceFeatures2`]
14169///- [`DeviceCreateInfo`]
14170#[repr(C)]
14171#[derive(Copy, Clone, Debug)]
14172#[doc(alias = "VkPhysicalDeviceGlobalPriorityQueryFeatures")]
14173pub struct PhysicalDeviceGlobalPriorityQueryFeatures {
14174    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES`.
14175    pub s_type: StructureType,
14176    ///Optional, may be null.
14177    pub p_next: *mut core::ffi::c_void,
14178    pub global_priority_query: u32,
14179}
14180impl Default for PhysicalDeviceGlobalPriorityQueryFeatures {
14181    #[inline]
14182    fn default() -> Self {
14183        Self {
14184            s_type: StructureType::from_raw(1000388000i32),
14185            p_next: core::ptr::null_mut(),
14186            global_priority_query: Default::default(),
14187        }
14188    }
14189}
14190///[`VkQueueFamilyGlobalPriorityProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyGlobalPriorityProperties.html)
14191/**
14192Provided by **VK_BASE_VERSION_1_4**.*/
14193/**
14194**Returned only**, filled by Vulkan, not constructed by the application.*/
14195///
14196///# Extends
14197///- [`QueueFamilyProperties2`]
14198#[repr(C)]
14199#[derive(Copy, Clone, Debug)]
14200#[doc(alias = "VkQueueFamilyGlobalPriorityProperties")]
14201pub struct QueueFamilyGlobalPriorityProperties {
14202    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES`.
14203    pub s_type: StructureType,
14204    ///Optional, may be null.
14205    pub p_next: *mut core::ffi::c_void,
14206    pub priority_count: u32,
14207    pub priorities: [QueueGlobalPriority; MAX_GLOBAL_PRIORITY_SIZE as usize],
14208}
14209impl Default for QueueFamilyGlobalPriorityProperties {
14210    #[inline]
14211    fn default() -> Self {
14212        Self {
14213            s_type: StructureType::from_raw(1000388001i32),
14214            p_next: core::ptr::null_mut(),
14215            priority_count: Default::default(),
14216            priorities: unsafe { core::mem::zeroed() },
14217        }
14218    }
14219}
14220///[`VkDebugUtilsObjectNameInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsObjectNameInfoEXT.html)
14221/**
14222Provided by **VK_EXT_debug_utils**.*/
14223///
14224///# Extends
14225///- [`PipelineShaderStageCreateInfo`]
14226///- [`ResourceDescriptorInfoEXT`]
14227///- [`SamplerCreateInfo`]
14228#[repr(C)]
14229#[derive(Copy, Clone, Debug)]
14230#[doc(alias = "VkDebugUtilsObjectNameInfoEXT")]
14231pub struct DebugUtilsObjectNameInfoEXT {
14232    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT`.
14233    pub s_type: StructureType,
14234    ///Optional, may be null.
14235    pub p_next: *const core::ffi::c_void,
14236    pub object_type: ObjectType,
14237    pub object_handle: u64,
14238    ///Optional, may be null.
14239    pub p_object_name: *const core::ffi::c_char,
14240}
14241impl Default for DebugUtilsObjectNameInfoEXT {
14242    #[inline]
14243    fn default() -> Self {
14244        Self {
14245            s_type: StructureType::from_raw(1000128000i32),
14246            p_next: core::ptr::null(),
14247            object_type: Default::default(),
14248            object_handle: Default::default(),
14249            p_object_name: core::ptr::null(),
14250        }
14251    }
14252}
14253///[`VkDebugUtilsObjectTagInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsObjectTagInfoEXT.html)
14254/**
14255Provided by **VK_EXT_debug_utils**.*/
14256#[repr(C)]
14257#[derive(Copy, Clone, Debug)]
14258#[doc(alias = "VkDebugUtilsObjectTagInfoEXT")]
14259pub struct DebugUtilsObjectTagInfoEXT {
14260    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT`.
14261    pub s_type: StructureType,
14262    ///Optional, may be null.
14263    pub p_next: *const core::ffi::c_void,
14264    pub object_type: ObjectType,
14265    ///**Thread safety:** must be externally synchronized.
14266    pub object_handle: u64,
14267    pub tag_name: u64,
14268    ///Length of `p_tag`.
14269    pub tag_size: usize,
14270    pub p_tag: *const core::ffi::c_void,
14271}
14272impl Default for DebugUtilsObjectTagInfoEXT {
14273    #[inline]
14274    fn default() -> Self {
14275        Self {
14276            s_type: StructureType::from_raw(1000128001i32),
14277            p_next: core::ptr::null(),
14278            object_type: Default::default(),
14279            object_handle: Default::default(),
14280            tag_name: Default::default(),
14281            tag_size: Default::default(),
14282            p_tag: core::ptr::null(),
14283        }
14284    }
14285}
14286///[`VkDebugUtilsLabelEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsLabelEXT.html)
14287/**
14288Provided by **VK_EXT_debug_utils**.*/
14289#[repr(C)]
14290#[derive(Copy, Clone, Debug)]
14291#[doc(alias = "VkDebugUtilsLabelEXT")]
14292pub struct DebugUtilsLabelEXT {
14293    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT`.
14294    pub s_type: StructureType,
14295    ///Optional, may be null.
14296    pub p_next: *const core::ffi::c_void,
14297    pub p_label_name: *const core::ffi::c_char,
14298    pub color: [f32; 4usize],
14299}
14300impl Default for DebugUtilsLabelEXT {
14301    #[inline]
14302    fn default() -> Self {
14303        Self {
14304            s_type: StructureType::from_raw(1000128002i32),
14305            p_next: core::ptr::null(),
14306            p_label_name: core::ptr::null(),
14307            color: unsafe { core::mem::zeroed() },
14308        }
14309    }
14310}
14311///[`VkDebugUtilsMessengerCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsMessengerCreateInfoEXT.html)
14312/**
14313Provided by **VK_EXT_debug_utils**.*/
14314///
14315///# Extends
14316///- [`InstanceCreateInfo`]
14317#[repr(C)]
14318#[derive(Copy, Clone, Debug)]
14319#[doc(alias = "VkDebugUtilsMessengerCreateInfoEXT")]
14320pub struct DebugUtilsMessengerCreateInfoEXT {
14321    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT`.
14322    pub s_type: StructureType,
14323    ///Optional, may be null.
14324    pub p_next: *const core::ffi::c_void,
14325    pub flags: DebugUtilsMessengerCreateFlagsEXT,
14326    pub message_severity: DebugUtilsMessageSeverityFlagsEXT,
14327    pub message_type: DebugUtilsMessageTypeFlagsEXT,
14328    pub pfn_user_callback: PFN_vkDebugUtilsMessengerCallbackEXT,
14329    ///Optional, may be null.
14330    pub p_user_data: *mut core::ffi::c_void,
14331}
14332impl Default for DebugUtilsMessengerCreateInfoEXT {
14333    #[inline]
14334    fn default() -> Self {
14335        Self {
14336            s_type: StructureType::from_raw(1000128004i32),
14337            p_next: core::ptr::null(),
14338            flags: Default::default(),
14339            message_severity: Default::default(),
14340            message_type: Default::default(),
14341            pfn_user_callback: Default::default(),
14342            p_user_data: core::ptr::null_mut(),
14343        }
14344    }
14345}
14346///[`VkDebugUtilsMessengerCallbackDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsMessengerCallbackDataEXT.html)
14347/**
14348Provided by **VK_EXT_debug_utils**.*/
14349///
14350///# Extended By
14351///- [`DeviceAddressBindingCallbackDataEXT`]
14352#[repr(C)]
14353#[derive(Copy, Clone, Debug)]
14354#[doc(alias = "VkDebugUtilsMessengerCallbackDataEXT")]
14355pub struct DebugUtilsMessengerCallbackDataEXT {
14356    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT`.
14357    pub s_type: StructureType,
14358    ///Optional, may be null.
14359    pub p_next: *const core::ffi::c_void,
14360    pub flags: DebugUtilsMessengerCallbackDataFlagsEXT,
14361    ///Optional, may be null.
14362    pub p_message_id_name: *const core::ffi::c_char,
14363    pub message_id_number: i32,
14364    ///Optional, may be null.
14365    pub p_message: *const core::ffi::c_char,
14366    ///Length of `p_queue_labels`.
14367    pub queue_label_count: u32,
14368    pub p_queue_labels: *const DebugUtilsLabelEXT,
14369    ///Length of `p_cmd_buf_labels`.
14370    pub cmd_buf_label_count: u32,
14371    pub p_cmd_buf_labels: *const DebugUtilsLabelEXT,
14372    ///Length of `p_objects`.
14373    pub object_count: u32,
14374    pub p_objects: *const DebugUtilsObjectNameInfoEXT,
14375}
14376impl Default for DebugUtilsMessengerCallbackDataEXT {
14377    #[inline]
14378    fn default() -> Self {
14379        Self {
14380            s_type: StructureType::from_raw(1000128003i32),
14381            p_next: core::ptr::null(),
14382            flags: Default::default(),
14383            p_message_id_name: core::ptr::null(),
14384            message_id_number: Default::default(),
14385            p_message: core::ptr::null(),
14386            queue_label_count: Default::default(),
14387            p_queue_labels: core::ptr::null(),
14388            cmd_buf_label_count: Default::default(),
14389            p_cmd_buf_labels: core::ptr::null(),
14390            object_count: Default::default(),
14391            p_objects: core::ptr::null(),
14392        }
14393    }
14394}
14395///[`VkPhysicalDeviceDeviceMemoryReportFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.html)
14396/**
14397Provided by **VK_EXT_device_memory_report**.*/
14398///
14399///# Extends
14400///- [`PhysicalDeviceFeatures2`]
14401///- [`DeviceCreateInfo`]
14402#[repr(C)]
14403#[derive(Copy, Clone, Debug)]
14404#[doc(alias = "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT")]
14405pub struct PhysicalDeviceDeviceMemoryReportFeaturesEXT {
14406    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT`.
14407    pub s_type: StructureType,
14408    ///Optional, may be null.
14409    pub p_next: *mut core::ffi::c_void,
14410    pub device_memory_report: u32,
14411}
14412impl Default for PhysicalDeviceDeviceMemoryReportFeaturesEXT {
14413    #[inline]
14414    fn default() -> Self {
14415        Self {
14416            s_type: StructureType::from_raw(1000284000i32),
14417            p_next: core::ptr::null_mut(),
14418            device_memory_report: Default::default(),
14419        }
14420    }
14421}
14422///[`VkDeviceDeviceMemoryReportCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceDeviceMemoryReportCreateInfoEXT.html)
14423/**
14424Provided by **VK_EXT_device_memory_report**.*/
14425///
14426///# Extends
14427///- [`DeviceCreateInfo`]
14428#[repr(C)]
14429#[derive(Copy, Clone, Debug)]
14430#[doc(alias = "VkDeviceDeviceMemoryReportCreateInfoEXT")]
14431pub struct DeviceDeviceMemoryReportCreateInfoEXT {
14432    ///Must be `VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT`.
14433    pub s_type: StructureType,
14434    ///Optional, may be null.
14435    pub p_next: *const core::ffi::c_void,
14436    pub flags: DeviceMemoryReportFlagsEXT,
14437    pub pfn_user_callback: PFN_vkDeviceMemoryReportCallbackEXT,
14438    ///Optional, may be null.
14439    pub p_user_data: *mut core::ffi::c_void,
14440}
14441impl Default for DeviceDeviceMemoryReportCreateInfoEXT {
14442    #[inline]
14443    fn default() -> Self {
14444        Self {
14445            s_type: StructureType::from_raw(1000284001i32),
14446            p_next: core::ptr::null(),
14447            flags: Default::default(),
14448            pfn_user_callback: Default::default(),
14449            p_user_data: core::ptr::null_mut(),
14450        }
14451    }
14452}
14453///[`VkDeviceMemoryReportCallbackDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryReportCallbackDataEXT.html)
14454/**
14455Provided by **VK_EXT_device_memory_report**.*/
14456/**
14457**Returned only**, filled by Vulkan, not constructed by the application.*/
14458#[repr(C)]
14459#[derive(Copy, Clone, Debug)]
14460#[doc(alias = "VkDeviceMemoryReportCallbackDataEXT")]
14461pub struct DeviceMemoryReportCallbackDataEXT {
14462    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT`.
14463    pub s_type: StructureType,
14464    ///Optional, may be null.
14465    pub p_next: *mut core::ffi::c_void,
14466    pub flags: DeviceMemoryReportFlagsEXT,
14467    pub r#type: DeviceMemoryReportEventTypeEXT,
14468    pub memory_object_id: u64,
14469    pub size: u64,
14470    pub object_type: ObjectType,
14471    pub object_handle: u64,
14472    pub heap_index: u32,
14473}
14474impl Default for DeviceMemoryReportCallbackDataEXT {
14475    #[inline]
14476    fn default() -> Self {
14477        Self {
14478            s_type: StructureType::from_raw(1000284002i32),
14479            p_next: core::ptr::null_mut(),
14480            flags: Default::default(),
14481            r#type: Default::default(),
14482            memory_object_id: Default::default(),
14483            size: Default::default(),
14484            object_type: Default::default(),
14485            object_handle: Default::default(),
14486            heap_index: Default::default(),
14487        }
14488    }
14489}
14490///[`VkImportMemoryHostPointerInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryHostPointerInfoEXT.html)
14491/**
14492Provided by **VK_EXT_external_memory_host**.*/
14493///
14494///# Extends
14495///- [`MemoryAllocateInfo`]
14496#[repr(C)]
14497#[derive(Copy, Clone, Debug)]
14498#[doc(alias = "VkImportMemoryHostPointerInfoEXT")]
14499pub struct ImportMemoryHostPointerInfoEXT {
14500    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT`.
14501    pub s_type: StructureType,
14502    ///Optional, may be null.
14503    pub p_next: *const core::ffi::c_void,
14504    pub handle_type: ExternalMemoryHandleTypeFlagBits,
14505    pub p_host_pointer: *mut core::ffi::c_void,
14506}
14507impl Default for ImportMemoryHostPointerInfoEXT {
14508    #[inline]
14509    fn default() -> Self {
14510        Self {
14511            s_type: StructureType::from_raw(1000178000i32),
14512            p_next: core::ptr::null(),
14513            handle_type: Default::default(),
14514            p_host_pointer: core::ptr::null_mut(),
14515        }
14516    }
14517}
14518///[`VkMemoryHostPointerPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryHostPointerPropertiesEXT.html)
14519/**
14520Provided by **VK_EXT_external_memory_host**.*/
14521/**
14522**Returned only**, filled by Vulkan, not constructed by the application.*/
14523#[repr(C)]
14524#[derive(Copy, Clone, Debug)]
14525#[doc(alias = "VkMemoryHostPointerPropertiesEXT")]
14526pub struct MemoryHostPointerPropertiesEXT {
14527    ///Must be `VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT`.
14528    pub s_type: StructureType,
14529    ///Optional, may be null.
14530    pub p_next: *mut core::ffi::c_void,
14531    pub memory_type_bits: u32,
14532}
14533impl Default for MemoryHostPointerPropertiesEXT {
14534    #[inline]
14535    fn default() -> Self {
14536        Self {
14537            s_type: StructureType::from_raw(1000178001i32),
14538            p_next: core::ptr::null_mut(),
14539            memory_type_bits: Default::default(),
14540        }
14541    }
14542}
14543///[`VkPhysicalDeviceExternalMemoryHostPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.html)
14544/**
14545Provided by **VK_EXT_external_memory_host**.*/
14546/**
14547**Returned only**, filled by Vulkan, not constructed by the application.*/
14548///
14549///# Extends
14550///- [`PhysicalDeviceProperties2`]
14551#[repr(C)]
14552#[derive(Copy, Clone, Debug)]
14553#[doc(alias = "VkPhysicalDeviceExternalMemoryHostPropertiesEXT")]
14554pub struct PhysicalDeviceExternalMemoryHostPropertiesEXT {
14555    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT`.
14556    pub s_type: StructureType,
14557    ///Optional, may be null.
14558    pub p_next: *mut core::ffi::c_void,
14559    pub min_imported_host_pointer_alignment: u64,
14560}
14561impl Default for PhysicalDeviceExternalMemoryHostPropertiesEXT {
14562    #[inline]
14563    fn default() -> Self {
14564        Self {
14565            s_type: StructureType::from_raw(1000178002i32),
14566            p_next: core::ptr::null_mut(),
14567            min_imported_host_pointer_alignment: Default::default(),
14568        }
14569    }
14570}
14571///[`VkPhysicalDeviceConservativeRasterizationPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.html)
14572/**
14573Provided by **VK_EXT_conservative_rasterization**.*/
14574/**
14575**Returned only**, filled by Vulkan, not constructed by the application.*/
14576///
14577///# Extends
14578///- [`PhysicalDeviceProperties2`]
14579#[repr(C)]
14580#[derive(Copy, Clone, Debug)]
14581#[doc(alias = "VkPhysicalDeviceConservativeRasterizationPropertiesEXT")]
14582pub struct PhysicalDeviceConservativeRasterizationPropertiesEXT {
14583    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT`.
14584    pub s_type: StructureType,
14585    ///Optional, may be null.
14586    pub p_next: *mut core::ffi::c_void,
14587    pub primitive_overestimation_size: f32,
14588    pub max_extra_primitive_overestimation_size: f32,
14589    pub extra_primitive_overestimation_size_granularity: f32,
14590    pub primitive_underestimation: u32,
14591    pub conservative_point_and_line_rasterization: u32,
14592    pub degenerate_triangles_rasterized: u32,
14593    pub degenerate_lines_rasterized: u32,
14594    pub fully_covered_fragment_shader_input_variable: u32,
14595    pub conservative_rasterization_post_depth_coverage: u32,
14596}
14597impl Default for PhysicalDeviceConservativeRasterizationPropertiesEXT {
14598    #[inline]
14599    fn default() -> Self {
14600        Self {
14601            s_type: StructureType::from_raw(1000101000i32),
14602            p_next: core::ptr::null_mut(),
14603            primitive_overestimation_size: Default::default(),
14604            max_extra_primitive_overestimation_size: Default::default(),
14605            extra_primitive_overestimation_size_granularity: Default::default(),
14606            primitive_underestimation: Default::default(),
14607            conservative_point_and_line_rasterization: Default::default(),
14608            degenerate_triangles_rasterized: Default::default(),
14609            degenerate_lines_rasterized: Default::default(),
14610            fully_covered_fragment_shader_input_variable: Default::default(),
14611            conservative_rasterization_post_depth_coverage: Default::default(),
14612        }
14613    }
14614}
14615///[`VkCalibratedTimestampInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCalibratedTimestampInfoKHR.html)
14616/**
14617Provided by **VK_KHR_calibrated_timestamps**.*/
14618///
14619///# Extended By
14620///- [`SwapchainCalibratedTimestampInfoEXT`]
14621#[repr(C)]
14622#[derive(Copy, Clone, Debug)]
14623#[doc(alias = "VkCalibratedTimestampInfoKHR")]
14624pub struct CalibratedTimestampInfoKHR {
14625    ///Must be `VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR`.
14626    pub s_type: StructureType,
14627    ///Optional, may be null.
14628    pub p_next: *const core::ffi::c_void,
14629    pub time_domain: TimeDomainKHR,
14630}
14631impl Default for CalibratedTimestampInfoKHR {
14632    #[inline]
14633    fn default() -> Self {
14634        Self {
14635            s_type: StructureType::from_raw(1000184000i32),
14636            p_next: core::ptr::null(),
14637            time_domain: Default::default(),
14638        }
14639    }
14640}
14641///[`VkPhysicalDeviceShaderCorePropertiesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCorePropertiesAMD.html)
14642/**
14643Provided by **VK_AMD_shader_core_properties**.*/
14644/**
14645**Returned only**, filled by Vulkan, not constructed by the application.*/
14646///
14647///# Extends
14648///- [`PhysicalDeviceProperties2`]
14649#[repr(C)]
14650#[derive(Copy, Clone, Debug)]
14651#[doc(alias = "VkPhysicalDeviceShaderCorePropertiesAMD")]
14652pub struct PhysicalDeviceShaderCorePropertiesAMD {
14653    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD`.
14654    pub s_type: StructureType,
14655    ///Optional, may be null.
14656    pub p_next: *mut core::ffi::c_void,
14657    pub shader_engine_count: u32,
14658    pub shader_arrays_per_engine_count: u32,
14659    pub compute_units_per_shader_array: u32,
14660    pub simd_per_compute_unit: u32,
14661    pub wavefronts_per_simd: u32,
14662    pub wavefront_size: u32,
14663    pub sgprs_per_simd: u32,
14664    pub min_sgpr_allocation: u32,
14665    pub max_sgpr_allocation: u32,
14666    pub sgpr_allocation_granularity: u32,
14667    pub vgprs_per_simd: u32,
14668    pub min_vgpr_allocation: u32,
14669    pub max_vgpr_allocation: u32,
14670    pub vgpr_allocation_granularity: u32,
14671}
14672impl Default for PhysicalDeviceShaderCorePropertiesAMD {
14673    #[inline]
14674    fn default() -> Self {
14675        Self {
14676            s_type: StructureType::from_raw(1000185000i32),
14677            p_next: core::ptr::null_mut(),
14678            shader_engine_count: Default::default(),
14679            shader_arrays_per_engine_count: Default::default(),
14680            compute_units_per_shader_array: Default::default(),
14681            simd_per_compute_unit: Default::default(),
14682            wavefronts_per_simd: Default::default(),
14683            wavefront_size: Default::default(),
14684            sgprs_per_simd: Default::default(),
14685            min_sgpr_allocation: Default::default(),
14686            max_sgpr_allocation: Default::default(),
14687            sgpr_allocation_granularity: Default::default(),
14688            vgprs_per_simd: Default::default(),
14689            min_vgpr_allocation: Default::default(),
14690            max_vgpr_allocation: Default::default(),
14691            vgpr_allocation_granularity: Default::default(),
14692        }
14693    }
14694}
14695///[`VkPhysicalDeviceShaderCoreProperties2AMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCoreProperties2AMD.html)
14696/**
14697Provided by **VK_AMD_shader_core_properties2**.*/
14698/**
14699**Returned only**, filled by Vulkan, not constructed by the application.*/
14700///
14701///# Extends
14702///- [`PhysicalDeviceProperties2`]
14703#[repr(C)]
14704#[derive(Copy, Clone, Debug)]
14705#[doc(alias = "VkPhysicalDeviceShaderCoreProperties2AMD")]
14706pub struct PhysicalDeviceShaderCoreProperties2AMD {
14707    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD`.
14708    pub s_type: StructureType,
14709    ///Optional, may be null.
14710    pub p_next: *mut core::ffi::c_void,
14711    pub shader_core_features: ShaderCorePropertiesFlagsAMD,
14712    pub active_compute_unit_count: u32,
14713}
14714impl Default for PhysicalDeviceShaderCoreProperties2AMD {
14715    #[inline]
14716    fn default() -> Self {
14717        Self {
14718            s_type: StructureType::from_raw(1000227000i32),
14719            p_next: core::ptr::null_mut(),
14720            shader_core_features: Default::default(),
14721            active_compute_unit_count: Default::default(),
14722        }
14723    }
14724}
14725///[`VkPipelineRasterizationConservativeStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationConservativeStateCreateInfoEXT.html)
14726/**
14727Provided by **VK_EXT_conservative_rasterization**.*/
14728///
14729///# Extends
14730///- [`PipelineRasterizationStateCreateInfo`]
14731#[repr(C)]
14732#[derive(Copy, Clone, Debug)]
14733#[doc(alias = "VkPipelineRasterizationConservativeStateCreateInfoEXT")]
14734pub struct PipelineRasterizationConservativeStateCreateInfoEXT {
14735    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT`.
14736    pub s_type: StructureType,
14737    ///Optional, may be null.
14738    pub p_next: *const core::ffi::c_void,
14739    pub flags: PipelineRasterizationConservativeStateCreateFlagsEXT,
14740    pub conservative_rasterization_mode: ConservativeRasterizationModeEXT,
14741    pub extra_primitive_overestimation_size: f32,
14742}
14743impl Default for PipelineRasterizationConservativeStateCreateInfoEXT {
14744    #[inline]
14745    fn default() -> Self {
14746        Self {
14747            s_type: StructureType::from_raw(1000101001i32),
14748            p_next: core::ptr::null(),
14749            flags: Default::default(),
14750            conservative_rasterization_mode: Default::default(),
14751            extra_primitive_overestimation_size: Default::default(),
14752        }
14753    }
14754}
14755///[`VkPhysicalDeviceDescriptorIndexingFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorIndexingFeatures.html)
14756/**
14757Provided by **VK_COMPUTE_VERSION_1_2**.*/
14758///
14759///# Extends
14760///- [`PhysicalDeviceFeatures2`]
14761///- [`DeviceCreateInfo`]
14762#[repr(C)]
14763#[derive(Copy, Clone, Debug)]
14764#[doc(alias = "VkPhysicalDeviceDescriptorIndexingFeatures")]
14765pub struct PhysicalDeviceDescriptorIndexingFeatures {
14766    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES`.
14767    pub s_type: StructureType,
14768    ///Optional, may be null.
14769    pub p_next: *mut core::ffi::c_void,
14770    pub shader_input_attachment_array_dynamic_indexing: u32,
14771    pub shader_uniform_texel_buffer_array_dynamic_indexing: u32,
14772    pub shader_storage_texel_buffer_array_dynamic_indexing: u32,
14773    pub shader_uniform_buffer_array_non_uniform_indexing: u32,
14774    pub shader_sampled_image_array_non_uniform_indexing: u32,
14775    pub shader_storage_buffer_array_non_uniform_indexing: u32,
14776    pub shader_storage_image_array_non_uniform_indexing: u32,
14777    pub shader_input_attachment_array_non_uniform_indexing: u32,
14778    pub shader_uniform_texel_buffer_array_non_uniform_indexing: u32,
14779    pub shader_storage_texel_buffer_array_non_uniform_indexing: u32,
14780    pub descriptor_binding_uniform_buffer_update_after_bind: u32,
14781    pub descriptor_binding_sampled_image_update_after_bind: u32,
14782    pub descriptor_binding_storage_image_update_after_bind: u32,
14783    pub descriptor_binding_storage_buffer_update_after_bind: u32,
14784    pub descriptor_binding_uniform_texel_buffer_update_after_bind: u32,
14785    pub descriptor_binding_storage_texel_buffer_update_after_bind: u32,
14786    pub descriptor_binding_update_unused_while_pending: u32,
14787    pub descriptor_binding_partially_bound: u32,
14788    pub descriptor_binding_variable_descriptor_count: u32,
14789    pub runtime_descriptor_array: u32,
14790}
14791impl Default for PhysicalDeviceDescriptorIndexingFeatures {
14792    #[inline]
14793    fn default() -> Self {
14794        Self {
14795            s_type: StructureType::from_raw(1000161001i32),
14796            p_next: core::ptr::null_mut(),
14797            shader_input_attachment_array_dynamic_indexing: Default::default(),
14798            shader_uniform_texel_buffer_array_dynamic_indexing: Default::default(),
14799            shader_storage_texel_buffer_array_dynamic_indexing: Default::default(),
14800            shader_uniform_buffer_array_non_uniform_indexing: Default::default(),
14801            shader_sampled_image_array_non_uniform_indexing: Default::default(),
14802            shader_storage_buffer_array_non_uniform_indexing: Default::default(),
14803            shader_storage_image_array_non_uniform_indexing: Default::default(),
14804            shader_input_attachment_array_non_uniform_indexing: Default::default(),
14805            shader_uniform_texel_buffer_array_non_uniform_indexing: Default::default(),
14806            shader_storage_texel_buffer_array_non_uniform_indexing: Default::default(),
14807            descriptor_binding_uniform_buffer_update_after_bind: Default::default(),
14808            descriptor_binding_sampled_image_update_after_bind: Default::default(),
14809            descriptor_binding_storage_image_update_after_bind: Default::default(),
14810            descriptor_binding_storage_buffer_update_after_bind: Default::default(),
14811            descriptor_binding_uniform_texel_buffer_update_after_bind: Default::default(),
14812            descriptor_binding_storage_texel_buffer_update_after_bind: Default::default(),
14813            descriptor_binding_update_unused_while_pending: Default::default(),
14814            descriptor_binding_partially_bound: Default::default(),
14815            descriptor_binding_variable_descriptor_count: Default::default(),
14816            runtime_descriptor_array: Default::default(),
14817        }
14818    }
14819}
14820///[`VkPhysicalDeviceDescriptorIndexingProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorIndexingProperties.html)
14821/**
14822Provided by **VK_COMPUTE_VERSION_1_2**.*/
14823/**
14824**Returned only**, filled by Vulkan, not constructed by the application.*/
14825///
14826///# Extends
14827///- [`PhysicalDeviceProperties2`]
14828#[repr(C)]
14829#[derive(Copy, Clone, Debug)]
14830#[doc(alias = "VkPhysicalDeviceDescriptorIndexingProperties")]
14831pub struct PhysicalDeviceDescriptorIndexingProperties {
14832    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES`.
14833    pub s_type: StructureType,
14834    ///Optional, may be null.
14835    pub p_next: *mut core::ffi::c_void,
14836    pub max_update_after_bind_descriptors_in_all_pools: u32,
14837    pub shader_uniform_buffer_array_non_uniform_indexing_native: u32,
14838    pub shader_sampled_image_array_non_uniform_indexing_native: u32,
14839    pub shader_storage_buffer_array_non_uniform_indexing_native: u32,
14840    pub shader_storage_image_array_non_uniform_indexing_native: u32,
14841    pub shader_input_attachment_array_non_uniform_indexing_native: u32,
14842    pub robust_buffer_access_update_after_bind: u32,
14843    pub quad_divergent_implicit_lod: u32,
14844    pub max_per_stage_descriptor_update_after_bind_samplers: u32,
14845    pub max_per_stage_descriptor_update_after_bind_uniform_buffers: u32,
14846    pub max_per_stage_descriptor_update_after_bind_storage_buffers: u32,
14847    pub max_per_stage_descriptor_update_after_bind_sampled_images: u32,
14848    pub max_per_stage_descriptor_update_after_bind_storage_images: u32,
14849    pub max_per_stage_descriptor_update_after_bind_input_attachments: u32,
14850    pub max_per_stage_update_after_bind_resources: u32,
14851    pub max_descriptor_set_update_after_bind_samplers: u32,
14852    pub max_descriptor_set_update_after_bind_uniform_buffers: u32,
14853    pub max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32,
14854    pub max_descriptor_set_update_after_bind_storage_buffers: u32,
14855    pub max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32,
14856    pub max_descriptor_set_update_after_bind_sampled_images: u32,
14857    pub max_descriptor_set_update_after_bind_storage_images: u32,
14858    pub max_descriptor_set_update_after_bind_input_attachments: u32,
14859}
14860impl Default for PhysicalDeviceDescriptorIndexingProperties {
14861    #[inline]
14862    fn default() -> Self {
14863        Self {
14864            s_type: StructureType::from_raw(1000161002i32),
14865            p_next: core::ptr::null_mut(),
14866            max_update_after_bind_descriptors_in_all_pools: Default::default(),
14867            shader_uniform_buffer_array_non_uniform_indexing_native: Default::default(),
14868            shader_sampled_image_array_non_uniform_indexing_native: Default::default(),
14869            shader_storage_buffer_array_non_uniform_indexing_native: Default::default(),
14870            shader_storage_image_array_non_uniform_indexing_native: Default::default(),
14871            shader_input_attachment_array_non_uniform_indexing_native: Default::default(),
14872            robust_buffer_access_update_after_bind: Default::default(),
14873            quad_divergent_implicit_lod: Default::default(),
14874            max_per_stage_descriptor_update_after_bind_samplers: Default::default(),
14875            max_per_stage_descriptor_update_after_bind_uniform_buffers: Default::default(),
14876            max_per_stage_descriptor_update_after_bind_storage_buffers: Default::default(),
14877            max_per_stage_descriptor_update_after_bind_sampled_images: Default::default(),
14878            max_per_stage_descriptor_update_after_bind_storage_images: Default::default(),
14879            max_per_stage_descriptor_update_after_bind_input_attachments: Default::default(),
14880            max_per_stage_update_after_bind_resources: Default::default(),
14881            max_descriptor_set_update_after_bind_samplers: Default::default(),
14882            max_descriptor_set_update_after_bind_uniform_buffers: Default::default(),
14883            max_descriptor_set_update_after_bind_uniform_buffers_dynamic: Default::default(),
14884            max_descriptor_set_update_after_bind_storage_buffers: Default::default(),
14885            max_descriptor_set_update_after_bind_storage_buffers_dynamic: Default::default(),
14886            max_descriptor_set_update_after_bind_sampled_images: Default::default(),
14887            max_descriptor_set_update_after_bind_storage_images: Default::default(),
14888            max_descriptor_set_update_after_bind_input_attachments: Default::default(),
14889        }
14890    }
14891}
14892///[`VkDescriptorSetLayoutBindingFlagsCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutBindingFlagsCreateInfo.html)
14893/**
14894Provided by **VK_COMPUTE_VERSION_1_2**.*/
14895///
14896///# Extends
14897///- [`DescriptorSetLayoutCreateInfo`]
14898#[repr(C)]
14899#[derive(Copy, Clone, Debug)]
14900#[doc(alias = "VkDescriptorSetLayoutBindingFlagsCreateInfo")]
14901pub struct DescriptorSetLayoutBindingFlagsCreateInfo {
14902    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO`.
14903    pub s_type: StructureType,
14904    ///Optional, may be null.
14905    pub p_next: *const core::ffi::c_void,
14906    ///Length of `p_binding_flags`.
14907    pub binding_count: u32,
14908    ///Optional, may be null.
14909    pub p_binding_flags: *const DescriptorBindingFlags,
14910}
14911impl Default for DescriptorSetLayoutBindingFlagsCreateInfo {
14912    #[inline]
14913    fn default() -> Self {
14914        Self {
14915            s_type: StructureType::from_raw(1000161000i32),
14916            p_next: core::ptr::null(),
14917            binding_count: Default::default(),
14918            p_binding_flags: core::ptr::null(),
14919        }
14920    }
14921}
14922///[`VkDescriptorSetVariableDescriptorCountAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetVariableDescriptorCountAllocateInfo.html)
14923/**
14924Provided by **VK_COMPUTE_VERSION_1_2**.*/
14925///
14926///# Extends
14927///- [`DescriptorSetAllocateInfo`]
14928#[repr(C)]
14929#[derive(Copy, Clone, Debug)]
14930#[doc(alias = "VkDescriptorSetVariableDescriptorCountAllocateInfo")]
14931pub struct DescriptorSetVariableDescriptorCountAllocateInfo {
14932    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO`.
14933    pub s_type: StructureType,
14934    ///Optional, may be null.
14935    pub p_next: *const core::ffi::c_void,
14936    ///Length of `p_descriptor_counts`.
14937    pub descriptor_set_count: u32,
14938    pub p_descriptor_counts: *const u32,
14939}
14940impl Default for DescriptorSetVariableDescriptorCountAllocateInfo {
14941    #[inline]
14942    fn default() -> Self {
14943        Self {
14944            s_type: StructureType::from_raw(1000161003i32),
14945            p_next: core::ptr::null(),
14946            descriptor_set_count: Default::default(),
14947            p_descriptor_counts: core::ptr::null(),
14948        }
14949    }
14950}
14951///[`VkDescriptorSetVariableDescriptorCountLayoutSupport`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetVariableDescriptorCountLayoutSupport.html)
14952/**
14953Provided by **VK_COMPUTE_VERSION_1_2**.*/
14954/**
14955**Returned only**, filled by Vulkan, not constructed by the application.*/
14956///
14957///# Extends
14958///- [`DescriptorSetLayoutSupport`]
14959#[repr(C)]
14960#[derive(Copy, Clone, Debug)]
14961#[doc(alias = "VkDescriptorSetVariableDescriptorCountLayoutSupport")]
14962pub struct DescriptorSetVariableDescriptorCountLayoutSupport {
14963    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT`.
14964    pub s_type: StructureType,
14965    ///Optional, may be null.
14966    pub p_next: *mut core::ffi::c_void,
14967    pub max_variable_descriptor_count: u32,
14968}
14969impl Default for DescriptorSetVariableDescriptorCountLayoutSupport {
14970    #[inline]
14971    fn default() -> Self {
14972        Self {
14973            s_type: StructureType::from_raw(1000161004i32),
14974            p_next: core::ptr::null_mut(),
14975            max_variable_descriptor_count: Default::default(),
14976        }
14977    }
14978}
14979///[`VkAttachmentDescription2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentDescription2.html)
14980/**
14981Provided by **VK_GRAPHICS_VERSION_1_2**.*/
14982///
14983///# Extended By
14984///- [`AttachmentDescriptionStencilLayout`]
14985///- [`ExternalFormatANDROID`]
14986///- [`ExternalFormatOHOS`]
14987#[repr(C)]
14988#[derive(Copy, Clone, Debug)]
14989#[doc(alias = "VkAttachmentDescription2")]
14990pub struct AttachmentDescription2 {
14991    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2`.
14992    pub s_type: StructureType,
14993    ///Optional, may be null.
14994    pub p_next: *const core::ffi::c_void,
14995    pub flags: AttachmentDescriptionFlags,
14996    pub format: Format,
14997    pub samples: SampleCountFlagBits,
14998    pub load_op: AttachmentLoadOp,
14999    pub store_op: AttachmentStoreOp,
15000    pub stencil_load_op: AttachmentLoadOp,
15001    pub stencil_store_op: AttachmentStoreOp,
15002    pub initial_layout: ImageLayout,
15003    pub final_layout: ImageLayout,
15004}
15005impl Default for AttachmentDescription2 {
15006    #[inline]
15007    fn default() -> Self {
15008        Self {
15009            s_type: StructureType::from_raw(1000109000i32),
15010            p_next: core::ptr::null(),
15011            flags: Default::default(),
15012            format: Default::default(),
15013            samples: Default::default(),
15014            load_op: Default::default(),
15015            store_op: Default::default(),
15016            stencil_load_op: Default::default(),
15017            stencil_store_op: Default::default(),
15018            initial_layout: Default::default(),
15019            final_layout: Default::default(),
15020        }
15021    }
15022}
15023///[`VkAttachmentReference2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentReference2.html)
15024/**
15025Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15026///
15027///# Extended By
15028///- [`AttachmentReferenceStencilLayout`]
15029#[repr(C)]
15030#[derive(Copy, Clone, Debug)]
15031#[doc(alias = "VkAttachmentReference2")]
15032pub struct AttachmentReference2 {
15033    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2`.
15034    pub s_type: StructureType,
15035    ///Optional, may be null.
15036    pub p_next: *const core::ffi::c_void,
15037    pub attachment: u32,
15038    pub layout: ImageLayout,
15039    pub aspect_mask: ImageAspectFlags,
15040}
15041impl Default for AttachmentReference2 {
15042    #[inline]
15043    fn default() -> Self {
15044        Self {
15045            s_type: StructureType::from_raw(1000109001i32),
15046            p_next: core::ptr::null(),
15047            attachment: Default::default(),
15048            layout: Default::default(),
15049            aspect_mask: Default::default(),
15050        }
15051    }
15052}
15053///[`VkSubpassDescription2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDescription2.html)
15054/**
15055Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15056///
15057///# Extended By
15058///- [`FragmentShadingRateAttachmentInfoKHR`]
15059///- [`MultisampledRenderToSingleSampledInfoEXT`]
15060///- [`RenderPassCreationControlEXT`]
15061///- [`RenderPassSubpassFeedbackCreateInfoEXT`]
15062///- [`SubpassDescriptionDepthStencilResolve`]
15063#[repr(C)]
15064#[derive(Copy, Clone, Debug)]
15065#[doc(alias = "VkSubpassDescription2")]
15066pub struct SubpassDescription2 {
15067    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2`.
15068    pub s_type: StructureType,
15069    ///Optional, may be null.
15070    pub p_next: *const core::ffi::c_void,
15071    pub flags: SubpassDescriptionFlags,
15072    pub pipeline_bind_point: PipelineBindPoint,
15073    pub view_mask: u32,
15074    ///Length of `p_input_attachments`.
15075    pub input_attachment_count: u32,
15076    pub p_input_attachments: *const AttachmentReference2,
15077    ///Length of `p_resolve_attachments`.
15078    pub color_attachment_count: u32,
15079    pub p_color_attachments: *const AttachmentReference2,
15080    ///Optional, may be null.
15081    pub p_resolve_attachments: *const AttachmentReference2,
15082    ///Optional, may be null.
15083    pub p_depth_stencil_attachment: *const AttachmentReference2,
15084    ///Length of `p_preserve_attachments`.
15085    pub preserve_attachment_count: u32,
15086    pub p_preserve_attachments: *const u32,
15087}
15088impl Default for SubpassDescription2 {
15089    #[inline]
15090    fn default() -> Self {
15091        Self {
15092            s_type: StructureType::from_raw(1000109002i32),
15093            p_next: core::ptr::null(),
15094            flags: Default::default(),
15095            pipeline_bind_point: Default::default(),
15096            view_mask: Default::default(),
15097            input_attachment_count: Default::default(),
15098            p_input_attachments: core::ptr::null(),
15099            color_attachment_count: Default::default(),
15100            p_color_attachments: core::ptr::null(),
15101            p_resolve_attachments: core::ptr::null(),
15102            p_depth_stencil_attachment: core::ptr::null(),
15103            preserve_attachment_count: Default::default(),
15104            p_preserve_attachments: core::ptr::null(),
15105        }
15106    }
15107}
15108///[`VkSubpassDependency2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDependency2.html)
15109/**
15110Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15111///
15112///# Extended By
15113///- [`MemoryBarrier2`]
15114///- [`MemoryBarrierAccessFlags3KHR`]
15115#[repr(C)]
15116#[derive(Copy, Clone, Debug)]
15117#[doc(alias = "VkSubpassDependency2")]
15118pub struct SubpassDependency2 {
15119    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2`.
15120    pub s_type: StructureType,
15121    ///Optional, may be null.
15122    pub p_next: *const core::ffi::c_void,
15123    pub src_subpass: u32,
15124    pub dst_subpass: u32,
15125    pub src_stage_mask: PipelineStageFlags,
15126    pub dst_stage_mask: PipelineStageFlags,
15127    pub src_access_mask: AccessFlags,
15128    pub dst_access_mask: AccessFlags,
15129    pub dependency_flags: DependencyFlags,
15130    pub view_offset: i32,
15131}
15132impl Default for SubpassDependency2 {
15133    #[inline]
15134    fn default() -> Self {
15135        Self {
15136            s_type: StructureType::from_raw(1000109003i32),
15137            p_next: core::ptr::null(),
15138            src_subpass: Default::default(),
15139            dst_subpass: Default::default(),
15140            src_stage_mask: Default::default(),
15141            dst_stage_mask: Default::default(),
15142            src_access_mask: Default::default(),
15143            dst_access_mask: Default::default(),
15144            dependency_flags: Default::default(),
15145            view_offset: Default::default(),
15146        }
15147    }
15148}
15149///[`VkRenderPassCreateInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreateInfo2.html)
15150/**
15151Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15152///
15153///# Extended By
15154///- [`RenderPassCreationControlEXT`]
15155///- [`RenderPassCreationFeedbackCreateInfoEXT`]
15156///- [`RenderPassFragmentDensityMapCreateInfoEXT`]
15157///- [`RenderPassTileShadingCreateInfoQCOM`]
15158///- [`TileMemorySizeInfoQCOM`]
15159#[repr(C)]
15160#[derive(Copy, Clone, Debug)]
15161#[doc(alias = "VkRenderPassCreateInfo2")]
15162pub struct RenderPassCreateInfo2 {
15163    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2`.
15164    pub s_type: StructureType,
15165    ///Optional, may be null.
15166    pub p_next: *const core::ffi::c_void,
15167    pub flags: RenderPassCreateFlags,
15168    ///Length of `p_attachments`.
15169    pub attachment_count: u32,
15170    pub p_attachments: *const AttachmentDescription2,
15171    ///Length of `p_subpasses`.
15172    pub subpass_count: u32,
15173    pub p_subpasses: *const SubpassDescription2,
15174    ///Length of `p_dependencies`.
15175    pub dependency_count: u32,
15176    pub p_dependencies: *const SubpassDependency2,
15177    ///Length of `p_correlated_view_masks`.
15178    pub correlated_view_mask_count: u32,
15179    pub p_correlated_view_masks: *const u32,
15180}
15181impl Default for RenderPassCreateInfo2 {
15182    #[inline]
15183    fn default() -> Self {
15184        Self {
15185            s_type: StructureType::from_raw(1000109004i32),
15186            p_next: core::ptr::null(),
15187            flags: Default::default(),
15188            attachment_count: Default::default(),
15189            p_attachments: core::ptr::null(),
15190            subpass_count: Default::default(),
15191            p_subpasses: core::ptr::null(),
15192            dependency_count: Default::default(),
15193            p_dependencies: core::ptr::null(),
15194            correlated_view_mask_count: Default::default(),
15195            p_correlated_view_masks: core::ptr::null(),
15196        }
15197    }
15198}
15199///[`VkSubpassBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassBeginInfo.html)
15200/**
15201Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15202#[repr(C)]
15203#[derive(Copy, Clone, Debug)]
15204#[doc(alias = "VkSubpassBeginInfo")]
15205pub struct SubpassBeginInfo {
15206    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO`.
15207    pub s_type: StructureType,
15208    ///Optional, may be null.
15209    pub p_next: *const core::ffi::c_void,
15210    pub contents: SubpassContents,
15211}
15212impl Default for SubpassBeginInfo {
15213    #[inline]
15214    fn default() -> Self {
15215        Self {
15216            s_type: StructureType::from_raw(1000109005i32),
15217            p_next: core::ptr::null(),
15218            contents: Default::default(),
15219        }
15220    }
15221}
15222///[`VkSubpassEndInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassEndInfo.html)
15223/**
15224Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15225///
15226///# Extended By
15227///- [`RenderPassFragmentDensityMapOffsetEndInfoEXT`]
15228#[repr(C)]
15229#[derive(Copy, Clone, Debug)]
15230#[doc(alias = "VkSubpassEndInfo")]
15231pub struct SubpassEndInfo {
15232    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_END_INFO`.
15233    pub s_type: StructureType,
15234    ///Optional, may be null.
15235    pub p_next: *const core::ffi::c_void,
15236}
15237impl Default for SubpassEndInfo {
15238    #[inline]
15239    fn default() -> Self {
15240        Self {
15241            s_type: StructureType::from_raw(1000109006i32),
15242            p_next: core::ptr::null(),
15243        }
15244    }
15245}
15246///[`VkPhysicalDeviceTimelineSemaphoreFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTimelineSemaphoreFeatures.html)
15247/**
15248Provided by **VK_BASE_VERSION_1_2**.*/
15249///
15250///# Extends
15251///- [`PhysicalDeviceFeatures2`]
15252///- [`DeviceCreateInfo`]
15253#[repr(C)]
15254#[derive(Copy, Clone, Debug)]
15255#[doc(alias = "VkPhysicalDeviceTimelineSemaphoreFeatures")]
15256pub struct PhysicalDeviceTimelineSemaphoreFeatures {
15257    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES`.
15258    pub s_type: StructureType,
15259    ///Optional, may be null.
15260    pub p_next: *mut core::ffi::c_void,
15261    pub timeline_semaphore: u32,
15262}
15263impl Default for PhysicalDeviceTimelineSemaphoreFeatures {
15264    #[inline]
15265    fn default() -> Self {
15266        Self {
15267            s_type: StructureType::from_raw(1000207000i32),
15268            p_next: core::ptr::null_mut(),
15269            timeline_semaphore: Default::default(),
15270        }
15271    }
15272}
15273///[`VkPhysicalDeviceTimelineSemaphoreProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTimelineSemaphoreProperties.html)
15274/**
15275Provided by **VK_BASE_VERSION_1_2**.*/
15276/**
15277**Returned only**, filled by Vulkan, not constructed by the application.*/
15278///
15279///# Extends
15280///- [`PhysicalDeviceProperties2`]
15281#[repr(C)]
15282#[derive(Copy, Clone, Debug)]
15283#[doc(alias = "VkPhysicalDeviceTimelineSemaphoreProperties")]
15284pub struct PhysicalDeviceTimelineSemaphoreProperties {
15285    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES`.
15286    pub s_type: StructureType,
15287    ///Optional, may be null.
15288    pub p_next: *mut core::ffi::c_void,
15289    pub max_timeline_semaphore_value_difference: u64,
15290}
15291impl Default for PhysicalDeviceTimelineSemaphoreProperties {
15292    #[inline]
15293    fn default() -> Self {
15294        Self {
15295            s_type: StructureType::from_raw(1000207001i32),
15296            p_next: core::ptr::null_mut(),
15297            max_timeline_semaphore_value_difference: Default::default(),
15298        }
15299    }
15300}
15301///[`VkSemaphoreTypeCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreTypeCreateInfo.html)
15302/**
15303Provided by **VK_BASE_VERSION_1_2**.*/
15304///
15305///# Extends
15306///- [`SemaphoreCreateInfo`]
15307///- [`PhysicalDeviceExternalSemaphoreInfo`]
15308#[repr(C)]
15309#[derive(Copy, Clone, Debug)]
15310#[doc(alias = "VkSemaphoreTypeCreateInfo")]
15311pub struct SemaphoreTypeCreateInfo {
15312    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO`.
15313    pub s_type: StructureType,
15314    ///Optional, may be null.
15315    pub p_next: *const core::ffi::c_void,
15316    pub semaphore_type: SemaphoreType,
15317    pub initial_value: u64,
15318}
15319impl Default for SemaphoreTypeCreateInfo {
15320    #[inline]
15321    fn default() -> Self {
15322        Self {
15323            s_type: StructureType::from_raw(1000207002i32),
15324            p_next: core::ptr::null(),
15325            semaphore_type: Default::default(),
15326            initial_value: Default::default(),
15327        }
15328    }
15329}
15330///[`VkTimelineSemaphoreSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTimelineSemaphoreSubmitInfo.html)
15331/**
15332Provided by **VK_BASE_VERSION_1_2**.*/
15333///
15334///# Extends
15335///- [`SubmitInfo`]
15336///- [`BindSparseInfo`]
15337#[repr(C)]
15338#[derive(Copy, Clone, Debug)]
15339#[doc(alias = "VkTimelineSemaphoreSubmitInfo")]
15340pub struct TimelineSemaphoreSubmitInfo {
15341    ///Must be `VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO`.
15342    pub s_type: StructureType,
15343    ///Optional, may be null.
15344    pub p_next: *const core::ffi::c_void,
15345    ///Length of `p_wait_semaphore_values`.
15346    pub wait_semaphore_value_count: u32,
15347    ///Optional, may be null.
15348    pub p_wait_semaphore_values: *const u64,
15349    ///Length of `p_signal_semaphore_values`.
15350    pub signal_semaphore_value_count: u32,
15351    ///Optional, may be null.
15352    pub p_signal_semaphore_values: *const u64,
15353}
15354impl Default for TimelineSemaphoreSubmitInfo {
15355    #[inline]
15356    fn default() -> Self {
15357        Self {
15358            s_type: StructureType::from_raw(1000207003i32),
15359            p_next: core::ptr::null(),
15360            wait_semaphore_value_count: Default::default(),
15361            p_wait_semaphore_values: core::ptr::null(),
15362            signal_semaphore_value_count: Default::default(),
15363            p_signal_semaphore_values: core::ptr::null(),
15364        }
15365    }
15366}
15367///[`VkSemaphoreWaitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreWaitInfo.html)
15368/**
15369Provided by **VK_BASE_VERSION_1_2**.*/
15370#[repr(C)]
15371#[derive(Copy, Clone, Debug)]
15372#[doc(alias = "VkSemaphoreWaitInfo")]
15373pub struct SemaphoreWaitInfo {
15374    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO`.
15375    pub s_type: StructureType,
15376    ///Optional, may be null.
15377    pub p_next: *const core::ffi::c_void,
15378    pub flags: SemaphoreWaitFlags,
15379    ///Length of `p_values`.
15380    pub semaphore_count: u32,
15381    pub p_semaphores: *const Semaphore,
15382    pub p_values: *const u64,
15383}
15384impl Default for SemaphoreWaitInfo {
15385    #[inline]
15386    fn default() -> Self {
15387        Self {
15388            s_type: StructureType::from_raw(1000207004i32),
15389            p_next: core::ptr::null(),
15390            flags: Default::default(),
15391            semaphore_count: Default::default(),
15392            p_semaphores: core::ptr::null(),
15393            p_values: core::ptr::null(),
15394        }
15395    }
15396}
15397///[`VkSemaphoreSignalInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreSignalInfo.html)
15398/**
15399Provided by **VK_BASE_VERSION_1_2**.*/
15400#[repr(C)]
15401#[derive(Copy, Clone, Debug)]
15402#[doc(alias = "VkSemaphoreSignalInfo")]
15403pub struct SemaphoreSignalInfo {
15404    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO`.
15405    pub s_type: StructureType,
15406    ///Optional, may be null.
15407    pub p_next: *const core::ffi::c_void,
15408    pub semaphore: Semaphore,
15409    pub value: u64,
15410}
15411impl Default for SemaphoreSignalInfo {
15412    #[inline]
15413    fn default() -> Self {
15414        Self {
15415            s_type: StructureType::from_raw(1000207005i32),
15416            p_next: core::ptr::null(),
15417            semaphore: Default::default(),
15418            value: Default::default(),
15419        }
15420    }
15421}
15422///[`VkVertexInputBindingDivisorDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputBindingDivisorDescription.html)
15423/**
15424Provided by **VK_GRAPHICS_VERSION_1_4**.*/
15425#[repr(C)]
15426#[derive(Copy, Clone, Debug)]
15427#[doc(alias = "VkVertexInputBindingDivisorDescription")]
15428pub struct VertexInputBindingDivisorDescription {
15429    pub binding: u32,
15430    pub divisor: u32,
15431}
15432impl Default for VertexInputBindingDivisorDescription {
15433    #[inline]
15434    fn default() -> Self {
15435        unsafe { core::mem::zeroed() }
15436    }
15437}
15438///[`VkPipelineVertexInputDivisorStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineVertexInputDivisorStateCreateInfo.html)
15439/**
15440Provided by **VK_GRAPHICS_VERSION_1_4**.*/
15441///
15442///# Extends
15443///- [`PipelineVertexInputStateCreateInfo`]
15444#[repr(C)]
15445#[derive(Copy, Clone, Debug)]
15446#[doc(alias = "VkPipelineVertexInputDivisorStateCreateInfo")]
15447pub struct PipelineVertexInputDivisorStateCreateInfo {
15448    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO`.
15449    pub s_type: StructureType,
15450    ///Optional, may be null.
15451    pub p_next: *const core::ffi::c_void,
15452    ///Length of `p_vertex_binding_divisors`.
15453    pub vertex_binding_divisor_count: u32,
15454    pub p_vertex_binding_divisors: *const VertexInputBindingDivisorDescription,
15455}
15456impl Default for PipelineVertexInputDivisorStateCreateInfo {
15457    #[inline]
15458    fn default() -> Self {
15459        Self {
15460            s_type: StructureType::from_raw(1000190001i32),
15461            p_next: core::ptr::null(),
15462            vertex_binding_divisor_count: Default::default(),
15463            p_vertex_binding_divisors: core::ptr::null(),
15464        }
15465    }
15466}
15467///[`VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.html)
15468/**
15469Provided by **VK_EXT_vertex_attribute_divisor**.*/
15470/**
15471**Returned only**, filled by Vulkan, not constructed by the application.*/
15472///
15473///# Extends
15474///- [`PhysicalDeviceProperties2`]
15475#[repr(C)]
15476#[derive(Copy, Clone, Debug)]
15477#[doc(alias = "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT")]
15478pub struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
15479    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT`.
15480    pub s_type: StructureType,
15481    ///Optional, may be null.
15482    pub p_next: *mut core::ffi::c_void,
15483    pub max_vertex_attrib_divisor: u32,
15484}
15485impl Default for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
15486    #[inline]
15487    fn default() -> Self {
15488        Self {
15489            s_type: StructureType::from_raw(1000190000i32),
15490            p_next: core::ptr::null_mut(),
15491            max_vertex_attrib_divisor: Default::default(),
15492        }
15493    }
15494}
15495///[`VkPhysicalDeviceVertexAttributeDivisorProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexAttributeDivisorProperties.html)
15496/**
15497Provided by **VK_GRAPHICS_VERSION_1_4**.*/
15498/**
15499**Returned only**, filled by Vulkan, not constructed by the application.*/
15500///
15501///# Extends
15502///- [`PhysicalDeviceProperties2`]
15503#[repr(C)]
15504#[derive(Copy, Clone, Debug)]
15505#[doc(alias = "VkPhysicalDeviceVertexAttributeDivisorProperties")]
15506pub struct PhysicalDeviceVertexAttributeDivisorProperties {
15507    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES`.
15508    pub s_type: StructureType,
15509    ///Optional, may be null.
15510    pub p_next: *mut core::ffi::c_void,
15511    pub max_vertex_attrib_divisor: u32,
15512    pub supports_non_zero_first_instance: u32,
15513}
15514impl Default for PhysicalDeviceVertexAttributeDivisorProperties {
15515    #[inline]
15516    fn default() -> Self {
15517        Self {
15518            s_type: StructureType::from_raw(1000525000i32),
15519            p_next: core::ptr::null_mut(),
15520            max_vertex_attrib_divisor: Default::default(),
15521            supports_non_zero_first_instance: Default::default(),
15522        }
15523    }
15524}
15525///[`VkPhysicalDevicePCIBusInfoPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePCIBusInfoPropertiesEXT.html)
15526/**
15527Provided by **VK_EXT_pci_bus_info**.*/
15528/**
15529**Returned only**, filled by Vulkan, not constructed by the application.*/
15530///
15531///# Extends
15532///- [`PhysicalDeviceProperties2`]
15533#[repr(C)]
15534#[derive(Copy, Clone, Debug)]
15535#[doc(alias = "VkPhysicalDevicePCIBusInfoPropertiesEXT")]
15536pub struct PhysicalDevicePCIBusInfoPropertiesEXT {
15537    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT`.
15538    pub s_type: StructureType,
15539    ///Optional, may be null.
15540    pub p_next: *mut core::ffi::c_void,
15541    pub pci_domain: u32,
15542    pub pci_bus: u32,
15543    pub pci_device: u32,
15544    pub pci_function: u32,
15545}
15546impl Default for PhysicalDevicePCIBusInfoPropertiesEXT {
15547    #[inline]
15548    fn default() -> Self {
15549        Self {
15550            s_type: StructureType::from_raw(1000212000i32),
15551            p_next: core::ptr::null_mut(),
15552            pci_domain: Default::default(),
15553            pci_bus: Default::default(),
15554            pci_device: Default::default(),
15555            pci_function: Default::default(),
15556        }
15557    }
15558}
15559///[`VkImportAndroidHardwareBufferInfoANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportAndroidHardwareBufferInfoANDROID.html)
15560/**
15561Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15562///
15563///# Extends
15564///- [`MemoryAllocateInfo`]
15565#[repr(C)]
15566#[derive(Copy, Clone, Debug)]
15567#[doc(alias = "VkImportAndroidHardwareBufferInfoANDROID")]
15568pub struct ImportAndroidHardwareBufferInfoANDROID {
15569    ///Must be `VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID`.
15570    pub s_type: StructureType,
15571    ///Optional, may be null.
15572    pub p_next: *const core::ffi::c_void,
15573    pub buffer: *mut core::ffi::c_void,
15574}
15575impl Default for ImportAndroidHardwareBufferInfoANDROID {
15576    #[inline]
15577    fn default() -> Self {
15578        Self {
15579            s_type: StructureType::from_raw(1000129003i32),
15580            p_next: core::ptr::null(),
15581            buffer: core::ptr::null_mut(),
15582        }
15583    }
15584}
15585///[`VkAndroidHardwareBufferUsageANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferUsageANDROID.html)
15586/**
15587Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15588/**
15589**Returned only**, filled by Vulkan, not constructed by the application.*/
15590///
15591///# Extends
15592///- [`ImageFormatProperties2`]
15593#[repr(C)]
15594#[derive(Copy, Clone, Debug)]
15595#[doc(alias = "VkAndroidHardwareBufferUsageANDROID")]
15596pub struct AndroidHardwareBufferUsageANDROID {
15597    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID`.
15598    pub s_type: StructureType,
15599    ///Optional, may be null.
15600    pub p_next: *mut core::ffi::c_void,
15601    pub android_hardware_buffer_usage: u64,
15602}
15603impl Default for AndroidHardwareBufferUsageANDROID {
15604    #[inline]
15605    fn default() -> Self {
15606        Self {
15607            s_type: StructureType::from_raw(1000129000i32),
15608            p_next: core::ptr::null_mut(),
15609            android_hardware_buffer_usage: Default::default(),
15610        }
15611    }
15612}
15613///[`VkAndroidHardwareBufferPropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferPropertiesANDROID.html)
15614/**
15615Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15616/**
15617**Returned only**, filled by Vulkan, not constructed by the application.*/
15618///
15619///# Extended By
15620///- [`AndroidHardwareBufferFormatProperties2ANDROID`]
15621///- [`AndroidHardwareBufferFormatPropertiesANDROID`]
15622///- [`AndroidHardwareBufferFormatResolvePropertiesANDROID`]
15623#[repr(C)]
15624#[derive(Copy, Clone, Debug)]
15625#[doc(alias = "VkAndroidHardwareBufferPropertiesANDROID")]
15626pub struct AndroidHardwareBufferPropertiesANDROID {
15627    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID`.
15628    pub s_type: StructureType,
15629    ///Optional, may be null.
15630    pub p_next: *mut core::ffi::c_void,
15631    pub allocation_size: u64,
15632    pub memory_type_bits: u32,
15633}
15634impl Default for AndroidHardwareBufferPropertiesANDROID {
15635    #[inline]
15636    fn default() -> Self {
15637        Self {
15638            s_type: StructureType::from_raw(1000129001i32),
15639            p_next: core::ptr::null_mut(),
15640            allocation_size: Default::default(),
15641            memory_type_bits: Default::default(),
15642        }
15643    }
15644}
15645///[`VkMemoryGetAndroidHardwareBufferInfoANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetAndroidHardwareBufferInfoANDROID.html)
15646/**
15647Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15648#[repr(C)]
15649#[derive(Copy, Clone, Debug)]
15650#[doc(alias = "VkMemoryGetAndroidHardwareBufferInfoANDROID")]
15651pub struct MemoryGetAndroidHardwareBufferInfoANDROID {
15652    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID`.
15653    pub s_type: StructureType,
15654    ///Optional, may be null.
15655    pub p_next: *const core::ffi::c_void,
15656    pub memory: DeviceMemory,
15657}
15658impl Default for MemoryGetAndroidHardwareBufferInfoANDROID {
15659    #[inline]
15660    fn default() -> Self {
15661        Self {
15662            s_type: StructureType::from_raw(1000129004i32),
15663            p_next: core::ptr::null(),
15664            memory: Default::default(),
15665        }
15666    }
15667}
15668///[`VkAndroidHardwareBufferFormatPropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferFormatPropertiesANDROID.html)
15669/**
15670Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15671/**
15672**Returned only**, filled by Vulkan, not constructed by the application.*/
15673///
15674///# Extends
15675///- [`AndroidHardwareBufferPropertiesANDROID`]
15676#[repr(C)]
15677#[derive(Copy, Clone, Debug)]
15678#[doc(alias = "VkAndroidHardwareBufferFormatPropertiesANDROID")]
15679pub struct AndroidHardwareBufferFormatPropertiesANDROID {
15680    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID`.
15681    pub s_type: StructureType,
15682    ///Optional, may be null.
15683    pub p_next: *mut core::ffi::c_void,
15684    pub format: Format,
15685    pub external_format: u64,
15686    pub format_features: FormatFeatureFlags,
15687    pub sampler_ycbcr_conversion_components: ComponentMapping,
15688    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
15689    pub suggested_ycbcr_range: SamplerYcbcrRange,
15690    pub suggested_x_chroma_offset: ChromaLocation,
15691    pub suggested_y_chroma_offset: ChromaLocation,
15692}
15693impl Default for AndroidHardwareBufferFormatPropertiesANDROID {
15694    #[inline]
15695    fn default() -> Self {
15696        Self {
15697            s_type: StructureType::from_raw(1000129002i32),
15698            p_next: core::ptr::null_mut(),
15699            format: Default::default(),
15700            external_format: Default::default(),
15701            format_features: Default::default(),
15702            sampler_ycbcr_conversion_components: Default::default(),
15703            suggested_ycbcr_model: Default::default(),
15704            suggested_ycbcr_range: Default::default(),
15705            suggested_x_chroma_offset: Default::default(),
15706            suggested_y_chroma_offset: Default::default(),
15707        }
15708    }
15709}
15710///[`VkCommandBufferInheritanceConditionalRenderingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceConditionalRenderingInfoEXT.html)
15711/**
15712Provided by **VK_EXT_conditional_rendering**.*/
15713///
15714///# Extends
15715///- [`CommandBufferInheritanceInfo`]
15716#[repr(C)]
15717#[derive(Copy, Clone, Debug)]
15718#[doc(alias = "VkCommandBufferInheritanceConditionalRenderingInfoEXT")]
15719pub struct CommandBufferInheritanceConditionalRenderingInfoEXT {
15720    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT`.
15721    pub s_type: StructureType,
15722    ///Optional, may be null.
15723    pub p_next: *const core::ffi::c_void,
15724    pub conditional_rendering_enable: u32,
15725}
15726impl Default for CommandBufferInheritanceConditionalRenderingInfoEXT {
15727    #[inline]
15728    fn default() -> Self {
15729        Self {
15730            s_type: StructureType::from_raw(1000081000i32),
15731            p_next: core::ptr::null(),
15732            conditional_rendering_enable: Default::default(),
15733        }
15734    }
15735}
15736///[`VkExternalFormatANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalFormatANDROID.html)
15737/**
15738Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15739///
15740///# Extends
15741///- [`ImageCreateInfo`]
15742///- [`SamplerYcbcrConversionCreateInfo`]
15743///- [`AttachmentDescription2`]
15744///- [`GraphicsPipelineCreateInfo`]
15745///- [`CommandBufferInheritanceInfo`]
15746#[repr(C)]
15747#[derive(Copy, Clone, Debug)]
15748#[doc(alias = "VkExternalFormatANDROID")]
15749pub struct ExternalFormatANDROID {
15750    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID`.
15751    pub s_type: StructureType,
15752    ///Optional, may be null.
15753    pub p_next: *mut core::ffi::c_void,
15754    pub external_format: u64,
15755}
15756impl Default for ExternalFormatANDROID {
15757    #[inline]
15758    fn default() -> Self {
15759        Self {
15760            s_type: StructureType::from_raw(1000129005i32),
15761            p_next: core::ptr::null_mut(),
15762            external_format: Default::default(),
15763        }
15764    }
15765}
15766///[`VkPhysicalDevice8BitStorageFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevice8BitStorageFeatures.html)
15767/**
15768Provided by **VK_COMPUTE_VERSION_1_2**.*/
15769///
15770///# Extends
15771///- [`PhysicalDeviceFeatures2`]
15772///- [`DeviceCreateInfo`]
15773#[repr(C)]
15774#[derive(Copy, Clone, Debug)]
15775#[doc(alias = "VkPhysicalDevice8BitStorageFeatures")]
15776pub struct PhysicalDevice8BitStorageFeatures {
15777    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES`.
15778    pub s_type: StructureType,
15779    ///Optional, may be null.
15780    pub p_next: *mut core::ffi::c_void,
15781    pub storage_buffer8_bit_access: u32,
15782    pub uniform_and_storage_buffer8_bit_access: u32,
15783    pub storage_push_constant8: u32,
15784}
15785impl Default for PhysicalDevice8BitStorageFeatures {
15786    #[inline]
15787    fn default() -> Self {
15788        Self {
15789            s_type: StructureType::from_raw(1000177000i32),
15790            p_next: core::ptr::null_mut(),
15791            storage_buffer8_bit_access: Default::default(),
15792            uniform_and_storage_buffer8_bit_access: Default::default(),
15793            storage_push_constant8: Default::default(),
15794        }
15795    }
15796}
15797///[`VkPhysicalDeviceConditionalRenderingFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceConditionalRenderingFeaturesEXT.html)
15798/**
15799Provided by **VK_EXT_conditional_rendering**.*/
15800///
15801///# Extends
15802///- [`PhysicalDeviceFeatures2`]
15803///- [`DeviceCreateInfo`]
15804#[repr(C)]
15805#[derive(Copy, Clone, Debug)]
15806#[doc(alias = "VkPhysicalDeviceConditionalRenderingFeaturesEXT")]
15807pub struct PhysicalDeviceConditionalRenderingFeaturesEXT {
15808    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT`.
15809    pub s_type: StructureType,
15810    ///Optional, may be null.
15811    pub p_next: *mut core::ffi::c_void,
15812    pub conditional_rendering: u32,
15813    pub inherited_conditional_rendering: u32,
15814}
15815impl Default for PhysicalDeviceConditionalRenderingFeaturesEXT {
15816    #[inline]
15817    fn default() -> Self {
15818        Self {
15819            s_type: StructureType::from_raw(1000081001i32),
15820            p_next: core::ptr::null_mut(),
15821            conditional_rendering: Default::default(),
15822            inherited_conditional_rendering: Default::default(),
15823        }
15824    }
15825}
15826///[`VkPhysicalDeviceVulkanMemoryModelFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkanMemoryModelFeatures.html)
15827/**
15828Provided by **VK_BASE_VERSION_1_2**.*/
15829///
15830///# Extends
15831///- [`PhysicalDeviceFeatures2`]
15832///- [`DeviceCreateInfo`]
15833#[repr(C)]
15834#[derive(Copy, Clone, Debug)]
15835#[doc(alias = "VkPhysicalDeviceVulkanMemoryModelFeatures")]
15836pub struct PhysicalDeviceVulkanMemoryModelFeatures {
15837    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES`.
15838    pub s_type: StructureType,
15839    ///Optional, may be null.
15840    pub p_next: *mut core::ffi::c_void,
15841    pub vulkan_memory_model: u32,
15842    pub vulkan_memory_model_device_scope: u32,
15843    pub vulkan_memory_model_availability_visibility_chains: u32,
15844}
15845impl Default for PhysicalDeviceVulkanMemoryModelFeatures {
15846    #[inline]
15847    fn default() -> Self {
15848        Self {
15849            s_type: StructureType::from_raw(1000211000i32),
15850            p_next: core::ptr::null_mut(),
15851            vulkan_memory_model: Default::default(),
15852            vulkan_memory_model_device_scope: Default::default(),
15853            vulkan_memory_model_availability_visibility_chains: Default::default(),
15854        }
15855    }
15856}
15857///[`VkPhysicalDeviceShaderAtomicInt64Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAtomicInt64Features.html)
15858/**
15859Provided by **VK_COMPUTE_VERSION_1_2**.*/
15860///
15861///# Extends
15862///- [`PhysicalDeviceFeatures2`]
15863///- [`DeviceCreateInfo`]
15864#[repr(C)]
15865#[derive(Copy, Clone, Debug)]
15866#[doc(alias = "VkPhysicalDeviceShaderAtomicInt64Features")]
15867pub struct PhysicalDeviceShaderAtomicInt64Features {
15868    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES`.
15869    pub s_type: StructureType,
15870    ///Optional, may be null.
15871    pub p_next: *mut core::ffi::c_void,
15872    pub shader_buffer_int64_atomics: u32,
15873    pub shader_shared_int64_atomics: u32,
15874}
15875impl Default for PhysicalDeviceShaderAtomicInt64Features {
15876    #[inline]
15877    fn default() -> Self {
15878        Self {
15879            s_type: StructureType::from_raw(1000180000i32),
15880            p_next: core::ptr::null_mut(),
15881            shader_buffer_int64_atomics: Default::default(),
15882            shader_shared_int64_atomics: Default::default(),
15883        }
15884    }
15885}
15886///[`VkPhysicalDeviceShaderAtomicFloatFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.html)
15887/**
15888Provided by **VK_EXT_shader_atomic_float**.*/
15889///
15890///# Extends
15891///- [`PhysicalDeviceFeatures2`]
15892///- [`DeviceCreateInfo`]
15893#[repr(C)]
15894#[derive(Copy, Clone, Debug)]
15895#[doc(alias = "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT")]
15896pub struct PhysicalDeviceShaderAtomicFloatFeaturesEXT {
15897    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT`.
15898    pub s_type: StructureType,
15899    ///Optional, may be null.
15900    pub p_next: *mut core::ffi::c_void,
15901    pub shader_buffer_float32_atomics: u32,
15902    pub shader_buffer_float32_atomic_add: u32,
15903    pub shader_buffer_float64_atomics: u32,
15904    pub shader_buffer_float64_atomic_add: u32,
15905    pub shader_shared_float32_atomics: u32,
15906    pub shader_shared_float32_atomic_add: u32,
15907    pub shader_shared_float64_atomics: u32,
15908    pub shader_shared_float64_atomic_add: u32,
15909    pub shader_image_float32_atomics: u32,
15910    pub shader_image_float32_atomic_add: u32,
15911    pub sparse_image_float32_atomics: u32,
15912    pub sparse_image_float32_atomic_add: u32,
15913}
15914impl Default for PhysicalDeviceShaderAtomicFloatFeaturesEXT {
15915    #[inline]
15916    fn default() -> Self {
15917        Self {
15918            s_type: StructureType::from_raw(1000260000i32),
15919            p_next: core::ptr::null_mut(),
15920            shader_buffer_float32_atomics: Default::default(),
15921            shader_buffer_float32_atomic_add: Default::default(),
15922            shader_buffer_float64_atomics: Default::default(),
15923            shader_buffer_float64_atomic_add: Default::default(),
15924            shader_shared_float32_atomics: Default::default(),
15925            shader_shared_float32_atomic_add: Default::default(),
15926            shader_shared_float64_atomics: Default::default(),
15927            shader_shared_float64_atomic_add: Default::default(),
15928            shader_image_float32_atomics: Default::default(),
15929            shader_image_float32_atomic_add: Default::default(),
15930            sparse_image_float32_atomics: Default::default(),
15931            sparse_image_float32_atomic_add: Default::default(),
15932        }
15933    }
15934}
15935///[`VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.html)
15936/**
15937Provided by **VK_EXT_shader_atomic_float2**.*/
15938///
15939///# Extends
15940///- [`PhysicalDeviceFeatures2`]
15941///- [`DeviceCreateInfo`]
15942#[repr(C)]
15943#[derive(Copy, Clone, Debug)]
15944#[doc(alias = "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT")]
15945pub struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
15946    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT`.
15947    pub s_type: StructureType,
15948    ///Optional, may be null.
15949    pub p_next: *mut core::ffi::c_void,
15950    pub shader_buffer_float16_atomics: u32,
15951    pub shader_buffer_float16_atomic_add: u32,
15952    pub shader_buffer_float16_atomic_min_max: u32,
15953    pub shader_buffer_float32_atomic_min_max: u32,
15954    pub shader_buffer_float64_atomic_min_max: u32,
15955    pub shader_shared_float16_atomics: u32,
15956    pub shader_shared_float16_atomic_add: u32,
15957    pub shader_shared_float16_atomic_min_max: u32,
15958    pub shader_shared_float32_atomic_min_max: u32,
15959    pub shader_shared_float64_atomic_min_max: u32,
15960    pub shader_image_float32_atomic_min_max: u32,
15961    pub sparse_image_float32_atomic_min_max: u32,
15962}
15963impl Default for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
15964    #[inline]
15965    fn default() -> Self {
15966        Self {
15967            s_type: StructureType::from_raw(1000273000i32),
15968            p_next: core::ptr::null_mut(),
15969            shader_buffer_float16_atomics: Default::default(),
15970            shader_buffer_float16_atomic_add: Default::default(),
15971            shader_buffer_float16_atomic_min_max: Default::default(),
15972            shader_buffer_float32_atomic_min_max: Default::default(),
15973            shader_buffer_float64_atomic_min_max: Default::default(),
15974            shader_shared_float16_atomics: Default::default(),
15975            shader_shared_float16_atomic_add: Default::default(),
15976            shader_shared_float16_atomic_min_max: Default::default(),
15977            shader_shared_float32_atomic_min_max: Default::default(),
15978            shader_shared_float64_atomic_min_max: Default::default(),
15979            shader_image_float32_atomic_min_max: Default::default(),
15980            sparse_image_float32_atomic_min_max: Default::default(),
15981        }
15982    }
15983}
15984///[`VkPhysicalDeviceVertexAttributeDivisorFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexAttributeDivisorFeatures.html)
15985/**
15986Provided by **VK_GRAPHICS_VERSION_1_4**.*/
15987///
15988///# Extends
15989///- [`PhysicalDeviceFeatures2`]
15990///- [`DeviceCreateInfo`]
15991#[repr(C)]
15992#[derive(Copy, Clone, Debug)]
15993#[doc(alias = "VkPhysicalDeviceVertexAttributeDivisorFeatures")]
15994pub struct PhysicalDeviceVertexAttributeDivisorFeatures {
15995    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES`.
15996    pub s_type: StructureType,
15997    ///Optional, may be null.
15998    pub p_next: *mut core::ffi::c_void,
15999    pub vertex_attribute_instance_rate_divisor: u32,
16000    pub vertex_attribute_instance_rate_zero_divisor: u32,
16001}
16002impl Default for PhysicalDeviceVertexAttributeDivisorFeatures {
16003    #[inline]
16004    fn default() -> Self {
16005        Self {
16006            s_type: StructureType::from_raw(1000190002i32),
16007            p_next: core::ptr::null_mut(),
16008            vertex_attribute_instance_rate_divisor: Default::default(),
16009            vertex_attribute_instance_rate_zero_divisor: Default::default(),
16010        }
16011    }
16012}
16013///[`VkQueueFamilyCheckpointPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyCheckpointPropertiesNV.html)
16014/**
16015Provided by **VK_NV_device_diagnostic_checkpoints**.*/
16016/**
16017**Returned only**, filled by Vulkan, not constructed by the application.*/
16018///
16019///# Extends
16020///- [`QueueFamilyProperties2`]
16021#[repr(C)]
16022#[derive(Copy, Clone, Debug)]
16023#[doc(alias = "VkQueueFamilyCheckpointPropertiesNV")]
16024pub struct QueueFamilyCheckpointPropertiesNV {
16025    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV`.
16026    pub s_type: StructureType,
16027    ///Optional, may be null.
16028    pub p_next: *mut core::ffi::c_void,
16029    pub checkpoint_execution_stage_mask: PipelineStageFlags,
16030}
16031impl Default for QueueFamilyCheckpointPropertiesNV {
16032    #[inline]
16033    fn default() -> Self {
16034        Self {
16035            s_type: StructureType::from_raw(1000206001i32),
16036            p_next: core::ptr::null_mut(),
16037            checkpoint_execution_stage_mask: Default::default(),
16038        }
16039    }
16040}
16041///[`VkCheckpointDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCheckpointDataNV.html)
16042/**
16043Provided by **VK_NV_device_diagnostic_checkpoints**.*/
16044/**
16045**Returned only**, filled by Vulkan, not constructed by the application.*/
16046#[repr(C)]
16047#[derive(Copy, Clone, Debug)]
16048#[doc(alias = "VkCheckpointDataNV")]
16049pub struct CheckpointDataNV {
16050    ///Must be `VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV`.
16051    pub s_type: StructureType,
16052    ///Optional, may be null.
16053    pub p_next: *mut core::ffi::c_void,
16054    pub stage: PipelineStageFlagBits,
16055    pub p_checkpoint_marker: *mut core::ffi::c_void,
16056}
16057impl Default for CheckpointDataNV {
16058    #[inline]
16059    fn default() -> Self {
16060        Self {
16061            s_type: StructureType::from_raw(1000206000i32),
16062            p_next: core::ptr::null_mut(),
16063            stage: Default::default(),
16064            p_checkpoint_marker: core::ptr::null_mut(),
16065        }
16066    }
16067}
16068///[`VkPhysicalDeviceDepthStencilResolveProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthStencilResolveProperties.html)
16069/**
16070Provided by **VK_GRAPHICS_VERSION_1_2**.*/
16071/**
16072**Returned only**, filled by Vulkan, not constructed by the application.*/
16073///
16074///# Extends
16075///- [`PhysicalDeviceProperties2`]
16076#[repr(C)]
16077#[derive(Copy, Clone, Debug)]
16078#[doc(alias = "VkPhysicalDeviceDepthStencilResolveProperties")]
16079pub struct PhysicalDeviceDepthStencilResolveProperties {
16080    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES`.
16081    pub s_type: StructureType,
16082    ///Optional, may be null.
16083    pub p_next: *mut core::ffi::c_void,
16084    pub supported_depth_resolve_modes: ResolveModeFlags,
16085    pub supported_stencil_resolve_modes: ResolveModeFlags,
16086    pub independent_resolve_none: u32,
16087    pub independent_resolve: u32,
16088}
16089impl Default for PhysicalDeviceDepthStencilResolveProperties {
16090    #[inline]
16091    fn default() -> Self {
16092        Self {
16093            s_type: StructureType::from_raw(1000199000i32),
16094            p_next: core::ptr::null_mut(),
16095            supported_depth_resolve_modes: Default::default(),
16096            supported_stencil_resolve_modes: Default::default(),
16097            independent_resolve_none: Default::default(),
16098            independent_resolve: Default::default(),
16099        }
16100    }
16101}
16102///[`VkSubpassDescriptionDepthStencilResolve`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDescriptionDepthStencilResolve.html)
16103/**
16104Provided by **VK_GRAPHICS_VERSION_1_2**.*/
16105///
16106///# Extends
16107///- [`SubpassDescription2`]
16108#[repr(C)]
16109#[derive(Copy, Clone, Debug)]
16110#[doc(alias = "VkSubpassDescriptionDepthStencilResolve")]
16111pub struct SubpassDescriptionDepthStencilResolve {
16112    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE`.
16113    pub s_type: StructureType,
16114    ///Optional, may be null.
16115    pub p_next: *const core::ffi::c_void,
16116    pub depth_resolve_mode: ResolveModeFlagBits,
16117    pub stencil_resolve_mode: ResolveModeFlagBits,
16118    ///Optional, may be null.
16119    pub p_depth_stencil_resolve_attachment: *const AttachmentReference2,
16120}
16121impl Default for SubpassDescriptionDepthStencilResolve {
16122    #[inline]
16123    fn default() -> Self {
16124        Self {
16125            s_type: StructureType::from_raw(1000199001i32),
16126            p_next: core::ptr::null(),
16127            depth_resolve_mode: Default::default(),
16128            stencil_resolve_mode: Default::default(),
16129            p_depth_stencil_resolve_attachment: core::ptr::null(),
16130        }
16131    }
16132}
16133///[`VkImageViewASTCDecodeModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewASTCDecodeModeEXT.html)
16134/**
16135Provided by **VK_EXT_astc_decode_mode**.*/
16136///
16137///# Extends
16138///- [`ImageViewCreateInfo`]
16139#[repr(C)]
16140#[derive(Copy, Clone, Debug)]
16141#[doc(alias = "VkImageViewASTCDecodeModeEXT")]
16142pub struct ImageViewASTCDecodeModeEXT {
16143    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT`.
16144    pub s_type: StructureType,
16145    ///Optional, may be null.
16146    pub p_next: *const core::ffi::c_void,
16147    pub decode_mode: Format,
16148}
16149impl Default for ImageViewASTCDecodeModeEXT {
16150    #[inline]
16151    fn default() -> Self {
16152        Self {
16153            s_type: StructureType::from_raw(1000067000i32),
16154            p_next: core::ptr::null(),
16155            decode_mode: Default::default(),
16156        }
16157    }
16158}
16159///[`VkPhysicalDeviceASTCDecodeFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceASTCDecodeFeaturesEXT.html)
16160/**
16161Provided by **VK_EXT_astc_decode_mode**.*/
16162///
16163///# Extends
16164///- [`PhysicalDeviceFeatures2`]
16165///- [`DeviceCreateInfo`]
16166#[repr(C)]
16167#[derive(Copy, Clone, Debug)]
16168#[doc(alias = "VkPhysicalDeviceASTCDecodeFeaturesEXT")]
16169pub struct PhysicalDeviceASTCDecodeFeaturesEXT {
16170    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT`.
16171    pub s_type: StructureType,
16172    ///Optional, may be null.
16173    pub p_next: *mut core::ffi::c_void,
16174    pub decode_mode_shared_exponent: u32,
16175}
16176impl Default for PhysicalDeviceASTCDecodeFeaturesEXT {
16177    #[inline]
16178    fn default() -> Self {
16179        Self {
16180            s_type: StructureType::from_raw(1000067001i32),
16181            p_next: core::ptr::null_mut(),
16182            decode_mode_shared_exponent: Default::default(),
16183        }
16184    }
16185}
16186///[`VkPhysicalDeviceTransformFeedbackFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTransformFeedbackFeaturesEXT.html)
16187/**
16188Provided by **VK_EXT_transform_feedback**.*/
16189///
16190///# Extends
16191///- [`PhysicalDeviceFeatures2`]
16192///- [`DeviceCreateInfo`]
16193#[repr(C)]
16194#[derive(Copy, Clone, Debug)]
16195#[doc(alias = "VkPhysicalDeviceTransformFeedbackFeaturesEXT")]
16196pub struct PhysicalDeviceTransformFeedbackFeaturesEXT {
16197    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT`.
16198    pub s_type: StructureType,
16199    ///Optional, may be null.
16200    pub p_next: *mut core::ffi::c_void,
16201    pub transform_feedback: u32,
16202    pub geometry_streams: u32,
16203}
16204impl Default for PhysicalDeviceTransformFeedbackFeaturesEXT {
16205    #[inline]
16206    fn default() -> Self {
16207        Self {
16208            s_type: StructureType::from_raw(1000028000i32),
16209            p_next: core::ptr::null_mut(),
16210            transform_feedback: Default::default(),
16211            geometry_streams: Default::default(),
16212        }
16213    }
16214}
16215///[`VkPhysicalDeviceTransformFeedbackPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTransformFeedbackPropertiesEXT.html)
16216/**
16217Provided by **VK_EXT_transform_feedback**.*/
16218/**
16219**Returned only**, filled by Vulkan, not constructed by the application.*/
16220///
16221///# Extends
16222///- [`PhysicalDeviceProperties2`]
16223#[repr(C)]
16224#[derive(Copy, Clone, Debug)]
16225#[doc(alias = "VkPhysicalDeviceTransformFeedbackPropertiesEXT")]
16226pub struct PhysicalDeviceTransformFeedbackPropertiesEXT {
16227    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT`.
16228    pub s_type: StructureType,
16229    ///Optional, may be null.
16230    pub p_next: *mut core::ffi::c_void,
16231    pub max_transform_feedback_streams: u32,
16232    pub max_transform_feedback_buffers: u32,
16233    pub max_transform_feedback_buffer_size: u64,
16234    pub max_transform_feedback_stream_data_size: u32,
16235    pub max_transform_feedback_buffer_data_size: u32,
16236    pub max_transform_feedback_buffer_data_stride: u32,
16237    pub transform_feedback_queries: u32,
16238    pub transform_feedback_streams_lines_triangles: u32,
16239    pub transform_feedback_rasterization_stream_select: u32,
16240    pub transform_feedback_draw: u32,
16241}
16242impl Default for PhysicalDeviceTransformFeedbackPropertiesEXT {
16243    #[inline]
16244    fn default() -> Self {
16245        Self {
16246            s_type: StructureType::from_raw(1000028001i32),
16247            p_next: core::ptr::null_mut(),
16248            max_transform_feedback_streams: Default::default(),
16249            max_transform_feedback_buffers: Default::default(),
16250            max_transform_feedback_buffer_size: Default::default(),
16251            max_transform_feedback_stream_data_size: Default::default(),
16252            max_transform_feedback_buffer_data_size: Default::default(),
16253            max_transform_feedback_buffer_data_stride: Default::default(),
16254            transform_feedback_queries: Default::default(),
16255            transform_feedback_streams_lines_triangles: Default::default(),
16256            transform_feedback_rasterization_stream_select: Default::default(),
16257            transform_feedback_draw: Default::default(),
16258        }
16259    }
16260}
16261///[`VkPipelineRasterizationStateStreamCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationStateStreamCreateInfoEXT.html)
16262/**
16263Provided by **VK_EXT_transform_feedback**.*/
16264///
16265///# Extends
16266///- [`PipelineRasterizationStateCreateInfo`]
16267#[repr(C)]
16268#[derive(Copy, Clone, Debug)]
16269#[doc(alias = "VkPipelineRasterizationStateStreamCreateInfoEXT")]
16270pub struct PipelineRasterizationStateStreamCreateInfoEXT {
16271    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT`.
16272    pub s_type: StructureType,
16273    ///Optional, may be null.
16274    pub p_next: *const core::ffi::c_void,
16275    pub flags: PipelineRasterizationStateStreamCreateFlagsEXT,
16276    pub rasterization_stream: u32,
16277}
16278impl Default for PipelineRasterizationStateStreamCreateInfoEXT {
16279    #[inline]
16280    fn default() -> Self {
16281        Self {
16282            s_type: StructureType::from_raw(1000028002i32),
16283            p_next: core::ptr::null(),
16284            flags: Default::default(),
16285            rasterization_stream: Default::default(),
16286        }
16287    }
16288}
16289///[`VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.html)
16290/**
16291Provided by **VK_NV_representative_fragment_test**.*/
16292///
16293///# Extends
16294///- [`PhysicalDeviceFeatures2`]
16295///- [`DeviceCreateInfo`]
16296#[repr(C)]
16297#[derive(Copy, Clone, Debug)]
16298#[doc(alias = "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV")]
16299pub struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16300    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV`.
16301    pub s_type: StructureType,
16302    ///Optional, may be null.
16303    pub p_next: *mut core::ffi::c_void,
16304    pub representative_fragment_test: u32,
16305}
16306impl Default for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16307    #[inline]
16308    fn default() -> Self {
16309        Self {
16310            s_type: StructureType::from_raw(1000166000i32),
16311            p_next: core::ptr::null_mut(),
16312            representative_fragment_test: Default::default(),
16313        }
16314    }
16315}
16316///[`VkPipelineRepresentativeFragmentTestStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRepresentativeFragmentTestStateCreateInfoNV.html)
16317/**
16318Provided by **VK_NV_representative_fragment_test**.*/
16319///
16320///# Extends
16321///- [`GraphicsPipelineCreateInfo`]
16322#[repr(C)]
16323#[derive(Copy, Clone, Debug)]
16324#[doc(alias = "VkPipelineRepresentativeFragmentTestStateCreateInfoNV")]
16325pub struct PipelineRepresentativeFragmentTestStateCreateInfoNV {
16326    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV`.
16327    pub s_type: StructureType,
16328    ///Optional, may be null.
16329    pub p_next: *const core::ffi::c_void,
16330    pub representative_fragment_test_enable: u32,
16331}
16332impl Default for PipelineRepresentativeFragmentTestStateCreateInfoNV {
16333    #[inline]
16334    fn default() -> Self {
16335        Self {
16336            s_type: StructureType::from_raw(1000166001i32),
16337            p_next: core::ptr::null(),
16338            representative_fragment_test_enable: Default::default(),
16339        }
16340    }
16341}
16342///[`VkPhysicalDeviceExclusiveScissorFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExclusiveScissorFeaturesNV.html)
16343/**
16344Provided by **VK_NV_scissor_exclusive**.*/
16345///
16346///# Extends
16347///- [`PhysicalDeviceFeatures2`]
16348///- [`DeviceCreateInfo`]
16349#[repr(C)]
16350#[derive(Copy, Clone, Debug)]
16351#[doc(alias = "VkPhysicalDeviceExclusiveScissorFeaturesNV")]
16352pub struct PhysicalDeviceExclusiveScissorFeaturesNV {
16353    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV`.
16354    pub s_type: StructureType,
16355    ///Optional, may be null.
16356    pub p_next: *mut core::ffi::c_void,
16357    pub exclusive_scissor: u32,
16358}
16359impl Default for PhysicalDeviceExclusiveScissorFeaturesNV {
16360    #[inline]
16361    fn default() -> Self {
16362        Self {
16363            s_type: StructureType::from_raw(1000205002i32),
16364            p_next: core::ptr::null_mut(),
16365            exclusive_scissor: Default::default(),
16366        }
16367    }
16368}
16369///[`VkPipelineViewportExclusiveScissorStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportExclusiveScissorStateCreateInfoNV.html)
16370/**
16371Provided by **VK_NV_scissor_exclusive**.*/
16372///
16373///# Extends
16374///- [`PipelineViewportStateCreateInfo`]
16375#[repr(C)]
16376#[derive(Copy, Clone, Debug)]
16377#[doc(alias = "VkPipelineViewportExclusiveScissorStateCreateInfoNV")]
16378pub struct PipelineViewportExclusiveScissorStateCreateInfoNV {
16379    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV`.
16380    pub s_type: StructureType,
16381    ///Optional, may be null.
16382    pub p_next: *const core::ffi::c_void,
16383    ///Length of `p_exclusive_scissors`.
16384    pub exclusive_scissor_count: u32,
16385    pub p_exclusive_scissors: *const Rect2D,
16386}
16387impl Default for PipelineViewportExclusiveScissorStateCreateInfoNV {
16388    #[inline]
16389    fn default() -> Self {
16390        Self {
16391            s_type: StructureType::from_raw(1000205000i32),
16392            p_next: core::ptr::null(),
16393            exclusive_scissor_count: Default::default(),
16394            p_exclusive_scissors: core::ptr::null(),
16395        }
16396    }
16397}
16398///[`VkPhysicalDeviceCornerSampledImageFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCornerSampledImageFeaturesNV.html)
16399/**
16400Provided by **VK_NV_corner_sampled_image**.*/
16401///
16402///# Extends
16403///- [`PhysicalDeviceFeatures2`]
16404///- [`DeviceCreateInfo`]
16405#[repr(C)]
16406#[derive(Copy, Clone, Debug)]
16407#[doc(alias = "VkPhysicalDeviceCornerSampledImageFeaturesNV")]
16408pub struct PhysicalDeviceCornerSampledImageFeaturesNV {
16409    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV`.
16410    pub s_type: StructureType,
16411    ///Optional, may be null.
16412    pub p_next: *mut core::ffi::c_void,
16413    pub corner_sampled_image: u32,
16414}
16415impl Default for PhysicalDeviceCornerSampledImageFeaturesNV {
16416    #[inline]
16417    fn default() -> Self {
16418        Self {
16419            s_type: StructureType::from_raw(1000050000i32),
16420            p_next: core::ptr::null_mut(),
16421            corner_sampled_image: Default::default(),
16422        }
16423    }
16424}
16425///[`VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR.html)
16426/**
16427Provided by **VK_KHR_compute_shader_derivatives**.*/
16428///
16429///# Extends
16430///- [`PhysicalDeviceFeatures2`]
16431///- [`DeviceCreateInfo`]
16432#[repr(C)]
16433#[derive(Copy, Clone, Debug)]
16434#[doc(alias = "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR")]
16435pub struct PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
16436    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR`.
16437    pub s_type: StructureType,
16438    ///Optional, may be null.
16439    pub p_next: *mut core::ffi::c_void,
16440    pub compute_derivative_group_quads: u32,
16441    pub compute_derivative_group_linear: u32,
16442}
16443impl Default for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
16444    #[inline]
16445    fn default() -> Self {
16446        Self {
16447            s_type: StructureType::from_raw(1000201000i32),
16448            p_next: core::ptr::null_mut(),
16449            compute_derivative_group_quads: Default::default(),
16450            compute_derivative_group_linear: Default::default(),
16451        }
16452    }
16453}
16454///[`VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR.html)
16455/**
16456Provided by **VK_KHR_compute_shader_derivatives**.*/
16457/**
16458**Returned only**, filled by Vulkan, not constructed by the application.*/
16459///
16460///# Extends
16461///- [`PhysicalDeviceProperties2`]
16462#[repr(C)]
16463#[derive(Copy, Clone, Debug)]
16464#[doc(alias = "VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR")]
16465pub struct PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
16466    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR`.
16467    pub s_type: StructureType,
16468    ///Optional, may be null.
16469    pub p_next: *mut core::ffi::c_void,
16470    pub mesh_and_task_shader_derivatives: u32,
16471}
16472impl Default for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
16473    #[inline]
16474    fn default() -> Self {
16475        Self {
16476            s_type: StructureType::from_raw(1000511000i32),
16477            p_next: core::ptr::null_mut(),
16478            mesh_and_task_shader_derivatives: Default::default(),
16479        }
16480    }
16481}
16482///[`VkPhysicalDeviceShaderImageFootprintFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderImageFootprintFeaturesNV.html)
16483/**
16484Provided by **VK_NV_shader_image_footprint**.*/
16485///
16486///# Extends
16487///- [`PhysicalDeviceFeatures2`]
16488///- [`DeviceCreateInfo`]
16489#[repr(C)]
16490#[derive(Copy, Clone, Debug)]
16491#[doc(alias = "VkPhysicalDeviceShaderImageFootprintFeaturesNV")]
16492pub struct PhysicalDeviceShaderImageFootprintFeaturesNV {
16493    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV`.
16494    pub s_type: StructureType,
16495    ///Optional, may be null.
16496    pub p_next: *mut core::ffi::c_void,
16497    pub image_footprint: u32,
16498}
16499impl Default for PhysicalDeviceShaderImageFootprintFeaturesNV {
16500    #[inline]
16501    fn default() -> Self {
16502        Self {
16503            s_type: StructureType::from_raw(1000204000i32),
16504            p_next: core::ptr::null_mut(),
16505            image_footprint: Default::default(),
16506        }
16507    }
16508}
16509///[`VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.html)
16510/**
16511Provided by **VK_NV_dedicated_allocation_image_aliasing**.*/
16512///
16513///# Extends
16514///- [`PhysicalDeviceFeatures2`]
16515///- [`DeviceCreateInfo`]
16516#[repr(C)]
16517#[derive(Copy, Clone, Debug)]
16518#[doc(alias = "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV")]
16519pub struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
16520    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV`.
16521    pub s_type: StructureType,
16522    ///Optional, may be null.
16523    pub p_next: *mut core::ffi::c_void,
16524    pub dedicated_allocation_image_aliasing: u32,
16525}
16526impl Default for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
16527    #[inline]
16528    fn default() -> Self {
16529        Self {
16530            s_type: StructureType::from_raw(1000240000i32),
16531            p_next: core::ptr::null_mut(),
16532            dedicated_allocation_image_aliasing: Default::default(),
16533        }
16534    }
16535}
16536///[`VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR.html)
16537/**
16538Provided by **VK_KHR_copy_memory_indirect**.*/
16539///
16540///# Extends
16541///- [`PhysicalDeviceFeatures2`]
16542///- [`DeviceCreateInfo`]
16543#[repr(C)]
16544#[derive(Copy, Clone, Debug)]
16545#[doc(alias = "VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR")]
16546pub struct PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
16547    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR`.
16548    pub s_type: StructureType,
16549    ///Optional, may be null.
16550    pub p_next: *mut core::ffi::c_void,
16551    pub indirect_memory_copy: u32,
16552    pub indirect_memory_to_image_copy: u32,
16553}
16554impl Default for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
16555    #[inline]
16556    fn default() -> Self {
16557        Self {
16558            s_type: StructureType::from_raw(1000549000i32),
16559            p_next: core::ptr::null_mut(),
16560            indirect_memory_copy: Default::default(),
16561            indirect_memory_to_image_copy: Default::default(),
16562        }
16563    }
16564}
16565///[`VkPhysicalDeviceCopyMemoryIndirectFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV.html)
16566/**
16567Provided by **VK_NV_copy_memory_indirect**.*/
16568///
16569///# Extends
16570///- [`PhysicalDeviceFeatures2`]
16571///- [`DeviceCreateInfo`]
16572#[repr(C)]
16573#[derive(Copy, Clone, Debug)]
16574#[doc(alias = "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV")]
16575pub struct PhysicalDeviceCopyMemoryIndirectFeaturesNV {
16576    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV`.
16577    pub s_type: StructureType,
16578    ///Optional, may be null.
16579    pub p_next: *mut core::ffi::c_void,
16580    pub indirect_copy: u32,
16581}
16582impl Default for PhysicalDeviceCopyMemoryIndirectFeaturesNV {
16583    #[inline]
16584    fn default() -> Self {
16585        Self {
16586            s_type: StructureType::from_raw(1000426000i32),
16587            p_next: core::ptr::null_mut(),
16588            indirect_copy: Default::default(),
16589        }
16590    }
16591}
16592///[`VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR.html)
16593/**
16594Provided by **VK_KHR_copy_memory_indirect**.*/
16595/**
16596**Returned only**, filled by Vulkan, not constructed by the application.*/
16597///
16598///# Extends
16599///- [`PhysicalDeviceProperties2`]
16600#[repr(C)]
16601#[derive(Copy, Clone, Debug)]
16602#[doc(alias = "VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR")]
16603pub struct PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
16604    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR`.
16605    pub s_type: StructureType,
16606    ///Optional, may be null.
16607    pub p_next: *mut core::ffi::c_void,
16608    pub supported_queues: QueueFlags,
16609}
16610impl Default for PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
16611    #[inline]
16612    fn default() -> Self {
16613        Self {
16614            s_type: StructureType::from_raw(1000426001i32),
16615            p_next: core::ptr::null_mut(),
16616            supported_queues: Default::default(),
16617        }
16618    }
16619}
16620///[`VkPhysicalDeviceMemoryDecompressionFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryDecompressionFeaturesEXT.html)
16621/**
16622Provided by **VK_EXT_memory_decompression**.*/
16623///
16624///# Extends
16625///- [`PhysicalDeviceFeatures2`]
16626///- [`DeviceCreateInfo`]
16627#[repr(C)]
16628#[derive(Copy, Clone, Debug)]
16629#[doc(alias = "VkPhysicalDeviceMemoryDecompressionFeaturesEXT")]
16630pub struct PhysicalDeviceMemoryDecompressionFeaturesEXT {
16631    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT`.
16632    pub s_type: StructureType,
16633    ///Optional, may be null.
16634    pub p_next: *mut core::ffi::c_void,
16635    pub memory_decompression: u32,
16636}
16637impl Default for PhysicalDeviceMemoryDecompressionFeaturesEXT {
16638    #[inline]
16639    fn default() -> Self {
16640        Self {
16641            s_type: StructureType::from_raw(1000427000i32),
16642            p_next: core::ptr::null_mut(),
16643            memory_decompression: Default::default(),
16644        }
16645    }
16646}
16647///[`VkPhysicalDeviceMemoryDecompressionPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryDecompressionPropertiesEXT.html)
16648/**
16649Provided by **VK_EXT_memory_decompression**.*/
16650/**
16651**Returned only**, filled by Vulkan, not constructed by the application.*/
16652///
16653///# Extends
16654///- [`PhysicalDeviceProperties2`]
16655#[repr(C)]
16656#[derive(Copy, Clone, Debug)]
16657#[doc(alias = "VkPhysicalDeviceMemoryDecompressionPropertiesEXT")]
16658pub struct PhysicalDeviceMemoryDecompressionPropertiesEXT {
16659    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT`.
16660    pub s_type: StructureType,
16661    ///Optional, may be null.
16662    pub p_next: *mut core::ffi::c_void,
16663    pub decompression_methods: MemoryDecompressionMethodFlagsEXT,
16664    pub max_decompression_indirect_count: u64,
16665}
16666impl Default for PhysicalDeviceMemoryDecompressionPropertiesEXT {
16667    #[inline]
16668    fn default() -> Self {
16669        Self {
16670            s_type: StructureType::from_raw(1000427001i32),
16671            p_next: core::ptr::null_mut(),
16672            decompression_methods: Default::default(),
16673            max_decompression_indirect_count: Default::default(),
16674        }
16675    }
16676}
16677///[`VkShadingRatePaletteNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShadingRatePaletteNV.html)
16678/**
16679Provided by **VK_NV_shading_rate_image**.*/
16680#[repr(C)]
16681#[derive(Copy, Clone, Debug)]
16682#[doc(alias = "VkShadingRatePaletteNV")]
16683pub struct ShadingRatePaletteNV {
16684    ///Length of `p_shading_rate_palette_entries`.
16685    pub shading_rate_palette_entry_count: u32,
16686    pub p_shading_rate_palette_entries: *const ShadingRatePaletteEntryNV,
16687}
16688impl Default for ShadingRatePaletteNV {
16689    #[inline]
16690    fn default() -> Self {
16691        unsafe { core::mem::zeroed() }
16692    }
16693}
16694///[`VkPipelineViewportShadingRateImageStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportShadingRateImageStateCreateInfoNV.html)
16695/**
16696Provided by **VK_NV_shading_rate_image**.*/
16697///
16698///# Extends
16699///- [`PipelineViewportStateCreateInfo`]
16700#[repr(C)]
16701#[derive(Copy, Clone, Debug)]
16702#[doc(alias = "VkPipelineViewportShadingRateImageStateCreateInfoNV")]
16703pub struct PipelineViewportShadingRateImageStateCreateInfoNV {
16704    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV`.
16705    pub s_type: StructureType,
16706    ///Optional, may be null.
16707    pub p_next: *const core::ffi::c_void,
16708    pub shading_rate_image_enable: u32,
16709    ///Length of `p_shading_rate_palettes`.
16710    pub viewport_count: u32,
16711    pub p_shading_rate_palettes: *const ShadingRatePaletteNV,
16712}
16713impl Default for PipelineViewportShadingRateImageStateCreateInfoNV {
16714    #[inline]
16715    fn default() -> Self {
16716        Self {
16717            s_type: StructureType::from_raw(1000164000i32),
16718            p_next: core::ptr::null(),
16719            shading_rate_image_enable: Default::default(),
16720            viewport_count: Default::default(),
16721            p_shading_rate_palettes: core::ptr::null(),
16722        }
16723    }
16724}
16725///[`VkPhysicalDeviceShadingRateImageFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShadingRateImageFeaturesNV.html)
16726/**
16727Provided by **VK_NV_shading_rate_image**.*/
16728///
16729///# Extends
16730///- [`PhysicalDeviceFeatures2`]
16731///- [`DeviceCreateInfo`]
16732#[repr(C)]
16733#[derive(Copy, Clone, Debug)]
16734#[doc(alias = "VkPhysicalDeviceShadingRateImageFeaturesNV")]
16735pub struct PhysicalDeviceShadingRateImageFeaturesNV {
16736    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV`.
16737    pub s_type: StructureType,
16738    ///Optional, may be null.
16739    pub p_next: *mut core::ffi::c_void,
16740    pub shading_rate_image: u32,
16741    pub shading_rate_coarse_sample_order: u32,
16742}
16743impl Default for PhysicalDeviceShadingRateImageFeaturesNV {
16744    #[inline]
16745    fn default() -> Self {
16746        Self {
16747            s_type: StructureType::from_raw(1000164001i32),
16748            p_next: core::ptr::null_mut(),
16749            shading_rate_image: Default::default(),
16750            shading_rate_coarse_sample_order: Default::default(),
16751        }
16752    }
16753}
16754///[`VkPhysicalDeviceShadingRateImagePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShadingRateImagePropertiesNV.html)
16755/**
16756Provided by **VK_NV_shading_rate_image**.*/
16757/**
16758**Returned only**, filled by Vulkan, not constructed by the application.*/
16759///
16760///# Extends
16761///- [`PhysicalDeviceProperties2`]
16762#[repr(C)]
16763#[derive(Copy, Clone, Debug)]
16764#[doc(alias = "VkPhysicalDeviceShadingRateImagePropertiesNV")]
16765pub struct PhysicalDeviceShadingRateImagePropertiesNV {
16766    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV`.
16767    pub s_type: StructureType,
16768    ///Optional, may be null.
16769    pub p_next: *mut core::ffi::c_void,
16770    pub shading_rate_texel_size: Extent2D,
16771    pub shading_rate_palette_size: u32,
16772    pub shading_rate_max_coarse_samples: u32,
16773}
16774impl Default for PhysicalDeviceShadingRateImagePropertiesNV {
16775    #[inline]
16776    fn default() -> Self {
16777        Self {
16778            s_type: StructureType::from_raw(1000164002i32),
16779            p_next: core::ptr::null_mut(),
16780            shading_rate_texel_size: Default::default(),
16781            shading_rate_palette_size: Default::default(),
16782            shading_rate_max_coarse_samples: Default::default(),
16783        }
16784    }
16785}
16786///[`VkPhysicalDeviceInvocationMaskFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.html)
16787/**
16788Provided by **VK_HUAWEI_invocation_mask**.*/
16789///
16790///# Extends
16791///- [`PhysicalDeviceFeatures2`]
16792///- [`DeviceCreateInfo`]
16793#[repr(C)]
16794#[derive(Copy, Clone, Debug)]
16795#[doc(alias = "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI")]
16796pub struct PhysicalDeviceInvocationMaskFeaturesHUAWEI {
16797    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI`.
16798    pub s_type: StructureType,
16799    ///Optional, may be null.
16800    pub p_next: *mut core::ffi::c_void,
16801    pub invocation_mask: u32,
16802}
16803impl Default for PhysicalDeviceInvocationMaskFeaturesHUAWEI {
16804    #[inline]
16805    fn default() -> Self {
16806        Self {
16807            s_type: StructureType::from_raw(1000370000i32),
16808            p_next: core::ptr::null_mut(),
16809            invocation_mask: Default::default(),
16810        }
16811    }
16812}
16813///[`VkCoarseSampleLocationNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCoarseSampleLocationNV.html)
16814/**
16815Provided by **VK_NV_shading_rate_image**.*/
16816#[repr(C)]
16817#[derive(Copy, Clone, Debug)]
16818#[doc(alias = "VkCoarseSampleLocationNV")]
16819pub struct CoarseSampleLocationNV {
16820    pub pixel_x: u32,
16821    pub pixel_y: u32,
16822    pub sample: u32,
16823}
16824impl Default for CoarseSampleLocationNV {
16825    #[inline]
16826    fn default() -> Self {
16827        unsafe { core::mem::zeroed() }
16828    }
16829}
16830///[`VkCoarseSampleOrderCustomNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCoarseSampleOrderCustomNV.html)
16831/**
16832Provided by **VK_NV_shading_rate_image**.*/
16833#[repr(C)]
16834#[derive(Copy, Clone, Debug)]
16835#[doc(alias = "VkCoarseSampleOrderCustomNV")]
16836pub struct CoarseSampleOrderCustomNV {
16837    pub shading_rate: ShadingRatePaletteEntryNV,
16838    pub sample_count: u32,
16839    ///Length of `p_sample_locations`.
16840    pub sample_location_count: u32,
16841    pub p_sample_locations: *const CoarseSampleLocationNV,
16842}
16843impl Default for CoarseSampleOrderCustomNV {
16844    #[inline]
16845    fn default() -> Self {
16846        unsafe { core::mem::zeroed() }
16847    }
16848}
16849///[`VkPipelineViewportCoarseSampleOrderStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportCoarseSampleOrderStateCreateInfoNV.html)
16850/**
16851Provided by **VK_NV_shading_rate_image**.*/
16852///
16853///# Extends
16854///- [`PipelineViewportStateCreateInfo`]
16855#[repr(C)]
16856#[derive(Copy, Clone, Debug)]
16857#[doc(alias = "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV")]
16858pub struct PipelineViewportCoarseSampleOrderStateCreateInfoNV {
16859    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV`.
16860    pub s_type: StructureType,
16861    ///Optional, may be null.
16862    pub p_next: *const core::ffi::c_void,
16863    pub sample_order_type: CoarseSampleOrderTypeNV,
16864    ///Length of `p_custom_sample_orders`.
16865    pub custom_sample_order_count: u32,
16866    pub p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
16867}
16868impl Default for PipelineViewportCoarseSampleOrderStateCreateInfoNV {
16869    #[inline]
16870    fn default() -> Self {
16871        Self {
16872            s_type: StructureType::from_raw(1000164005i32),
16873            p_next: core::ptr::null(),
16874            sample_order_type: Default::default(),
16875            custom_sample_order_count: Default::default(),
16876            p_custom_sample_orders: core::ptr::null(),
16877        }
16878    }
16879}
16880///[`VkPhysicalDeviceMeshShaderFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMeshShaderFeaturesNV.html)
16881/**
16882Provided by **VK_NV_mesh_shader**.*/
16883///
16884///# Extends
16885///- [`PhysicalDeviceFeatures2`]
16886///- [`DeviceCreateInfo`]
16887#[repr(C)]
16888#[derive(Copy, Clone, Debug)]
16889#[doc(alias = "VkPhysicalDeviceMeshShaderFeaturesNV")]
16890pub struct PhysicalDeviceMeshShaderFeaturesNV {
16891    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV`.
16892    pub s_type: StructureType,
16893    ///Optional, may be null.
16894    pub p_next: *mut core::ffi::c_void,
16895    pub task_shader: u32,
16896    pub mesh_shader: u32,
16897}
16898impl Default for PhysicalDeviceMeshShaderFeaturesNV {
16899    #[inline]
16900    fn default() -> Self {
16901        Self {
16902            s_type: StructureType::from_raw(1000202000i32),
16903            p_next: core::ptr::null_mut(),
16904            task_shader: Default::default(),
16905            mesh_shader: Default::default(),
16906        }
16907    }
16908}
16909///[`VkPhysicalDeviceMeshShaderPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMeshShaderPropertiesNV.html)
16910/**
16911Provided by **VK_NV_mesh_shader**.*/
16912/**
16913**Returned only**, filled by Vulkan, not constructed by the application.*/
16914///
16915///# Extends
16916///- [`PhysicalDeviceProperties2`]
16917#[repr(C)]
16918#[derive(Copy, Clone, Debug)]
16919#[doc(alias = "VkPhysicalDeviceMeshShaderPropertiesNV")]
16920pub struct PhysicalDeviceMeshShaderPropertiesNV {
16921    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV`.
16922    pub s_type: StructureType,
16923    ///Optional, may be null.
16924    pub p_next: *mut core::ffi::c_void,
16925    pub max_draw_mesh_tasks_count: u32,
16926    pub max_task_work_group_invocations: u32,
16927    pub max_task_work_group_size: [u32; 3usize],
16928    pub max_task_total_memory_size: u32,
16929    pub max_task_output_count: u32,
16930    pub max_mesh_work_group_invocations: u32,
16931    pub max_mesh_work_group_size: [u32; 3usize],
16932    pub max_mesh_total_memory_size: u32,
16933    pub max_mesh_output_vertices: u32,
16934    pub max_mesh_output_primitives: u32,
16935    pub max_mesh_multiview_view_count: u32,
16936    pub mesh_output_per_vertex_granularity: u32,
16937    pub mesh_output_per_primitive_granularity: u32,
16938}
16939impl Default for PhysicalDeviceMeshShaderPropertiesNV {
16940    #[inline]
16941    fn default() -> Self {
16942        Self {
16943            s_type: StructureType::from_raw(1000202001i32),
16944            p_next: core::ptr::null_mut(),
16945            max_draw_mesh_tasks_count: Default::default(),
16946            max_task_work_group_invocations: Default::default(),
16947            max_task_work_group_size: unsafe { core::mem::zeroed() },
16948            max_task_total_memory_size: Default::default(),
16949            max_task_output_count: Default::default(),
16950            max_mesh_work_group_invocations: Default::default(),
16951            max_mesh_work_group_size: unsafe { core::mem::zeroed() },
16952            max_mesh_total_memory_size: Default::default(),
16953            max_mesh_output_vertices: Default::default(),
16954            max_mesh_output_primitives: Default::default(),
16955            max_mesh_multiview_view_count: Default::default(),
16956            mesh_output_per_vertex_granularity: Default::default(),
16957            mesh_output_per_primitive_granularity: Default::default(),
16958        }
16959    }
16960}
16961///[`VkDrawMeshTasksIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawMeshTasksIndirectCommandNV.html)
16962/**
16963Provided by **VK_NV_mesh_shader**.*/
16964#[repr(C)]
16965#[derive(Copy, Clone, Debug)]
16966#[doc(alias = "VkDrawMeshTasksIndirectCommandNV")]
16967pub struct DrawMeshTasksIndirectCommandNV {
16968    pub task_count: u32,
16969    pub first_task: u32,
16970}
16971impl Default for DrawMeshTasksIndirectCommandNV {
16972    #[inline]
16973    fn default() -> Self {
16974        unsafe { core::mem::zeroed() }
16975    }
16976}
16977///[`VkPhysicalDeviceMeshShaderFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMeshShaderFeaturesEXT.html)
16978/**
16979Provided by **VK_EXT_mesh_shader**.*/
16980///
16981///# Extends
16982///- [`PhysicalDeviceFeatures2`]
16983///- [`DeviceCreateInfo`]
16984#[repr(C)]
16985#[derive(Copy, Clone, Debug)]
16986#[doc(alias = "VkPhysicalDeviceMeshShaderFeaturesEXT")]
16987pub struct PhysicalDeviceMeshShaderFeaturesEXT {
16988    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT`.
16989    pub s_type: StructureType,
16990    ///Optional, may be null.
16991    pub p_next: *mut core::ffi::c_void,
16992    pub task_shader: u32,
16993    pub mesh_shader: u32,
16994    pub multiview_mesh_shader: u32,
16995    pub primitive_fragment_shading_rate_mesh_shader: u32,
16996    pub mesh_shader_queries: u32,
16997}
16998impl Default for PhysicalDeviceMeshShaderFeaturesEXT {
16999    #[inline]
17000    fn default() -> Self {
17001        Self {
17002            s_type: StructureType::from_raw(1000328000i32),
17003            p_next: core::ptr::null_mut(),
17004            task_shader: Default::default(),
17005            mesh_shader: Default::default(),
17006            multiview_mesh_shader: Default::default(),
17007            primitive_fragment_shading_rate_mesh_shader: Default::default(),
17008            mesh_shader_queries: Default::default(),
17009        }
17010    }
17011}
17012///[`VkPhysicalDeviceMeshShaderPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMeshShaderPropertiesEXT.html)
17013/**
17014Provided by **VK_EXT_mesh_shader**.*/
17015/**
17016**Returned only**, filled by Vulkan, not constructed by the application.*/
17017///
17018///# Extends
17019///- [`PhysicalDeviceProperties2`]
17020#[repr(C)]
17021#[derive(Copy, Clone, Debug)]
17022#[doc(alias = "VkPhysicalDeviceMeshShaderPropertiesEXT")]
17023pub struct PhysicalDeviceMeshShaderPropertiesEXT {
17024    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT`.
17025    pub s_type: StructureType,
17026    ///Optional, may be null.
17027    pub p_next: *mut core::ffi::c_void,
17028    pub max_task_work_group_total_count: u32,
17029    pub max_task_work_group_count: [u32; 3usize],
17030    pub max_task_work_group_invocations: u32,
17031    pub max_task_work_group_size: [u32; 3usize],
17032    pub max_task_payload_size: u32,
17033    pub max_task_shared_memory_size: u32,
17034    pub max_task_payload_and_shared_memory_size: u32,
17035    pub max_mesh_work_group_total_count: u32,
17036    pub max_mesh_work_group_count: [u32; 3usize],
17037    pub max_mesh_work_group_invocations: u32,
17038    pub max_mesh_work_group_size: [u32; 3usize],
17039    pub max_mesh_shared_memory_size: u32,
17040    pub max_mesh_payload_and_shared_memory_size: u32,
17041    pub max_mesh_output_memory_size: u32,
17042    pub max_mesh_payload_and_output_memory_size: u32,
17043    pub max_mesh_output_components: u32,
17044    pub max_mesh_output_vertices: u32,
17045    pub max_mesh_output_primitives: u32,
17046    pub max_mesh_output_layers: u32,
17047    pub max_mesh_multiview_view_count: u32,
17048    pub mesh_output_per_vertex_granularity: u32,
17049    pub mesh_output_per_primitive_granularity: u32,
17050    pub max_preferred_task_work_group_invocations: u32,
17051    pub max_preferred_mesh_work_group_invocations: u32,
17052    pub prefers_local_invocation_vertex_output: u32,
17053    pub prefers_local_invocation_primitive_output: u32,
17054    pub prefers_compact_vertex_output: u32,
17055    pub prefers_compact_primitive_output: u32,
17056}
17057impl Default for PhysicalDeviceMeshShaderPropertiesEXT {
17058    #[inline]
17059    fn default() -> Self {
17060        Self {
17061            s_type: StructureType::from_raw(1000328001i32),
17062            p_next: core::ptr::null_mut(),
17063            max_task_work_group_total_count: Default::default(),
17064            max_task_work_group_count: unsafe { core::mem::zeroed() },
17065            max_task_work_group_invocations: Default::default(),
17066            max_task_work_group_size: unsafe { core::mem::zeroed() },
17067            max_task_payload_size: Default::default(),
17068            max_task_shared_memory_size: Default::default(),
17069            max_task_payload_and_shared_memory_size: Default::default(),
17070            max_mesh_work_group_total_count: Default::default(),
17071            max_mesh_work_group_count: unsafe { core::mem::zeroed() },
17072            max_mesh_work_group_invocations: Default::default(),
17073            max_mesh_work_group_size: unsafe { core::mem::zeroed() },
17074            max_mesh_shared_memory_size: Default::default(),
17075            max_mesh_payload_and_shared_memory_size: Default::default(),
17076            max_mesh_output_memory_size: Default::default(),
17077            max_mesh_payload_and_output_memory_size: Default::default(),
17078            max_mesh_output_components: Default::default(),
17079            max_mesh_output_vertices: Default::default(),
17080            max_mesh_output_primitives: Default::default(),
17081            max_mesh_output_layers: Default::default(),
17082            max_mesh_multiview_view_count: Default::default(),
17083            mesh_output_per_vertex_granularity: Default::default(),
17084            mesh_output_per_primitive_granularity: Default::default(),
17085            max_preferred_task_work_group_invocations: Default::default(),
17086            max_preferred_mesh_work_group_invocations: Default::default(),
17087            prefers_local_invocation_vertex_output: Default::default(),
17088            prefers_local_invocation_primitive_output: Default::default(),
17089            prefers_compact_vertex_output: Default::default(),
17090            prefers_compact_primitive_output: Default::default(),
17091        }
17092    }
17093}
17094///[`VkDrawMeshTasksIndirectCommandEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawMeshTasksIndirectCommandEXT.html)
17095/**
17096Provided by **VK_EXT_mesh_shader**.*/
17097#[repr(C)]
17098#[derive(Copy, Clone, Debug)]
17099#[doc(alias = "VkDrawMeshTasksIndirectCommandEXT")]
17100pub struct DrawMeshTasksIndirectCommandEXT {
17101    pub group_count_x: u32,
17102    pub group_count_y: u32,
17103    pub group_count_z: u32,
17104}
17105impl Default for DrawMeshTasksIndirectCommandEXT {
17106    #[inline]
17107    fn default() -> Self {
17108        unsafe { core::mem::zeroed() }
17109    }
17110}
17111///[`VkRayTracingShaderGroupCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingShaderGroupCreateInfoNV.html)
17112/**
17113Provided by **VK_NV_ray_tracing**.*/
17114#[repr(C)]
17115#[derive(Copy, Clone, Debug)]
17116#[doc(alias = "VkRayTracingShaderGroupCreateInfoNV")]
17117pub struct RayTracingShaderGroupCreateInfoNV {
17118    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV`.
17119    pub s_type: StructureType,
17120    ///Optional, may be null.
17121    pub p_next: *const core::ffi::c_void,
17122    pub r#type: RayTracingShaderGroupTypeKHR,
17123    pub general_shader: u32,
17124    pub closest_hit_shader: u32,
17125    pub any_hit_shader: u32,
17126    pub intersection_shader: u32,
17127}
17128impl Default for RayTracingShaderGroupCreateInfoNV {
17129    #[inline]
17130    fn default() -> Self {
17131        Self {
17132            s_type: StructureType::from_raw(1000165011i32),
17133            p_next: core::ptr::null(),
17134            r#type: Default::default(),
17135            general_shader: Default::default(),
17136            closest_hit_shader: Default::default(),
17137            any_hit_shader: Default::default(),
17138            intersection_shader: Default::default(),
17139        }
17140    }
17141}
17142///[`VkRayTracingShaderGroupCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingShaderGroupCreateInfoKHR.html)
17143/**
17144Provided by **VK_KHR_ray_tracing_pipeline**.*/
17145#[repr(C)]
17146#[derive(Copy, Clone, Debug)]
17147#[doc(alias = "VkRayTracingShaderGroupCreateInfoKHR")]
17148pub struct RayTracingShaderGroupCreateInfoKHR {
17149    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR`.
17150    pub s_type: StructureType,
17151    ///Optional, may be null.
17152    pub p_next: *const core::ffi::c_void,
17153    pub r#type: RayTracingShaderGroupTypeKHR,
17154    pub general_shader: u32,
17155    pub closest_hit_shader: u32,
17156    pub any_hit_shader: u32,
17157    pub intersection_shader: u32,
17158    ///Optional, may be null.
17159    pub p_shader_group_capture_replay_handle: *const core::ffi::c_void,
17160}
17161impl Default for RayTracingShaderGroupCreateInfoKHR {
17162    #[inline]
17163    fn default() -> Self {
17164        Self {
17165            s_type: StructureType::from_raw(1000150016i32),
17166            p_next: core::ptr::null(),
17167            r#type: Default::default(),
17168            general_shader: Default::default(),
17169            closest_hit_shader: Default::default(),
17170            any_hit_shader: Default::default(),
17171            intersection_shader: Default::default(),
17172            p_shader_group_capture_replay_handle: core::ptr::null(),
17173        }
17174    }
17175}
17176///[`VkRayTracingPipelineCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingPipelineCreateInfoNV.html)
17177/**
17178Provided by **VK_NV_ray_tracing**.*/
17179///
17180///# Extended By
17181///- [`PipelineCreateFlags2CreateInfo`]
17182///- [`PipelineCreationFeedbackCreateInfo`]
17183///- [`PipelineOfflineCreateInfo`]
17184#[repr(C)]
17185#[derive(Copy, Clone, Debug)]
17186#[doc(alias = "VkRayTracingPipelineCreateInfoNV")]
17187pub struct RayTracingPipelineCreateInfoNV {
17188    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV`.
17189    pub s_type: StructureType,
17190    ///Optional, may be null.
17191    pub p_next: *const core::ffi::c_void,
17192    pub flags: PipelineCreateFlags,
17193    ///Length of `p_stages`.
17194    pub stage_count: u32,
17195    pub p_stages: *const PipelineShaderStageCreateInfo,
17196    ///Length of `p_groups`.
17197    pub group_count: u32,
17198    pub p_groups: *const RayTracingShaderGroupCreateInfoNV,
17199    pub max_recursion_depth: u32,
17200    pub layout: PipelineLayout,
17201    pub base_pipeline_handle: Pipeline,
17202    pub base_pipeline_index: i32,
17203}
17204impl Default for RayTracingPipelineCreateInfoNV {
17205    #[inline]
17206    fn default() -> Self {
17207        Self {
17208            s_type: StructureType::from_raw(1000165000i32),
17209            p_next: core::ptr::null(),
17210            flags: Default::default(),
17211            stage_count: Default::default(),
17212            p_stages: core::ptr::null(),
17213            group_count: Default::default(),
17214            p_groups: core::ptr::null(),
17215            max_recursion_depth: Default::default(),
17216            layout: Default::default(),
17217            base_pipeline_handle: Default::default(),
17218            base_pipeline_index: Default::default(),
17219        }
17220    }
17221}
17222///[`VkRayTracingPipelineCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingPipelineCreateInfoKHR.html)
17223/**
17224Provided by **VK_KHR_ray_tracing_pipeline**.*/
17225///
17226///# Extended By
17227///- [`PipelineBinaryInfoKHR`]
17228///- [`PipelineCreateFlags2CreateInfo`]
17229///- [`PipelineCreationFeedbackCreateInfo`]
17230///- [`PipelineOfflineCreateInfo`]
17231///- [`PipelineRobustnessCreateInfo`]
17232///- [`RayTracingPipelineClusterAccelerationStructureCreateInfoNV`]
17233#[repr(C)]
17234#[derive(Copy, Clone, Debug)]
17235#[doc(alias = "VkRayTracingPipelineCreateInfoKHR")]
17236pub struct RayTracingPipelineCreateInfoKHR {
17237    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR`.
17238    pub s_type: StructureType,
17239    ///Optional, may be null.
17240    pub p_next: *const core::ffi::c_void,
17241    pub flags: PipelineCreateFlags,
17242    ///Length of `p_stages`.
17243    pub stage_count: u32,
17244    pub p_stages: *const PipelineShaderStageCreateInfo,
17245    ///Length of `p_groups`.
17246    pub group_count: u32,
17247    pub p_groups: *const RayTracingShaderGroupCreateInfoKHR,
17248    pub max_pipeline_ray_recursion_depth: u32,
17249    ///Optional, may be null.
17250    pub p_library_info: *const PipelineLibraryCreateInfoKHR,
17251    ///Optional, may be null.
17252    pub p_library_interface: *const RayTracingPipelineInterfaceCreateInfoKHR,
17253    ///Optional, may be null.
17254    pub p_dynamic_state: *const PipelineDynamicStateCreateInfo,
17255    pub layout: PipelineLayout,
17256    pub base_pipeline_handle: Pipeline,
17257    pub base_pipeline_index: i32,
17258}
17259impl Default for RayTracingPipelineCreateInfoKHR {
17260    #[inline]
17261    fn default() -> Self {
17262        Self {
17263            s_type: StructureType::from_raw(1000150015i32),
17264            p_next: core::ptr::null(),
17265            flags: Default::default(),
17266            stage_count: Default::default(),
17267            p_stages: core::ptr::null(),
17268            group_count: Default::default(),
17269            p_groups: core::ptr::null(),
17270            max_pipeline_ray_recursion_depth: Default::default(),
17271            p_library_info: core::ptr::null(),
17272            p_library_interface: core::ptr::null(),
17273            p_dynamic_state: core::ptr::null(),
17274            layout: Default::default(),
17275            base_pipeline_handle: Default::default(),
17276            base_pipeline_index: Default::default(),
17277        }
17278    }
17279}
17280///[`VkGeometryTrianglesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeometryTrianglesNV.html)
17281/**
17282Provided by **VK_NV_ray_tracing**.*/
17283#[repr(C)]
17284#[derive(Copy, Clone, Debug)]
17285#[doc(alias = "VkGeometryTrianglesNV")]
17286pub struct GeometryTrianglesNV {
17287    ///Must be `VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV`.
17288    pub s_type: StructureType,
17289    ///Optional, may be null.
17290    pub p_next: *const core::ffi::c_void,
17291    pub vertex_data: Buffer,
17292    pub vertex_offset: u64,
17293    pub vertex_count: u32,
17294    pub vertex_stride: u64,
17295    pub vertex_format: Format,
17296    pub index_data: Buffer,
17297    pub index_offset: u64,
17298    pub index_count: u32,
17299    pub index_type: IndexType,
17300    pub transform_data: Buffer,
17301    pub transform_offset: u64,
17302}
17303impl Default for GeometryTrianglesNV {
17304    #[inline]
17305    fn default() -> Self {
17306        Self {
17307            s_type: StructureType::from_raw(1000165004i32),
17308            p_next: core::ptr::null(),
17309            vertex_data: Default::default(),
17310            vertex_offset: Default::default(),
17311            vertex_count: Default::default(),
17312            vertex_stride: Default::default(),
17313            vertex_format: Default::default(),
17314            index_data: Default::default(),
17315            index_offset: Default::default(),
17316            index_count: Default::default(),
17317            index_type: Default::default(),
17318            transform_data: Default::default(),
17319            transform_offset: Default::default(),
17320        }
17321    }
17322}
17323///[`VkGeometryAABBNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeometryAABBNV.html)
17324/**
17325Provided by **VK_NV_ray_tracing**.*/
17326#[repr(C)]
17327#[derive(Copy, Clone, Debug)]
17328#[doc(alias = "VkGeometryAABBNV")]
17329pub struct GeometryAABBNV {
17330    ///Must be `VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV`.
17331    pub s_type: StructureType,
17332    ///Optional, may be null.
17333    pub p_next: *const core::ffi::c_void,
17334    pub aabb_data: Buffer,
17335    pub num_aab_bs: u32,
17336    pub stride: u32,
17337    pub offset: u64,
17338}
17339impl Default for GeometryAABBNV {
17340    #[inline]
17341    fn default() -> Self {
17342        Self {
17343            s_type: StructureType::from_raw(1000165005i32),
17344            p_next: core::ptr::null(),
17345            aabb_data: Default::default(),
17346            num_aab_bs: Default::default(),
17347            stride: Default::default(),
17348            offset: Default::default(),
17349        }
17350    }
17351}
17352///[`VkGeometryDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeometryDataNV.html)
17353/**
17354Provided by **VK_NV_ray_tracing**.*/
17355#[repr(C)]
17356#[derive(Copy, Clone, Debug)]
17357#[doc(alias = "VkGeometryDataNV")]
17358pub struct GeometryDataNV {
17359    pub triangles: GeometryTrianglesNV,
17360    pub aabbs: GeometryAABBNV,
17361}
17362impl Default for GeometryDataNV {
17363    #[inline]
17364    fn default() -> Self {
17365        unsafe { core::mem::zeroed() }
17366    }
17367}
17368///[`VkGeometryNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeometryNV.html)
17369/**
17370Provided by **VK_NV_ray_tracing**.*/
17371#[repr(C)]
17372#[derive(Copy, Clone, Debug)]
17373#[doc(alias = "VkGeometryNV")]
17374pub struct GeometryNV {
17375    ///Must be `VK_STRUCTURE_TYPE_GEOMETRY_NV`.
17376    pub s_type: StructureType,
17377    ///Optional, may be null.
17378    pub p_next: *const core::ffi::c_void,
17379    pub geometry_type: GeometryTypeKHR,
17380    pub geometry: GeometryDataNV,
17381    pub flags: GeometryFlagsKHR,
17382}
17383impl Default for GeometryNV {
17384    #[inline]
17385    fn default() -> Self {
17386        Self {
17387            s_type: StructureType::from_raw(1000165003i32),
17388            p_next: core::ptr::null(),
17389            geometry_type: Default::default(),
17390            geometry: Default::default(),
17391            flags: Default::default(),
17392        }
17393    }
17394}
17395///[`VkAccelerationStructureInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureInfoNV.html)
17396/**
17397Provided by **VK_NV_ray_tracing**.*/
17398#[repr(C)]
17399#[derive(Copy, Clone, Debug)]
17400#[doc(alias = "VkAccelerationStructureInfoNV")]
17401pub struct AccelerationStructureInfoNV {
17402    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV`.
17403    pub s_type: StructureType,
17404    ///Optional, may be null.
17405    pub p_next: *const core::ffi::c_void,
17406    pub r#type: AccelerationStructureTypeNV,
17407    pub flags: BuildAccelerationStructureFlagsNV,
17408    pub instance_count: u32,
17409    ///Length of `p_geometries`.
17410    pub geometry_count: u32,
17411    pub p_geometries: *const GeometryNV,
17412}
17413impl Default for AccelerationStructureInfoNV {
17414    #[inline]
17415    fn default() -> Self {
17416        Self {
17417            s_type: StructureType::from_raw(1000165012i32),
17418            p_next: core::ptr::null(),
17419            r#type: Default::default(),
17420            flags: Default::default(),
17421            instance_count: Default::default(),
17422            geometry_count: Default::default(),
17423            p_geometries: core::ptr::null(),
17424        }
17425    }
17426}
17427///[`VkAccelerationStructureCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureCreateInfoNV.html)
17428/**
17429Provided by **VK_NV_ray_tracing**.*/
17430///
17431///# Extended By
17432///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
17433#[repr(C)]
17434#[derive(Copy, Clone, Debug)]
17435#[doc(alias = "VkAccelerationStructureCreateInfoNV")]
17436pub struct AccelerationStructureCreateInfoNV {
17437    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV`.
17438    pub s_type: StructureType,
17439    ///Optional, may be null.
17440    pub p_next: *const core::ffi::c_void,
17441    pub compacted_size: u64,
17442    pub info: AccelerationStructureInfoNV,
17443}
17444impl Default for AccelerationStructureCreateInfoNV {
17445    #[inline]
17446    fn default() -> Self {
17447        Self {
17448            s_type: StructureType::from_raw(1000165001i32),
17449            p_next: core::ptr::null(),
17450            compacted_size: Default::default(),
17451            info: Default::default(),
17452        }
17453    }
17454}
17455///[`VkBindAccelerationStructureMemoryInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindAccelerationStructureMemoryInfoNV.html)
17456/**
17457Provided by **VK_NV_ray_tracing**.*/
17458#[repr(C)]
17459#[derive(Copy, Clone, Debug)]
17460#[doc(alias = "VkBindAccelerationStructureMemoryInfoNV")]
17461pub struct BindAccelerationStructureMemoryInfoNV {
17462    ///Must be `VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV`.
17463    pub s_type: StructureType,
17464    ///Optional, may be null.
17465    pub p_next: *const core::ffi::c_void,
17466    pub acceleration_structure: AccelerationStructureNV,
17467    pub memory: DeviceMemory,
17468    pub memory_offset: u64,
17469    ///Length of `p_device_indices`.
17470    pub device_index_count: u32,
17471    pub p_device_indices: *const u32,
17472}
17473impl Default for BindAccelerationStructureMemoryInfoNV {
17474    #[inline]
17475    fn default() -> Self {
17476        Self {
17477            s_type: StructureType::from_raw(1000165006i32),
17478            p_next: core::ptr::null(),
17479            acceleration_structure: Default::default(),
17480            memory: Default::default(),
17481            memory_offset: Default::default(),
17482            device_index_count: Default::default(),
17483            p_device_indices: core::ptr::null(),
17484        }
17485    }
17486}
17487///[`VkWriteDescriptorSetAccelerationStructureKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetAccelerationStructureKHR.html)
17488/**
17489Provided by **VK_KHR_acceleration_structure**.*/
17490///
17491///# Extends
17492///- [`WriteDescriptorSet`]
17493#[repr(C)]
17494#[derive(Copy, Clone, Debug)]
17495#[doc(alias = "VkWriteDescriptorSetAccelerationStructureKHR")]
17496pub struct WriteDescriptorSetAccelerationStructureKHR {
17497    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR`.
17498    pub s_type: StructureType,
17499    ///Optional, may be null.
17500    pub p_next: *const core::ffi::c_void,
17501    ///Length of `p_acceleration_structures`.
17502    pub acceleration_structure_count: u32,
17503    ///Optional, may be null.
17504    pub p_acceleration_structures: *const AccelerationStructureKHR,
17505}
17506impl Default for WriteDescriptorSetAccelerationStructureKHR {
17507    #[inline]
17508    fn default() -> Self {
17509        Self {
17510            s_type: StructureType::from_raw(1000150007i32),
17511            p_next: core::ptr::null(),
17512            acceleration_structure_count: Default::default(),
17513            p_acceleration_structures: core::ptr::null(),
17514        }
17515    }
17516}
17517///[`VkWriteDescriptorSetAccelerationStructureNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetAccelerationStructureNV.html)
17518/**
17519Provided by **VK_NV_ray_tracing**.*/
17520///
17521///# Extends
17522///- [`WriteDescriptorSet`]
17523#[repr(C)]
17524#[derive(Copy, Clone, Debug)]
17525#[doc(alias = "VkWriteDescriptorSetAccelerationStructureNV")]
17526pub struct WriteDescriptorSetAccelerationStructureNV {
17527    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV`.
17528    pub s_type: StructureType,
17529    ///Optional, may be null.
17530    pub p_next: *const core::ffi::c_void,
17531    ///Length of `p_acceleration_structures`.
17532    pub acceleration_structure_count: u32,
17533    ///Optional, may be null.
17534    pub p_acceleration_structures: *const AccelerationStructureNV,
17535}
17536impl Default for WriteDescriptorSetAccelerationStructureNV {
17537    #[inline]
17538    fn default() -> Self {
17539        Self {
17540            s_type: StructureType::from_raw(1000165007i32),
17541            p_next: core::ptr::null(),
17542            acceleration_structure_count: Default::default(),
17543            p_acceleration_structures: core::ptr::null(),
17544        }
17545    }
17546}
17547///[`VkAccelerationStructureMemoryRequirementsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMemoryRequirementsInfoNV.html)
17548/**
17549Provided by **VK_NV_ray_tracing**.*/
17550#[repr(C)]
17551#[derive(Copy, Clone, Debug)]
17552#[doc(alias = "VkAccelerationStructureMemoryRequirementsInfoNV")]
17553pub struct AccelerationStructureMemoryRequirementsInfoNV {
17554    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV`.
17555    pub s_type: StructureType,
17556    ///Optional, may be null.
17557    pub p_next: *const core::ffi::c_void,
17558    pub r#type: AccelerationStructureMemoryRequirementsTypeNV,
17559    pub acceleration_structure: AccelerationStructureNV,
17560}
17561impl Default for AccelerationStructureMemoryRequirementsInfoNV {
17562    #[inline]
17563    fn default() -> Self {
17564        Self {
17565            s_type: StructureType::from_raw(1000165008i32),
17566            p_next: core::ptr::null(),
17567            r#type: Default::default(),
17568            acceleration_structure: Default::default(),
17569        }
17570    }
17571}
17572///[`VkPhysicalDeviceAccelerationStructureFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAccelerationStructureFeaturesKHR.html)
17573/**
17574Provided by **VK_KHR_acceleration_structure**.*/
17575///
17576///# Extends
17577///- [`PhysicalDeviceFeatures2`]
17578///- [`DeviceCreateInfo`]
17579#[repr(C)]
17580#[derive(Copy, Clone, Debug)]
17581#[doc(alias = "VkPhysicalDeviceAccelerationStructureFeaturesKHR")]
17582pub struct PhysicalDeviceAccelerationStructureFeaturesKHR {
17583    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR`.
17584    pub s_type: StructureType,
17585    ///Optional, may be null.
17586    pub p_next: *mut core::ffi::c_void,
17587    pub acceleration_structure: u32,
17588    pub acceleration_structure_capture_replay: u32,
17589    pub acceleration_structure_indirect_build: u32,
17590    pub acceleration_structure_host_commands: u32,
17591    pub descriptor_binding_acceleration_structure_update_after_bind: u32,
17592}
17593impl Default for PhysicalDeviceAccelerationStructureFeaturesKHR {
17594    #[inline]
17595    fn default() -> Self {
17596        Self {
17597            s_type: StructureType::from_raw(1000150013i32),
17598            p_next: core::ptr::null_mut(),
17599            acceleration_structure: Default::default(),
17600            acceleration_structure_capture_replay: Default::default(),
17601            acceleration_structure_indirect_build: Default::default(),
17602            acceleration_structure_host_commands: Default::default(),
17603            descriptor_binding_acceleration_structure_update_after_bind: Default::default(),
17604        }
17605    }
17606}
17607///[`VkPhysicalDeviceRayTracingPipelineFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.html)
17608/**
17609Provided by **VK_KHR_ray_tracing_pipeline**.*/
17610///
17611///# Extends
17612///- [`PhysicalDeviceFeatures2`]
17613///- [`DeviceCreateInfo`]
17614#[repr(C)]
17615#[derive(Copy, Clone, Debug)]
17616#[doc(alias = "VkPhysicalDeviceRayTracingPipelineFeaturesKHR")]
17617pub struct PhysicalDeviceRayTracingPipelineFeaturesKHR {
17618    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR`.
17619    pub s_type: StructureType,
17620    ///Optional, may be null.
17621    pub p_next: *mut core::ffi::c_void,
17622    pub ray_tracing_pipeline: u32,
17623    pub ray_tracing_pipeline_shader_group_handle_capture_replay: u32,
17624    pub ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: u32,
17625    pub ray_tracing_pipeline_trace_rays_indirect: u32,
17626    pub ray_traversal_primitive_culling: u32,
17627}
17628impl Default for PhysicalDeviceRayTracingPipelineFeaturesKHR {
17629    #[inline]
17630    fn default() -> Self {
17631        Self {
17632            s_type: StructureType::from_raw(1000347000i32),
17633            p_next: core::ptr::null_mut(),
17634            ray_tracing_pipeline: Default::default(),
17635            ray_tracing_pipeline_shader_group_handle_capture_replay: Default::default(),
17636            ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: Default::default(),
17637            ray_tracing_pipeline_trace_rays_indirect: Default::default(),
17638            ray_traversal_primitive_culling: Default::default(),
17639        }
17640    }
17641}
17642///[`VkPhysicalDeviceRayQueryFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayQueryFeaturesKHR.html)
17643/**
17644Provided by **VK_KHR_ray_query**.*/
17645///
17646///# Extends
17647///- [`PhysicalDeviceFeatures2`]
17648///- [`DeviceCreateInfo`]
17649#[repr(C)]
17650#[derive(Copy, Clone, Debug)]
17651#[doc(alias = "VkPhysicalDeviceRayQueryFeaturesKHR")]
17652pub struct PhysicalDeviceRayQueryFeaturesKHR {
17653    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR`.
17654    pub s_type: StructureType,
17655    ///Optional, may be null.
17656    pub p_next: *mut core::ffi::c_void,
17657    pub ray_query: u32,
17658}
17659impl Default for PhysicalDeviceRayQueryFeaturesKHR {
17660    #[inline]
17661    fn default() -> Self {
17662        Self {
17663            s_type: StructureType::from_raw(1000348013i32),
17664            p_next: core::ptr::null_mut(),
17665            ray_query: Default::default(),
17666        }
17667    }
17668}
17669///[`VkPhysicalDeviceAccelerationStructurePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAccelerationStructurePropertiesKHR.html)
17670/**
17671Provided by **VK_KHR_acceleration_structure**.*/
17672/**
17673**Returned only**, filled by Vulkan, not constructed by the application.*/
17674///
17675///# Extends
17676///- [`PhysicalDeviceProperties2`]
17677#[repr(C)]
17678#[derive(Copy, Clone, Debug)]
17679#[doc(alias = "VkPhysicalDeviceAccelerationStructurePropertiesKHR")]
17680pub struct PhysicalDeviceAccelerationStructurePropertiesKHR {
17681    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR`.
17682    pub s_type: StructureType,
17683    ///Optional, may be null.
17684    pub p_next: *mut core::ffi::c_void,
17685    pub max_geometry_count: u64,
17686    pub max_instance_count: u64,
17687    pub max_primitive_count: u64,
17688    pub max_per_stage_descriptor_acceleration_structures: u32,
17689    pub max_per_stage_descriptor_update_after_bind_acceleration_structures: u32,
17690    pub max_descriptor_set_acceleration_structures: u32,
17691    pub max_descriptor_set_update_after_bind_acceleration_structures: u32,
17692    pub min_acceleration_structure_scratch_offset_alignment: u32,
17693}
17694impl Default for PhysicalDeviceAccelerationStructurePropertiesKHR {
17695    #[inline]
17696    fn default() -> Self {
17697        Self {
17698            s_type: StructureType::from_raw(1000150014i32),
17699            p_next: core::ptr::null_mut(),
17700            max_geometry_count: Default::default(),
17701            max_instance_count: Default::default(),
17702            max_primitive_count: Default::default(),
17703            max_per_stage_descriptor_acceleration_structures: Default::default(),
17704            max_per_stage_descriptor_update_after_bind_acceleration_structures: Default::default(),
17705            max_descriptor_set_acceleration_structures: Default::default(),
17706            max_descriptor_set_update_after_bind_acceleration_structures: Default::default(),
17707            min_acceleration_structure_scratch_offset_alignment: Default::default(),
17708        }
17709    }
17710}
17711///[`VkPhysicalDeviceRayTracingPipelinePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingPipelinePropertiesKHR.html)
17712/**
17713Provided by **VK_KHR_ray_tracing_pipeline**.*/
17714/**
17715**Returned only**, filled by Vulkan, not constructed by the application.*/
17716///
17717///# Extends
17718///- [`PhysicalDeviceProperties2`]
17719#[repr(C)]
17720#[derive(Copy, Clone, Debug)]
17721#[doc(alias = "VkPhysicalDeviceRayTracingPipelinePropertiesKHR")]
17722pub struct PhysicalDeviceRayTracingPipelinePropertiesKHR {
17723    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR`.
17724    pub s_type: StructureType,
17725    ///Optional, may be null.
17726    pub p_next: *mut core::ffi::c_void,
17727    pub shader_group_handle_size: u32,
17728    pub max_ray_recursion_depth: u32,
17729    pub max_shader_group_stride: u32,
17730    pub shader_group_base_alignment: u32,
17731    pub shader_group_handle_capture_replay_size: u32,
17732    pub max_ray_dispatch_invocation_count: u32,
17733    pub shader_group_handle_alignment: u32,
17734    pub max_ray_hit_attribute_size: u32,
17735}
17736impl Default for PhysicalDeviceRayTracingPipelinePropertiesKHR {
17737    #[inline]
17738    fn default() -> Self {
17739        Self {
17740            s_type: StructureType::from_raw(1000347001i32),
17741            p_next: core::ptr::null_mut(),
17742            shader_group_handle_size: Default::default(),
17743            max_ray_recursion_depth: Default::default(),
17744            max_shader_group_stride: Default::default(),
17745            shader_group_base_alignment: Default::default(),
17746            shader_group_handle_capture_replay_size: Default::default(),
17747            max_ray_dispatch_invocation_count: Default::default(),
17748            shader_group_handle_alignment: Default::default(),
17749            max_ray_hit_attribute_size: Default::default(),
17750        }
17751    }
17752}
17753///[`VkPhysicalDeviceRayTracingPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingPropertiesNV.html)
17754/**
17755Provided by **VK_NV_ray_tracing**.*/
17756/**
17757**Returned only**, filled by Vulkan, not constructed by the application.*/
17758///
17759///# Extends
17760///- [`PhysicalDeviceProperties2`]
17761#[repr(C)]
17762#[derive(Copy, Clone, Debug)]
17763#[doc(alias = "VkPhysicalDeviceRayTracingPropertiesNV")]
17764pub struct PhysicalDeviceRayTracingPropertiesNV {
17765    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV`.
17766    pub s_type: StructureType,
17767    ///Optional, may be null.
17768    pub p_next: *mut core::ffi::c_void,
17769    pub shader_group_handle_size: u32,
17770    pub max_recursion_depth: u32,
17771    pub max_shader_group_stride: u32,
17772    pub shader_group_base_alignment: u32,
17773    pub max_geometry_count: u64,
17774    pub max_instance_count: u64,
17775    pub max_triangle_count: u64,
17776    pub max_descriptor_set_acceleration_structures: u32,
17777}
17778impl Default for PhysicalDeviceRayTracingPropertiesNV {
17779    #[inline]
17780    fn default() -> Self {
17781        Self {
17782            s_type: StructureType::from_raw(1000165009i32),
17783            p_next: core::ptr::null_mut(),
17784            shader_group_handle_size: Default::default(),
17785            max_recursion_depth: Default::default(),
17786            max_shader_group_stride: Default::default(),
17787            shader_group_base_alignment: Default::default(),
17788            max_geometry_count: Default::default(),
17789            max_instance_count: Default::default(),
17790            max_triangle_count: Default::default(),
17791            max_descriptor_set_acceleration_structures: Default::default(),
17792        }
17793    }
17794}
17795///[`VkStridedDeviceAddressRegionKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStridedDeviceAddressRegionKHR.html)
17796/**
17797Provided by **VK_KHR_ray_tracing_pipeline**.*/
17798#[repr(C)]
17799#[derive(Copy, Clone, Debug)]
17800#[doc(alias = "VkStridedDeviceAddressRegionKHR")]
17801pub struct StridedDeviceAddressRegionKHR {
17802    pub device_address: u64,
17803    pub stride: u64,
17804    pub size: u64,
17805}
17806impl Default for StridedDeviceAddressRegionKHR {
17807    #[inline]
17808    fn default() -> Self {
17809        unsafe { core::mem::zeroed() }
17810    }
17811}
17812///[`VkTraceRaysIndirectCommandKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTraceRaysIndirectCommandKHR.html)
17813/**
17814Provided by **VK_KHR_ray_tracing_pipeline**.*/
17815#[repr(C)]
17816#[derive(Copy, Clone, Debug)]
17817#[doc(alias = "VkTraceRaysIndirectCommandKHR")]
17818pub struct TraceRaysIndirectCommandKHR {
17819    pub width: u32,
17820    pub height: u32,
17821    pub depth: u32,
17822}
17823impl Default for TraceRaysIndirectCommandKHR {
17824    #[inline]
17825    fn default() -> Self {
17826        unsafe { core::mem::zeroed() }
17827    }
17828}
17829///[`VkTraceRaysIndirectCommand2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTraceRaysIndirectCommand2KHR.html)
17830/**
17831Provided by **VK_KHR_ray_tracing_maintenance1**.*/
17832#[repr(C)]
17833#[derive(Copy, Clone, Debug)]
17834#[doc(alias = "VkTraceRaysIndirectCommand2KHR")]
17835pub struct TraceRaysIndirectCommand2KHR {
17836    pub raygen_shader_record_address: u64,
17837    pub raygen_shader_record_size: u64,
17838    pub miss_shader_binding_table_address: u64,
17839    pub miss_shader_binding_table_size: u64,
17840    pub miss_shader_binding_table_stride: u64,
17841    pub hit_shader_binding_table_address: u64,
17842    pub hit_shader_binding_table_size: u64,
17843    pub hit_shader_binding_table_stride: u64,
17844    pub callable_shader_binding_table_address: u64,
17845    pub callable_shader_binding_table_size: u64,
17846    pub callable_shader_binding_table_stride: u64,
17847    pub width: u32,
17848    pub height: u32,
17849    pub depth: u32,
17850}
17851impl Default for TraceRaysIndirectCommand2KHR {
17852    #[inline]
17853    fn default() -> Self {
17854        unsafe { core::mem::zeroed() }
17855    }
17856}
17857///[`VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR.html)
17858/**
17859Provided by **VK_KHR_ray_tracing_maintenance1**.*/
17860///
17861///# Extends
17862///- [`PhysicalDeviceFeatures2`]
17863///- [`DeviceCreateInfo`]
17864#[repr(C)]
17865#[derive(Copy, Clone, Debug)]
17866#[doc(alias = "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR")]
17867pub struct PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
17868    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR`.
17869    pub s_type: StructureType,
17870    ///Optional, may be null.
17871    pub p_next: *mut core::ffi::c_void,
17872    pub ray_tracing_maintenance1: u32,
17873    pub ray_tracing_pipeline_trace_rays_indirect2: u32,
17874}
17875impl Default for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
17876    #[inline]
17877    fn default() -> Self {
17878        Self {
17879            s_type: StructureType::from_raw(1000386000i32),
17880            p_next: core::ptr::null_mut(),
17881            ray_tracing_maintenance1: Default::default(),
17882            ray_tracing_pipeline_trace_rays_indirect2: Default::default(),
17883        }
17884    }
17885}
17886///[`VkDrmFormatModifierPropertiesListEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrmFormatModifierPropertiesListEXT.html)
17887/**
17888Provided by **VK_EXT_image_drm_format_modifier**.*/
17889/**
17890**Returned only**, filled by Vulkan, not constructed by the application.*/
17891///
17892///# Extends
17893///- [`FormatProperties2`]
17894#[repr(C)]
17895#[derive(Copy, Clone, Debug)]
17896#[doc(alias = "VkDrmFormatModifierPropertiesListEXT")]
17897pub struct DrmFormatModifierPropertiesListEXT {
17898    ///Must be `VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT`.
17899    pub s_type: StructureType,
17900    ///Optional, may be null.
17901    pub p_next: *mut core::ffi::c_void,
17902    ///Length of `p_drm_format_modifier_properties`.
17903    pub drm_format_modifier_count: u32,
17904    ///Optional, may be null.
17905    pub p_drm_format_modifier_properties: *mut DrmFormatModifierPropertiesEXT,
17906}
17907impl Default for DrmFormatModifierPropertiesListEXT {
17908    #[inline]
17909    fn default() -> Self {
17910        Self {
17911            s_type: StructureType::from_raw(1000158000i32),
17912            p_next: core::ptr::null_mut(),
17913            drm_format_modifier_count: Default::default(),
17914            p_drm_format_modifier_properties: core::ptr::null_mut(),
17915        }
17916    }
17917}
17918///[`VkDrmFormatModifierPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrmFormatModifierPropertiesEXT.html)
17919/**
17920Provided by **VK_EXT_image_drm_format_modifier**.*/
17921/**
17922**Returned only**, filled by Vulkan, not constructed by the application.*/
17923#[repr(C)]
17924#[derive(Copy, Clone, Debug)]
17925#[doc(alias = "VkDrmFormatModifierPropertiesEXT")]
17926pub struct DrmFormatModifierPropertiesEXT {
17927    pub drm_format_modifier: u64,
17928    pub drm_format_modifier_plane_count: u32,
17929    pub drm_format_modifier_tiling_features: FormatFeatureFlags,
17930}
17931impl Default for DrmFormatModifierPropertiesEXT {
17932    #[inline]
17933    fn default() -> Self {
17934        unsafe { core::mem::zeroed() }
17935    }
17936}
17937///[`VkPhysicalDeviceImageDrmFormatModifierInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageDrmFormatModifierInfoEXT.html)
17938/**
17939Provided by **VK_EXT_image_drm_format_modifier**.*/
17940///
17941///# Extends
17942///- [`PhysicalDeviceImageFormatInfo2`]
17943#[repr(C)]
17944#[derive(Copy, Clone, Debug)]
17945#[doc(alias = "VkPhysicalDeviceImageDrmFormatModifierInfoEXT")]
17946pub struct PhysicalDeviceImageDrmFormatModifierInfoEXT {
17947    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT`.
17948    pub s_type: StructureType,
17949    ///Optional, may be null.
17950    pub p_next: *const core::ffi::c_void,
17951    pub drm_format_modifier: u64,
17952    pub sharing_mode: SharingMode,
17953    ///Length of `p_queue_family_indices`.
17954    pub queue_family_index_count: u32,
17955    pub p_queue_family_indices: *const u32,
17956}
17957impl Default for PhysicalDeviceImageDrmFormatModifierInfoEXT {
17958    #[inline]
17959    fn default() -> Self {
17960        Self {
17961            s_type: StructureType::from_raw(1000158002i32),
17962            p_next: core::ptr::null(),
17963            drm_format_modifier: Default::default(),
17964            sharing_mode: Default::default(),
17965            queue_family_index_count: Default::default(),
17966            p_queue_family_indices: core::ptr::null(),
17967        }
17968    }
17969}
17970///[`VkImageDrmFormatModifierListCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageDrmFormatModifierListCreateInfoEXT.html)
17971/**
17972Provided by **VK_EXT_image_drm_format_modifier**.*/
17973///
17974///# Extends
17975///- [`ImageCreateInfo`]
17976#[repr(C)]
17977#[derive(Copy, Clone, Debug)]
17978#[doc(alias = "VkImageDrmFormatModifierListCreateInfoEXT")]
17979pub struct ImageDrmFormatModifierListCreateInfoEXT {
17980    ///Must be `VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT`.
17981    pub s_type: StructureType,
17982    ///Optional, may be null.
17983    pub p_next: *const core::ffi::c_void,
17984    ///Length of `p_drm_format_modifiers`.
17985    pub drm_format_modifier_count: u32,
17986    pub p_drm_format_modifiers: *const u64,
17987}
17988impl Default for ImageDrmFormatModifierListCreateInfoEXT {
17989    #[inline]
17990    fn default() -> Self {
17991        Self {
17992            s_type: StructureType::from_raw(1000158003i32),
17993            p_next: core::ptr::null(),
17994            drm_format_modifier_count: Default::default(),
17995            p_drm_format_modifiers: core::ptr::null(),
17996        }
17997    }
17998}
17999///[`VkImageDrmFormatModifierExplicitCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageDrmFormatModifierExplicitCreateInfoEXT.html)
18000/**
18001Provided by **VK_EXT_image_drm_format_modifier**.*/
18002///
18003///# Extends
18004///- [`ImageCreateInfo`]
18005#[repr(C)]
18006#[derive(Copy, Clone, Debug)]
18007#[doc(alias = "VkImageDrmFormatModifierExplicitCreateInfoEXT")]
18008pub struct ImageDrmFormatModifierExplicitCreateInfoEXT {
18009    ///Must be `VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT`.
18010    pub s_type: StructureType,
18011    ///Optional, may be null.
18012    pub p_next: *const core::ffi::c_void,
18013    pub drm_format_modifier: u64,
18014    ///Length of `p_plane_layouts`.
18015    pub drm_format_modifier_plane_count: u32,
18016    pub p_plane_layouts: *const SubresourceLayout,
18017}
18018impl Default for ImageDrmFormatModifierExplicitCreateInfoEXT {
18019    #[inline]
18020    fn default() -> Self {
18021        Self {
18022            s_type: StructureType::from_raw(1000158004i32),
18023            p_next: core::ptr::null(),
18024            drm_format_modifier: Default::default(),
18025            drm_format_modifier_plane_count: Default::default(),
18026            p_plane_layouts: core::ptr::null(),
18027        }
18028    }
18029}
18030///[`VkImageDrmFormatModifierPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageDrmFormatModifierPropertiesEXT.html)
18031/**
18032Provided by **VK_EXT_image_drm_format_modifier**.*/
18033/**
18034**Returned only**, filled by Vulkan, not constructed by the application.*/
18035#[repr(C)]
18036#[derive(Copy, Clone, Debug)]
18037#[doc(alias = "VkImageDrmFormatModifierPropertiesEXT")]
18038pub struct ImageDrmFormatModifierPropertiesEXT {
18039    ///Must be `VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT`.
18040    pub s_type: StructureType,
18041    ///Optional, may be null.
18042    pub p_next: *mut core::ffi::c_void,
18043    pub drm_format_modifier: u64,
18044}
18045impl Default for ImageDrmFormatModifierPropertiesEXT {
18046    #[inline]
18047    fn default() -> Self {
18048        Self {
18049            s_type: StructureType::from_raw(1000158005i32),
18050            p_next: core::ptr::null_mut(),
18051            drm_format_modifier: Default::default(),
18052        }
18053    }
18054}
18055///[`VkImageStencilUsageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageStencilUsageCreateInfo.html)
18056/**
18057Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18058///
18059///# Extends
18060///- [`ImageCreateInfo`]
18061///- [`PhysicalDeviceImageFormatInfo2`]
18062#[repr(C)]
18063#[derive(Copy, Clone, Debug)]
18064#[doc(alias = "VkImageStencilUsageCreateInfo")]
18065pub struct ImageStencilUsageCreateInfo {
18066    ///Must be `VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO`.
18067    pub s_type: StructureType,
18068    ///Optional, may be null.
18069    pub p_next: *const core::ffi::c_void,
18070    pub stencil_usage: ImageUsageFlags,
18071}
18072impl Default for ImageStencilUsageCreateInfo {
18073    #[inline]
18074    fn default() -> Self {
18075        Self {
18076            s_type: StructureType::from_raw(1000246000i32),
18077            p_next: core::ptr::null(),
18078            stencil_usage: Default::default(),
18079        }
18080    }
18081}
18082///[`VkDeviceMemoryOverallocationCreateInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryOverallocationCreateInfoAMD.html)
18083/**
18084Provided by **VK_AMD_memory_overallocation_behavior**.*/
18085///
18086///# Extends
18087///- [`DeviceCreateInfo`]
18088#[repr(C)]
18089#[derive(Copy, Clone, Debug)]
18090#[doc(alias = "VkDeviceMemoryOverallocationCreateInfoAMD")]
18091pub struct DeviceMemoryOverallocationCreateInfoAMD {
18092    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD`.
18093    pub s_type: StructureType,
18094    ///Optional, may be null.
18095    pub p_next: *const core::ffi::c_void,
18096    pub overallocation_behavior: MemoryOverallocationBehaviorAMD,
18097}
18098impl Default for DeviceMemoryOverallocationCreateInfoAMD {
18099    #[inline]
18100    fn default() -> Self {
18101        Self {
18102            s_type: StructureType::from_raw(1000189000i32),
18103            p_next: core::ptr::null(),
18104            overallocation_behavior: Default::default(),
18105        }
18106    }
18107}
18108///[`VkPhysicalDeviceFragmentDensityMapFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.html)
18109/**
18110Provided by **VK_EXT_fragment_density_map**.*/
18111///
18112///# Extends
18113///- [`PhysicalDeviceFeatures2`]
18114///- [`DeviceCreateInfo`]
18115#[repr(C)]
18116#[derive(Copy, Clone, Debug)]
18117#[doc(alias = "VkPhysicalDeviceFragmentDensityMapFeaturesEXT")]
18118pub struct PhysicalDeviceFragmentDensityMapFeaturesEXT {
18119    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT`.
18120    pub s_type: StructureType,
18121    ///Optional, may be null.
18122    pub p_next: *mut core::ffi::c_void,
18123    pub fragment_density_map: u32,
18124    pub fragment_density_map_dynamic: u32,
18125    pub fragment_density_map_non_subsampled_images: u32,
18126}
18127impl Default for PhysicalDeviceFragmentDensityMapFeaturesEXT {
18128    #[inline]
18129    fn default() -> Self {
18130        Self {
18131            s_type: StructureType::from_raw(1000218000i32),
18132            p_next: core::ptr::null_mut(),
18133            fragment_density_map: Default::default(),
18134            fragment_density_map_dynamic: Default::default(),
18135            fragment_density_map_non_subsampled_images: Default::default(),
18136        }
18137    }
18138}
18139///[`VkPhysicalDeviceFragmentDensityMap2FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.html)
18140/**
18141Provided by **VK_EXT_fragment_density_map2**.*/
18142///
18143///# Extends
18144///- [`PhysicalDeviceFeatures2`]
18145///- [`DeviceCreateInfo`]
18146#[repr(C)]
18147#[derive(Copy, Clone, Debug)]
18148#[doc(alias = "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT")]
18149pub struct PhysicalDeviceFragmentDensityMap2FeaturesEXT {
18150    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT`.
18151    pub s_type: StructureType,
18152    ///Optional, may be null.
18153    pub p_next: *mut core::ffi::c_void,
18154    pub fragment_density_map_deferred: u32,
18155}
18156impl Default for PhysicalDeviceFragmentDensityMap2FeaturesEXT {
18157    #[inline]
18158    fn default() -> Self {
18159        Self {
18160            s_type: StructureType::from_raw(1000332000i32),
18161            p_next: core::ptr::null_mut(),
18162            fragment_density_map_deferred: Default::default(),
18163        }
18164    }
18165}
18166///[`VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT.html)
18167/**
18168Provided by **VK_EXT_fragment_density_map_offset**.*/
18169///
18170///# Extends
18171///- [`PhysicalDeviceFeatures2`]
18172///- [`DeviceCreateInfo`]
18173#[repr(C)]
18174#[derive(Copy, Clone, Debug)]
18175#[doc(alias = "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT")]
18176pub struct PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
18177    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT`.
18178    pub s_type: StructureType,
18179    ///Optional, may be null.
18180    pub p_next: *mut core::ffi::c_void,
18181    pub fragment_density_map_offset: u32,
18182}
18183impl Default for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
18184    #[inline]
18185    fn default() -> Self {
18186        Self {
18187            s_type: StructureType::from_raw(1000425000i32),
18188            p_next: core::ptr::null_mut(),
18189            fragment_density_map_offset: Default::default(),
18190        }
18191    }
18192}
18193///[`VkPhysicalDeviceFragmentDensityMapPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapPropertiesEXT.html)
18194/**
18195Provided by **VK_EXT_fragment_density_map**.*/
18196/**
18197**Returned only**, filled by Vulkan, not constructed by the application.*/
18198///
18199///# Extends
18200///- [`PhysicalDeviceProperties2`]
18201#[repr(C)]
18202#[derive(Copy, Clone, Debug)]
18203#[doc(alias = "VkPhysicalDeviceFragmentDensityMapPropertiesEXT")]
18204pub struct PhysicalDeviceFragmentDensityMapPropertiesEXT {
18205    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT`.
18206    pub s_type: StructureType,
18207    ///Optional, may be null.
18208    pub p_next: *mut core::ffi::c_void,
18209    pub min_fragment_density_texel_size: Extent2D,
18210    pub max_fragment_density_texel_size: Extent2D,
18211    pub fragment_density_invocations: u32,
18212}
18213impl Default for PhysicalDeviceFragmentDensityMapPropertiesEXT {
18214    #[inline]
18215    fn default() -> Self {
18216        Self {
18217            s_type: StructureType::from_raw(1000218001i32),
18218            p_next: core::ptr::null_mut(),
18219            min_fragment_density_texel_size: Default::default(),
18220            max_fragment_density_texel_size: Default::default(),
18221            fragment_density_invocations: Default::default(),
18222        }
18223    }
18224}
18225///[`VkPhysicalDeviceFragmentDensityMap2PropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMap2PropertiesEXT.html)
18226/**
18227Provided by **VK_EXT_fragment_density_map2**.*/
18228/**
18229**Returned only**, filled by Vulkan, not constructed by the application.*/
18230///
18231///# Extends
18232///- [`PhysicalDeviceProperties2`]
18233#[repr(C)]
18234#[derive(Copy, Clone, Debug)]
18235#[doc(alias = "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT")]
18236pub struct PhysicalDeviceFragmentDensityMap2PropertiesEXT {
18237    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT`.
18238    pub s_type: StructureType,
18239    ///Optional, may be null.
18240    pub p_next: *mut core::ffi::c_void,
18241    pub subsampled_loads: u32,
18242    pub subsampled_coarse_reconstruction_early_access: u32,
18243    pub max_subsampled_array_layers: u32,
18244    pub max_descriptor_set_subsampled_samplers: u32,
18245}
18246impl Default for PhysicalDeviceFragmentDensityMap2PropertiesEXT {
18247    #[inline]
18248    fn default() -> Self {
18249        Self {
18250            s_type: StructureType::from_raw(1000332001i32),
18251            p_next: core::ptr::null_mut(),
18252            subsampled_loads: Default::default(),
18253            subsampled_coarse_reconstruction_early_access: Default::default(),
18254            max_subsampled_array_layers: Default::default(),
18255            max_descriptor_set_subsampled_samplers: Default::default(),
18256        }
18257    }
18258}
18259///[`VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT.html)
18260/**
18261Provided by **VK_EXT_fragment_density_map_offset**.*/
18262/**
18263**Returned only**, filled by Vulkan, not constructed by the application.*/
18264///
18265///# Extends
18266///- [`PhysicalDeviceProperties2`]
18267#[repr(C)]
18268#[derive(Copy, Clone, Debug)]
18269#[doc(alias = "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT")]
18270pub struct PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
18271    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT`.
18272    pub s_type: StructureType,
18273    ///Optional, may be null.
18274    pub p_next: *mut core::ffi::c_void,
18275    pub fragment_density_offset_granularity: Extent2D,
18276}
18277impl Default for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
18278    #[inline]
18279    fn default() -> Self {
18280        Self {
18281            s_type: StructureType::from_raw(1000425001i32),
18282            p_next: core::ptr::null_mut(),
18283            fragment_density_offset_granularity: Default::default(),
18284        }
18285    }
18286}
18287///[`VkRenderPassFragmentDensityMapCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassFragmentDensityMapCreateInfoEXT.html)
18288/**
18289Provided by **VK_EXT_fragment_density_map**.*/
18290///
18291///# Extends
18292///- [`RenderPassCreateInfo`]
18293///- [`RenderPassCreateInfo2`]
18294#[repr(C)]
18295#[derive(Copy, Clone, Debug)]
18296#[doc(alias = "VkRenderPassFragmentDensityMapCreateInfoEXT")]
18297pub struct RenderPassFragmentDensityMapCreateInfoEXT {
18298    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT`.
18299    pub s_type: StructureType,
18300    ///Optional, may be null.
18301    pub p_next: *const core::ffi::c_void,
18302    pub fragment_density_map_attachment: AttachmentReference,
18303}
18304impl Default for RenderPassFragmentDensityMapCreateInfoEXT {
18305    #[inline]
18306    fn default() -> Self {
18307        Self {
18308            s_type: StructureType::from_raw(1000218002i32),
18309            p_next: core::ptr::null(),
18310            fragment_density_map_attachment: Default::default(),
18311        }
18312    }
18313}
18314///[`VkRenderPassFragmentDensityMapOffsetEndInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassFragmentDensityMapOffsetEndInfoEXT.html)
18315/**
18316Provided by **VK_EXT_fragment_density_map_offset**.*/
18317///
18318///# Extends
18319///- [`SubpassEndInfo`]
18320///- [`RenderingEndInfoKHR`]
18321#[repr(C)]
18322#[derive(Copy, Clone, Debug)]
18323#[doc(alias = "VkRenderPassFragmentDensityMapOffsetEndInfoEXT")]
18324pub struct RenderPassFragmentDensityMapOffsetEndInfoEXT {
18325    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT`.
18326    pub s_type: StructureType,
18327    ///Optional, may be null.
18328    pub p_next: *const core::ffi::c_void,
18329    ///Length of `p_fragment_density_offsets`.
18330    pub fragment_density_offset_count: u32,
18331    pub p_fragment_density_offsets: *const Offset2D,
18332}
18333impl Default for RenderPassFragmentDensityMapOffsetEndInfoEXT {
18334    #[inline]
18335    fn default() -> Self {
18336        Self {
18337            s_type: StructureType::from_raw(1000425002i32),
18338            p_next: core::ptr::null(),
18339            fragment_density_offset_count: Default::default(),
18340            p_fragment_density_offsets: core::ptr::null(),
18341        }
18342    }
18343}
18344///[`VkPhysicalDeviceScalarBlockLayoutFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceScalarBlockLayoutFeatures.html)
18345/**
18346Provided by **VK_COMPUTE_VERSION_1_2**.*/
18347///
18348///# Extends
18349///- [`PhysicalDeviceFeatures2`]
18350///- [`DeviceCreateInfo`]
18351#[repr(C)]
18352#[derive(Copy, Clone, Debug)]
18353#[doc(alias = "VkPhysicalDeviceScalarBlockLayoutFeatures")]
18354pub struct PhysicalDeviceScalarBlockLayoutFeatures {
18355    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES`.
18356    pub s_type: StructureType,
18357    ///Optional, may be null.
18358    pub p_next: *mut core::ffi::c_void,
18359    pub scalar_block_layout: u32,
18360}
18361impl Default for PhysicalDeviceScalarBlockLayoutFeatures {
18362    #[inline]
18363    fn default() -> Self {
18364        Self {
18365            s_type: StructureType::from_raw(1000221000i32),
18366            p_next: core::ptr::null_mut(),
18367            scalar_block_layout: Default::default(),
18368        }
18369    }
18370}
18371///[`VkSurfaceProtectedCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceProtectedCapabilitiesKHR.html)
18372/**
18373Provided by **VK_KHR_surface_protected_capabilities**.*/
18374/**
18375**Returned only**, filled by Vulkan, not constructed by the application.*/
18376///
18377///# Extends
18378///- [`SurfaceCapabilities2KHR`]
18379#[repr(C)]
18380#[derive(Copy, Clone, Debug)]
18381#[doc(alias = "VkSurfaceProtectedCapabilitiesKHR")]
18382pub struct SurfaceProtectedCapabilitiesKHR {
18383    ///Must be `VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR`.
18384    pub s_type: StructureType,
18385    ///Optional, may be null.
18386    pub p_next: *mut core::ffi::c_void,
18387    pub supports_protected: u32,
18388}
18389impl Default for SurfaceProtectedCapabilitiesKHR {
18390    #[inline]
18391    fn default() -> Self {
18392        Self {
18393            s_type: StructureType::from_raw(1000239000i32),
18394            p_next: core::ptr::null_mut(),
18395            supports_protected: Default::default(),
18396        }
18397    }
18398}
18399///[`VkPhysicalDeviceUniformBufferStandardLayoutFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.html)
18400/**
18401Provided by **VK_COMPUTE_VERSION_1_2**.*/
18402///
18403///# Extends
18404///- [`PhysicalDeviceFeatures2`]
18405///- [`DeviceCreateInfo`]
18406#[repr(C)]
18407#[derive(Copy, Clone, Debug)]
18408#[doc(alias = "VkPhysicalDeviceUniformBufferStandardLayoutFeatures")]
18409pub struct PhysicalDeviceUniformBufferStandardLayoutFeatures {
18410    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES`.
18411    pub s_type: StructureType,
18412    ///Optional, may be null.
18413    pub p_next: *mut core::ffi::c_void,
18414    pub uniform_buffer_standard_layout: u32,
18415}
18416impl Default for PhysicalDeviceUniformBufferStandardLayoutFeatures {
18417    #[inline]
18418    fn default() -> Self {
18419        Self {
18420            s_type: StructureType::from_raw(1000253000i32),
18421            p_next: core::ptr::null_mut(),
18422            uniform_buffer_standard_layout: Default::default(),
18423        }
18424    }
18425}
18426///[`VkPhysicalDeviceDepthClipEnableFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthClipEnableFeaturesEXT.html)
18427/**
18428Provided by **VK_EXT_depth_clip_enable**.*/
18429///
18430///# Extends
18431///- [`PhysicalDeviceFeatures2`]
18432///- [`DeviceCreateInfo`]
18433#[repr(C)]
18434#[derive(Copy, Clone, Debug)]
18435#[doc(alias = "VkPhysicalDeviceDepthClipEnableFeaturesEXT")]
18436pub struct PhysicalDeviceDepthClipEnableFeaturesEXT {
18437    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT`.
18438    pub s_type: StructureType,
18439    ///Optional, may be null.
18440    pub p_next: *mut core::ffi::c_void,
18441    pub depth_clip_enable: u32,
18442}
18443impl Default for PhysicalDeviceDepthClipEnableFeaturesEXT {
18444    #[inline]
18445    fn default() -> Self {
18446        Self {
18447            s_type: StructureType::from_raw(1000102000i32),
18448            p_next: core::ptr::null_mut(),
18449            depth_clip_enable: Default::default(),
18450        }
18451    }
18452}
18453///[`VkPipelineRasterizationDepthClipStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationDepthClipStateCreateInfoEXT.html)
18454/**
18455Provided by **VK_EXT_depth_clip_enable**.*/
18456///
18457///# Extends
18458///- [`PipelineRasterizationStateCreateInfo`]
18459#[repr(C)]
18460#[derive(Copy, Clone, Debug)]
18461#[doc(alias = "VkPipelineRasterizationDepthClipStateCreateInfoEXT")]
18462pub struct PipelineRasterizationDepthClipStateCreateInfoEXT {
18463    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT`.
18464    pub s_type: StructureType,
18465    ///Optional, may be null.
18466    pub p_next: *const core::ffi::c_void,
18467    pub flags: PipelineRasterizationDepthClipStateCreateFlagsEXT,
18468    pub depth_clip_enable: u32,
18469}
18470impl Default for PipelineRasterizationDepthClipStateCreateInfoEXT {
18471    #[inline]
18472    fn default() -> Self {
18473        Self {
18474            s_type: StructureType::from_raw(1000102001i32),
18475            p_next: core::ptr::null(),
18476            flags: Default::default(),
18477            depth_clip_enable: Default::default(),
18478        }
18479    }
18480}
18481///[`VkPhysicalDeviceMemoryBudgetPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryBudgetPropertiesEXT.html)
18482/**
18483Provided by **VK_EXT_memory_budget**.*/
18484/**
18485**Returned only**, filled by Vulkan, not constructed by the application.*/
18486///
18487///# Extends
18488///- [`PhysicalDeviceMemoryProperties2`]
18489#[repr(C)]
18490#[derive(Copy, Clone, Debug)]
18491#[doc(alias = "VkPhysicalDeviceMemoryBudgetPropertiesEXT")]
18492pub struct PhysicalDeviceMemoryBudgetPropertiesEXT {
18493    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT`.
18494    pub s_type: StructureType,
18495    ///Optional, may be null.
18496    pub p_next: *mut core::ffi::c_void,
18497    pub heap_budget: [u64; MAX_MEMORY_HEAPS as usize],
18498    pub heap_usage: [u64; MAX_MEMORY_HEAPS as usize],
18499}
18500impl Default for PhysicalDeviceMemoryBudgetPropertiesEXT {
18501    #[inline]
18502    fn default() -> Self {
18503        Self {
18504            s_type: StructureType::from_raw(1000237000i32),
18505            p_next: core::ptr::null_mut(),
18506            heap_budget: unsafe { core::mem::zeroed() },
18507            heap_usage: unsafe { core::mem::zeroed() },
18508        }
18509    }
18510}
18511///[`VkPhysicalDeviceMemoryPriorityFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryPriorityFeaturesEXT.html)
18512/**
18513Provided by **VK_EXT_memory_priority**.*/
18514///
18515///# Extends
18516///- [`PhysicalDeviceFeatures2`]
18517///- [`DeviceCreateInfo`]
18518#[repr(C)]
18519#[derive(Copy, Clone, Debug)]
18520#[doc(alias = "VkPhysicalDeviceMemoryPriorityFeaturesEXT")]
18521pub struct PhysicalDeviceMemoryPriorityFeaturesEXT {
18522    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT`.
18523    pub s_type: StructureType,
18524    ///Optional, may be null.
18525    pub p_next: *mut core::ffi::c_void,
18526    pub memory_priority: u32,
18527}
18528impl Default for PhysicalDeviceMemoryPriorityFeaturesEXT {
18529    #[inline]
18530    fn default() -> Self {
18531        Self {
18532            s_type: StructureType::from_raw(1000238000i32),
18533            p_next: core::ptr::null_mut(),
18534            memory_priority: Default::default(),
18535        }
18536    }
18537}
18538///[`VkMemoryPriorityAllocateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryPriorityAllocateInfoEXT.html)
18539/**
18540Provided by **VK_EXT_memory_priority**.*/
18541///
18542///# Extends
18543///- [`MemoryAllocateInfo`]
18544#[repr(C)]
18545#[derive(Copy, Clone, Debug)]
18546#[doc(alias = "VkMemoryPriorityAllocateInfoEXT")]
18547pub struct MemoryPriorityAllocateInfoEXT {
18548    ///Must be `VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT`.
18549    pub s_type: StructureType,
18550    ///Optional, may be null.
18551    pub p_next: *const core::ffi::c_void,
18552    pub priority: f32,
18553}
18554impl Default for MemoryPriorityAllocateInfoEXT {
18555    #[inline]
18556    fn default() -> Self {
18557        Self {
18558            s_type: StructureType::from_raw(1000238001i32),
18559            p_next: core::ptr::null(),
18560            priority: Default::default(),
18561        }
18562    }
18563}
18564///[`VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.html)
18565/**
18566Provided by **VK_EXT_pageable_device_local_memory**.*/
18567///
18568///# Extends
18569///- [`PhysicalDeviceFeatures2`]
18570///- [`DeviceCreateInfo`]
18571#[repr(C)]
18572#[derive(Copy, Clone, Debug)]
18573#[doc(alias = "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT")]
18574pub struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
18575    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT`.
18576    pub s_type: StructureType,
18577    ///Optional, may be null.
18578    pub p_next: *mut core::ffi::c_void,
18579    pub pageable_device_local_memory: u32,
18580}
18581impl Default for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
18582    #[inline]
18583    fn default() -> Self {
18584        Self {
18585            s_type: StructureType::from_raw(1000412000i32),
18586            p_next: core::ptr::null_mut(),
18587            pageable_device_local_memory: Default::default(),
18588        }
18589    }
18590}
18591///[`VkPhysicalDeviceBufferDeviceAddressFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBufferDeviceAddressFeatures.html)
18592/**
18593Provided by **VK_BASE_VERSION_1_2**.*/
18594///
18595///# Extends
18596///- [`PhysicalDeviceFeatures2`]
18597///- [`DeviceCreateInfo`]
18598#[repr(C)]
18599#[derive(Copy, Clone, Debug)]
18600#[doc(alias = "VkPhysicalDeviceBufferDeviceAddressFeatures")]
18601pub struct PhysicalDeviceBufferDeviceAddressFeatures {
18602    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES`.
18603    pub s_type: StructureType,
18604    ///Optional, may be null.
18605    pub p_next: *mut core::ffi::c_void,
18606    pub buffer_device_address: u32,
18607    pub buffer_device_address_capture_replay: u32,
18608    pub buffer_device_address_multi_device: u32,
18609}
18610impl Default for PhysicalDeviceBufferDeviceAddressFeatures {
18611    #[inline]
18612    fn default() -> Self {
18613        Self {
18614            s_type: StructureType::from_raw(1000257000i32),
18615            p_next: core::ptr::null_mut(),
18616            buffer_device_address: Default::default(),
18617            buffer_device_address_capture_replay: Default::default(),
18618            buffer_device_address_multi_device: Default::default(),
18619        }
18620    }
18621}
18622///[`VkPhysicalDeviceBufferDeviceAddressFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.html)
18623/**
18624Provided by **VK_EXT_buffer_device_address**.*/
18625///
18626///# Extends
18627///- [`PhysicalDeviceFeatures2`]
18628///- [`DeviceCreateInfo`]
18629#[repr(C)]
18630#[derive(Copy, Clone, Debug)]
18631#[doc(alias = "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT")]
18632pub struct PhysicalDeviceBufferDeviceAddressFeaturesEXT {
18633    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT`.
18634    pub s_type: StructureType,
18635    ///Optional, may be null.
18636    pub p_next: *mut core::ffi::c_void,
18637    pub buffer_device_address: u32,
18638    pub buffer_device_address_capture_replay: u32,
18639    pub buffer_device_address_multi_device: u32,
18640}
18641impl Default for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
18642    #[inline]
18643    fn default() -> Self {
18644        Self {
18645            s_type: StructureType::from_raw(1000244000i32),
18646            p_next: core::ptr::null_mut(),
18647            buffer_device_address: Default::default(),
18648            buffer_device_address_capture_replay: Default::default(),
18649            buffer_device_address_multi_device: Default::default(),
18650        }
18651    }
18652}
18653///[`VkBufferDeviceAddressInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferDeviceAddressInfo.html)
18654/**
18655Provided by **VK_BASE_VERSION_1_2**.*/
18656#[repr(C)]
18657#[derive(Copy, Clone, Debug)]
18658#[doc(alias = "VkBufferDeviceAddressInfo")]
18659pub struct BufferDeviceAddressInfo {
18660    ///Must be `VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO`.
18661    pub s_type: StructureType,
18662    ///Optional, may be null.
18663    pub p_next: *const core::ffi::c_void,
18664    pub buffer: Buffer,
18665}
18666impl Default for BufferDeviceAddressInfo {
18667    #[inline]
18668    fn default() -> Self {
18669        Self {
18670            s_type: StructureType::from_raw(1000244001i32),
18671            p_next: core::ptr::null(),
18672            buffer: Default::default(),
18673        }
18674    }
18675}
18676///[`VkBufferOpaqueCaptureAddressCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferOpaqueCaptureAddressCreateInfo.html)
18677/**
18678Provided by **VK_BASE_VERSION_1_2**.*/
18679///
18680///# Extends
18681///- [`BufferCreateInfo`]
18682#[repr(C)]
18683#[derive(Copy, Clone, Debug)]
18684#[doc(alias = "VkBufferOpaqueCaptureAddressCreateInfo")]
18685pub struct BufferOpaqueCaptureAddressCreateInfo {
18686    ///Must be `VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO`.
18687    pub s_type: StructureType,
18688    ///Optional, may be null.
18689    pub p_next: *const core::ffi::c_void,
18690    pub opaque_capture_address: u64,
18691}
18692impl Default for BufferOpaqueCaptureAddressCreateInfo {
18693    #[inline]
18694    fn default() -> Self {
18695        Self {
18696            s_type: StructureType::from_raw(1000257002i32),
18697            p_next: core::ptr::null(),
18698            opaque_capture_address: Default::default(),
18699        }
18700    }
18701}
18702///[`VkBufferDeviceAddressCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferDeviceAddressCreateInfoEXT.html)
18703/**
18704Provided by **VK_EXT_buffer_device_address**.*/
18705///
18706///# Extends
18707///- [`BufferCreateInfo`]
18708#[repr(C)]
18709#[derive(Copy, Clone, Debug)]
18710#[doc(alias = "VkBufferDeviceAddressCreateInfoEXT")]
18711pub struct BufferDeviceAddressCreateInfoEXT {
18712    ///Must be `VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT`.
18713    pub s_type: StructureType,
18714    ///Optional, may be null.
18715    pub p_next: *const core::ffi::c_void,
18716    pub device_address: u64,
18717}
18718impl Default for BufferDeviceAddressCreateInfoEXT {
18719    #[inline]
18720    fn default() -> Self {
18721        Self {
18722            s_type: StructureType::from_raw(1000244002i32),
18723            p_next: core::ptr::null(),
18724            device_address: Default::default(),
18725        }
18726    }
18727}
18728///[`VkPhysicalDeviceImageViewImageFormatInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageViewImageFormatInfoEXT.html)
18729/**
18730Provided by **VK_EXT_filter_cubic**.*/
18731///
18732///# Extends
18733///- [`PhysicalDeviceImageFormatInfo2`]
18734#[repr(C)]
18735#[derive(Copy, Clone, Debug)]
18736#[doc(alias = "VkPhysicalDeviceImageViewImageFormatInfoEXT")]
18737pub struct PhysicalDeviceImageViewImageFormatInfoEXT {
18738    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT`.
18739    pub s_type: StructureType,
18740    ///Optional, may be null.
18741    pub p_next: *mut core::ffi::c_void,
18742    pub image_view_type: ImageViewType,
18743}
18744impl Default for PhysicalDeviceImageViewImageFormatInfoEXT {
18745    #[inline]
18746    fn default() -> Self {
18747        Self {
18748            s_type: StructureType::from_raw(1000170000i32),
18749            p_next: core::ptr::null_mut(),
18750            image_view_type: Default::default(),
18751        }
18752    }
18753}
18754///[`VkFilterCubicImageViewImageFormatPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFilterCubicImageViewImageFormatPropertiesEXT.html)
18755/**
18756Provided by **VK_EXT_filter_cubic**.*/
18757/**
18758**Returned only**, filled by Vulkan, not constructed by the application.*/
18759///
18760///# Extends
18761///- [`ImageFormatProperties2`]
18762#[repr(C)]
18763#[derive(Copy, Clone, Debug)]
18764#[doc(alias = "VkFilterCubicImageViewImageFormatPropertiesEXT")]
18765pub struct FilterCubicImageViewImageFormatPropertiesEXT {
18766    ///Must be `VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT`.
18767    pub s_type: StructureType,
18768    ///Optional, may be null.
18769    pub p_next: *mut core::ffi::c_void,
18770    pub filter_cubic: u32,
18771    pub filter_cubic_minmax: u32,
18772}
18773impl Default for FilterCubicImageViewImageFormatPropertiesEXT {
18774    #[inline]
18775    fn default() -> Self {
18776        Self {
18777            s_type: StructureType::from_raw(1000170001i32),
18778            p_next: core::ptr::null_mut(),
18779            filter_cubic: Default::default(),
18780            filter_cubic_minmax: Default::default(),
18781        }
18782    }
18783}
18784///[`VkPhysicalDeviceImagelessFramebufferFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImagelessFramebufferFeatures.html)
18785/**
18786Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18787///
18788///# Extends
18789///- [`PhysicalDeviceFeatures2`]
18790///- [`DeviceCreateInfo`]
18791#[repr(C)]
18792#[derive(Copy, Clone, Debug)]
18793#[doc(alias = "VkPhysicalDeviceImagelessFramebufferFeatures")]
18794pub struct PhysicalDeviceImagelessFramebufferFeatures {
18795    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES`.
18796    pub s_type: StructureType,
18797    ///Optional, may be null.
18798    pub p_next: *mut core::ffi::c_void,
18799    pub imageless_framebuffer: u32,
18800}
18801impl Default for PhysicalDeviceImagelessFramebufferFeatures {
18802    #[inline]
18803    fn default() -> Self {
18804        Self {
18805            s_type: StructureType::from_raw(1000108000i32),
18806            p_next: core::ptr::null_mut(),
18807            imageless_framebuffer: Default::default(),
18808        }
18809    }
18810}
18811///[`VkFramebufferAttachmentsCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferAttachmentsCreateInfo.html)
18812/**
18813Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18814///
18815///# Extends
18816///- [`FramebufferCreateInfo`]
18817#[repr(C)]
18818#[derive(Copy, Clone, Debug)]
18819#[doc(alias = "VkFramebufferAttachmentsCreateInfo")]
18820pub struct FramebufferAttachmentsCreateInfo {
18821    ///Must be `VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO`.
18822    pub s_type: StructureType,
18823    ///Optional, may be null.
18824    pub p_next: *const core::ffi::c_void,
18825    ///Length of `p_attachment_image_infos`.
18826    pub attachment_image_info_count: u32,
18827    pub p_attachment_image_infos: *const FramebufferAttachmentImageInfo,
18828}
18829impl Default for FramebufferAttachmentsCreateInfo {
18830    #[inline]
18831    fn default() -> Self {
18832        Self {
18833            s_type: StructureType::from_raw(1000108001i32),
18834            p_next: core::ptr::null(),
18835            attachment_image_info_count: Default::default(),
18836            p_attachment_image_infos: core::ptr::null(),
18837        }
18838    }
18839}
18840///[`VkFramebufferAttachmentImageInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferAttachmentImageInfo.html)
18841/**
18842Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18843#[repr(C)]
18844#[derive(Copy, Clone, Debug)]
18845#[doc(alias = "VkFramebufferAttachmentImageInfo")]
18846pub struct FramebufferAttachmentImageInfo {
18847    ///Must be `VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO`.
18848    pub s_type: StructureType,
18849    ///Optional, may be null.
18850    pub p_next: *const core::ffi::c_void,
18851    pub flags: ImageCreateFlags,
18852    pub usage: ImageUsageFlags,
18853    pub width: u32,
18854    pub height: u32,
18855    pub layer_count: u32,
18856    ///Length of `p_view_formats`.
18857    pub view_format_count: u32,
18858    pub p_view_formats: *const Format,
18859}
18860impl Default for FramebufferAttachmentImageInfo {
18861    #[inline]
18862    fn default() -> Self {
18863        Self {
18864            s_type: StructureType::from_raw(1000108002i32),
18865            p_next: core::ptr::null(),
18866            flags: Default::default(),
18867            usage: Default::default(),
18868            width: Default::default(),
18869            height: Default::default(),
18870            layer_count: Default::default(),
18871            view_format_count: Default::default(),
18872            p_view_formats: core::ptr::null(),
18873        }
18874    }
18875}
18876///[`VkRenderPassAttachmentBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassAttachmentBeginInfo.html)
18877/**
18878Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18879///
18880///# Extends
18881///- [`RenderPassBeginInfo`]
18882#[repr(C)]
18883#[derive(Copy, Clone, Debug)]
18884#[doc(alias = "VkRenderPassAttachmentBeginInfo")]
18885pub struct RenderPassAttachmentBeginInfo {
18886    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO`.
18887    pub s_type: StructureType,
18888    ///Optional, may be null.
18889    pub p_next: *const core::ffi::c_void,
18890    ///Length of `p_attachments`.
18891    pub attachment_count: u32,
18892    pub p_attachments: *const ImageView,
18893}
18894impl Default for RenderPassAttachmentBeginInfo {
18895    #[inline]
18896    fn default() -> Self {
18897        Self {
18898            s_type: StructureType::from_raw(1000108003i32),
18899            p_next: core::ptr::null(),
18900            attachment_count: Default::default(),
18901            p_attachments: core::ptr::null(),
18902        }
18903    }
18904}
18905///[`VkPhysicalDeviceTextureCompressionASTCHDRFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTextureCompressionASTCHDRFeatures.html)
18906/**
18907Provided by **VK_BASE_VERSION_1_3**.*/
18908///
18909///# Extends
18910///- [`PhysicalDeviceFeatures2`]
18911///- [`DeviceCreateInfo`]
18912#[repr(C)]
18913#[derive(Copy, Clone, Debug)]
18914#[doc(alias = "VkPhysicalDeviceTextureCompressionASTCHDRFeatures")]
18915pub struct PhysicalDeviceTextureCompressionASTCHDRFeatures {
18916    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES`.
18917    pub s_type: StructureType,
18918    ///Optional, may be null.
18919    pub p_next: *mut core::ffi::c_void,
18920    pub texture_compression_astc_hdr: u32,
18921}
18922impl Default for PhysicalDeviceTextureCompressionASTCHDRFeatures {
18923    #[inline]
18924    fn default() -> Self {
18925        Self {
18926            s_type: StructureType::from_raw(1000066000i32),
18927            p_next: core::ptr::null_mut(),
18928            texture_compression_astc_hdr: Default::default(),
18929        }
18930    }
18931}
18932///[`VkPhysicalDeviceCooperativeMatrixFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixFeaturesNV.html)
18933/**
18934Provided by **VK_NV_cooperative_matrix**.*/
18935///
18936///# Extends
18937///- [`PhysicalDeviceFeatures2`]
18938///- [`DeviceCreateInfo`]
18939#[repr(C)]
18940#[derive(Copy, Clone, Debug)]
18941#[doc(alias = "VkPhysicalDeviceCooperativeMatrixFeaturesNV")]
18942pub struct PhysicalDeviceCooperativeMatrixFeaturesNV {
18943    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV`.
18944    pub s_type: StructureType,
18945    ///Optional, may be null.
18946    pub p_next: *mut core::ffi::c_void,
18947    pub cooperative_matrix: u32,
18948    pub cooperative_matrix_robust_buffer_access: u32,
18949}
18950impl Default for PhysicalDeviceCooperativeMatrixFeaturesNV {
18951    #[inline]
18952    fn default() -> Self {
18953        Self {
18954            s_type: StructureType::from_raw(1000249000i32),
18955            p_next: core::ptr::null_mut(),
18956            cooperative_matrix: Default::default(),
18957            cooperative_matrix_robust_buffer_access: Default::default(),
18958        }
18959    }
18960}
18961///[`VkPhysicalDeviceCooperativeMatrixPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixPropertiesNV.html)
18962/**
18963Provided by **VK_NV_cooperative_matrix**.*/
18964/**
18965**Returned only**, filled by Vulkan, not constructed by the application.*/
18966///
18967///# Extends
18968///- [`PhysicalDeviceProperties2`]
18969#[repr(C)]
18970#[derive(Copy, Clone, Debug)]
18971#[doc(alias = "VkPhysicalDeviceCooperativeMatrixPropertiesNV")]
18972pub struct PhysicalDeviceCooperativeMatrixPropertiesNV {
18973    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV`.
18974    pub s_type: StructureType,
18975    ///Optional, may be null.
18976    pub p_next: *mut core::ffi::c_void,
18977    pub cooperative_matrix_supported_stages: ShaderStageFlags,
18978}
18979impl Default for PhysicalDeviceCooperativeMatrixPropertiesNV {
18980    #[inline]
18981    fn default() -> Self {
18982        Self {
18983            s_type: StructureType::from_raw(1000249002i32),
18984            p_next: core::ptr::null_mut(),
18985            cooperative_matrix_supported_stages: Default::default(),
18986        }
18987    }
18988}
18989///[`VkCooperativeMatrixPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeMatrixPropertiesNV.html)
18990/**
18991Provided by **VK_NV_cooperative_matrix**.*/
18992/**
18993**Returned only**, filled by Vulkan, not constructed by the application.*/
18994#[repr(C)]
18995#[derive(Copy, Clone, Debug)]
18996#[doc(alias = "VkCooperativeMatrixPropertiesNV")]
18997pub struct CooperativeMatrixPropertiesNV {
18998    ///Must be `VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV`.
18999    pub s_type: StructureType,
19000    ///Optional, may be null.
19001    pub p_next: *mut core::ffi::c_void,
19002    pub m_size: u32,
19003    pub n_size: u32,
19004    pub k_size: u32,
19005    pub a_type: ComponentTypeNV,
19006    pub b_type: ComponentTypeNV,
19007    pub c_type: ComponentTypeNV,
19008    pub d_type: ComponentTypeNV,
19009    pub scope: ScopeNV,
19010}
19011impl Default for CooperativeMatrixPropertiesNV {
19012    #[inline]
19013    fn default() -> Self {
19014        Self {
19015            s_type: StructureType::from_raw(1000249001i32),
19016            p_next: core::ptr::null_mut(),
19017            m_size: Default::default(),
19018            n_size: Default::default(),
19019            k_size: Default::default(),
19020            a_type: Default::default(),
19021            b_type: Default::default(),
19022            c_type: Default::default(),
19023            d_type: Default::default(),
19024            scope: Default::default(),
19025        }
19026    }
19027}
19028///[`VkPhysicalDeviceYcbcrImageArraysFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.html)
19029/**
19030Provided by **VK_EXT_ycbcr_image_arrays**.*/
19031///
19032///# Extends
19033///- [`PhysicalDeviceFeatures2`]
19034///- [`DeviceCreateInfo`]
19035#[repr(C)]
19036#[derive(Copy, Clone, Debug)]
19037#[doc(alias = "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT")]
19038pub struct PhysicalDeviceYcbcrImageArraysFeaturesEXT {
19039    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT`.
19040    pub s_type: StructureType,
19041    ///Optional, may be null.
19042    pub p_next: *mut core::ffi::c_void,
19043    pub ycbcr_image_arrays: u32,
19044}
19045impl Default for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
19046    #[inline]
19047    fn default() -> Self {
19048        Self {
19049            s_type: StructureType::from_raw(1000252000i32),
19050            p_next: core::ptr::null_mut(),
19051            ycbcr_image_arrays: Default::default(),
19052        }
19053    }
19054}
19055///[`VkImageViewHandleInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewHandleInfoNVX.html)
19056/**
19057Provided by **VK_NVX_image_view_handle**.*/
19058#[repr(C)]
19059#[derive(Copy, Clone, Debug)]
19060#[doc(alias = "VkImageViewHandleInfoNVX")]
19061pub struct ImageViewHandleInfoNVX {
19062    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX`.
19063    pub s_type: StructureType,
19064    ///Optional, may be null.
19065    pub p_next: *const core::ffi::c_void,
19066    pub image_view: ImageView,
19067    pub descriptor_type: DescriptorType,
19068    pub sampler: Sampler,
19069}
19070impl Default for ImageViewHandleInfoNVX {
19071    #[inline]
19072    fn default() -> Self {
19073        Self {
19074            s_type: StructureType::from_raw(1000030000i32),
19075            p_next: core::ptr::null(),
19076            image_view: Default::default(),
19077            descriptor_type: Default::default(),
19078            sampler: Default::default(),
19079        }
19080    }
19081}
19082///[`VkImageViewAddressPropertiesNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewAddressPropertiesNVX.html)
19083/**
19084Provided by **VK_NVX_image_view_handle**.*/
19085/**
19086**Returned only**, filled by Vulkan, not constructed by the application.*/
19087#[repr(C)]
19088#[derive(Copy, Clone, Debug)]
19089#[doc(alias = "VkImageViewAddressPropertiesNVX")]
19090pub struct ImageViewAddressPropertiesNVX {
19091    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX`.
19092    pub s_type: StructureType,
19093    ///Optional, may be null.
19094    pub p_next: *mut core::ffi::c_void,
19095    pub device_address: u64,
19096    pub size: u64,
19097}
19098impl Default for ImageViewAddressPropertiesNVX {
19099    #[inline]
19100    fn default() -> Self {
19101        Self {
19102            s_type: StructureType::from_raw(1000030001i32),
19103            p_next: core::ptr::null_mut(),
19104            device_address: Default::default(),
19105            size: Default::default(),
19106        }
19107    }
19108}
19109///[`VkPresentFrameTokenGGP`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentFrameTokenGGP.html)
19110/**
19111Provided by **VK_GGP_frame_token**.*/
19112///
19113///# Extends
19114///- [`PresentInfoKHR`]
19115#[repr(C)]
19116#[derive(Copy, Clone, Debug)]
19117#[doc(alias = "VkPresentFrameTokenGGP")]
19118pub struct PresentFrameTokenGGP {
19119    ///Must be `VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP`.
19120    pub s_type: StructureType,
19121    ///Optional, may be null.
19122    pub p_next: *const core::ffi::c_void,
19123    pub frame_token: u32,
19124}
19125impl Default for PresentFrameTokenGGP {
19126    #[inline]
19127    fn default() -> Self {
19128        Self {
19129            s_type: StructureType::from_raw(1000191000i32),
19130            p_next: core::ptr::null(),
19131            frame_token: Default::default(),
19132        }
19133    }
19134}
19135///[`VkPipelineCreationFeedback`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCreationFeedback.html)
19136/**
19137Provided by **VK_COMPUTE_VERSION_1_3**.*/
19138/**
19139**Returned only**, filled by Vulkan, not constructed by the application.*/
19140#[repr(C)]
19141#[derive(Copy, Clone, Debug)]
19142#[doc(alias = "VkPipelineCreationFeedback")]
19143pub struct PipelineCreationFeedback {
19144    pub flags: PipelineCreationFeedbackFlags,
19145    pub duration: u64,
19146}
19147impl Default for PipelineCreationFeedback {
19148    #[inline]
19149    fn default() -> Self {
19150        unsafe { core::mem::zeroed() }
19151    }
19152}
19153///[`VkPipelineCreationFeedbackCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCreationFeedbackCreateInfo.html)
19154/**
19155Provided by **VK_COMPUTE_VERSION_1_3**.*/
19156///
19157///# Extends
19158///- [`GraphicsPipelineCreateInfo`]
19159///- [`ComputePipelineCreateInfo`]
19160///- [`RayTracingPipelineCreateInfoNV`]
19161///- [`RayTracingPipelineCreateInfoKHR`]
19162///- [`ExecutionGraphPipelineCreateInfoAMDX`]
19163///- [`DataGraphPipelineCreateInfoARM`]
19164#[repr(C)]
19165#[derive(Copy, Clone, Debug)]
19166#[doc(alias = "VkPipelineCreationFeedbackCreateInfo")]
19167pub struct PipelineCreationFeedbackCreateInfo {
19168    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO`.
19169    pub s_type: StructureType,
19170    ///Optional, may be null.
19171    pub p_next: *const core::ffi::c_void,
19172    pub p_pipeline_creation_feedback: *mut PipelineCreationFeedback,
19173    ///Length of `p_pipeline_stage_creation_feedbacks`.
19174    pub pipeline_stage_creation_feedback_count: u32,
19175    pub p_pipeline_stage_creation_feedbacks: *mut PipelineCreationFeedback,
19176}
19177impl Default for PipelineCreationFeedbackCreateInfo {
19178    #[inline]
19179    fn default() -> Self {
19180        Self {
19181            s_type: StructureType::from_raw(1000192000i32),
19182            p_next: core::ptr::null(),
19183            p_pipeline_creation_feedback: core::ptr::null_mut(),
19184            pipeline_stage_creation_feedback_count: Default::default(),
19185            p_pipeline_stage_creation_feedbacks: core::ptr::null_mut(),
19186        }
19187    }
19188}
19189///[`VkSurfaceFullScreenExclusiveInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFullScreenExclusiveInfoEXT.html)
19190/**
19191Provided by **VK_EXT_full_screen_exclusive**.*/
19192///
19193///# Extends
19194///- [`PhysicalDeviceSurfaceInfo2KHR`]
19195///- [`SwapchainCreateInfoKHR`]
19196#[repr(C)]
19197#[derive(Copy, Clone, Debug)]
19198#[doc(alias = "VkSurfaceFullScreenExclusiveInfoEXT")]
19199pub struct SurfaceFullScreenExclusiveInfoEXT {
19200    ///Must be `VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT`.
19201    pub s_type: StructureType,
19202    ///Optional, may be null.
19203    pub p_next: *mut core::ffi::c_void,
19204    pub full_screen_exclusive: FullScreenExclusiveEXT,
19205}
19206impl Default for SurfaceFullScreenExclusiveInfoEXT {
19207    #[inline]
19208    fn default() -> Self {
19209        Self {
19210            s_type: StructureType::from_raw(1000255000i32),
19211            p_next: core::ptr::null_mut(),
19212            full_screen_exclusive: Default::default(),
19213        }
19214    }
19215}
19216///[`VkSurfaceFullScreenExclusiveWin32InfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFullScreenExclusiveWin32InfoEXT.html)
19217/**
19218Provided by **VK_EXT_full_screen_exclusive**.*/
19219///
19220///# Extends
19221///- [`PhysicalDeviceSurfaceInfo2KHR`]
19222///- [`SwapchainCreateInfoKHR`]
19223#[repr(C)]
19224#[derive(Copy, Clone, Debug)]
19225#[doc(alias = "VkSurfaceFullScreenExclusiveWin32InfoEXT")]
19226pub struct SurfaceFullScreenExclusiveWin32InfoEXT {
19227    ///Must be `VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT`.
19228    pub s_type: StructureType,
19229    ///Optional, may be null.
19230    pub p_next: *const core::ffi::c_void,
19231    pub hmonitor: isize,
19232}
19233impl Default for SurfaceFullScreenExclusiveWin32InfoEXT {
19234    #[inline]
19235    fn default() -> Self {
19236        Self {
19237            s_type: StructureType::from_raw(1000255001i32),
19238            p_next: core::ptr::null(),
19239            hmonitor: Default::default(),
19240        }
19241    }
19242}
19243///[`VkSurfaceCapabilitiesFullScreenExclusiveEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesFullScreenExclusiveEXT.html)
19244/**
19245Provided by **VK_EXT_full_screen_exclusive**.*/
19246/**
19247**Returned only**, filled by Vulkan, not constructed by the application.*/
19248///
19249///# Extends
19250///- [`SurfaceCapabilities2KHR`]
19251#[repr(C)]
19252#[derive(Copy, Clone, Debug)]
19253#[doc(alias = "VkSurfaceCapabilitiesFullScreenExclusiveEXT")]
19254pub struct SurfaceCapabilitiesFullScreenExclusiveEXT {
19255    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT`.
19256    pub s_type: StructureType,
19257    ///Optional, may be null.
19258    pub p_next: *mut core::ffi::c_void,
19259    pub full_screen_exclusive_supported: u32,
19260}
19261impl Default for SurfaceCapabilitiesFullScreenExclusiveEXT {
19262    #[inline]
19263    fn default() -> Self {
19264        Self {
19265            s_type: StructureType::from_raw(1000255002i32),
19266            p_next: core::ptr::null_mut(),
19267            full_screen_exclusive_supported: Default::default(),
19268        }
19269    }
19270}
19271///[`VkPhysicalDevicePresentBarrierFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentBarrierFeaturesNV.html)
19272/**
19273Provided by **VK_NV_present_barrier**.*/
19274///
19275///# Extends
19276///- [`PhysicalDeviceFeatures2`]
19277///- [`DeviceCreateInfo`]
19278#[repr(C)]
19279#[derive(Copy, Clone, Debug)]
19280#[doc(alias = "VkPhysicalDevicePresentBarrierFeaturesNV")]
19281pub struct PhysicalDevicePresentBarrierFeaturesNV {
19282    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV`.
19283    pub s_type: StructureType,
19284    ///Optional, may be null.
19285    pub p_next: *mut core::ffi::c_void,
19286    pub present_barrier: u32,
19287}
19288impl Default for PhysicalDevicePresentBarrierFeaturesNV {
19289    #[inline]
19290    fn default() -> Self {
19291        Self {
19292            s_type: StructureType::from_raw(1000292000i32),
19293            p_next: core::ptr::null_mut(),
19294            present_barrier: Default::default(),
19295        }
19296    }
19297}
19298///[`VkSurfaceCapabilitiesPresentBarrierNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesPresentBarrierNV.html)
19299/**
19300Provided by **VK_NV_present_barrier**.*/
19301/**
19302**Returned only**, filled by Vulkan, not constructed by the application.*/
19303///
19304///# Extends
19305///- [`SurfaceCapabilities2KHR`]
19306#[repr(C)]
19307#[derive(Copy, Clone, Debug)]
19308#[doc(alias = "VkSurfaceCapabilitiesPresentBarrierNV")]
19309pub struct SurfaceCapabilitiesPresentBarrierNV {
19310    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV`.
19311    pub s_type: StructureType,
19312    ///Optional, may be null.
19313    pub p_next: *mut core::ffi::c_void,
19314    pub present_barrier_supported: u32,
19315}
19316impl Default for SurfaceCapabilitiesPresentBarrierNV {
19317    #[inline]
19318    fn default() -> Self {
19319        Self {
19320            s_type: StructureType::from_raw(1000292001i32),
19321            p_next: core::ptr::null_mut(),
19322            present_barrier_supported: Default::default(),
19323        }
19324    }
19325}
19326///[`VkSwapchainPresentBarrierCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentBarrierCreateInfoNV.html)
19327/**
19328Provided by **VK_NV_present_barrier**.*/
19329///
19330///# Extends
19331///- [`SwapchainCreateInfoKHR`]
19332#[repr(C)]
19333#[derive(Copy, Clone, Debug)]
19334#[doc(alias = "VkSwapchainPresentBarrierCreateInfoNV")]
19335pub struct SwapchainPresentBarrierCreateInfoNV {
19336    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV`.
19337    pub s_type: StructureType,
19338    ///Optional, may be null.
19339    pub p_next: *mut core::ffi::c_void,
19340    pub present_barrier_enable: u32,
19341}
19342impl Default for SwapchainPresentBarrierCreateInfoNV {
19343    #[inline]
19344    fn default() -> Self {
19345        Self {
19346            s_type: StructureType::from_raw(1000292002i32),
19347            p_next: core::ptr::null_mut(),
19348            present_barrier_enable: Default::default(),
19349        }
19350    }
19351}
19352///[`VkPhysicalDevicePerformanceQueryFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerformanceQueryFeaturesKHR.html)
19353/**
19354Provided by **VK_KHR_performance_query**.*/
19355///
19356///# Extends
19357///- [`PhysicalDeviceFeatures2`]
19358///- [`DeviceCreateInfo`]
19359#[repr(C)]
19360#[derive(Copy, Clone, Debug)]
19361#[doc(alias = "VkPhysicalDevicePerformanceQueryFeaturesKHR")]
19362pub struct PhysicalDevicePerformanceQueryFeaturesKHR {
19363    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR`.
19364    pub s_type: StructureType,
19365    ///Optional, may be null.
19366    pub p_next: *mut core::ffi::c_void,
19367    pub performance_counter_query_pools: u32,
19368    pub performance_counter_multiple_query_pools: u32,
19369}
19370impl Default for PhysicalDevicePerformanceQueryFeaturesKHR {
19371    #[inline]
19372    fn default() -> Self {
19373        Self {
19374            s_type: StructureType::from_raw(1000116000i32),
19375            p_next: core::ptr::null_mut(),
19376            performance_counter_query_pools: Default::default(),
19377            performance_counter_multiple_query_pools: Default::default(),
19378        }
19379    }
19380}
19381///[`VkPhysicalDevicePerformanceQueryPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerformanceQueryPropertiesKHR.html)
19382/**
19383Provided by **VK_KHR_performance_query**.*/
19384/**
19385**Returned only**, filled by Vulkan, not constructed by the application.*/
19386///
19387///# Extends
19388///- [`PhysicalDeviceProperties2`]
19389#[repr(C)]
19390#[derive(Copy, Clone, Debug)]
19391#[doc(alias = "VkPhysicalDevicePerformanceQueryPropertiesKHR")]
19392pub struct PhysicalDevicePerformanceQueryPropertiesKHR {
19393    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR`.
19394    pub s_type: StructureType,
19395    ///Optional, may be null.
19396    pub p_next: *mut core::ffi::c_void,
19397    pub allow_command_buffer_query_copies: u32,
19398}
19399impl Default for PhysicalDevicePerformanceQueryPropertiesKHR {
19400    #[inline]
19401    fn default() -> Self {
19402        Self {
19403            s_type: StructureType::from_raw(1000116001i32),
19404            p_next: core::ptr::null_mut(),
19405            allow_command_buffer_query_copies: Default::default(),
19406        }
19407    }
19408}
19409///[`VkPerformanceCounterKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterKHR.html)
19410/**
19411Provided by **VK_KHR_performance_query**.*/
19412/**
19413**Returned only**, filled by Vulkan, not constructed by the application.*/
19414#[repr(C)]
19415#[derive(Copy, Clone, Debug)]
19416#[doc(alias = "VkPerformanceCounterKHR")]
19417pub struct PerformanceCounterKHR {
19418    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR`.
19419    pub s_type: StructureType,
19420    ///Optional, may be null.
19421    pub p_next: *mut core::ffi::c_void,
19422    pub unit: PerformanceCounterUnitKHR,
19423    pub scope: PerformanceCounterScopeKHR,
19424    pub storage: PerformanceCounterStorageKHR,
19425    pub uuid: [u8; UUID_SIZE as usize],
19426}
19427impl Default for PerformanceCounterKHR {
19428    #[inline]
19429    fn default() -> Self {
19430        Self {
19431            s_type: StructureType::from_raw(1000116005i32),
19432            p_next: core::ptr::null_mut(),
19433            unit: Default::default(),
19434            scope: Default::default(),
19435            storage: Default::default(),
19436            uuid: unsafe { core::mem::zeroed() },
19437        }
19438    }
19439}
19440///[`VkPerformanceCounterDescriptionKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterDescriptionKHR.html)
19441/**
19442Provided by **VK_KHR_performance_query**.*/
19443/**
19444**Returned only**, filled by Vulkan, not constructed by the application.*/
19445#[repr(C)]
19446#[derive(Copy, Clone, Debug)]
19447#[doc(alias = "VkPerformanceCounterDescriptionKHR")]
19448pub struct PerformanceCounterDescriptionKHR {
19449    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR`.
19450    pub s_type: StructureType,
19451    ///Optional, may be null.
19452    pub p_next: *mut core::ffi::c_void,
19453    pub flags: PerformanceCounterDescriptionFlagsKHR,
19454    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
19455    pub category: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
19456    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
19457}
19458impl Default for PerformanceCounterDescriptionKHR {
19459    #[inline]
19460    fn default() -> Self {
19461        Self {
19462            s_type: StructureType::from_raw(1000116006i32),
19463            p_next: core::ptr::null_mut(),
19464            flags: Default::default(),
19465            name: unsafe { core::mem::zeroed() },
19466            category: unsafe { core::mem::zeroed() },
19467            description: unsafe { core::mem::zeroed() },
19468        }
19469    }
19470}
19471///[`VkQueryPoolPerformanceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolPerformanceCreateInfoKHR.html)
19472/**
19473Provided by **VK_KHR_performance_query**.*/
19474///
19475///# Extends
19476///- [`QueryPoolCreateInfo`]
19477#[repr(C)]
19478#[derive(Copy, Clone, Debug)]
19479#[doc(alias = "VkQueryPoolPerformanceCreateInfoKHR")]
19480pub struct QueryPoolPerformanceCreateInfoKHR {
19481    ///Must be `VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR`.
19482    pub s_type: StructureType,
19483    ///Optional, may be null.
19484    pub p_next: *const core::ffi::c_void,
19485    pub queue_family_index: u32,
19486    ///Length of `p_counter_indices`.
19487    pub counter_index_count: u32,
19488    pub p_counter_indices: *const u32,
19489}
19490impl Default for QueryPoolPerformanceCreateInfoKHR {
19491    #[inline]
19492    fn default() -> Self {
19493        Self {
19494            s_type: StructureType::from_raw(1000116002i32),
19495            p_next: core::ptr::null(),
19496            queue_family_index: Default::default(),
19497            counter_index_count: Default::default(),
19498            p_counter_indices: core::ptr::null(),
19499        }
19500    }
19501}
19502///[`VkPerformanceCounterResultKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterResultKHR.html)
19503/**
19504Provided by **VK_KHR_performance_query**.*/
19505#[repr(C)]
19506#[derive(Copy, Clone)]
19507#[doc(alias = "VkPerformanceCounterResultKHR")]
19508pub union PerformanceCounterResultKHR {
19509    pub int32: i32,
19510    pub int64: i64,
19511    pub uint32: u32,
19512    pub uint64: u64,
19513    pub float32: f32,
19514    pub float64: f64,
19515}
19516impl Default for PerformanceCounterResultKHR {
19517    #[inline]
19518    fn default() -> Self {
19519        unsafe { core::mem::zeroed() }
19520    }
19521}
19522impl core::fmt::Debug for PerformanceCounterResultKHR {
19523    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19524        f.write_str(stringify!(PerformanceCounterResultKHR))
19525    }
19526}
19527///[`VkAcquireProfilingLockInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAcquireProfilingLockInfoKHR.html)
19528/**
19529Provided by **VK_KHR_performance_query**.*/
19530#[repr(C)]
19531#[derive(Copy, Clone, Debug)]
19532#[doc(alias = "VkAcquireProfilingLockInfoKHR")]
19533pub struct AcquireProfilingLockInfoKHR {
19534    ///Must be `VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR`.
19535    pub s_type: StructureType,
19536    ///Optional, may be null.
19537    pub p_next: *const core::ffi::c_void,
19538    pub flags: AcquireProfilingLockFlagsKHR,
19539    pub timeout: u64,
19540}
19541impl Default for AcquireProfilingLockInfoKHR {
19542    #[inline]
19543    fn default() -> Self {
19544        Self {
19545            s_type: StructureType::from_raw(1000116004i32),
19546            p_next: core::ptr::null(),
19547            flags: Default::default(),
19548            timeout: Default::default(),
19549        }
19550    }
19551}
19552///[`VkPerformanceQuerySubmitInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceQuerySubmitInfoKHR.html)
19553/**
19554Provided by **VK_KHR_performance_query**.*/
19555///
19556///# Extends
19557///- [`SubmitInfo`]
19558///- [`SubmitInfo2`]
19559#[repr(C)]
19560#[derive(Copy, Clone, Debug)]
19561#[doc(alias = "VkPerformanceQuerySubmitInfoKHR")]
19562pub struct PerformanceQuerySubmitInfoKHR {
19563    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR`.
19564    pub s_type: StructureType,
19565    ///Optional, may be null.
19566    pub p_next: *const core::ffi::c_void,
19567    pub counter_pass_index: u32,
19568}
19569impl Default for PerformanceQuerySubmitInfoKHR {
19570    #[inline]
19571    fn default() -> Self {
19572        Self {
19573            s_type: StructureType::from_raw(1000116003i32),
19574            p_next: core::ptr::null(),
19575            counter_pass_index: Default::default(),
19576        }
19577    }
19578}
19579///[`VkPerformanceQueryReservationInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceQueryReservationInfoKHR.html)
19580///
19581///# Extends
19582///- [`DeviceCreateInfo`]
19583#[repr(C)]
19584#[derive(Copy, Clone, Debug)]
19585#[doc(alias = "VkPerformanceQueryReservationInfoKHR")]
19586pub struct PerformanceQueryReservationInfoKHR {
19587    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR`.
19588    pub s_type: StructureType,
19589    ///Optional, may be null.
19590    pub p_next: *const core::ffi::c_void,
19591    pub max_performance_queries_per_pool: u32,
19592}
19593impl Default for PerformanceQueryReservationInfoKHR {
19594    #[inline]
19595    fn default() -> Self {
19596        Self {
19597            s_type: StructureType::from_raw(1000116007i32),
19598            p_next: core::ptr::null(),
19599            max_performance_queries_per_pool: Default::default(),
19600        }
19601    }
19602}
19603///[`VkHeadlessSurfaceCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHeadlessSurfaceCreateInfoEXT.html)
19604/**
19605Provided by **VK_EXT_headless_surface**.*/
19606#[repr(C)]
19607#[derive(Copy, Clone, Debug)]
19608#[doc(alias = "VkHeadlessSurfaceCreateInfoEXT")]
19609pub struct HeadlessSurfaceCreateInfoEXT {
19610    ///Must be `VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT`.
19611    pub s_type: StructureType,
19612    ///Optional, may be null.
19613    pub p_next: *const core::ffi::c_void,
19614    pub flags: HeadlessSurfaceCreateFlagsEXT,
19615}
19616impl Default for HeadlessSurfaceCreateInfoEXT {
19617    #[inline]
19618    fn default() -> Self {
19619        Self {
19620            s_type: StructureType::from_raw(1000256000i32),
19621            p_next: core::ptr::null(),
19622            flags: Default::default(),
19623        }
19624    }
19625}
19626///[`VkPhysicalDeviceCoverageReductionModeFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCoverageReductionModeFeaturesNV.html)
19627/**
19628Provided by **VK_NV_coverage_reduction_mode**.*/
19629///
19630///# Extends
19631///- [`PhysicalDeviceFeatures2`]
19632///- [`DeviceCreateInfo`]
19633#[repr(C)]
19634#[derive(Copy, Clone, Debug)]
19635#[doc(alias = "VkPhysicalDeviceCoverageReductionModeFeaturesNV")]
19636pub struct PhysicalDeviceCoverageReductionModeFeaturesNV {
19637    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV`.
19638    pub s_type: StructureType,
19639    ///Optional, may be null.
19640    pub p_next: *mut core::ffi::c_void,
19641    pub coverage_reduction_mode: u32,
19642}
19643impl Default for PhysicalDeviceCoverageReductionModeFeaturesNV {
19644    #[inline]
19645    fn default() -> Self {
19646        Self {
19647            s_type: StructureType::from_raw(1000250000i32),
19648            p_next: core::ptr::null_mut(),
19649            coverage_reduction_mode: Default::default(),
19650        }
19651    }
19652}
19653///[`VkPipelineCoverageReductionStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCoverageReductionStateCreateInfoNV.html)
19654/**
19655Provided by **VK_NV_coverage_reduction_mode**.*/
19656///
19657///# Extends
19658///- [`PipelineMultisampleStateCreateInfo`]
19659#[repr(C)]
19660#[derive(Copy, Clone, Debug)]
19661#[doc(alias = "VkPipelineCoverageReductionStateCreateInfoNV")]
19662pub struct PipelineCoverageReductionStateCreateInfoNV {
19663    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV`.
19664    pub s_type: StructureType,
19665    ///Optional, may be null.
19666    pub p_next: *const core::ffi::c_void,
19667    pub flags: PipelineCoverageReductionStateCreateFlagsNV,
19668    pub coverage_reduction_mode: CoverageReductionModeNV,
19669}
19670impl Default for PipelineCoverageReductionStateCreateInfoNV {
19671    #[inline]
19672    fn default() -> Self {
19673        Self {
19674            s_type: StructureType::from_raw(1000250001i32),
19675            p_next: core::ptr::null(),
19676            flags: Default::default(),
19677            coverage_reduction_mode: Default::default(),
19678        }
19679    }
19680}
19681///[`VkFramebufferMixedSamplesCombinationNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferMixedSamplesCombinationNV.html)
19682/**
19683Provided by **VK_NV_coverage_reduction_mode**.*/
19684/**
19685**Returned only**, filled by Vulkan, not constructed by the application.*/
19686#[repr(C)]
19687#[derive(Copy, Clone, Debug)]
19688#[doc(alias = "VkFramebufferMixedSamplesCombinationNV")]
19689pub struct FramebufferMixedSamplesCombinationNV {
19690    ///Must be `VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV`.
19691    pub s_type: StructureType,
19692    ///Optional, may be null.
19693    pub p_next: *mut core::ffi::c_void,
19694    pub coverage_reduction_mode: CoverageReductionModeNV,
19695    pub rasterization_samples: SampleCountFlagBits,
19696    pub depth_stencil_samples: SampleCountFlags,
19697    pub color_samples: SampleCountFlags,
19698}
19699impl Default for FramebufferMixedSamplesCombinationNV {
19700    #[inline]
19701    fn default() -> Self {
19702        Self {
19703            s_type: StructureType::from_raw(1000250002i32),
19704            p_next: core::ptr::null_mut(),
19705            coverage_reduction_mode: Default::default(),
19706            rasterization_samples: Default::default(),
19707            depth_stencil_samples: Default::default(),
19708            color_samples: Default::default(),
19709        }
19710    }
19711}
19712///[`VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.html)
19713/**
19714Provided by **VK_INTEL_shader_integer_functions2**.*/
19715///
19716///# Extends
19717///- [`PhysicalDeviceFeatures2`]
19718///- [`DeviceCreateInfo`]
19719#[repr(C)]
19720#[derive(Copy, Clone, Debug)]
19721#[doc(alias = "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL")]
19722pub struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
19723    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL`.
19724    pub s_type: StructureType,
19725    ///Optional, may be null.
19726    pub p_next: *mut core::ffi::c_void,
19727    pub shader_integer_functions2: u32,
19728}
19729impl Default for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
19730    #[inline]
19731    fn default() -> Self {
19732        Self {
19733            s_type: StructureType::from_raw(1000209000i32),
19734            p_next: core::ptr::null_mut(),
19735            shader_integer_functions2: Default::default(),
19736        }
19737    }
19738}
19739///[`VkPerformanceValueDataINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceValueDataINTEL.html)
19740/**
19741Provided by **VK_INTEL_performance_query**.*/
19742#[repr(C)]
19743#[derive(Copy, Clone)]
19744#[doc(alias = "VkPerformanceValueDataINTEL")]
19745pub union PerformanceValueDataINTEL {
19746    pub value32: u32,
19747    pub value64: u64,
19748    pub value_float: f32,
19749    pub value_bool: u32,
19750    pub value_string: *const core::ffi::c_char,
19751}
19752impl Default for PerformanceValueDataINTEL {
19753    #[inline]
19754    fn default() -> Self {
19755        unsafe { core::mem::zeroed() }
19756    }
19757}
19758impl core::fmt::Debug for PerformanceValueDataINTEL {
19759    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19760        f.write_str(stringify!(PerformanceValueDataINTEL))
19761    }
19762}
19763///[`VkPerformanceValueINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceValueINTEL.html)
19764/**
19765Provided by **VK_INTEL_performance_query**.*/
19766/**
19767**Returned only**, filled by Vulkan, not constructed by the application.*/
19768#[repr(C)]
19769#[derive(Copy, Clone, Debug)]
19770#[doc(alias = "VkPerformanceValueINTEL")]
19771pub struct PerformanceValueINTEL {
19772    pub r#type: PerformanceValueTypeINTEL,
19773    pub data: PerformanceValueDataINTEL,
19774}
19775impl Default for PerformanceValueINTEL {
19776    #[inline]
19777    fn default() -> Self {
19778        unsafe { core::mem::zeroed() }
19779    }
19780}
19781///[`VkInitializePerformanceApiInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkInitializePerformanceApiInfoINTEL.html)
19782/**
19783Provided by **VK_INTEL_performance_query**.*/
19784#[repr(C)]
19785#[derive(Copy, Clone, Debug)]
19786#[doc(alias = "VkInitializePerformanceApiInfoINTEL")]
19787pub struct InitializePerformanceApiInfoINTEL {
19788    ///Must be `VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL`.
19789    pub s_type: StructureType,
19790    ///Optional, may be null.
19791    pub p_next: *const core::ffi::c_void,
19792    ///Optional, may be null.
19793    pub p_user_data: *mut core::ffi::c_void,
19794}
19795impl Default for InitializePerformanceApiInfoINTEL {
19796    #[inline]
19797    fn default() -> Self {
19798        Self {
19799            s_type: StructureType::from_raw(1000210001i32),
19800            p_next: core::ptr::null(),
19801            p_user_data: core::ptr::null_mut(),
19802        }
19803    }
19804}
19805///[`VkQueryPoolPerformanceQueryCreateInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolPerformanceQueryCreateInfoINTEL.html)
19806/**
19807Provided by **VK_INTEL_performance_query**.*/
19808///
19809///# Extends
19810///- [`QueryPoolCreateInfo`]
19811#[repr(C)]
19812#[derive(Copy, Clone, Debug)]
19813#[doc(alias = "VkQueryPoolPerformanceQueryCreateInfoINTEL")]
19814pub struct QueryPoolPerformanceQueryCreateInfoINTEL {
19815    ///Must be `VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL`.
19816    pub s_type: StructureType,
19817    ///Optional, may be null.
19818    pub p_next: *const core::ffi::c_void,
19819    pub performance_counters_sampling: QueryPoolSamplingModeINTEL,
19820}
19821impl Default for QueryPoolPerformanceQueryCreateInfoINTEL {
19822    #[inline]
19823    fn default() -> Self {
19824        Self {
19825            s_type: StructureType::from_raw(1000210000i32),
19826            p_next: core::ptr::null(),
19827            performance_counters_sampling: Default::default(),
19828        }
19829    }
19830}
19831///[`VkPerformanceMarkerInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceMarkerInfoINTEL.html)
19832/**
19833Provided by **VK_INTEL_performance_query**.*/
19834#[repr(C)]
19835#[derive(Copy, Clone, Debug)]
19836#[doc(alias = "VkPerformanceMarkerInfoINTEL")]
19837pub struct PerformanceMarkerInfoINTEL {
19838    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL`.
19839    pub s_type: StructureType,
19840    ///Optional, may be null.
19841    pub p_next: *const core::ffi::c_void,
19842    pub marker: u64,
19843}
19844impl Default for PerformanceMarkerInfoINTEL {
19845    #[inline]
19846    fn default() -> Self {
19847        Self {
19848            s_type: StructureType::from_raw(1000210002i32),
19849            p_next: core::ptr::null(),
19850            marker: Default::default(),
19851        }
19852    }
19853}
19854///[`VkPerformanceStreamMarkerInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceStreamMarkerInfoINTEL.html)
19855/**
19856Provided by **VK_INTEL_performance_query**.*/
19857#[repr(C)]
19858#[derive(Copy, Clone, Debug)]
19859#[doc(alias = "VkPerformanceStreamMarkerInfoINTEL")]
19860pub struct PerformanceStreamMarkerInfoINTEL {
19861    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL`.
19862    pub s_type: StructureType,
19863    ///Optional, may be null.
19864    pub p_next: *const core::ffi::c_void,
19865    pub marker: u32,
19866}
19867impl Default for PerformanceStreamMarkerInfoINTEL {
19868    #[inline]
19869    fn default() -> Self {
19870        Self {
19871            s_type: StructureType::from_raw(1000210003i32),
19872            p_next: core::ptr::null(),
19873            marker: Default::default(),
19874        }
19875    }
19876}
19877///[`VkPerformanceOverrideInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceOverrideInfoINTEL.html)
19878/**
19879Provided by **VK_INTEL_performance_query**.*/
19880#[repr(C)]
19881#[derive(Copy, Clone, Debug)]
19882#[doc(alias = "VkPerformanceOverrideInfoINTEL")]
19883pub struct PerformanceOverrideInfoINTEL {
19884    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL`.
19885    pub s_type: StructureType,
19886    ///Optional, may be null.
19887    pub p_next: *const core::ffi::c_void,
19888    pub r#type: PerformanceOverrideTypeINTEL,
19889    pub enable: u32,
19890    pub parameter: u64,
19891}
19892impl Default for PerformanceOverrideInfoINTEL {
19893    #[inline]
19894    fn default() -> Self {
19895        Self {
19896            s_type: StructureType::from_raw(1000210004i32),
19897            p_next: core::ptr::null(),
19898            r#type: Default::default(),
19899            enable: Default::default(),
19900            parameter: Default::default(),
19901        }
19902    }
19903}
19904///[`VkPerformanceConfigurationAcquireInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceConfigurationAcquireInfoINTEL.html)
19905/**
19906Provided by **VK_INTEL_performance_query**.*/
19907#[repr(C)]
19908#[derive(Copy, Clone, Debug)]
19909#[doc(alias = "VkPerformanceConfigurationAcquireInfoINTEL")]
19910pub struct PerformanceConfigurationAcquireInfoINTEL {
19911    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL`.
19912    pub s_type: StructureType,
19913    ///Optional, may be null.
19914    pub p_next: *const core::ffi::c_void,
19915    pub r#type: PerformanceConfigurationTypeINTEL,
19916}
19917impl Default for PerformanceConfigurationAcquireInfoINTEL {
19918    #[inline]
19919    fn default() -> Self {
19920        Self {
19921            s_type: StructureType::from_raw(1000210005i32),
19922            p_next: core::ptr::null(),
19923            r#type: Default::default(),
19924        }
19925    }
19926}
19927///[`VkPhysicalDeviceShaderClockFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderClockFeaturesKHR.html)
19928/**
19929Provided by **VK_KHR_shader_clock**.*/
19930///
19931///# Extends
19932///- [`PhysicalDeviceFeatures2`]
19933///- [`DeviceCreateInfo`]
19934#[repr(C)]
19935#[derive(Copy, Clone, Debug)]
19936#[doc(alias = "VkPhysicalDeviceShaderClockFeaturesKHR")]
19937pub struct PhysicalDeviceShaderClockFeaturesKHR {
19938    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR`.
19939    pub s_type: StructureType,
19940    ///Optional, may be null.
19941    pub p_next: *mut core::ffi::c_void,
19942    pub shader_subgroup_clock: u32,
19943    pub shader_device_clock: u32,
19944}
19945impl Default for PhysicalDeviceShaderClockFeaturesKHR {
19946    #[inline]
19947    fn default() -> Self {
19948        Self {
19949            s_type: StructureType::from_raw(1000181000i32),
19950            p_next: core::ptr::null_mut(),
19951            shader_subgroup_clock: Default::default(),
19952            shader_device_clock: Default::default(),
19953        }
19954    }
19955}
19956///[`VkPhysicalDeviceIndexTypeUint8Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceIndexTypeUint8Features.html)
19957/**
19958Provided by **VK_BASE_VERSION_1_4**.*/
19959///
19960///# Extends
19961///- [`PhysicalDeviceFeatures2`]
19962///- [`DeviceCreateInfo`]
19963#[repr(C)]
19964#[derive(Copy, Clone, Debug)]
19965#[doc(alias = "VkPhysicalDeviceIndexTypeUint8Features")]
19966pub struct PhysicalDeviceIndexTypeUint8Features {
19967    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES`.
19968    pub s_type: StructureType,
19969    ///Optional, may be null.
19970    pub p_next: *mut core::ffi::c_void,
19971    pub index_type_uint8: u32,
19972}
19973impl Default for PhysicalDeviceIndexTypeUint8Features {
19974    #[inline]
19975    fn default() -> Self {
19976        Self {
19977            s_type: StructureType::from_raw(1000265000i32),
19978            p_next: core::ptr::null_mut(),
19979            index_type_uint8: Default::default(),
19980        }
19981    }
19982}
19983///[`VkPhysicalDeviceShaderSMBuiltinsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSMBuiltinsPropertiesNV.html)
19984/**
19985Provided by **VK_NV_shader_sm_builtins**.*/
19986/**
19987**Returned only**, filled by Vulkan, not constructed by the application.*/
19988///
19989///# Extends
19990///- [`PhysicalDeviceProperties2`]
19991#[repr(C)]
19992#[derive(Copy, Clone, Debug)]
19993#[doc(alias = "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV")]
19994pub struct PhysicalDeviceShaderSMBuiltinsPropertiesNV {
19995    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV`.
19996    pub s_type: StructureType,
19997    ///Optional, may be null.
19998    pub p_next: *mut core::ffi::c_void,
19999    pub shader_sm_count: u32,
20000    pub shader_warps_per_sm: u32,
20001}
20002impl Default for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
20003    #[inline]
20004    fn default() -> Self {
20005        Self {
20006            s_type: StructureType::from_raw(1000154001i32),
20007            p_next: core::ptr::null_mut(),
20008            shader_sm_count: Default::default(),
20009            shader_warps_per_sm: Default::default(),
20010        }
20011    }
20012}
20013///[`VkPhysicalDeviceShaderSMBuiltinsFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.html)
20014/**
20015Provided by **VK_NV_shader_sm_builtins**.*/
20016///
20017///# Extends
20018///- [`PhysicalDeviceFeatures2`]
20019///- [`DeviceCreateInfo`]
20020#[repr(C)]
20021#[derive(Copy, Clone, Debug)]
20022#[doc(alias = "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV")]
20023pub struct PhysicalDeviceShaderSMBuiltinsFeaturesNV {
20024    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV`.
20025    pub s_type: StructureType,
20026    ///Optional, may be null.
20027    pub p_next: *mut core::ffi::c_void,
20028    pub shader_sm_builtins: u32,
20029}
20030impl Default for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
20031    #[inline]
20032    fn default() -> Self {
20033        Self {
20034            s_type: StructureType::from_raw(1000154000i32),
20035            p_next: core::ptr::null_mut(),
20036            shader_sm_builtins: Default::default(),
20037        }
20038    }
20039}
20040///[`VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.html)
20041/**
20042Provided by **VK_EXT_fragment_shader_interlock**.*/
20043///
20044///# Extends
20045///- [`PhysicalDeviceFeatures2`]
20046///- [`DeviceCreateInfo`]
20047#[repr(C)]
20048#[derive(Copy, Clone, Debug)]
20049#[doc(alias = "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT")]
20050pub struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
20051    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT`.
20052    pub s_type: StructureType,
20053    ///Optional, may be null.
20054    pub p_next: *mut core::ffi::c_void,
20055    pub fragment_shader_sample_interlock: u32,
20056    pub fragment_shader_pixel_interlock: u32,
20057    pub fragment_shader_shading_rate_interlock: u32,
20058}
20059impl Default for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
20060    #[inline]
20061    fn default() -> Self {
20062        Self {
20063            s_type: StructureType::from_raw(1000251000i32),
20064            p_next: core::ptr::null_mut(),
20065            fragment_shader_sample_interlock: Default::default(),
20066            fragment_shader_pixel_interlock: Default::default(),
20067            fragment_shader_shading_rate_interlock: Default::default(),
20068        }
20069    }
20070}
20071///[`VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.html)
20072/**
20073Provided by **VK_GRAPHICS_VERSION_1_2**.*/
20074///
20075///# Extends
20076///- [`PhysicalDeviceFeatures2`]
20077///- [`DeviceCreateInfo`]
20078#[repr(C)]
20079#[derive(Copy, Clone, Debug)]
20080#[doc(alias = "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures")]
20081pub struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
20082    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES`.
20083    pub s_type: StructureType,
20084    ///Optional, may be null.
20085    pub p_next: *mut core::ffi::c_void,
20086    pub separate_depth_stencil_layouts: u32,
20087}
20088impl Default for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
20089    #[inline]
20090    fn default() -> Self {
20091        Self {
20092            s_type: StructureType::from_raw(1000241000i32),
20093            p_next: core::ptr::null_mut(),
20094            separate_depth_stencil_layouts: Default::default(),
20095        }
20096    }
20097}
20098///[`VkAttachmentReferenceStencilLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentReferenceStencilLayout.html)
20099/**
20100Provided by **VK_GRAPHICS_VERSION_1_2**.*/
20101///
20102///# Extends
20103///- [`AttachmentReference2`]
20104#[repr(C)]
20105#[derive(Copy, Clone, Debug)]
20106#[doc(alias = "VkAttachmentReferenceStencilLayout")]
20107pub struct AttachmentReferenceStencilLayout {
20108    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT`.
20109    pub s_type: StructureType,
20110    ///Optional, may be null.
20111    pub p_next: *mut core::ffi::c_void,
20112    pub stencil_layout: ImageLayout,
20113}
20114impl Default for AttachmentReferenceStencilLayout {
20115    #[inline]
20116    fn default() -> Self {
20117        Self {
20118            s_type: StructureType::from_raw(1000241001i32),
20119            p_next: core::ptr::null_mut(),
20120            stencil_layout: Default::default(),
20121        }
20122    }
20123}
20124///[`VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.html)
20125/**
20126Provided by **VK_EXT_primitive_topology_list_restart**.*/
20127///
20128///# Extends
20129///- [`PhysicalDeviceFeatures2`]
20130///- [`DeviceCreateInfo`]
20131#[repr(C)]
20132#[derive(Copy, Clone, Debug)]
20133#[doc(alias = "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT")]
20134pub struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
20135    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT`.
20136    pub s_type: StructureType,
20137    ///Optional, may be null.
20138    pub p_next: *mut core::ffi::c_void,
20139    pub primitive_topology_list_restart: u32,
20140    pub primitive_topology_patch_list_restart: u32,
20141}
20142impl Default for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
20143    #[inline]
20144    fn default() -> Self {
20145        Self {
20146            s_type: StructureType::from_raw(1000356000i32),
20147            p_next: core::ptr::null_mut(),
20148            primitive_topology_list_restart: Default::default(),
20149            primitive_topology_patch_list_restart: Default::default(),
20150        }
20151    }
20152}
20153///[`VkAttachmentDescriptionStencilLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentDescriptionStencilLayout.html)
20154/**
20155Provided by **VK_GRAPHICS_VERSION_1_2**.*/
20156///
20157///# Extends
20158///- [`AttachmentDescription2`]
20159#[repr(C)]
20160#[derive(Copy, Clone, Debug)]
20161#[doc(alias = "VkAttachmentDescriptionStencilLayout")]
20162pub struct AttachmentDescriptionStencilLayout {
20163    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT`.
20164    pub s_type: StructureType,
20165    ///Optional, may be null.
20166    pub p_next: *mut core::ffi::c_void,
20167    pub stencil_initial_layout: ImageLayout,
20168    pub stencil_final_layout: ImageLayout,
20169}
20170impl Default for AttachmentDescriptionStencilLayout {
20171    #[inline]
20172    fn default() -> Self {
20173        Self {
20174            s_type: StructureType::from_raw(1000241002i32),
20175            p_next: core::ptr::null_mut(),
20176            stencil_initial_layout: Default::default(),
20177            stencil_final_layout: Default::default(),
20178        }
20179    }
20180}
20181///[`VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.html)
20182/**
20183Provided by **VK_KHR_pipeline_executable_properties**.*/
20184///
20185///# Extends
20186///- [`PhysicalDeviceFeatures2`]
20187///- [`DeviceCreateInfo`]
20188#[repr(C)]
20189#[derive(Copy, Clone, Debug)]
20190#[doc(alias = "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR")]
20191pub struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
20192    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR`.
20193    pub s_type: StructureType,
20194    ///Optional, may be null.
20195    pub p_next: *mut core::ffi::c_void,
20196    pub pipeline_executable_info: u32,
20197}
20198impl Default for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
20199    #[inline]
20200    fn default() -> Self {
20201        Self {
20202            s_type: StructureType::from_raw(1000269000i32),
20203            p_next: core::ptr::null_mut(),
20204            pipeline_executable_info: Default::default(),
20205        }
20206    }
20207}
20208///[`VkPipelineInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineInfoKHR.html)
20209/**
20210Provided by **VK_KHR_pipeline_executable_properties**.*/
20211#[repr(C)]
20212#[derive(Copy, Clone, Debug)]
20213#[doc(alias = "VkPipelineInfoKHR")]
20214pub struct PipelineInfoKHR {
20215    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR`.
20216    pub s_type: StructureType,
20217    ///Optional, may be null.
20218    pub p_next: *const core::ffi::c_void,
20219    pub pipeline: Pipeline,
20220}
20221impl Default for PipelineInfoKHR {
20222    #[inline]
20223    fn default() -> Self {
20224        Self {
20225            s_type: StructureType::from_raw(1000269001i32),
20226            p_next: core::ptr::null(),
20227            pipeline: Default::default(),
20228        }
20229    }
20230}
20231///[`VkPipelineExecutablePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutablePropertiesKHR.html)
20232/**
20233Provided by **VK_KHR_pipeline_executable_properties**.*/
20234/**
20235**Returned only**, filled by Vulkan, not constructed by the application.*/
20236#[repr(C)]
20237#[derive(Copy, Clone, Debug)]
20238#[doc(alias = "VkPipelineExecutablePropertiesKHR")]
20239pub struct PipelineExecutablePropertiesKHR {
20240    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR`.
20241    pub s_type: StructureType,
20242    ///Optional, may be null.
20243    pub p_next: *mut core::ffi::c_void,
20244    pub stages: ShaderStageFlags,
20245    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20246    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20247    pub subgroup_size: u32,
20248}
20249impl Default for PipelineExecutablePropertiesKHR {
20250    #[inline]
20251    fn default() -> Self {
20252        Self {
20253            s_type: StructureType::from_raw(1000269002i32),
20254            p_next: core::ptr::null_mut(),
20255            stages: Default::default(),
20256            name: unsafe { core::mem::zeroed() },
20257            description: unsafe { core::mem::zeroed() },
20258            subgroup_size: Default::default(),
20259        }
20260    }
20261}
20262///[`VkPipelineExecutableInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutableInfoKHR.html)
20263/**
20264Provided by **VK_KHR_pipeline_executable_properties**.*/
20265#[repr(C)]
20266#[derive(Copy, Clone, Debug)]
20267#[doc(alias = "VkPipelineExecutableInfoKHR")]
20268pub struct PipelineExecutableInfoKHR {
20269    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR`.
20270    pub s_type: StructureType,
20271    ///Optional, may be null.
20272    pub p_next: *const core::ffi::c_void,
20273    pub pipeline: Pipeline,
20274    pub executable_index: u32,
20275}
20276impl Default for PipelineExecutableInfoKHR {
20277    #[inline]
20278    fn default() -> Self {
20279        Self {
20280            s_type: StructureType::from_raw(1000269003i32),
20281            p_next: core::ptr::null(),
20282            pipeline: Default::default(),
20283            executable_index: Default::default(),
20284        }
20285    }
20286}
20287///[`VkPipelineExecutableStatisticValueKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutableStatisticValueKHR.html)
20288/**
20289Provided by **VK_KHR_pipeline_executable_properties**.*/
20290/**
20291**Returned only**, filled by Vulkan, not constructed by the application.*/
20292#[repr(C)]
20293#[derive(Copy, Clone)]
20294#[doc(alias = "VkPipelineExecutableStatisticValueKHR")]
20295pub union PipelineExecutableStatisticValueKHR {
20296    pub b32: u32,
20297    pub i64: i64,
20298    pub u64: u64,
20299    pub f64: f64,
20300}
20301impl Default for PipelineExecutableStatisticValueKHR {
20302    #[inline]
20303    fn default() -> Self {
20304        unsafe { core::mem::zeroed() }
20305    }
20306}
20307impl core::fmt::Debug for PipelineExecutableStatisticValueKHR {
20308    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20309        f.write_str(stringify!(PipelineExecutableStatisticValueKHR))
20310    }
20311}
20312///[`VkPipelineExecutableStatisticKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutableStatisticKHR.html)
20313/**
20314Provided by **VK_KHR_pipeline_executable_properties**.*/
20315/**
20316**Returned only**, filled by Vulkan, not constructed by the application.*/
20317#[repr(C)]
20318#[derive(Copy, Clone, Debug)]
20319#[doc(alias = "VkPipelineExecutableStatisticKHR")]
20320pub struct PipelineExecutableStatisticKHR {
20321    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR`.
20322    pub s_type: StructureType,
20323    ///Optional, may be null.
20324    pub p_next: *mut core::ffi::c_void,
20325    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20326    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20327    pub format: PipelineExecutableStatisticFormatKHR,
20328    pub value: PipelineExecutableStatisticValueKHR,
20329}
20330impl Default for PipelineExecutableStatisticKHR {
20331    #[inline]
20332    fn default() -> Self {
20333        Self {
20334            s_type: StructureType::from_raw(1000269004i32),
20335            p_next: core::ptr::null_mut(),
20336            name: unsafe { core::mem::zeroed() },
20337            description: unsafe { core::mem::zeroed() },
20338            format: Default::default(),
20339            value: Default::default(),
20340        }
20341    }
20342}
20343///[`VkPipelineExecutableInternalRepresentationKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutableInternalRepresentationKHR.html)
20344/**
20345Provided by **VK_KHR_pipeline_executable_properties**.*/
20346/**
20347**Returned only**, filled by Vulkan, not constructed by the application.*/
20348#[repr(C)]
20349#[derive(Copy, Clone, Debug)]
20350#[doc(alias = "VkPipelineExecutableInternalRepresentationKHR")]
20351pub struct PipelineExecutableInternalRepresentationKHR {
20352    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR`.
20353    pub s_type: StructureType,
20354    ///Optional, may be null.
20355    pub p_next: *mut core::ffi::c_void,
20356    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20357    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20358    pub is_text: u32,
20359    ///Length of `p_data`.
20360    pub data_size: usize,
20361    ///Optional, may be null.
20362    pub p_data: *mut core::ffi::c_void,
20363}
20364impl Default for PipelineExecutableInternalRepresentationKHR {
20365    #[inline]
20366    fn default() -> Self {
20367        Self {
20368            s_type: StructureType::from_raw(1000269005i32),
20369            p_next: core::ptr::null_mut(),
20370            name: unsafe { core::mem::zeroed() },
20371            description: unsafe { core::mem::zeroed() },
20372            is_text: Default::default(),
20373            data_size: Default::default(),
20374            p_data: core::ptr::null_mut(),
20375        }
20376    }
20377}
20378///[`VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures.html)
20379/**
20380Provided by **VK_COMPUTE_VERSION_1_3**.*/
20381///
20382///# Extends
20383///- [`PhysicalDeviceFeatures2`]
20384///- [`DeviceCreateInfo`]
20385#[repr(C)]
20386#[derive(Copy, Clone, Debug)]
20387#[doc(alias = "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures")]
20388pub struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
20389    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES`.
20390    pub s_type: StructureType,
20391    ///Optional, may be null.
20392    pub p_next: *mut core::ffi::c_void,
20393    pub shader_demote_to_helper_invocation: u32,
20394}
20395impl Default for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
20396    #[inline]
20397    fn default() -> Self {
20398        Self {
20399            s_type: StructureType::from_raw(1000276000i32),
20400            p_next: core::ptr::null_mut(),
20401            shader_demote_to_helper_invocation: Default::default(),
20402        }
20403    }
20404}
20405///[`VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.html)
20406/**
20407Provided by **VK_EXT_texel_buffer_alignment**.*/
20408///
20409///# Extends
20410///- [`PhysicalDeviceFeatures2`]
20411///- [`DeviceCreateInfo`]
20412#[repr(C)]
20413#[derive(Copy, Clone, Debug)]
20414#[doc(alias = "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT")]
20415pub struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
20416    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT`.
20417    pub s_type: StructureType,
20418    ///Optional, may be null.
20419    pub p_next: *mut core::ffi::c_void,
20420    pub texel_buffer_alignment: u32,
20421}
20422impl Default for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
20423    #[inline]
20424    fn default() -> Self {
20425        Self {
20426            s_type: StructureType::from_raw(1000281000i32),
20427            p_next: core::ptr::null_mut(),
20428            texel_buffer_alignment: Default::default(),
20429        }
20430    }
20431}
20432///[`VkPhysicalDeviceTexelBufferAlignmentProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTexelBufferAlignmentProperties.html)
20433/**
20434Provided by **VK_COMPUTE_VERSION_1_3**.*/
20435/**
20436**Returned only**, filled by Vulkan, not constructed by the application.*/
20437///
20438///# Extends
20439///- [`PhysicalDeviceProperties2`]
20440#[repr(C)]
20441#[derive(Copy, Clone, Debug)]
20442#[doc(alias = "VkPhysicalDeviceTexelBufferAlignmentProperties")]
20443pub struct PhysicalDeviceTexelBufferAlignmentProperties {
20444    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES`.
20445    pub s_type: StructureType,
20446    ///Optional, may be null.
20447    pub p_next: *mut core::ffi::c_void,
20448    pub storage_texel_buffer_offset_alignment_bytes: u64,
20449    pub storage_texel_buffer_offset_single_texel_alignment: u32,
20450    pub uniform_texel_buffer_offset_alignment_bytes: u64,
20451    pub uniform_texel_buffer_offset_single_texel_alignment: u32,
20452}
20453impl Default for PhysicalDeviceTexelBufferAlignmentProperties {
20454    #[inline]
20455    fn default() -> Self {
20456        Self {
20457            s_type: StructureType::from_raw(1000281001i32),
20458            p_next: core::ptr::null_mut(),
20459            storage_texel_buffer_offset_alignment_bytes: Default::default(),
20460            storage_texel_buffer_offset_single_texel_alignment: Default::default(),
20461            uniform_texel_buffer_offset_alignment_bytes: Default::default(),
20462            uniform_texel_buffer_offset_single_texel_alignment: Default::default(),
20463        }
20464    }
20465}
20466///[`VkPhysicalDeviceSubgroupSizeControlFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubgroupSizeControlFeatures.html)
20467/**
20468Provided by **VK_COMPUTE_VERSION_1_3**.*/
20469///
20470///# Extends
20471///- [`PhysicalDeviceFeatures2`]
20472///- [`DeviceCreateInfo`]
20473#[repr(C)]
20474#[derive(Copy, Clone, Debug)]
20475#[doc(alias = "VkPhysicalDeviceSubgroupSizeControlFeatures")]
20476pub struct PhysicalDeviceSubgroupSizeControlFeatures {
20477    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES`.
20478    pub s_type: StructureType,
20479    ///Optional, may be null.
20480    pub p_next: *mut core::ffi::c_void,
20481    pub subgroup_size_control: u32,
20482    pub compute_full_subgroups: u32,
20483}
20484impl Default for PhysicalDeviceSubgroupSizeControlFeatures {
20485    #[inline]
20486    fn default() -> Self {
20487        Self {
20488            s_type: StructureType::from_raw(1000225002i32),
20489            p_next: core::ptr::null_mut(),
20490            subgroup_size_control: Default::default(),
20491            compute_full_subgroups: Default::default(),
20492        }
20493    }
20494}
20495///[`VkPhysicalDeviceSubgroupSizeControlProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubgroupSizeControlProperties.html)
20496/**
20497Provided by **VK_COMPUTE_VERSION_1_3**.*/
20498/**
20499**Returned only**, filled by Vulkan, not constructed by the application.*/
20500///
20501///# Extends
20502///- [`PhysicalDeviceProperties2`]
20503#[repr(C)]
20504#[derive(Copy, Clone, Debug)]
20505#[doc(alias = "VkPhysicalDeviceSubgroupSizeControlProperties")]
20506pub struct PhysicalDeviceSubgroupSizeControlProperties {
20507    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES`.
20508    pub s_type: StructureType,
20509    ///Optional, may be null.
20510    pub p_next: *mut core::ffi::c_void,
20511    pub min_subgroup_size: u32,
20512    pub max_subgroup_size: u32,
20513    pub max_compute_workgroup_subgroups: u32,
20514    pub required_subgroup_size_stages: ShaderStageFlags,
20515}
20516impl Default for PhysicalDeviceSubgroupSizeControlProperties {
20517    #[inline]
20518    fn default() -> Self {
20519        Self {
20520            s_type: StructureType::from_raw(1000225000i32),
20521            p_next: core::ptr::null_mut(),
20522            min_subgroup_size: Default::default(),
20523            max_subgroup_size: Default::default(),
20524            max_compute_workgroup_subgroups: Default::default(),
20525            required_subgroup_size_stages: Default::default(),
20526        }
20527    }
20528}
20529///[`VkPipelineShaderStageRequiredSubgroupSizeCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineShaderStageRequiredSubgroupSizeCreateInfo.html)
20530/**
20531Provided by **VK_COMPUTE_VERSION_1_3**.*/
20532///
20533///# Extends
20534///- [`PipelineShaderStageCreateInfo`]
20535///- [`ShaderCreateInfoEXT`]
20536#[repr(C)]
20537#[derive(Copy, Clone, Debug)]
20538#[doc(alias = "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo")]
20539pub struct PipelineShaderStageRequiredSubgroupSizeCreateInfo {
20540    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO`.
20541    pub s_type: StructureType,
20542    ///Optional, may be null.
20543    pub p_next: *const core::ffi::c_void,
20544    pub required_subgroup_size: u32,
20545}
20546impl Default for PipelineShaderStageRequiredSubgroupSizeCreateInfo {
20547    #[inline]
20548    fn default() -> Self {
20549        Self {
20550            s_type: StructureType::from_raw(1000225001i32),
20551            p_next: core::ptr::null(),
20552            required_subgroup_size: Default::default(),
20553        }
20554    }
20555}
20556///[`VkSubpassShadingPipelineCreateInfoHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassShadingPipelineCreateInfoHUAWEI.html)
20557/**
20558Provided by **VK_HUAWEI_subpass_shading**.*/
20559///
20560///# Extends
20561///- [`ComputePipelineCreateInfo`]
20562#[repr(C)]
20563#[derive(Copy, Clone, Debug)]
20564#[doc(alias = "VkSubpassShadingPipelineCreateInfoHUAWEI")]
20565pub struct SubpassShadingPipelineCreateInfoHUAWEI {
20566    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI`.
20567    pub s_type: StructureType,
20568    ///Optional, may be null.
20569    pub p_next: *mut core::ffi::c_void,
20570    pub render_pass: RenderPass,
20571    pub subpass: u32,
20572}
20573impl Default for SubpassShadingPipelineCreateInfoHUAWEI {
20574    #[inline]
20575    fn default() -> Self {
20576        Self {
20577            s_type: StructureType::from_raw(1000369000i32),
20578            p_next: core::ptr::null_mut(),
20579            render_pass: Default::default(),
20580            subpass: Default::default(),
20581        }
20582    }
20583}
20584///[`VkPhysicalDeviceSubpassShadingPropertiesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubpassShadingPropertiesHUAWEI.html)
20585/**
20586Provided by **VK_HUAWEI_subpass_shading**.*/
20587/**
20588**Returned only**, filled by Vulkan, not constructed by the application.*/
20589///
20590///# Extends
20591///- [`PhysicalDeviceProperties2`]
20592#[repr(C)]
20593#[derive(Copy, Clone, Debug)]
20594#[doc(alias = "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI")]
20595pub struct PhysicalDeviceSubpassShadingPropertiesHUAWEI {
20596    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI`.
20597    pub s_type: StructureType,
20598    ///Optional, may be null.
20599    pub p_next: *mut core::ffi::c_void,
20600    pub max_subpass_shading_workgroup_size_aspect_ratio: u32,
20601}
20602impl Default for PhysicalDeviceSubpassShadingPropertiesHUAWEI {
20603    #[inline]
20604    fn default() -> Self {
20605        Self {
20606            s_type: StructureType::from_raw(1000369002i32),
20607            p_next: core::ptr::null_mut(),
20608            max_subpass_shading_workgroup_size_aspect_ratio: Default::default(),
20609        }
20610    }
20611}
20612///[`VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI.html)
20613/**
20614Provided by **VK_HUAWEI_cluster_culling_shader**.*/
20615/**
20616**Returned only**, filled by Vulkan, not constructed by the application.*/
20617///
20618///# Extends
20619///- [`PhysicalDeviceProperties2`]
20620#[repr(C)]
20621#[derive(Copy, Clone, Debug)]
20622#[doc(alias = "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI")]
20623pub struct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
20624    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI`.
20625    pub s_type: StructureType,
20626    ///Optional, may be null.
20627    pub p_next: *mut core::ffi::c_void,
20628    pub max_work_group_count: [u32; 3usize],
20629    pub max_work_group_size: [u32; 3usize],
20630    pub max_output_cluster_count: u32,
20631    pub indirect_buffer_offset_alignment: u64,
20632}
20633impl Default for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
20634    #[inline]
20635    fn default() -> Self {
20636        Self {
20637            s_type: StructureType::from_raw(1000404001i32),
20638            p_next: core::ptr::null_mut(),
20639            max_work_group_count: unsafe { core::mem::zeroed() },
20640            max_work_group_size: unsafe { core::mem::zeroed() },
20641            max_output_cluster_count: Default::default(),
20642            indirect_buffer_offset_alignment: Default::default(),
20643        }
20644    }
20645}
20646///[`VkMemoryOpaqueCaptureAddressAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryOpaqueCaptureAddressAllocateInfo.html)
20647/**
20648Provided by **VK_BASE_VERSION_1_2**.*/
20649///
20650///# Extends
20651///- [`MemoryAllocateInfo`]
20652#[repr(C)]
20653#[derive(Copy, Clone, Debug)]
20654#[doc(alias = "VkMemoryOpaqueCaptureAddressAllocateInfo")]
20655pub struct MemoryOpaqueCaptureAddressAllocateInfo {
20656    ///Must be `VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO`.
20657    pub s_type: StructureType,
20658    ///Optional, may be null.
20659    pub p_next: *const core::ffi::c_void,
20660    pub opaque_capture_address: u64,
20661}
20662impl Default for MemoryOpaqueCaptureAddressAllocateInfo {
20663    #[inline]
20664    fn default() -> Self {
20665        Self {
20666            s_type: StructureType::from_raw(1000257003i32),
20667            p_next: core::ptr::null(),
20668            opaque_capture_address: Default::default(),
20669        }
20670    }
20671}
20672///[`VkDeviceMemoryOpaqueCaptureAddressInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryOpaqueCaptureAddressInfo.html)
20673/**
20674Provided by **VK_BASE_VERSION_1_2**.*/
20675#[repr(C)]
20676#[derive(Copy, Clone, Debug)]
20677#[doc(alias = "VkDeviceMemoryOpaqueCaptureAddressInfo")]
20678pub struct DeviceMemoryOpaqueCaptureAddressInfo {
20679    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO`.
20680    pub s_type: StructureType,
20681    ///Optional, may be null.
20682    pub p_next: *const core::ffi::c_void,
20683    pub memory: DeviceMemory,
20684}
20685impl Default for DeviceMemoryOpaqueCaptureAddressInfo {
20686    #[inline]
20687    fn default() -> Self {
20688        Self {
20689            s_type: StructureType::from_raw(1000257004i32),
20690            p_next: core::ptr::null(),
20691            memory: Default::default(),
20692        }
20693    }
20694}
20695///[`VkPhysicalDeviceLineRasterizationFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLineRasterizationFeatures.html)
20696/**
20697Provided by **VK_GRAPHICS_VERSION_1_4**.*/
20698///
20699///# Extends
20700///- [`PhysicalDeviceFeatures2`]
20701///- [`DeviceCreateInfo`]
20702#[repr(C)]
20703#[derive(Copy, Clone, Debug)]
20704#[doc(alias = "VkPhysicalDeviceLineRasterizationFeatures")]
20705pub struct PhysicalDeviceLineRasterizationFeatures {
20706    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES`.
20707    pub s_type: StructureType,
20708    ///Optional, may be null.
20709    pub p_next: *mut core::ffi::c_void,
20710    pub rectangular_lines: u32,
20711    pub bresenham_lines: u32,
20712    pub smooth_lines: u32,
20713    pub stippled_rectangular_lines: u32,
20714    pub stippled_bresenham_lines: u32,
20715    pub stippled_smooth_lines: u32,
20716}
20717impl Default for PhysicalDeviceLineRasterizationFeatures {
20718    #[inline]
20719    fn default() -> Self {
20720        Self {
20721            s_type: StructureType::from_raw(1000259000i32),
20722            p_next: core::ptr::null_mut(),
20723            rectangular_lines: Default::default(),
20724            bresenham_lines: Default::default(),
20725            smooth_lines: Default::default(),
20726            stippled_rectangular_lines: Default::default(),
20727            stippled_bresenham_lines: Default::default(),
20728            stippled_smooth_lines: Default::default(),
20729        }
20730    }
20731}
20732///[`VkPhysicalDeviceLineRasterizationProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLineRasterizationProperties.html)
20733/**
20734Provided by **VK_GRAPHICS_VERSION_1_4**.*/
20735/**
20736**Returned only**, filled by Vulkan, not constructed by the application.*/
20737///
20738///# Extends
20739///- [`PhysicalDeviceProperties2`]
20740#[repr(C)]
20741#[derive(Copy, Clone, Debug)]
20742#[doc(alias = "VkPhysicalDeviceLineRasterizationProperties")]
20743pub struct PhysicalDeviceLineRasterizationProperties {
20744    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES`.
20745    pub s_type: StructureType,
20746    ///Optional, may be null.
20747    pub p_next: *mut core::ffi::c_void,
20748    pub line_sub_pixel_precision_bits: u32,
20749}
20750impl Default for PhysicalDeviceLineRasterizationProperties {
20751    #[inline]
20752    fn default() -> Self {
20753        Self {
20754            s_type: StructureType::from_raw(1000259002i32),
20755            p_next: core::ptr::null_mut(),
20756            line_sub_pixel_precision_bits: Default::default(),
20757        }
20758    }
20759}
20760///[`VkPipelineRasterizationLineStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationLineStateCreateInfo.html)
20761/**
20762Provided by **VK_GRAPHICS_VERSION_1_4**.*/
20763///
20764///# Extends
20765///- [`PipelineRasterizationStateCreateInfo`]
20766#[repr(C)]
20767#[derive(Copy, Clone, Debug)]
20768#[doc(alias = "VkPipelineRasterizationLineStateCreateInfo")]
20769pub struct PipelineRasterizationLineStateCreateInfo {
20770    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO`.
20771    pub s_type: StructureType,
20772    ///Optional, may be null.
20773    pub p_next: *const core::ffi::c_void,
20774    pub line_rasterization_mode: LineRasterizationMode,
20775    pub stippled_line_enable: u32,
20776    pub line_stipple_factor: u32,
20777    pub line_stipple_pattern: u16,
20778}
20779impl Default for PipelineRasterizationLineStateCreateInfo {
20780    #[inline]
20781    fn default() -> Self {
20782        Self {
20783            s_type: StructureType::from_raw(1000259001i32),
20784            p_next: core::ptr::null(),
20785            line_rasterization_mode: Default::default(),
20786            stippled_line_enable: Default::default(),
20787            line_stipple_factor: Default::default(),
20788            line_stipple_pattern: Default::default(),
20789        }
20790    }
20791}
20792///[`VkPhysicalDevicePipelineCreationCacheControlFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineCreationCacheControlFeatures.html)
20793/**
20794Provided by **VK_COMPUTE_VERSION_1_3**.*/
20795///
20796///# Extends
20797///- [`PhysicalDeviceFeatures2`]
20798///- [`DeviceCreateInfo`]
20799#[repr(C)]
20800#[derive(Copy, Clone, Debug)]
20801#[doc(alias = "VkPhysicalDevicePipelineCreationCacheControlFeatures")]
20802pub struct PhysicalDevicePipelineCreationCacheControlFeatures {
20803    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES`.
20804    pub s_type: StructureType,
20805    ///Optional, may be null.
20806    pub p_next: *mut core::ffi::c_void,
20807    pub pipeline_creation_cache_control: u32,
20808}
20809impl Default for PhysicalDevicePipelineCreationCacheControlFeatures {
20810    #[inline]
20811    fn default() -> Self {
20812        Self {
20813            s_type: StructureType::from_raw(1000297000i32),
20814            p_next: core::ptr::null_mut(),
20815            pipeline_creation_cache_control: Default::default(),
20816        }
20817    }
20818}
20819///[`VkPhysicalDeviceVulkan11Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan11Features.html)
20820/**
20821Provided by **VK_BASE_VERSION_1_2**.*/
20822///
20823///# Extends
20824///- [`PhysicalDeviceFeatures2`]
20825///- [`DeviceCreateInfo`]
20826#[repr(C)]
20827#[derive(Copy, Clone, Debug)]
20828#[doc(alias = "VkPhysicalDeviceVulkan11Features")]
20829pub struct PhysicalDeviceVulkan11Features {
20830    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES`.
20831    pub s_type: StructureType,
20832    ///Optional, may be null.
20833    pub p_next: *mut core::ffi::c_void,
20834    pub storage_buffer16_bit_access: u32,
20835    pub uniform_and_storage_buffer16_bit_access: u32,
20836    pub storage_push_constant16: u32,
20837    pub storage_input_output16: u32,
20838    pub multiview: u32,
20839    pub multiview_geometry_shader: u32,
20840    pub multiview_tessellation_shader: u32,
20841    pub variable_pointers_storage_buffer: u32,
20842    pub variable_pointers: u32,
20843    pub protected_memory: u32,
20844    pub sampler_ycbcr_conversion: u32,
20845    pub shader_draw_parameters: u32,
20846}
20847impl Default for PhysicalDeviceVulkan11Features {
20848    #[inline]
20849    fn default() -> Self {
20850        Self {
20851            s_type: StructureType::from_raw(49i32),
20852            p_next: core::ptr::null_mut(),
20853            storage_buffer16_bit_access: Default::default(),
20854            uniform_and_storage_buffer16_bit_access: Default::default(),
20855            storage_push_constant16: Default::default(),
20856            storage_input_output16: Default::default(),
20857            multiview: Default::default(),
20858            multiview_geometry_shader: Default::default(),
20859            multiview_tessellation_shader: Default::default(),
20860            variable_pointers_storage_buffer: Default::default(),
20861            variable_pointers: Default::default(),
20862            protected_memory: Default::default(),
20863            sampler_ycbcr_conversion: Default::default(),
20864            shader_draw_parameters: Default::default(),
20865        }
20866    }
20867}
20868///[`VkPhysicalDeviceVulkan11Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan11Properties.html)
20869/**
20870Provided by **VK_BASE_VERSION_1_2**.*/
20871/**
20872**Returned only**, filled by Vulkan, not constructed by the application.*/
20873///
20874///# Extends
20875///- [`PhysicalDeviceProperties2`]
20876#[repr(C)]
20877#[derive(Copy, Clone, Debug)]
20878#[doc(alias = "VkPhysicalDeviceVulkan11Properties")]
20879pub struct PhysicalDeviceVulkan11Properties {
20880    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES`.
20881    pub s_type: StructureType,
20882    ///Optional, may be null.
20883    pub p_next: *mut core::ffi::c_void,
20884    pub device_uuid: [u8; UUID_SIZE as usize],
20885    pub driver_uuid: [u8; UUID_SIZE as usize],
20886    pub device_luid: [u8; LUID_SIZE as usize],
20887    pub device_node_mask: u32,
20888    pub device_luid_valid: u32,
20889    pub subgroup_size: u32,
20890    pub subgroup_supported_stages: ShaderStageFlags,
20891    pub subgroup_supported_operations: SubgroupFeatureFlags,
20892    pub subgroup_quad_operations_in_all_stages: u32,
20893    pub point_clipping_behavior: PointClippingBehavior,
20894    pub max_multiview_view_count: u32,
20895    pub max_multiview_instance_index: u32,
20896    pub protected_no_fault: u32,
20897    pub max_per_set_descriptors: u32,
20898    pub max_memory_allocation_size: u64,
20899}
20900impl Default for PhysicalDeviceVulkan11Properties {
20901    #[inline]
20902    fn default() -> Self {
20903        Self {
20904            s_type: StructureType::from_raw(50i32),
20905            p_next: core::ptr::null_mut(),
20906            device_uuid: unsafe { core::mem::zeroed() },
20907            driver_uuid: unsafe { core::mem::zeroed() },
20908            device_luid: unsafe { core::mem::zeroed() },
20909            device_node_mask: Default::default(),
20910            device_luid_valid: Default::default(),
20911            subgroup_size: Default::default(),
20912            subgroup_supported_stages: Default::default(),
20913            subgroup_supported_operations: Default::default(),
20914            subgroup_quad_operations_in_all_stages: Default::default(),
20915            point_clipping_behavior: Default::default(),
20916            max_multiview_view_count: Default::default(),
20917            max_multiview_instance_index: Default::default(),
20918            protected_no_fault: Default::default(),
20919            max_per_set_descriptors: Default::default(),
20920            max_memory_allocation_size: Default::default(),
20921        }
20922    }
20923}
20924///[`VkPhysicalDeviceVulkan12Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan12Features.html)
20925/**
20926Provided by **VK_BASE_VERSION_1_2**.*/
20927///
20928///# Extends
20929///- [`PhysicalDeviceFeatures2`]
20930///- [`DeviceCreateInfo`]
20931#[repr(C)]
20932#[derive(Copy, Clone, Debug)]
20933#[doc(alias = "VkPhysicalDeviceVulkan12Features")]
20934pub struct PhysicalDeviceVulkan12Features {
20935    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES`.
20936    pub s_type: StructureType,
20937    ///Optional, may be null.
20938    pub p_next: *mut core::ffi::c_void,
20939    pub sampler_mirror_clamp_to_edge: u32,
20940    pub draw_indirect_count: u32,
20941    pub storage_buffer8_bit_access: u32,
20942    pub uniform_and_storage_buffer8_bit_access: u32,
20943    pub storage_push_constant8: u32,
20944    pub shader_buffer_int64_atomics: u32,
20945    pub shader_shared_int64_atomics: u32,
20946    pub shader_float16: u32,
20947    pub shader_int8: u32,
20948    pub descriptor_indexing: u32,
20949    pub shader_input_attachment_array_dynamic_indexing: u32,
20950    pub shader_uniform_texel_buffer_array_dynamic_indexing: u32,
20951    pub shader_storage_texel_buffer_array_dynamic_indexing: u32,
20952    pub shader_uniform_buffer_array_non_uniform_indexing: u32,
20953    pub shader_sampled_image_array_non_uniform_indexing: u32,
20954    pub shader_storage_buffer_array_non_uniform_indexing: u32,
20955    pub shader_storage_image_array_non_uniform_indexing: u32,
20956    pub shader_input_attachment_array_non_uniform_indexing: u32,
20957    pub shader_uniform_texel_buffer_array_non_uniform_indexing: u32,
20958    pub shader_storage_texel_buffer_array_non_uniform_indexing: u32,
20959    pub descriptor_binding_uniform_buffer_update_after_bind: u32,
20960    pub descriptor_binding_sampled_image_update_after_bind: u32,
20961    pub descriptor_binding_storage_image_update_after_bind: u32,
20962    pub descriptor_binding_storage_buffer_update_after_bind: u32,
20963    pub descriptor_binding_uniform_texel_buffer_update_after_bind: u32,
20964    pub descriptor_binding_storage_texel_buffer_update_after_bind: u32,
20965    pub descriptor_binding_update_unused_while_pending: u32,
20966    pub descriptor_binding_partially_bound: u32,
20967    pub descriptor_binding_variable_descriptor_count: u32,
20968    pub runtime_descriptor_array: u32,
20969    pub sampler_filter_minmax: u32,
20970    pub scalar_block_layout: u32,
20971    pub imageless_framebuffer: u32,
20972    pub uniform_buffer_standard_layout: u32,
20973    pub shader_subgroup_extended_types: u32,
20974    pub separate_depth_stencil_layouts: u32,
20975    pub host_query_reset: u32,
20976    pub timeline_semaphore: u32,
20977    pub buffer_device_address: u32,
20978    pub buffer_device_address_capture_replay: u32,
20979    pub buffer_device_address_multi_device: u32,
20980    pub vulkan_memory_model: u32,
20981    pub vulkan_memory_model_device_scope: u32,
20982    pub vulkan_memory_model_availability_visibility_chains: u32,
20983    pub shader_output_viewport_index: u32,
20984    pub shader_output_layer: u32,
20985    pub subgroup_broadcast_dynamic_id: u32,
20986}
20987impl Default for PhysicalDeviceVulkan12Features {
20988    #[inline]
20989    fn default() -> Self {
20990        Self {
20991            s_type: StructureType::from_raw(51i32),
20992            p_next: core::ptr::null_mut(),
20993            sampler_mirror_clamp_to_edge: Default::default(),
20994            draw_indirect_count: Default::default(),
20995            storage_buffer8_bit_access: Default::default(),
20996            uniform_and_storage_buffer8_bit_access: Default::default(),
20997            storage_push_constant8: Default::default(),
20998            shader_buffer_int64_atomics: Default::default(),
20999            shader_shared_int64_atomics: Default::default(),
21000            shader_float16: Default::default(),
21001            shader_int8: Default::default(),
21002            descriptor_indexing: Default::default(),
21003            shader_input_attachment_array_dynamic_indexing: Default::default(),
21004            shader_uniform_texel_buffer_array_dynamic_indexing: Default::default(),
21005            shader_storage_texel_buffer_array_dynamic_indexing: Default::default(),
21006            shader_uniform_buffer_array_non_uniform_indexing: Default::default(),
21007            shader_sampled_image_array_non_uniform_indexing: Default::default(),
21008            shader_storage_buffer_array_non_uniform_indexing: Default::default(),
21009            shader_storage_image_array_non_uniform_indexing: Default::default(),
21010            shader_input_attachment_array_non_uniform_indexing: Default::default(),
21011            shader_uniform_texel_buffer_array_non_uniform_indexing: Default::default(),
21012            shader_storage_texel_buffer_array_non_uniform_indexing: Default::default(),
21013            descriptor_binding_uniform_buffer_update_after_bind: Default::default(),
21014            descriptor_binding_sampled_image_update_after_bind: Default::default(),
21015            descriptor_binding_storage_image_update_after_bind: Default::default(),
21016            descriptor_binding_storage_buffer_update_after_bind: Default::default(),
21017            descriptor_binding_uniform_texel_buffer_update_after_bind: Default::default(),
21018            descriptor_binding_storage_texel_buffer_update_after_bind: Default::default(),
21019            descriptor_binding_update_unused_while_pending: Default::default(),
21020            descriptor_binding_partially_bound: Default::default(),
21021            descriptor_binding_variable_descriptor_count: Default::default(),
21022            runtime_descriptor_array: Default::default(),
21023            sampler_filter_minmax: Default::default(),
21024            scalar_block_layout: Default::default(),
21025            imageless_framebuffer: Default::default(),
21026            uniform_buffer_standard_layout: Default::default(),
21027            shader_subgroup_extended_types: Default::default(),
21028            separate_depth_stencil_layouts: Default::default(),
21029            host_query_reset: Default::default(),
21030            timeline_semaphore: Default::default(),
21031            buffer_device_address: Default::default(),
21032            buffer_device_address_capture_replay: Default::default(),
21033            buffer_device_address_multi_device: Default::default(),
21034            vulkan_memory_model: Default::default(),
21035            vulkan_memory_model_device_scope: Default::default(),
21036            vulkan_memory_model_availability_visibility_chains: Default::default(),
21037            shader_output_viewport_index: Default::default(),
21038            shader_output_layer: Default::default(),
21039            subgroup_broadcast_dynamic_id: Default::default(),
21040        }
21041    }
21042}
21043///[`VkPhysicalDeviceVulkan12Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan12Properties.html)
21044/**
21045Provided by **VK_BASE_VERSION_1_2**.*/
21046/**
21047**Returned only**, filled by Vulkan, not constructed by the application.*/
21048///
21049///# Extends
21050///- [`PhysicalDeviceProperties2`]
21051#[repr(C)]
21052#[derive(Copy, Clone, Debug)]
21053#[doc(alias = "VkPhysicalDeviceVulkan12Properties")]
21054pub struct PhysicalDeviceVulkan12Properties {
21055    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES`.
21056    pub s_type: StructureType,
21057    ///Optional, may be null.
21058    pub p_next: *mut core::ffi::c_void,
21059    pub driver_id: DriverId,
21060    pub driver_name: crate::StringArray<{ MAX_DRIVER_NAME_SIZE as usize }>,
21061    pub driver_info: crate::StringArray<{ MAX_DRIVER_INFO_SIZE as usize }>,
21062    pub conformance_version: ConformanceVersion,
21063    pub denorm_behavior_independence: ShaderFloatControlsIndependence,
21064    pub rounding_mode_independence: ShaderFloatControlsIndependence,
21065    pub shader_signed_zero_inf_nan_preserve_float16: u32,
21066    pub shader_signed_zero_inf_nan_preserve_float32: u32,
21067    pub shader_signed_zero_inf_nan_preserve_float64: u32,
21068    pub shader_denorm_preserve_float16: u32,
21069    pub shader_denorm_preserve_float32: u32,
21070    pub shader_denorm_preserve_float64: u32,
21071    pub shader_denorm_flush_to_zero_float16: u32,
21072    pub shader_denorm_flush_to_zero_float32: u32,
21073    pub shader_denorm_flush_to_zero_float64: u32,
21074    pub shader_rounding_mode_rte_float16: u32,
21075    pub shader_rounding_mode_rte_float32: u32,
21076    pub shader_rounding_mode_rte_float64: u32,
21077    pub shader_rounding_mode_rtz_float16: u32,
21078    pub shader_rounding_mode_rtz_float32: u32,
21079    pub shader_rounding_mode_rtz_float64: u32,
21080    pub max_update_after_bind_descriptors_in_all_pools: u32,
21081    pub shader_uniform_buffer_array_non_uniform_indexing_native: u32,
21082    pub shader_sampled_image_array_non_uniform_indexing_native: u32,
21083    pub shader_storage_buffer_array_non_uniform_indexing_native: u32,
21084    pub shader_storage_image_array_non_uniform_indexing_native: u32,
21085    pub shader_input_attachment_array_non_uniform_indexing_native: u32,
21086    pub robust_buffer_access_update_after_bind: u32,
21087    pub quad_divergent_implicit_lod: u32,
21088    pub max_per_stage_descriptor_update_after_bind_samplers: u32,
21089    pub max_per_stage_descriptor_update_after_bind_uniform_buffers: u32,
21090    pub max_per_stage_descriptor_update_after_bind_storage_buffers: u32,
21091    pub max_per_stage_descriptor_update_after_bind_sampled_images: u32,
21092    pub max_per_stage_descriptor_update_after_bind_storage_images: u32,
21093    pub max_per_stage_descriptor_update_after_bind_input_attachments: u32,
21094    pub max_per_stage_update_after_bind_resources: u32,
21095    pub max_descriptor_set_update_after_bind_samplers: u32,
21096    pub max_descriptor_set_update_after_bind_uniform_buffers: u32,
21097    pub max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32,
21098    pub max_descriptor_set_update_after_bind_storage_buffers: u32,
21099    pub max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32,
21100    pub max_descriptor_set_update_after_bind_sampled_images: u32,
21101    pub max_descriptor_set_update_after_bind_storage_images: u32,
21102    pub max_descriptor_set_update_after_bind_input_attachments: u32,
21103    pub supported_depth_resolve_modes: ResolveModeFlags,
21104    pub supported_stencil_resolve_modes: ResolveModeFlags,
21105    pub independent_resolve_none: u32,
21106    pub independent_resolve: u32,
21107    pub filter_minmax_single_component_formats: u32,
21108    pub filter_minmax_image_component_mapping: u32,
21109    pub max_timeline_semaphore_value_difference: u64,
21110    pub framebuffer_integer_color_sample_counts: SampleCountFlags,
21111}
21112impl Default for PhysicalDeviceVulkan12Properties {
21113    #[inline]
21114    fn default() -> Self {
21115        Self {
21116            s_type: StructureType::from_raw(52i32),
21117            p_next: core::ptr::null_mut(),
21118            driver_id: Default::default(),
21119            driver_name: unsafe { core::mem::zeroed() },
21120            driver_info: unsafe { core::mem::zeroed() },
21121            conformance_version: Default::default(),
21122            denorm_behavior_independence: Default::default(),
21123            rounding_mode_independence: Default::default(),
21124            shader_signed_zero_inf_nan_preserve_float16: Default::default(),
21125            shader_signed_zero_inf_nan_preserve_float32: Default::default(),
21126            shader_signed_zero_inf_nan_preserve_float64: Default::default(),
21127            shader_denorm_preserve_float16: Default::default(),
21128            shader_denorm_preserve_float32: Default::default(),
21129            shader_denorm_preserve_float64: Default::default(),
21130            shader_denorm_flush_to_zero_float16: Default::default(),
21131            shader_denorm_flush_to_zero_float32: Default::default(),
21132            shader_denorm_flush_to_zero_float64: Default::default(),
21133            shader_rounding_mode_rte_float16: Default::default(),
21134            shader_rounding_mode_rte_float32: Default::default(),
21135            shader_rounding_mode_rte_float64: Default::default(),
21136            shader_rounding_mode_rtz_float16: Default::default(),
21137            shader_rounding_mode_rtz_float32: Default::default(),
21138            shader_rounding_mode_rtz_float64: Default::default(),
21139            max_update_after_bind_descriptors_in_all_pools: Default::default(),
21140            shader_uniform_buffer_array_non_uniform_indexing_native: Default::default(),
21141            shader_sampled_image_array_non_uniform_indexing_native: Default::default(),
21142            shader_storage_buffer_array_non_uniform_indexing_native: Default::default(),
21143            shader_storage_image_array_non_uniform_indexing_native: Default::default(),
21144            shader_input_attachment_array_non_uniform_indexing_native: Default::default(),
21145            robust_buffer_access_update_after_bind: Default::default(),
21146            quad_divergent_implicit_lod: Default::default(),
21147            max_per_stage_descriptor_update_after_bind_samplers: Default::default(),
21148            max_per_stage_descriptor_update_after_bind_uniform_buffers: Default::default(),
21149            max_per_stage_descriptor_update_after_bind_storage_buffers: Default::default(),
21150            max_per_stage_descriptor_update_after_bind_sampled_images: Default::default(),
21151            max_per_stage_descriptor_update_after_bind_storage_images: Default::default(),
21152            max_per_stage_descriptor_update_after_bind_input_attachments: Default::default(),
21153            max_per_stage_update_after_bind_resources: Default::default(),
21154            max_descriptor_set_update_after_bind_samplers: Default::default(),
21155            max_descriptor_set_update_after_bind_uniform_buffers: Default::default(),
21156            max_descriptor_set_update_after_bind_uniform_buffers_dynamic: Default::default(),
21157            max_descriptor_set_update_after_bind_storage_buffers: Default::default(),
21158            max_descriptor_set_update_after_bind_storage_buffers_dynamic: Default::default(),
21159            max_descriptor_set_update_after_bind_sampled_images: Default::default(),
21160            max_descriptor_set_update_after_bind_storage_images: Default::default(),
21161            max_descriptor_set_update_after_bind_input_attachments: Default::default(),
21162            supported_depth_resolve_modes: Default::default(),
21163            supported_stencil_resolve_modes: Default::default(),
21164            independent_resolve_none: Default::default(),
21165            independent_resolve: Default::default(),
21166            filter_minmax_single_component_formats: Default::default(),
21167            filter_minmax_image_component_mapping: Default::default(),
21168            max_timeline_semaphore_value_difference: Default::default(),
21169            framebuffer_integer_color_sample_counts: Default::default(),
21170        }
21171    }
21172}
21173///[`VkPhysicalDeviceVulkan13Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan13Features.html)
21174/**
21175Provided by **VK_BASE_VERSION_1_3**.*/
21176///
21177///# Extends
21178///- [`PhysicalDeviceFeatures2`]
21179///- [`DeviceCreateInfo`]
21180#[repr(C)]
21181#[derive(Copy, Clone, Debug)]
21182#[doc(alias = "VkPhysicalDeviceVulkan13Features")]
21183pub struct PhysicalDeviceVulkan13Features {
21184    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES`.
21185    pub s_type: StructureType,
21186    ///Optional, may be null.
21187    pub p_next: *mut core::ffi::c_void,
21188    pub robust_image_access: u32,
21189    pub inline_uniform_block: u32,
21190    pub descriptor_binding_inline_uniform_block_update_after_bind: u32,
21191    pub pipeline_creation_cache_control: u32,
21192    pub private_data: u32,
21193    pub shader_demote_to_helper_invocation: u32,
21194    pub shader_terminate_invocation: u32,
21195    pub subgroup_size_control: u32,
21196    pub compute_full_subgroups: u32,
21197    pub synchronization2: u32,
21198    pub texture_compression_astc_hdr: u32,
21199    pub shader_zero_initialize_workgroup_memory: u32,
21200    pub dynamic_rendering: u32,
21201    pub shader_integer_dot_product: u32,
21202    pub maintenance4: u32,
21203}
21204impl Default for PhysicalDeviceVulkan13Features {
21205    #[inline]
21206    fn default() -> Self {
21207        Self {
21208            s_type: StructureType::from_raw(53i32),
21209            p_next: core::ptr::null_mut(),
21210            robust_image_access: Default::default(),
21211            inline_uniform_block: Default::default(),
21212            descriptor_binding_inline_uniform_block_update_after_bind: Default::default(),
21213            pipeline_creation_cache_control: Default::default(),
21214            private_data: Default::default(),
21215            shader_demote_to_helper_invocation: Default::default(),
21216            shader_terminate_invocation: Default::default(),
21217            subgroup_size_control: Default::default(),
21218            compute_full_subgroups: Default::default(),
21219            synchronization2: Default::default(),
21220            texture_compression_astc_hdr: Default::default(),
21221            shader_zero_initialize_workgroup_memory: Default::default(),
21222            dynamic_rendering: Default::default(),
21223            shader_integer_dot_product: Default::default(),
21224            maintenance4: Default::default(),
21225        }
21226    }
21227}
21228///[`VkPhysicalDeviceVulkan13Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan13Properties.html)
21229/**
21230Provided by **VK_BASE_VERSION_1_3**.*/
21231/**
21232**Returned only**, filled by Vulkan, not constructed by the application.*/
21233///
21234///# Extends
21235///- [`PhysicalDeviceProperties2`]
21236#[repr(C)]
21237#[derive(Copy, Clone, Debug)]
21238#[doc(alias = "VkPhysicalDeviceVulkan13Properties")]
21239pub struct PhysicalDeviceVulkan13Properties {
21240    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES`.
21241    pub s_type: StructureType,
21242    ///Optional, may be null.
21243    pub p_next: *mut core::ffi::c_void,
21244    pub min_subgroup_size: u32,
21245    pub max_subgroup_size: u32,
21246    pub max_compute_workgroup_subgroups: u32,
21247    pub required_subgroup_size_stages: ShaderStageFlags,
21248    pub max_inline_uniform_block_size: u32,
21249    pub max_per_stage_descriptor_inline_uniform_blocks: u32,
21250    pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
21251    pub max_descriptor_set_inline_uniform_blocks: u32,
21252    pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
21253    pub max_inline_uniform_total_size: u32,
21254    pub integer_dot_product8_bit_unsigned_accelerated: u32,
21255    pub integer_dot_product8_bit_signed_accelerated: u32,
21256    pub integer_dot_product8_bit_mixed_signedness_accelerated: u32,
21257    pub integer_dot_product4x8_bit_packed_unsigned_accelerated: u32,
21258    pub integer_dot_product4x8_bit_packed_signed_accelerated: u32,
21259    pub integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: u32,
21260    pub integer_dot_product16_bit_unsigned_accelerated: u32,
21261    pub integer_dot_product16_bit_signed_accelerated: u32,
21262    pub integer_dot_product16_bit_mixed_signedness_accelerated: u32,
21263    pub integer_dot_product32_bit_unsigned_accelerated: u32,
21264    pub integer_dot_product32_bit_signed_accelerated: u32,
21265    pub integer_dot_product32_bit_mixed_signedness_accelerated: u32,
21266    pub integer_dot_product64_bit_unsigned_accelerated: u32,
21267    pub integer_dot_product64_bit_signed_accelerated: u32,
21268    pub integer_dot_product64_bit_mixed_signedness_accelerated: u32,
21269    pub integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: u32,
21270    pub integer_dot_product_accumulating_saturating8_bit_signed_accelerated: u32,
21271    pub integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: u32,
21272    pub integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: u32,
21273    pub integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: u32,
21274    pub integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: u32,
21275    pub integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: u32,
21276    pub integer_dot_product_accumulating_saturating16_bit_signed_accelerated: u32,
21277    pub integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: u32,
21278    pub integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: u32,
21279    pub integer_dot_product_accumulating_saturating32_bit_signed_accelerated: u32,
21280    pub integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: u32,
21281    pub integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: u32,
21282    pub integer_dot_product_accumulating_saturating64_bit_signed_accelerated: u32,
21283    pub integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: u32,
21284    pub storage_texel_buffer_offset_alignment_bytes: u64,
21285    pub storage_texel_buffer_offset_single_texel_alignment: u32,
21286    pub uniform_texel_buffer_offset_alignment_bytes: u64,
21287    pub uniform_texel_buffer_offset_single_texel_alignment: u32,
21288    pub max_buffer_size: u64,
21289}
21290impl Default for PhysicalDeviceVulkan13Properties {
21291    #[inline]
21292    fn default() -> Self {
21293        Self {
21294            s_type: StructureType::from_raw(54i32),
21295            p_next: core::ptr::null_mut(),
21296            min_subgroup_size: Default::default(),
21297            max_subgroup_size: Default::default(),
21298            max_compute_workgroup_subgroups: Default::default(),
21299            required_subgroup_size_stages: Default::default(),
21300            max_inline_uniform_block_size: Default::default(),
21301            max_per_stage_descriptor_inline_uniform_blocks: Default::default(),
21302            max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: Default::default(),
21303            max_descriptor_set_inline_uniform_blocks: Default::default(),
21304            max_descriptor_set_update_after_bind_inline_uniform_blocks: Default::default(),
21305            max_inline_uniform_total_size: Default::default(),
21306            integer_dot_product8_bit_unsigned_accelerated: Default::default(),
21307            integer_dot_product8_bit_signed_accelerated: Default::default(),
21308            integer_dot_product8_bit_mixed_signedness_accelerated: Default::default(),
21309            integer_dot_product4x8_bit_packed_unsigned_accelerated: Default::default(),
21310            integer_dot_product4x8_bit_packed_signed_accelerated: Default::default(),
21311            integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: Default::default(),
21312            integer_dot_product16_bit_unsigned_accelerated: Default::default(),
21313            integer_dot_product16_bit_signed_accelerated: Default::default(),
21314            integer_dot_product16_bit_mixed_signedness_accelerated: Default::default(),
21315            integer_dot_product32_bit_unsigned_accelerated: Default::default(),
21316            integer_dot_product32_bit_signed_accelerated: Default::default(),
21317            integer_dot_product32_bit_mixed_signedness_accelerated: Default::default(),
21318            integer_dot_product64_bit_unsigned_accelerated: Default::default(),
21319            integer_dot_product64_bit_signed_accelerated: Default::default(),
21320            integer_dot_product64_bit_mixed_signedness_accelerated: Default::default(),
21321            integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: Default::default(),
21322            integer_dot_product_accumulating_saturating8_bit_signed_accelerated: Default::default(),
21323            integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: Default::default(),
21324            integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: Default::default(),
21325            integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: Default::default(),
21326            integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: Default::default(),
21327            integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: Default::default(),
21328            integer_dot_product_accumulating_saturating16_bit_signed_accelerated: Default::default(),
21329            integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: Default::default(),
21330            integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: Default::default(),
21331            integer_dot_product_accumulating_saturating32_bit_signed_accelerated: Default::default(),
21332            integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: Default::default(),
21333            integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: Default::default(),
21334            integer_dot_product_accumulating_saturating64_bit_signed_accelerated: Default::default(),
21335            integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: Default::default(),
21336            storage_texel_buffer_offset_alignment_bytes: Default::default(),
21337            storage_texel_buffer_offset_single_texel_alignment: Default::default(),
21338            uniform_texel_buffer_offset_alignment_bytes: Default::default(),
21339            uniform_texel_buffer_offset_single_texel_alignment: Default::default(),
21340            max_buffer_size: Default::default(),
21341        }
21342    }
21343}
21344///[`VkPhysicalDeviceVulkan14Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan14Features.html)
21345/**
21346Provided by **VK_BASE_VERSION_1_4**.*/
21347///
21348///# Extends
21349///- [`PhysicalDeviceFeatures2`]
21350///- [`DeviceCreateInfo`]
21351#[repr(C)]
21352#[derive(Copy, Clone, Debug)]
21353#[doc(alias = "VkPhysicalDeviceVulkan14Features")]
21354pub struct PhysicalDeviceVulkan14Features {
21355    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES`.
21356    pub s_type: StructureType,
21357    ///Optional, may be null.
21358    pub p_next: *mut core::ffi::c_void,
21359    pub global_priority_query: u32,
21360    pub shader_subgroup_rotate: u32,
21361    pub shader_subgroup_rotate_clustered: u32,
21362    pub shader_float_controls2: u32,
21363    pub shader_expect_assume: u32,
21364    pub rectangular_lines: u32,
21365    pub bresenham_lines: u32,
21366    pub smooth_lines: u32,
21367    pub stippled_rectangular_lines: u32,
21368    pub stippled_bresenham_lines: u32,
21369    pub stippled_smooth_lines: u32,
21370    pub vertex_attribute_instance_rate_divisor: u32,
21371    pub vertex_attribute_instance_rate_zero_divisor: u32,
21372    pub index_type_uint8: u32,
21373    pub dynamic_rendering_local_read: u32,
21374    pub maintenance5: u32,
21375    pub maintenance6: u32,
21376    pub pipeline_protected_access: u32,
21377    pub pipeline_robustness: u32,
21378    pub host_image_copy: u32,
21379    pub push_descriptor: u32,
21380}
21381impl Default for PhysicalDeviceVulkan14Features {
21382    #[inline]
21383    fn default() -> Self {
21384        Self {
21385            s_type: StructureType::from_raw(55i32),
21386            p_next: core::ptr::null_mut(),
21387            global_priority_query: Default::default(),
21388            shader_subgroup_rotate: Default::default(),
21389            shader_subgroup_rotate_clustered: Default::default(),
21390            shader_float_controls2: Default::default(),
21391            shader_expect_assume: Default::default(),
21392            rectangular_lines: Default::default(),
21393            bresenham_lines: Default::default(),
21394            smooth_lines: Default::default(),
21395            stippled_rectangular_lines: Default::default(),
21396            stippled_bresenham_lines: Default::default(),
21397            stippled_smooth_lines: Default::default(),
21398            vertex_attribute_instance_rate_divisor: Default::default(),
21399            vertex_attribute_instance_rate_zero_divisor: Default::default(),
21400            index_type_uint8: Default::default(),
21401            dynamic_rendering_local_read: Default::default(),
21402            maintenance5: Default::default(),
21403            maintenance6: Default::default(),
21404            pipeline_protected_access: Default::default(),
21405            pipeline_robustness: Default::default(),
21406            host_image_copy: Default::default(),
21407            push_descriptor: Default::default(),
21408        }
21409    }
21410}
21411///[`VkPhysicalDeviceVulkan14Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan14Properties.html)
21412/**
21413Provided by **VK_BASE_VERSION_1_4**.*/
21414/**
21415**Returned only**, filled by Vulkan, not constructed by the application.*/
21416///
21417///# Extends
21418///- [`PhysicalDeviceProperties2`]
21419#[repr(C)]
21420#[derive(Copy, Clone, Debug)]
21421#[doc(alias = "VkPhysicalDeviceVulkan14Properties")]
21422pub struct PhysicalDeviceVulkan14Properties {
21423    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES`.
21424    pub s_type: StructureType,
21425    ///Optional, may be null.
21426    pub p_next: *mut core::ffi::c_void,
21427    pub line_sub_pixel_precision_bits: u32,
21428    pub max_vertex_attrib_divisor: u32,
21429    pub supports_non_zero_first_instance: u32,
21430    pub max_push_descriptors: u32,
21431    pub dynamic_rendering_local_read_depth_stencil_attachments: u32,
21432    pub dynamic_rendering_local_read_multisampled_attachments: u32,
21433    pub early_fragment_multisample_coverage_after_sample_counting: u32,
21434    pub early_fragment_sample_mask_test_before_sample_counting: u32,
21435    pub depth_stencil_swizzle_one_support: u32,
21436    pub polygon_mode_point_size: u32,
21437    pub non_strict_single_pixel_wide_lines_use_parallelogram: u32,
21438    pub non_strict_wide_lines_use_parallelogram: u32,
21439    pub block_texel_view_compatible_multiple_layers: u32,
21440    pub max_combined_image_sampler_descriptor_count: u32,
21441    pub fragment_shading_rate_clamp_combiner_inputs: u32,
21442    pub default_robustness_storage_buffers: PipelineRobustnessBufferBehavior,
21443    pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior,
21444    pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior,
21445    pub default_robustness_images: PipelineRobustnessImageBehavior,
21446    ///Length of `p_copy_src_layouts`.
21447    pub copy_src_layout_count: u32,
21448    ///Optional, may be null.
21449    pub p_copy_src_layouts: *mut ImageLayout,
21450    ///Length of `p_copy_dst_layouts`.
21451    pub copy_dst_layout_count: u32,
21452    ///Optional, may be null.
21453    pub p_copy_dst_layouts: *mut ImageLayout,
21454    pub optimal_tiling_layout_uuid: [u8; UUID_SIZE as usize],
21455    pub identical_memory_type_requirements: u32,
21456}
21457impl Default for PhysicalDeviceVulkan14Properties {
21458    #[inline]
21459    fn default() -> Self {
21460        Self {
21461            s_type: StructureType::from_raw(56i32),
21462            p_next: core::ptr::null_mut(),
21463            line_sub_pixel_precision_bits: Default::default(),
21464            max_vertex_attrib_divisor: Default::default(),
21465            supports_non_zero_first_instance: Default::default(),
21466            max_push_descriptors: Default::default(),
21467            dynamic_rendering_local_read_depth_stencil_attachments: Default::default(),
21468            dynamic_rendering_local_read_multisampled_attachments: Default::default(),
21469            early_fragment_multisample_coverage_after_sample_counting: Default::default(),
21470            early_fragment_sample_mask_test_before_sample_counting: Default::default(),
21471            depth_stencil_swizzle_one_support: Default::default(),
21472            polygon_mode_point_size: Default::default(),
21473            non_strict_single_pixel_wide_lines_use_parallelogram: Default::default(),
21474            non_strict_wide_lines_use_parallelogram: Default::default(),
21475            block_texel_view_compatible_multiple_layers: Default::default(),
21476            max_combined_image_sampler_descriptor_count: Default::default(),
21477            fragment_shading_rate_clamp_combiner_inputs: Default::default(),
21478            default_robustness_storage_buffers: Default::default(),
21479            default_robustness_uniform_buffers: Default::default(),
21480            default_robustness_vertex_inputs: Default::default(),
21481            default_robustness_images: Default::default(),
21482            copy_src_layout_count: Default::default(),
21483            p_copy_src_layouts: core::ptr::null_mut(),
21484            copy_dst_layout_count: Default::default(),
21485            p_copy_dst_layouts: core::ptr::null_mut(),
21486            optimal_tiling_layout_uuid: unsafe { core::mem::zeroed() },
21487            identical_memory_type_requirements: Default::default(),
21488        }
21489    }
21490}
21491///[`VkPipelineCompilerControlCreateInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCompilerControlCreateInfoAMD.html)
21492/**
21493Provided by **VK_AMD_pipeline_compiler_control**.*/
21494///
21495///# Extends
21496///- [`GraphicsPipelineCreateInfo`]
21497///- [`ComputePipelineCreateInfo`]
21498///- [`ExecutionGraphPipelineCreateInfoAMDX`]
21499#[repr(C)]
21500#[derive(Copy, Clone, Debug)]
21501#[doc(alias = "VkPipelineCompilerControlCreateInfoAMD")]
21502pub struct PipelineCompilerControlCreateInfoAMD {
21503    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD`.
21504    pub s_type: StructureType,
21505    ///Optional, may be null.
21506    pub p_next: *const core::ffi::c_void,
21507    pub compiler_control_flags: PipelineCompilerControlFlagsAMD,
21508}
21509impl Default for PipelineCompilerControlCreateInfoAMD {
21510    #[inline]
21511    fn default() -> Self {
21512        Self {
21513            s_type: StructureType::from_raw(1000183000i32),
21514            p_next: core::ptr::null(),
21515            compiler_control_flags: Default::default(),
21516        }
21517    }
21518}
21519///[`VkPhysicalDeviceCoherentMemoryFeaturesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCoherentMemoryFeaturesAMD.html)
21520/**
21521Provided by **VK_AMD_device_coherent_memory**.*/
21522///
21523///# Extends
21524///- [`PhysicalDeviceFeatures2`]
21525///- [`DeviceCreateInfo`]
21526#[repr(C)]
21527#[derive(Copy, Clone, Debug)]
21528#[doc(alias = "VkPhysicalDeviceCoherentMemoryFeaturesAMD")]
21529pub struct PhysicalDeviceCoherentMemoryFeaturesAMD {
21530    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD`.
21531    pub s_type: StructureType,
21532    ///Optional, may be null.
21533    pub p_next: *mut core::ffi::c_void,
21534    pub device_coherent_memory: u32,
21535}
21536impl Default for PhysicalDeviceCoherentMemoryFeaturesAMD {
21537    #[inline]
21538    fn default() -> Self {
21539        Self {
21540            s_type: StructureType::from_raw(1000229000i32),
21541            p_next: core::ptr::null_mut(),
21542            device_coherent_memory: Default::default(),
21543        }
21544    }
21545}
21546///[`VkFaultData`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFaultData.html)
21547/**
21548Provided by **VKSC_VERSION_1_0**.*/
21549/**
21550**Returned only**, filled by Vulkan, not constructed by the application.*/
21551#[repr(C)]
21552#[derive(Copy, Clone, Debug)]
21553#[doc(alias = "VkFaultData")]
21554pub struct FaultData {
21555    ///Must be `VK_STRUCTURE_TYPE_FAULT_DATA`.
21556    pub s_type: StructureType,
21557    ///Optional, may be null.
21558    pub p_next: *mut core::ffi::c_void,
21559    pub fault_level: FaultLevel,
21560    pub fault_type: FaultType,
21561}
21562impl Default for FaultData {
21563    #[inline]
21564    fn default() -> Self {
21565        Self {
21566            s_type: StructureType::from_raw(1000298007i32),
21567            p_next: core::ptr::null_mut(),
21568            fault_level: Default::default(),
21569            fault_type: Default::default(),
21570        }
21571    }
21572}
21573///[`VkFaultCallbackInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFaultCallbackInfo.html)
21574/**
21575Provided by **VKSC_VERSION_1_0**.*/
21576///
21577///# Extends
21578///- [`DeviceCreateInfo`]
21579#[repr(C)]
21580#[derive(Copy, Clone, Debug)]
21581#[doc(alias = "VkFaultCallbackInfo")]
21582pub struct FaultCallbackInfo {
21583    ///Must be `VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO`.
21584    pub s_type: StructureType,
21585    ///Optional, may be null.
21586    pub p_next: *const core::ffi::c_void,
21587    ///Length of `p_faults`.
21588    pub fault_count: u32,
21589    ///Optional, may be null.
21590    pub p_faults: *mut FaultData,
21591    pub pfn_fault_callback: PFN_vkFaultCallbackFunction,
21592}
21593impl Default for FaultCallbackInfo {
21594    #[inline]
21595    fn default() -> Self {
21596        Self {
21597            s_type: StructureType::from_raw(1000298008i32),
21598            p_next: core::ptr::null(),
21599            fault_count: Default::default(),
21600            p_faults: core::ptr::null_mut(),
21601            pfn_fault_callback: Default::default(),
21602        }
21603    }
21604}
21605///[`VkPhysicalDeviceToolProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceToolProperties.html)
21606/**
21607Provided by **VK_BASE_VERSION_1_3**.*/
21608/**
21609**Returned only**, filled by Vulkan, not constructed by the application.*/
21610#[repr(C)]
21611#[derive(Copy, Clone, Debug)]
21612#[doc(alias = "VkPhysicalDeviceToolProperties")]
21613pub struct PhysicalDeviceToolProperties {
21614    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES`.
21615    pub s_type: StructureType,
21616    ///Optional, may be null.
21617    pub p_next: *mut core::ffi::c_void,
21618    pub name: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
21619    pub version: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
21620    pub purposes: ToolPurposeFlags,
21621    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
21622    pub layer: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
21623}
21624impl Default for PhysicalDeviceToolProperties {
21625    #[inline]
21626    fn default() -> Self {
21627        Self {
21628            s_type: StructureType::from_raw(1000245000i32),
21629            p_next: core::ptr::null_mut(),
21630            name: unsafe { core::mem::zeroed() },
21631            version: unsafe { core::mem::zeroed() },
21632            purposes: Default::default(),
21633            description: unsafe { core::mem::zeroed() },
21634            layer: unsafe { core::mem::zeroed() },
21635        }
21636    }
21637}
21638///[`VkSamplerCustomBorderColorCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCustomBorderColorCreateInfoEXT.html)
21639/**
21640Provided by **VK_EXT_custom_border_color**.*/
21641///
21642///# Extends
21643///- [`SamplerCreateInfo`]
21644#[repr(C)]
21645#[derive(Copy, Clone, Debug)]
21646#[doc(alias = "VkSamplerCustomBorderColorCreateInfoEXT")]
21647pub struct SamplerCustomBorderColorCreateInfoEXT {
21648    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT`.
21649    pub s_type: StructureType,
21650    ///Optional, may be null.
21651    pub p_next: *const core::ffi::c_void,
21652    pub custom_border_color: ClearColorValue,
21653    pub format: Format,
21654}
21655impl Default for SamplerCustomBorderColorCreateInfoEXT {
21656    #[inline]
21657    fn default() -> Self {
21658        Self {
21659            s_type: StructureType::from_raw(1000287000i32),
21660            p_next: core::ptr::null(),
21661            custom_border_color: Default::default(),
21662            format: Default::default(),
21663        }
21664    }
21665}
21666///[`VkPhysicalDeviceCustomBorderColorPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCustomBorderColorPropertiesEXT.html)
21667/**
21668Provided by **VK_EXT_custom_border_color**.*/
21669/**
21670**Returned only**, filled by Vulkan, not constructed by the application.*/
21671///
21672///# Extends
21673///- [`PhysicalDeviceProperties2`]
21674#[repr(C)]
21675#[derive(Copy, Clone, Debug)]
21676#[doc(alias = "VkPhysicalDeviceCustomBorderColorPropertiesEXT")]
21677pub struct PhysicalDeviceCustomBorderColorPropertiesEXT {
21678    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT`.
21679    pub s_type: StructureType,
21680    ///Optional, may be null.
21681    pub p_next: *mut core::ffi::c_void,
21682    pub max_custom_border_color_samplers: u32,
21683}
21684impl Default for PhysicalDeviceCustomBorderColorPropertiesEXT {
21685    #[inline]
21686    fn default() -> Self {
21687        Self {
21688            s_type: StructureType::from_raw(1000287001i32),
21689            p_next: core::ptr::null_mut(),
21690            max_custom_border_color_samplers: Default::default(),
21691        }
21692    }
21693}
21694///[`VkPhysicalDeviceCustomBorderColorFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCustomBorderColorFeaturesEXT.html)
21695/**
21696Provided by **VK_EXT_custom_border_color**.*/
21697///
21698///# Extends
21699///- [`PhysicalDeviceFeatures2`]
21700///- [`DeviceCreateInfo`]
21701#[repr(C)]
21702#[derive(Copy, Clone, Debug)]
21703#[doc(alias = "VkPhysicalDeviceCustomBorderColorFeaturesEXT")]
21704pub struct PhysicalDeviceCustomBorderColorFeaturesEXT {
21705    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT`.
21706    pub s_type: StructureType,
21707    ///Optional, may be null.
21708    pub p_next: *mut core::ffi::c_void,
21709    pub custom_border_colors: u32,
21710    pub custom_border_color_without_format: u32,
21711}
21712impl Default for PhysicalDeviceCustomBorderColorFeaturesEXT {
21713    #[inline]
21714    fn default() -> Self {
21715        Self {
21716            s_type: StructureType::from_raw(1000287002i32),
21717            p_next: core::ptr::null_mut(),
21718            custom_border_colors: Default::default(),
21719            custom_border_color_without_format: Default::default(),
21720        }
21721    }
21722}
21723///[`VkSamplerBorderColorComponentMappingCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerBorderColorComponentMappingCreateInfoEXT.html)
21724/**
21725Provided by **VK_EXT_border_color_swizzle**.*/
21726///
21727///# Extends
21728///- [`SamplerCreateInfo`]
21729#[repr(C)]
21730#[derive(Copy, Clone, Debug)]
21731#[doc(alias = "VkSamplerBorderColorComponentMappingCreateInfoEXT")]
21732pub struct SamplerBorderColorComponentMappingCreateInfoEXT {
21733    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT`.
21734    pub s_type: StructureType,
21735    ///Optional, may be null.
21736    pub p_next: *const core::ffi::c_void,
21737    pub components: ComponentMapping,
21738    pub srgb: u32,
21739}
21740impl Default for SamplerBorderColorComponentMappingCreateInfoEXT {
21741    #[inline]
21742    fn default() -> Self {
21743        Self {
21744            s_type: StructureType::from_raw(1000411001i32),
21745            p_next: core::ptr::null(),
21746            components: Default::default(),
21747            srgb: Default::default(),
21748        }
21749    }
21750}
21751///[`VkPhysicalDeviceBorderColorSwizzleFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.html)
21752/**
21753Provided by **VK_EXT_border_color_swizzle**.*/
21754///
21755///# Extends
21756///- [`PhysicalDeviceFeatures2`]
21757///- [`DeviceCreateInfo`]
21758#[repr(C)]
21759#[derive(Copy, Clone, Debug)]
21760#[doc(alias = "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT")]
21761pub struct PhysicalDeviceBorderColorSwizzleFeaturesEXT {
21762    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT`.
21763    pub s_type: StructureType,
21764    ///Optional, may be null.
21765    pub p_next: *mut core::ffi::c_void,
21766    pub border_color_swizzle: u32,
21767    pub border_color_swizzle_from_image: u32,
21768}
21769impl Default for PhysicalDeviceBorderColorSwizzleFeaturesEXT {
21770    #[inline]
21771    fn default() -> Self {
21772        Self {
21773            s_type: StructureType::from_raw(1000411000i32),
21774            p_next: core::ptr::null_mut(),
21775            border_color_swizzle: Default::default(),
21776            border_color_swizzle_from_image: Default::default(),
21777        }
21778    }
21779}
21780///[`VkDeviceOrHostAddressKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceOrHostAddressKHR.html)
21781/**
21782Provided by **VK_KHR_acceleration_structure**.*/
21783#[repr(C)]
21784#[derive(Copy, Clone)]
21785#[doc(alias = "VkDeviceOrHostAddressKHR")]
21786pub union DeviceOrHostAddressKHR {
21787    pub device_address: u64,
21788    pub host_address: *mut core::ffi::c_void,
21789}
21790impl Default for DeviceOrHostAddressKHR {
21791    #[inline]
21792    fn default() -> Self {
21793        unsafe { core::mem::zeroed() }
21794    }
21795}
21796impl core::fmt::Debug for DeviceOrHostAddressKHR {
21797    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21798        f.write_str(stringify!(DeviceOrHostAddressKHR))
21799    }
21800}
21801///[`VkDeviceOrHostAddressConstKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceOrHostAddressConstKHR.html)
21802/**
21803Provided by **VK_KHR_acceleration_structure**.*/
21804#[repr(C)]
21805#[derive(Copy, Clone)]
21806#[doc(alias = "VkDeviceOrHostAddressConstKHR")]
21807pub union DeviceOrHostAddressConstKHR {
21808    pub device_address: u64,
21809    pub host_address: *const core::ffi::c_void,
21810}
21811impl Default for DeviceOrHostAddressConstKHR {
21812    #[inline]
21813    fn default() -> Self {
21814        unsafe { core::mem::zeroed() }
21815    }
21816}
21817impl core::fmt::Debug for DeviceOrHostAddressConstKHR {
21818    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21819        f.write_str(stringify!(DeviceOrHostAddressConstKHR))
21820    }
21821}
21822///[`VkDeviceOrHostAddressConstAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceOrHostAddressConstAMDX.html)
21823/**
21824Provided by **VK_AMDX_shader_enqueue**.*/
21825#[repr(C)]
21826#[derive(Copy, Clone)]
21827#[doc(alias = "VkDeviceOrHostAddressConstAMDX")]
21828pub union DeviceOrHostAddressConstAMDX {
21829    pub device_address: u64,
21830    pub host_address: *const core::ffi::c_void,
21831}
21832impl Default for DeviceOrHostAddressConstAMDX {
21833    #[inline]
21834    fn default() -> Self {
21835        unsafe { core::mem::zeroed() }
21836    }
21837}
21838impl core::fmt::Debug for DeviceOrHostAddressConstAMDX {
21839    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21840        f.write_str(stringify!(DeviceOrHostAddressConstAMDX))
21841    }
21842}
21843///[`VkAccelerationStructureGeometryTrianglesDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryTrianglesDataKHR.html)
21844/**
21845Provided by **VK_KHR_acceleration_structure**.*/
21846///
21847///# Extended By
21848///- [`AccelerationStructureGeometryMotionTrianglesDataNV`]
21849///- [`AccelerationStructureTrianglesDisplacementMicromapNV`]
21850///- [`AccelerationStructureTrianglesOpacityMicromapEXT`]
21851#[repr(C)]
21852#[derive(Copy, Clone, Debug)]
21853#[doc(alias = "VkAccelerationStructureGeometryTrianglesDataKHR")]
21854pub struct AccelerationStructureGeometryTrianglesDataKHR {
21855    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR`.
21856    pub s_type: StructureType,
21857    ///Optional, may be null.
21858    pub p_next: *const core::ffi::c_void,
21859    pub vertex_format: Format,
21860    pub vertex_data: DeviceOrHostAddressConstKHR,
21861    pub vertex_stride: u64,
21862    pub max_vertex: u32,
21863    pub index_type: IndexType,
21864    pub index_data: DeviceOrHostAddressConstKHR,
21865    pub transform_data: DeviceOrHostAddressConstKHR,
21866}
21867impl Default for AccelerationStructureGeometryTrianglesDataKHR {
21868    #[inline]
21869    fn default() -> Self {
21870        Self {
21871            s_type: StructureType::from_raw(1000150005i32),
21872            p_next: core::ptr::null(),
21873            vertex_format: Default::default(),
21874            vertex_data: Default::default(),
21875            vertex_stride: Default::default(),
21876            max_vertex: Default::default(),
21877            index_type: Default::default(),
21878            index_data: Default::default(),
21879            transform_data: Default::default(),
21880        }
21881    }
21882}
21883///[`VkAccelerationStructureGeometryAabbsDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryAabbsDataKHR.html)
21884/**
21885Provided by **VK_KHR_acceleration_structure**.*/
21886#[repr(C)]
21887#[derive(Copy, Clone, Debug)]
21888#[doc(alias = "VkAccelerationStructureGeometryAabbsDataKHR")]
21889pub struct AccelerationStructureGeometryAabbsDataKHR {
21890    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR`.
21891    pub s_type: StructureType,
21892    ///Optional, may be null.
21893    pub p_next: *const core::ffi::c_void,
21894    pub data: DeviceOrHostAddressConstKHR,
21895    pub stride: u64,
21896}
21897impl Default for AccelerationStructureGeometryAabbsDataKHR {
21898    #[inline]
21899    fn default() -> Self {
21900        Self {
21901            s_type: StructureType::from_raw(1000150003i32),
21902            p_next: core::ptr::null(),
21903            data: Default::default(),
21904            stride: Default::default(),
21905        }
21906    }
21907}
21908///[`VkAccelerationStructureGeometryInstancesDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryInstancesDataKHR.html)
21909/**
21910Provided by **VK_KHR_acceleration_structure**.*/
21911#[repr(C)]
21912#[derive(Copy, Clone, Debug)]
21913#[doc(alias = "VkAccelerationStructureGeometryInstancesDataKHR")]
21914pub struct AccelerationStructureGeometryInstancesDataKHR {
21915    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR`.
21916    pub s_type: StructureType,
21917    ///Optional, may be null.
21918    pub p_next: *const core::ffi::c_void,
21919    pub array_of_pointers: u32,
21920    pub data: DeviceOrHostAddressConstKHR,
21921}
21922impl Default for AccelerationStructureGeometryInstancesDataKHR {
21923    #[inline]
21924    fn default() -> Self {
21925        Self {
21926            s_type: StructureType::from_raw(1000150004i32),
21927            p_next: core::ptr::null(),
21928            array_of_pointers: Default::default(),
21929            data: Default::default(),
21930        }
21931    }
21932}
21933///[`VkAccelerationStructureGeometryLinearSweptSpheresDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryLinearSweptSpheresDataNV.html)
21934/**
21935Provided by **VK_NV_ray_tracing_linear_swept_spheres**.*/
21936///
21937///# Extends
21938///- [`AccelerationStructureGeometryKHR`]
21939#[repr(C)]
21940#[derive(Copy, Clone, Debug)]
21941#[doc(alias = "VkAccelerationStructureGeometryLinearSweptSpheresDataNV")]
21942pub struct AccelerationStructureGeometryLinearSweptSpheresDataNV {
21943    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV`.
21944    pub s_type: StructureType,
21945    ///Optional, may be null.
21946    pub p_next: *const core::ffi::c_void,
21947    pub vertex_format: Format,
21948    pub vertex_data: DeviceOrHostAddressConstKHR,
21949    pub vertex_stride: u64,
21950    pub radius_format: Format,
21951    pub radius_data: DeviceOrHostAddressConstKHR,
21952    pub radius_stride: u64,
21953    pub index_type: IndexType,
21954    pub index_data: DeviceOrHostAddressConstKHR,
21955    pub index_stride: u64,
21956    pub indexing_mode: RayTracingLssIndexingModeNV,
21957    pub end_caps_mode: RayTracingLssPrimitiveEndCapsModeNV,
21958}
21959impl Default for AccelerationStructureGeometryLinearSweptSpheresDataNV {
21960    #[inline]
21961    fn default() -> Self {
21962        Self {
21963            s_type: StructureType::from_raw(1000429009i32),
21964            p_next: core::ptr::null(),
21965            vertex_format: Default::default(),
21966            vertex_data: Default::default(),
21967            vertex_stride: Default::default(),
21968            radius_format: Default::default(),
21969            radius_data: Default::default(),
21970            radius_stride: Default::default(),
21971            index_type: Default::default(),
21972            index_data: Default::default(),
21973            index_stride: Default::default(),
21974            indexing_mode: Default::default(),
21975            end_caps_mode: Default::default(),
21976        }
21977    }
21978}
21979///[`VkAccelerationStructureGeometrySpheresDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometrySpheresDataNV.html)
21980/**
21981Provided by **VK_NV_ray_tracing_linear_swept_spheres**.*/
21982///
21983///# Extends
21984///- [`AccelerationStructureGeometryKHR`]
21985#[repr(C)]
21986#[derive(Copy, Clone, Debug)]
21987#[doc(alias = "VkAccelerationStructureGeometrySpheresDataNV")]
21988pub struct AccelerationStructureGeometrySpheresDataNV {
21989    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV`.
21990    pub s_type: StructureType,
21991    ///Optional, may be null.
21992    pub p_next: *const core::ffi::c_void,
21993    pub vertex_format: Format,
21994    pub vertex_data: DeviceOrHostAddressConstKHR,
21995    pub vertex_stride: u64,
21996    pub radius_format: Format,
21997    pub radius_data: DeviceOrHostAddressConstKHR,
21998    pub radius_stride: u64,
21999    pub index_type: IndexType,
22000    pub index_data: DeviceOrHostAddressConstKHR,
22001    pub index_stride: u64,
22002}
22003impl Default for AccelerationStructureGeometrySpheresDataNV {
22004    #[inline]
22005    fn default() -> Self {
22006        Self {
22007            s_type: StructureType::from_raw(1000429010i32),
22008            p_next: core::ptr::null(),
22009            vertex_format: Default::default(),
22010            vertex_data: Default::default(),
22011            vertex_stride: Default::default(),
22012            radius_format: Default::default(),
22013            radius_data: Default::default(),
22014            radius_stride: Default::default(),
22015            index_type: Default::default(),
22016            index_data: Default::default(),
22017            index_stride: Default::default(),
22018        }
22019    }
22020}
22021///[`VkAccelerationStructureGeometryDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryDataKHR.html)
22022/**
22023Provided by **VK_KHR_acceleration_structure**.*/
22024#[repr(C)]
22025#[derive(Copy, Clone)]
22026#[doc(alias = "VkAccelerationStructureGeometryDataKHR")]
22027pub union AccelerationStructureGeometryDataKHR {
22028    pub triangles: AccelerationStructureGeometryTrianglesDataKHR,
22029    pub aabbs: AccelerationStructureGeometryAabbsDataKHR,
22030    pub instances: AccelerationStructureGeometryInstancesDataKHR,
22031}
22032impl Default for AccelerationStructureGeometryDataKHR {
22033    #[inline]
22034    fn default() -> Self {
22035        unsafe { core::mem::zeroed() }
22036    }
22037}
22038impl core::fmt::Debug for AccelerationStructureGeometryDataKHR {
22039    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22040        f.write_str(stringify!(AccelerationStructureGeometryDataKHR))
22041    }
22042}
22043///[`VkAccelerationStructureGeometryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryKHR.html)
22044/**
22045Provided by **VK_KHR_acceleration_structure**.*/
22046///
22047///# Extended By
22048///- [`AccelerationStructureDenseGeometryFormatTrianglesDataAMDX`]
22049///- [`AccelerationStructureGeometryLinearSweptSpheresDataNV`]
22050///- [`AccelerationStructureGeometrySpheresDataNV`]
22051#[repr(C)]
22052#[derive(Copy, Clone, Debug)]
22053#[doc(alias = "VkAccelerationStructureGeometryKHR")]
22054pub struct AccelerationStructureGeometryKHR {
22055    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR`.
22056    pub s_type: StructureType,
22057    ///Optional, may be null.
22058    pub p_next: *const core::ffi::c_void,
22059    pub geometry_type: GeometryTypeKHR,
22060    pub geometry: AccelerationStructureGeometryDataKHR,
22061    pub flags: GeometryFlagsKHR,
22062}
22063impl Default for AccelerationStructureGeometryKHR {
22064    #[inline]
22065    fn default() -> Self {
22066        Self {
22067            s_type: StructureType::from_raw(1000150006i32),
22068            p_next: core::ptr::null(),
22069            geometry_type: Default::default(),
22070            geometry: Default::default(),
22071            flags: Default::default(),
22072        }
22073    }
22074}
22075///[`VkAccelerationStructureBuildGeometryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureBuildGeometryInfoKHR.html)
22076/**
22077Provided by **VK_KHR_acceleration_structure**.*/
22078#[repr(C)]
22079#[derive(Copy, Clone, Debug)]
22080#[doc(alias = "VkAccelerationStructureBuildGeometryInfoKHR")]
22081pub struct AccelerationStructureBuildGeometryInfoKHR {
22082    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR`.
22083    pub s_type: StructureType,
22084    ///Optional, may be null.
22085    pub p_next: *const core::ffi::c_void,
22086    pub r#type: AccelerationStructureTypeKHR,
22087    pub flags: BuildAccelerationStructureFlagsKHR,
22088    pub mode: BuildAccelerationStructureModeKHR,
22089    pub src_acceleration_structure: AccelerationStructureKHR,
22090    pub dst_acceleration_structure: AccelerationStructureKHR,
22091    ///Length of `pp_geometries`.
22092    pub geometry_count: u32,
22093    ///Optional, may be null.
22094    pub p_geometries: *const AccelerationStructureGeometryKHR,
22095    ///Optional, may be null.
22096    pub pp_geometries: *const *const AccelerationStructureGeometryKHR,
22097    pub scratch_data: DeviceOrHostAddressKHR,
22098}
22099impl Default for AccelerationStructureBuildGeometryInfoKHR {
22100    #[inline]
22101    fn default() -> Self {
22102        Self {
22103            s_type: StructureType::from_raw(1000150000i32),
22104            p_next: core::ptr::null(),
22105            r#type: Default::default(),
22106            flags: Default::default(),
22107            mode: Default::default(),
22108            src_acceleration_structure: Default::default(),
22109            dst_acceleration_structure: Default::default(),
22110            geometry_count: Default::default(),
22111            p_geometries: core::ptr::null(),
22112            pp_geometries: core::ptr::null(),
22113            scratch_data: Default::default(),
22114        }
22115    }
22116}
22117///[`VkAccelerationStructureBuildRangeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureBuildRangeInfoKHR.html)
22118/**
22119Provided by **VK_KHR_acceleration_structure**.*/
22120#[repr(C)]
22121#[derive(Copy, Clone, Debug)]
22122#[doc(alias = "VkAccelerationStructureBuildRangeInfoKHR")]
22123pub struct AccelerationStructureBuildRangeInfoKHR {
22124    pub primitive_count: u32,
22125    pub primitive_offset: u32,
22126    pub first_vertex: u32,
22127    pub transform_offset: u32,
22128}
22129impl Default for AccelerationStructureBuildRangeInfoKHR {
22130    #[inline]
22131    fn default() -> Self {
22132        unsafe { core::mem::zeroed() }
22133    }
22134}
22135///[`VkAccelerationStructureCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureCreateInfoKHR.html)
22136/**
22137Provided by **VK_KHR_acceleration_structure**.*/
22138///
22139///# Extended By
22140///- [`AccelerationStructureMotionInfoNV`]
22141///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
22142#[repr(C)]
22143#[derive(Copy, Clone, Debug)]
22144#[doc(alias = "VkAccelerationStructureCreateInfoKHR")]
22145pub struct AccelerationStructureCreateInfoKHR {
22146    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR`.
22147    pub s_type: StructureType,
22148    ///Optional, may be null.
22149    pub p_next: *const core::ffi::c_void,
22150    pub create_flags: AccelerationStructureCreateFlagsKHR,
22151    pub buffer: Buffer,
22152    pub offset: u64,
22153    pub size: u64,
22154    pub r#type: AccelerationStructureTypeKHR,
22155    pub device_address: u64,
22156}
22157impl Default for AccelerationStructureCreateInfoKHR {
22158    #[inline]
22159    fn default() -> Self {
22160        Self {
22161            s_type: StructureType::from_raw(1000150017i32),
22162            p_next: core::ptr::null(),
22163            create_flags: Default::default(),
22164            buffer: Default::default(),
22165            offset: Default::default(),
22166            size: Default::default(),
22167            r#type: Default::default(),
22168            device_address: Default::default(),
22169        }
22170    }
22171}
22172///[`VkAabbPositionsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAabbPositionsKHR.html)
22173/**
22174Provided by **VK_KHR_acceleration_structure**.*/
22175#[repr(C)]
22176#[derive(Copy, Clone, Debug)]
22177#[doc(alias = "VkAabbPositionsKHR")]
22178pub struct AabbPositionsKHR {
22179    pub min_x: f32,
22180    pub min_y: f32,
22181    pub min_z: f32,
22182    pub max_x: f32,
22183    pub max_y: f32,
22184    pub max_z: f32,
22185}
22186impl Default for AabbPositionsKHR {
22187    #[inline]
22188    fn default() -> Self {
22189        unsafe { core::mem::zeroed() }
22190    }
22191}
22192///[`VkTransformMatrixKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTransformMatrixKHR.html)
22193/**
22194Provided by **VK_KHR_acceleration_structure**.*/
22195#[repr(C)]
22196#[derive(Copy, Clone, Debug)]
22197#[doc(alias = "VkTransformMatrixKHR")]
22198pub struct TransformMatrixKHR {
22199    pub matrix: [[f32; 4usize]; 3usize],
22200}
22201impl Default for TransformMatrixKHR {
22202    #[inline]
22203    fn default() -> Self {
22204        unsafe { core::mem::zeroed() }
22205    }
22206}
22207///[`VkAccelerationStructureInstanceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureInstanceKHR.html)
22208/**
22209Provided by **VK_KHR_acceleration_structure**.*/
22210#[repr(C)]
22211#[derive(Copy, Clone, Debug)]
22212#[doc(alias = "VkAccelerationStructureInstanceKHR")]
22213pub struct AccelerationStructureInstanceKHR {
22214    pub transform: TransformMatrixKHR,
22215    pub bitfield_0: u32,
22216    pub bitfield_1: u32,
22217    pub acceleration_structure_reference: u64,
22218}
22219impl Default for AccelerationStructureInstanceKHR {
22220    #[inline]
22221    fn default() -> Self {
22222        unsafe { core::mem::zeroed() }
22223    }
22224}
22225impl AccelerationStructureInstanceKHR {
22226    #[inline]
22227    pub fn instance_custom_index(&self) -> u32 {
22228        self.bitfield_0 & 16777215u32
22229    }
22230    #[inline]
22231    pub fn set_instance_custom_index(&mut self, val: u32) {
22232        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
22233    }
22234    #[inline]
22235    pub fn mask(&self) -> u32 {
22236        (self.bitfield_0 >> 24u32) & 255u32
22237    }
22238    #[inline]
22239    pub fn set_mask(&mut self, val: u32) {
22240        self.bitfield_0 = (self.bitfield_0 & !(255u32 << 24u32))
22241            | ((val & 255u32) << 24u32);
22242    }
22243    #[inline]
22244    pub fn instance_shader_binding_table_record_offset(&self) -> u32 {
22245        self.bitfield_1 & 16777215u32
22246    }
22247    #[inline]
22248    pub fn set_instance_shader_binding_table_record_offset(&mut self, val: u32) {
22249        self.bitfield_1 = (self.bitfield_1 & !16777215u32) | (val & 16777215u32);
22250    }
22251    #[inline]
22252    pub fn flags(&self) -> u32 {
22253        (self.bitfield_1 >> 24u32) & 255u32
22254    }
22255    #[inline]
22256    pub fn set_flags(&mut self, val: u32) {
22257        self.bitfield_1 = (self.bitfield_1 & !(255u32 << 24u32))
22258            | ((val & 255u32) << 24u32);
22259    }
22260}
22261///[`VkAccelerationStructureDeviceAddressInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureDeviceAddressInfoKHR.html)
22262/**
22263Provided by **VK_KHR_acceleration_structure**.*/
22264#[repr(C)]
22265#[derive(Copy, Clone, Debug)]
22266#[doc(alias = "VkAccelerationStructureDeviceAddressInfoKHR")]
22267pub struct AccelerationStructureDeviceAddressInfoKHR {
22268    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR`.
22269    pub s_type: StructureType,
22270    ///Optional, may be null.
22271    pub p_next: *const core::ffi::c_void,
22272    pub acceleration_structure: AccelerationStructureKHR,
22273}
22274impl Default for AccelerationStructureDeviceAddressInfoKHR {
22275    #[inline]
22276    fn default() -> Self {
22277        Self {
22278            s_type: StructureType::from_raw(1000150002i32),
22279            p_next: core::ptr::null(),
22280            acceleration_structure: Default::default(),
22281        }
22282    }
22283}
22284///[`VkAccelerationStructureVersionInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureVersionInfoKHR.html)
22285/**
22286Provided by **VK_KHR_acceleration_structure**.*/
22287#[repr(C)]
22288#[derive(Copy, Clone, Debug)]
22289#[doc(alias = "VkAccelerationStructureVersionInfoKHR")]
22290pub struct AccelerationStructureVersionInfoKHR {
22291    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR`.
22292    pub s_type: StructureType,
22293    ///Optional, may be null.
22294    pub p_next: *const core::ffi::c_void,
22295    pub p_version_data: *const u8,
22296}
22297impl Default for AccelerationStructureVersionInfoKHR {
22298    #[inline]
22299    fn default() -> Self {
22300        Self {
22301            s_type: StructureType::from_raw(1000150009i32),
22302            p_next: core::ptr::null(),
22303            p_version_data: core::ptr::null(),
22304        }
22305    }
22306}
22307///[`VkCopyAccelerationStructureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyAccelerationStructureInfoKHR.html)
22308/**
22309Provided by **VK_KHR_acceleration_structure**.*/
22310#[repr(C)]
22311#[derive(Copy, Clone, Debug)]
22312#[doc(alias = "VkCopyAccelerationStructureInfoKHR")]
22313pub struct CopyAccelerationStructureInfoKHR {
22314    ///Must be `VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR`.
22315    pub s_type: StructureType,
22316    ///Optional, may be null.
22317    pub p_next: *const core::ffi::c_void,
22318    pub src: AccelerationStructureKHR,
22319    pub dst: AccelerationStructureKHR,
22320    pub mode: CopyAccelerationStructureModeKHR,
22321}
22322impl Default for CopyAccelerationStructureInfoKHR {
22323    #[inline]
22324    fn default() -> Self {
22325        Self {
22326            s_type: StructureType::from_raw(1000150010i32),
22327            p_next: core::ptr::null(),
22328            src: Default::default(),
22329            dst: Default::default(),
22330            mode: Default::default(),
22331        }
22332    }
22333}
22334///[`VkCopyAccelerationStructureToMemoryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyAccelerationStructureToMemoryInfoKHR.html)
22335/**
22336Provided by **VK_KHR_acceleration_structure**.*/
22337#[repr(C)]
22338#[derive(Copy, Clone, Debug)]
22339#[doc(alias = "VkCopyAccelerationStructureToMemoryInfoKHR")]
22340pub struct CopyAccelerationStructureToMemoryInfoKHR {
22341    ///Must be `VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR`.
22342    pub s_type: StructureType,
22343    ///Optional, may be null.
22344    pub p_next: *const core::ffi::c_void,
22345    pub src: AccelerationStructureKHR,
22346    pub dst: DeviceOrHostAddressKHR,
22347    pub mode: CopyAccelerationStructureModeKHR,
22348}
22349impl Default for CopyAccelerationStructureToMemoryInfoKHR {
22350    #[inline]
22351    fn default() -> Self {
22352        Self {
22353            s_type: StructureType::from_raw(1000150011i32),
22354            p_next: core::ptr::null(),
22355            src: Default::default(),
22356            dst: Default::default(),
22357            mode: Default::default(),
22358        }
22359    }
22360}
22361///[`VkCopyMemoryToAccelerationStructureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToAccelerationStructureInfoKHR.html)
22362/**
22363Provided by **VK_KHR_acceleration_structure**.*/
22364#[repr(C)]
22365#[derive(Copy, Clone, Debug)]
22366#[doc(alias = "VkCopyMemoryToAccelerationStructureInfoKHR")]
22367pub struct CopyMemoryToAccelerationStructureInfoKHR {
22368    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR`.
22369    pub s_type: StructureType,
22370    ///Optional, may be null.
22371    pub p_next: *const core::ffi::c_void,
22372    pub src: DeviceOrHostAddressConstKHR,
22373    pub dst: AccelerationStructureKHR,
22374    pub mode: CopyAccelerationStructureModeKHR,
22375}
22376impl Default for CopyMemoryToAccelerationStructureInfoKHR {
22377    #[inline]
22378    fn default() -> Self {
22379        Self {
22380            s_type: StructureType::from_raw(1000150012i32),
22381            p_next: core::ptr::null(),
22382            src: Default::default(),
22383            dst: Default::default(),
22384            mode: Default::default(),
22385        }
22386    }
22387}
22388///[`VkRayTracingPipelineInterfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingPipelineInterfaceCreateInfoKHR.html)
22389/**
22390Provided by **VK_KHR_ray_tracing_pipeline**.*/
22391#[repr(C)]
22392#[derive(Copy, Clone, Debug)]
22393#[doc(alias = "VkRayTracingPipelineInterfaceCreateInfoKHR")]
22394pub struct RayTracingPipelineInterfaceCreateInfoKHR {
22395    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR`.
22396    pub s_type: StructureType,
22397    ///Optional, may be null.
22398    pub p_next: *const core::ffi::c_void,
22399    pub max_pipeline_ray_payload_size: u32,
22400    pub max_pipeline_ray_hit_attribute_size: u32,
22401}
22402impl Default for RayTracingPipelineInterfaceCreateInfoKHR {
22403    #[inline]
22404    fn default() -> Self {
22405        Self {
22406            s_type: StructureType::from_raw(1000150018i32),
22407            p_next: core::ptr::null(),
22408            max_pipeline_ray_payload_size: Default::default(),
22409            max_pipeline_ray_hit_attribute_size: Default::default(),
22410        }
22411    }
22412}
22413///[`VkPipelineLibraryCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineLibraryCreateInfoKHR.html)
22414/**
22415Provided by **VK_KHR_pipeline_library**.*/
22416///
22417///# Extends
22418///- [`GraphicsPipelineCreateInfo`]
22419#[repr(C)]
22420#[derive(Copy, Clone, Debug)]
22421#[doc(alias = "VkPipelineLibraryCreateInfoKHR")]
22422pub struct PipelineLibraryCreateInfoKHR {
22423    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR`.
22424    pub s_type: StructureType,
22425    ///Optional, may be null.
22426    pub p_next: *const core::ffi::c_void,
22427    ///Length of `p_libraries`.
22428    pub library_count: u32,
22429    pub p_libraries: *const Pipeline,
22430}
22431impl Default for PipelineLibraryCreateInfoKHR {
22432    #[inline]
22433    fn default() -> Self {
22434        Self {
22435            s_type: StructureType::from_raw(1000290000i32),
22436            p_next: core::ptr::null(),
22437            library_count: Default::default(),
22438            p_libraries: core::ptr::null(),
22439        }
22440    }
22441}
22442///[`VkRefreshObjectKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRefreshObjectKHR.html)
22443#[repr(C)]
22444#[derive(Copy, Clone, Debug)]
22445#[doc(alias = "VkRefreshObjectKHR")]
22446pub struct RefreshObjectKHR {
22447    pub object_type: ObjectType,
22448    ///**Thread safety:** must be externally synchronized.
22449    pub object_handle: u64,
22450    pub flags: RefreshObjectFlagsKHR,
22451}
22452impl Default for RefreshObjectKHR {
22453    #[inline]
22454    fn default() -> Self {
22455        unsafe { core::mem::zeroed() }
22456    }
22457}
22458///[`VkRefreshObjectListKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRefreshObjectListKHR.html)
22459#[repr(C)]
22460#[derive(Copy, Clone, Debug)]
22461#[doc(alias = "VkRefreshObjectListKHR")]
22462pub struct RefreshObjectListKHR {
22463    ///Must be `VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR`.
22464    pub s_type: StructureType,
22465    ///Optional, may be null.
22466    pub p_next: *const core::ffi::c_void,
22467    ///Length of `p_objects`.
22468    pub object_count: u32,
22469    pub p_objects: *const RefreshObjectKHR,
22470}
22471impl Default for RefreshObjectListKHR {
22472    #[inline]
22473    fn default() -> Self {
22474        Self {
22475            s_type: Default::default(),
22476            p_next: core::ptr::null(),
22477            object_count: Default::default(),
22478            p_objects: core::ptr::null(),
22479        }
22480    }
22481}
22482///[`VkPhysicalDeviceExtendedDynamicStateFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.html)
22483/**
22484Provided by **VK_EXT_extended_dynamic_state**.*/
22485///
22486///# Extends
22487///- [`PhysicalDeviceFeatures2`]
22488///- [`DeviceCreateInfo`]
22489#[repr(C)]
22490#[derive(Copy, Clone, Debug)]
22491#[doc(alias = "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT")]
22492pub struct PhysicalDeviceExtendedDynamicStateFeaturesEXT {
22493    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT`.
22494    pub s_type: StructureType,
22495    ///Optional, may be null.
22496    pub p_next: *mut core::ffi::c_void,
22497    pub extended_dynamic_state: u32,
22498}
22499impl Default for PhysicalDeviceExtendedDynamicStateFeaturesEXT {
22500    #[inline]
22501    fn default() -> Self {
22502        Self {
22503            s_type: StructureType::from_raw(1000267000i32),
22504            p_next: core::ptr::null_mut(),
22505            extended_dynamic_state: Default::default(),
22506        }
22507    }
22508}
22509///[`VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.html)
22510/**
22511Provided by **VK_EXT_extended_dynamic_state2**.*/
22512///
22513///# Extends
22514///- [`PhysicalDeviceFeatures2`]
22515///- [`DeviceCreateInfo`]
22516#[repr(C)]
22517#[derive(Copy, Clone, Debug)]
22518#[doc(alias = "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT")]
22519pub struct PhysicalDeviceExtendedDynamicState2FeaturesEXT {
22520    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT`.
22521    pub s_type: StructureType,
22522    ///Optional, may be null.
22523    pub p_next: *mut core::ffi::c_void,
22524    pub extended_dynamic_state2: u32,
22525    pub extended_dynamic_state2_logic_op: u32,
22526    pub extended_dynamic_state2_patch_control_points: u32,
22527}
22528impl Default for PhysicalDeviceExtendedDynamicState2FeaturesEXT {
22529    #[inline]
22530    fn default() -> Self {
22531        Self {
22532            s_type: StructureType::from_raw(1000377000i32),
22533            p_next: core::ptr::null_mut(),
22534            extended_dynamic_state2: Default::default(),
22535            extended_dynamic_state2_logic_op: Default::default(),
22536            extended_dynamic_state2_patch_control_points: Default::default(),
22537        }
22538    }
22539}
22540///[`VkPhysicalDeviceExtendedDynamicState3FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicState3FeaturesEXT.html)
22541/**
22542Provided by **VK_EXT_extended_dynamic_state3**.*/
22543///
22544///# Extends
22545///- [`PhysicalDeviceFeatures2`]
22546///- [`DeviceCreateInfo`]
22547#[repr(C)]
22548#[derive(Copy, Clone, Debug)]
22549#[doc(alias = "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT")]
22550pub struct PhysicalDeviceExtendedDynamicState3FeaturesEXT {
22551    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT`.
22552    pub s_type: StructureType,
22553    ///Optional, may be null.
22554    pub p_next: *mut core::ffi::c_void,
22555    pub extended_dynamic_state3_tessellation_domain_origin: u32,
22556    pub extended_dynamic_state3_depth_clamp_enable: u32,
22557    pub extended_dynamic_state3_polygon_mode: u32,
22558    pub extended_dynamic_state3_rasterization_samples: u32,
22559    pub extended_dynamic_state3_sample_mask: u32,
22560    pub extended_dynamic_state3_alpha_to_coverage_enable: u32,
22561    pub extended_dynamic_state3_alpha_to_one_enable: u32,
22562    pub extended_dynamic_state3_logic_op_enable: u32,
22563    pub extended_dynamic_state3_color_blend_enable: u32,
22564    pub extended_dynamic_state3_color_blend_equation: u32,
22565    pub extended_dynamic_state3_color_write_mask: u32,
22566    pub extended_dynamic_state3_rasterization_stream: u32,
22567    pub extended_dynamic_state3_conservative_rasterization_mode: u32,
22568    pub extended_dynamic_state3_extra_primitive_overestimation_size: u32,
22569    pub extended_dynamic_state3_depth_clip_enable: u32,
22570    pub extended_dynamic_state3_sample_locations_enable: u32,
22571    pub extended_dynamic_state3_color_blend_advanced: u32,
22572    pub extended_dynamic_state3_provoking_vertex_mode: u32,
22573    pub extended_dynamic_state3_line_rasterization_mode: u32,
22574    pub extended_dynamic_state3_line_stipple_enable: u32,
22575    pub extended_dynamic_state3_depth_clip_negative_one_to_one: u32,
22576    pub extended_dynamic_state3_viewport_w_scaling_enable: u32,
22577    pub extended_dynamic_state3_viewport_swizzle: u32,
22578    pub extended_dynamic_state3_coverage_to_color_enable: u32,
22579    pub extended_dynamic_state3_coverage_to_color_location: u32,
22580    pub extended_dynamic_state3_coverage_modulation_mode: u32,
22581    pub extended_dynamic_state3_coverage_modulation_table_enable: u32,
22582    pub extended_dynamic_state3_coverage_modulation_table: u32,
22583    pub extended_dynamic_state3_coverage_reduction_mode: u32,
22584    pub extended_dynamic_state3_representative_fragment_test_enable: u32,
22585    pub extended_dynamic_state3_shading_rate_image_enable: u32,
22586}
22587impl Default for PhysicalDeviceExtendedDynamicState3FeaturesEXT {
22588    #[inline]
22589    fn default() -> Self {
22590        Self {
22591            s_type: StructureType::from_raw(1000455000i32),
22592            p_next: core::ptr::null_mut(),
22593            extended_dynamic_state3_tessellation_domain_origin: Default::default(),
22594            extended_dynamic_state3_depth_clamp_enable: Default::default(),
22595            extended_dynamic_state3_polygon_mode: Default::default(),
22596            extended_dynamic_state3_rasterization_samples: Default::default(),
22597            extended_dynamic_state3_sample_mask: Default::default(),
22598            extended_dynamic_state3_alpha_to_coverage_enable: Default::default(),
22599            extended_dynamic_state3_alpha_to_one_enable: Default::default(),
22600            extended_dynamic_state3_logic_op_enable: Default::default(),
22601            extended_dynamic_state3_color_blend_enable: Default::default(),
22602            extended_dynamic_state3_color_blend_equation: Default::default(),
22603            extended_dynamic_state3_color_write_mask: Default::default(),
22604            extended_dynamic_state3_rasterization_stream: Default::default(),
22605            extended_dynamic_state3_conservative_rasterization_mode: Default::default(),
22606            extended_dynamic_state3_extra_primitive_overestimation_size: Default::default(),
22607            extended_dynamic_state3_depth_clip_enable: Default::default(),
22608            extended_dynamic_state3_sample_locations_enable: Default::default(),
22609            extended_dynamic_state3_color_blend_advanced: Default::default(),
22610            extended_dynamic_state3_provoking_vertex_mode: Default::default(),
22611            extended_dynamic_state3_line_rasterization_mode: Default::default(),
22612            extended_dynamic_state3_line_stipple_enable: Default::default(),
22613            extended_dynamic_state3_depth_clip_negative_one_to_one: Default::default(),
22614            extended_dynamic_state3_viewport_w_scaling_enable: Default::default(),
22615            extended_dynamic_state3_viewport_swizzle: Default::default(),
22616            extended_dynamic_state3_coverage_to_color_enable: Default::default(),
22617            extended_dynamic_state3_coverage_to_color_location: Default::default(),
22618            extended_dynamic_state3_coverage_modulation_mode: Default::default(),
22619            extended_dynamic_state3_coverage_modulation_table_enable: Default::default(),
22620            extended_dynamic_state3_coverage_modulation_table: Default::default(),
22621            extended_dynamic_state3_coverage_reduction_mode: Default::default(),
22622            extended_dynamic_state3_representative_fragment_test_enable: Default::default(),
22623            extended_dynamic_state3_shading_rate_image_enable: Default::default(),
22624        }
22625    }
22626}
22627///[`VkPhysicalDeviceExtendedDynamicState3PropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicState3PropertiesEXT.html)
22628/**
22629Provided by **VK_EXT_extended_dynamic_state3**.*/
22630/**
22631**Returned only**, filled by Vulkan, not constructed by the application.*/
22632///
22633///# Extends
22634///- [`PhysicalDeviceProperties2`]
22635#[repr(C)]
22636#[derive(Copy, Clone, Debug)]
22637#[doc(alias = "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT")]
22638pub struct PhysicalDeviceExtendedDynamicState3PropertiesEXT {
22639    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT`.
22640    pub s_type: StructureType,
22641    ///Optional, may be null.
22642    pub p_next: *mut core::ffi::c_void,
22643    pub dynamic_primitive_topology_unrestricted: u32,
22644}
22645impl Default for PhysicalDeviceExtendedDynamicState3PropertiesEXT {
22646    #[inline]
22647    fn default() -> Self {
22648        Self {
22649            s_type: StructureType::from_raw(1000455001i32),
22650            p_next: core::ptr::null_mut(),
22651            dynamic_primitive_topology_unrestricted: Default::default(),
22652        }
22653    }
22654}
22655///[`VkColorBlendEquationEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkColorBlendEquationEXT.html)
22656/**
22657Provided by **VK_EXT_extended_dynamic_state3**.*/
22658#[repr(C)]
22659#[derive(Copy, Clone, Debug)]
22660#[doc(alias = "VkColorBlendEquationEXT")]
22661pub struct ColorBlendEquationEXT {
22662    pub src_color_blend_factor: BlendFactor,
22663    pub dst_color_blend_factor: BlendFactor,
22664    pub color_blend_op: BlendOp,
22665    pub src_alpha_blend_factor: BlendFactor,
22666    pub dst_alpha_blend_factor: BlendFactor,
22667    pub alpha_blend_op: BlendOp,
22668}
22669impl Default for ColorBlendEquationEXT {
22670    #[inline]
22671    fn default() -> Self {
22672        unsafe { core::mem::zeroed() }
22673    }
22674}
22675///[`VkColorBlendAdvancedEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkColorBlendAdvancedEXT.html)
22676/**
22677Provided by **VK_EXT_extended_dynamic_state3**.*/
22678#[repr(C)]
22679#[derive(Copy, Clone, Debug)]
22680#[doc(alias = "VkColorBlendAdvancedEXT")]
22681pub struct ColorBlendAdvancedEXT {
22682    pub advanced_blend_op: BlendOp,
22683    pub src_premultiplied: u32,
22684    pub dst_premultiplied: u32,
22685    pub blend_overlap: BlendOverlapEXT,
22686    pub clamp_results: u32,
22687}
22688impl Default for ColorBlendAdvancedEXT {
22689    #[inline]
22690    fn default() -> Self {
22691        unsafe { core::mem::zeroed() }
22692    }
22693}
22694///[`VkRenderPassTransformBeginInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassTransformBeginInfoQCOM.html)
22695/**
22696Provided by **VK_QCOM_render_pass_transform**.*/
22697///
22698///# Extends
22699///- [`RenderPassBeginInfo`]
22700#[repr(C)]
22701#[derive(Copy, Clone, Debug)]
22702#[doc(alias = "VkRenderPassTransformBeginInfoQCOM")]
22703pub struct RenderPassTransformBeginInfoQCOM {
22704    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM`.
22705    pub s_type: StructureType,
22706    ///Optional, may be null.
22707    pub p_next: *const core::ffi::c_void,
22708    pub transform: SurfaceTransformFlagBitsKHR,
22709}
22710impl Default for RenderPassTransformBeginInfoQCOM {
22711    #[inline]
22712    fn default() -> Self {
22713        Self {
22714            s_type: StructureType::from_raw(1000282001i32),
22715            p_next: core::ptr::null(),
22716            transform: Default::default(),
22717        }
22718    }
22719}
22720///[`VkCopyCommandTransformInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyCommandTransformInfoQCOM.html)
22721/**
22722Provided by **VK_QCOM_rotated_copy_commands**.*/
22723///
22724///# Extends
22725///- [`BufferImageCopy2`]
22726///- [`ImageBlit2`]
22727///- [`DeviceMemoryImageCopyKHR`]
22728#[repr(C)]
22729#[derive(Copy, Clone, Debug)]
22730#[doc(alias = "VkCopyCommandTransformInfoQCOM")]
22731pub struct CopyCommandTransformInfoQCOM {
22732    ///Must be `VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM`.
22733    pub s_type: StructureType,
22734    ///Optional, may be null.
22735    pub p_next: *const core::ffi::c_void,
22736    pub transform: SurfaceTransformFlagBitsKHR,
22737}
22738impl Default for CopyCommandTransformInfoQCOM {
22739    #[inline]
22740    fn default() -> Self {
22741        Self {
22742            s_type: StructureType::from_raw(1000333000i32),
22743            p_next: core::ptr::null(),
22744            transform: Default::default(),
22745        }
22746    }
22747}
22748///[`VkCommandBufferInheritanceRenderPassTransformInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceRenderPassTransformInfoQCOM.html)
22749/**
22750Provided by **VK_QCOM_render_pass_transform**.*/
22751///
22752///# Extends
22753///- [`CommandBufferInheritanceInfo`]
22754#[repr(C)]
22755#[derive(Copy, Clone, Debug)]
22756#[doc(alias = "VkCommandBufferInheritanceRenderPassTransformInfoQCOM")]
22757pub struct CommandBufferInheritanceRenderPassTransformInfoQCOM {
22758    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM`.
22759    pub s_type: StructureType,
22760    ///Optional, may be null.
22761    pub p_next: *const core::ffi::c_void,
22762    pub transform: SurfaceTransformFlagBitsKHR,
22763    pub render_area: Rect2D,
22764}
22765impl Default for CommandBufferInheritanceRenderPassTransformInfoQCOM {
22766    #[inline]
22767    fn default() -> Self {
22768        Self {
22769            s_type: StructureType::from_raw(1000282000i32),
22770            p_next: core::ptr::null(),
22771            transform: Default::default(),
22772            render_area: Default::default(),
22773        }
22774    }
22775}
22776///[`VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV.html)
22777/**
22778Provided by **VK_NV_partitioned_acceleration_structure**.*/
22779///
22780///# Extends
22781///- [`PhysicalDeviceFeatures2`]
22782///- [`DeviceCreateInfo`]
22783#[repr(C)]
22784#[derive(Copy, Clone, Debug)]
22785#[doc(alias = "VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV")]
22786pub struct PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
22787    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV`.
22788    pub s_type: StructureType,
22789    ///Optional, may be null.
22790    pub p_next: *mut core::ffi::c_void,
22791    pub partitioned_acceleration_structure: u32,
22792}
22793impl Default for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
22794    #[inline]
22795    fn default() -> Self {
22796        Self {
22797            s_type: StructureType::from_raw(1000570000i32),
22798            p_next: core::ptr::null_mut(),
22799            partitioned_acceleration_structure: Default::default(),
22800        }
22801    }
22802}
22803///[`VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV.html)
22804/**
22805Provided by **VK_NV_partitioned_acceleration_structure**.*/
22806/**
22807**Returned only**, filled by Vulkan, not constructed by the application.*/
22808///
22809///# Extends
22810///- [`PhysicalDeviceProperties2`]
22811#[repr(C)]
22812#[derive(Copy, Clone, Debug)]
22813#[doc(alias = "VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV")]
22814pub struct PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
22815    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV`.
22816    pub s_type: StructureType,
22817    ///Optional, may be null.
22818    pub p_next: *mut core::ffi::c_void,
22819    pub max_partition_count: u32,
22820}
22821impl Default for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
22822    #[inline]
22823    fn default() -> Self {
22824        Self {
22825            s_type: StructureType::from_raw(1000570001i32),
22826            p_next: core::ptr::null_mut(),
22827            max_partition_count: Default::default(),
22828        }
22829    }
22830}
22831///[`VkBuildPartitionedAccelerationStructureIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBuildPartitionedAccelerationStructureIndirectCommandNV.html)
22832/**
22833Provided by **VK_NV_partitioned_acceleration_structure**.*/
22834#[repr(C)]
22835#[derive(Copy, Clone, Debug)]
22836#[doc(alias = "VkBuildPartitionedAccelerationStructureIndirectCommandNV")]
22837pub struct BuildPartitionedAccelerationStructureIndirectCommandNV {
22838    pub op_type: PartitionedAccelerationStructureOpTypeNV,
22839    pub arg_count: u32,
22840    pub arg_data: StridedDeviceAddressNV,
22841}
22842impl Default for BuildPartitionedAccelerationStructureIndirectCommandNV {
22843    #[inline]
22844    fn default() -> Self {
22845        unsafe { core::mem::zeroed() }
22846    }
22847}
22848///[`VkPartitionedAccelerationStructureFlagsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureFlagsNV.html)
22849/**
22850Provided by **VK_NV_partitioned_acceleration_structure**.*/
22851///
22852///# Extends
22853///- [`PartitionedAccelerationStructureInstancesInputNV`]
22854#[repr(C)]
22855#[derive(Copy, Clone, Debug)]
22856#[doc(alias = "VkPartitionedAccelerationStructureFlagsNV")]
22857pub struct PartitionedAccelerationStructureFlagsNV {
22858    ///Must be `VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV`.
22859    pub s_type: StructureType,
22860    ///Optional, may be null.
22861    pub p_next: *mut core::ffi::c_void,
22862    pub enable_partition_translation: u32,
22863}
22864impl Default for PartitionedAccelerationStructureFlagsNV {
22865    #[inline]
22866    fn default() -> Self {
22867        Self {
22868            s_type: StructureType::from_raw(1000570005i32),
22869            p_next: core::ptr::null_mut(),
22870            enable_partition_translation: Default::default(),
22871        }
22872    }
22873}
22874///[`VkPartitionedAccelerationStructureWriteInstanceDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureWriteInstanceDataNV.html)
22875/**
22876Provided by **VK_NV_partitioned_acceleration_structure**.*/
22877#[repr(C)]
22878#[derive(Copy, Clone, Debug)]
22879#[doc(alias = "VkPartitionedAccelerationStructureWriteInstanceDataNV")]
22880pub struct PartitionedAccelerationStructureWriteInstanceDataNV {
22881    pub transform: TransformMatrixKHR,
22882    pub explicit_aabb: [f32; 6usize],
22883    pub instance_id: u32,
22884    pub instance_mask: u32,
22885    pub instance_contribution_to_hit_group_index: u32,
22886    pub instance_flags: PartitionedAccelerationStructureInstanceFlagsNV,
22887    pub instance_index: u32,
22888    pub partition_index: u32,
22889    pub acceleration_structure: u64,
22890}
22891impl Default for PartitionedAccelerationStructureWriteInstanceDataNV {
22892    #[inline]
22893    fn default() -> Self {
22894        unsafe { core::mem::zeroed() }
22895    }
22896}
22897///[`VkPartitionedAccelerationStructureUpdateInstanceDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureUpdateInstanceDataNV.html)
22898/**
22899Provided by **VK_NV_partitioned_acceleration_structure**.*/
22900#[repr(C)]
22901#[derive(Copy, Clone, Debug)]
22902#[doc(alias = "VkPartitionedAccelerationStructureUpdateInstanceDataNV")]
22903pub struct PartitionedAccelerationStructureUpdateInstanceDataNV {
22904    pub instance_index: u32,
22905    pub instance_contribution_to_hit_group_index: u32,
22906    pub acceleration_structure: u64,
22907}
22908impl Default for PartitionedAccelerationStructureUpdateInstanceDataNV {
22909    #[inline]
22910    fn default() -> Self {
22911        unsafe { core::mem::zeroed() }
22912    }
22913}
22914///[`VkPartitionedAccelerationStructureWritePartitionTranslationDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureWritePartitionTranslationDataNV.html)
22915/**
22916Provided by **VK_NV_partitioned_acceleration_structure**.*/
22917#[repr(C)]
22918#[derive(Copy, Clone, Debug)]
22919#[doc(alias = "VkPartitionedAccelerationStructureWritePartitionTranslationDataNV")]
22920pub struct PartitionedAccelerationStructureWritePartitionTranslationDataNV {
22921    pub partition_index: u32,
22922    pub partition_translation: [f32; 3usize],
22923}
22924impl Default for PartitionedAccelerationStructureWritePartitionTranslationDataNV {
22925    #[inline]
22926    fn default() -> Self {
22927        unsafe { core::mem::zeroed() }
22928    }
22929}
22930///[`VkWriteDescriptorSetPartitionedAccelerationStructureNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetPartitionedAccelerationStructureNV.html)
22931/**
22932Provided by **VK_NV_partitioned_acceleration_structure**.*/
22933///
22934///# Extends
22935///- [`WriteDescriptorSet`]
22936#[repr(C)]
22937#[derive(Copy, Clone, Debug)]
22938#[doc(alias = "VkWriteDescriptorSetPartitionedAccelerationStructureNV")]
22939pub struct WriteDescriptorSetPartitionedAccelerationStructureNV {
22940    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV`.
22941    pub s_type: StructureType,
22942    ///Optional, may be null.
22943    pub p_next: *mut core::ffi::c_void,
22944    ///Length of `p_acceleration_structures`.
22945    pub acceleration_structure_count: u32,
22946    ///Optional, may be null.
22947    pub p_acceleration_structures: *const u64,
22948}
22949impl Default for WriteDescriptorSetPartitionedAccelerationStructureNV {
22950    #[inline]
22951    fn default() -> Self {
22952        Self {
22953            s_type: StructureType::from_raw(1000570002i32),
22954            p_next: core::ptr::null_mut(),
22955            acceleration_structure_count: Default::default(),
22956            p_acceleration_structures: core::ptr::null(),
22957        }
22958    }
22959}
22960///[`VkPartitionedAccelerationStructureInstancesInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureInstancesInputNV.html)
22961/**
22962Provided by **VK_NV_partitioned_acceleration_structure**.*/
22963///
22964///# Extended By
22965///- [`PartitionedAccelerationStructureFlagsNV`]
22966#[repr(C)]
22967#[derive(Copy, Clone, Debug)]
22968#[doc(alias = "VkPartitionedAccelerationStructureInstancesInputNV")]
22969pub struct PartitionedAccelerationStructureInstancesInputNV {
22970    ///Must be `VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV`.
22971    pub s_type: StructureType,
22972    ///Optional, may be null.
22973    pub p_next: *mut core::ffi::c_void,
22974    pub flags: BuildAccelerationStructureFlagsKHR,
22975    pub instance_count: u32,
22976    pub max_instance_per_partition_count: u32,
22977    pub partition_count: u32,
22978    pub max_instance_in_global_partition_count: u32,
22979}
22980impl Default for PartitionedAccelerationStructureInstancesInputNV {
22981    #[inline]
22982    fn default() -> Self {
22983        Self {
22984            s_type: StructureType::from_raw(1000570003i32),
22985            p_next: core::ptr::null_mut(),
22986            flags: Default::default(),
22987            instance_count: Default::default(),
22988            max_instance_per_partition_count: Default::default(),
22989            partition_count: Default::default(),
22990            max_instance_in_global_partition_count: Default::default(),
22991        }
22992    }
22993}
22994///[`VkBuildPartitionedAccelerationStructureInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBuildPartitionedAccelerationStructureInfoNV.html)
22995/**
22996Provided by **VK_NV_partitioned_acceleration_structure**.*/
22997#[repr(C)]
22998#[derive(Copy, Clone, Debug)]
22999#[doc(alias = "VkBuildPartitionedAccelerationStructureInfoNV")]
23000pub struct BuildPartitionedAccelerationStructureInfoNV {
23001    ///Must be `VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV`.
23002    pub s_type: StructureType,
23003    ///Optional, may be null.
23004    pub p_next: *mut core::ffi::c_void,
23005    pub input: PartitionedAccelerationStructureInstancesInputNV,
23006    pub src_acceleration_structure_data: u64,
23007    pub dst_acceleration_structure_data: u64,
23008    pub scratch_data: u64,
23009    pub src_infos: u64,
23010    pub src_infos_count: u64,
23011}
23012impl Default for BuildPartitionedAccelerationStructureInfoNV {
23013    #[inline]
23014    fn default() -> Self {
23015        Self {
23016            s_type: StructureType::from_raw(1000570004i32),
23017            p_next: core::ptr::null_mut(),
23018            input: Default::default(),
23019            src_acceleration_structure_data: Default::default(),
23020            dst_acceleration_structure_data: Default::default(),
23021            scratch_data: Default::default(),
23022            src_infos: Default::default(),
23023            src_infos_count: Default::default(),
23024        }
23025    }
23026}
23027///[`VkPhysicalDeviceDiagnosticsConfigFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.html)
23028/**
23029Provided by **VK_NV_device_diagnostics_config**.*/
23030///
23031///# Extends
23032///- [`PhysicalDeviceFeatures2`]
23033///- [`DeviceCreateInfo`]
23034#[repr(C)]
23035#[derive(Copy, Clone, Debug)]
23036#[doc(alias = "VkPhysicalDeviceDiagnosticsConfigFeaturesNV")]
23037pub struct PhysicalDeviceDiagnosticsConfigFeaturesNV {
23038    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV`.
23039    pub s_type: StructureType,
23040    ///Optional, may be null.
23041    pub p_next: *mut core::ffi::c_void,
23042    pub diagnostics_config: u32,
23043}
23044impl Default for PhysicalDeviceDiagnosticsConfigFeaturesNV {
23045    #[inline]
23046    fn default() -> Self {
23047        Self {
23048            s_type: StructureType::from_raw(1000300000i32),
23049            p_next: core::ptr::null_mut(),
23050            diagnostics_config: Default::default(),
23051        }
23052    }
23053}
23054///[`VkDeviceDiagnosticsConfigCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceDiagnosticsConfigCreateInfoNV.html)
23055/**
23056Provided by **VK_NV_device_diagnostics_config**.*/
23057///
23058///# Extends
23059///- [`DeviceCreateInfo`]
23060#[repr(C)]
23061#[derive(Copy, Clone, Debug)]
23062#[doc(alias = "VkDeviceDiagnosticsConfigCreateInfoNV")]
23063pub struct DeviceDiagnosticsConfigCreateInfoNV {
23064    ///Must be `VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV`.
23065    pub s_type: StructureType,
23066    ///Optional, may be null.
23067    pub p_next: *const core::ffi::c_void,
23068    pub flags: DeviceDiagnosticsConfigFlagsNV,
23069}
23070impl Default for DeviceDiagnosticsConfigCreateInfoNV {
23071    #[inline]
23072    fn default() -> Self {
23073        Self {
23074            s_type: StructureType::from_raw(1000300001i32),
23075            p_next: core::ptr::null(),
23076            flags: Default::default(),
23077        }
23078    }
23079}
23080///[`VkPipelineOfflineCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineOfflineCreateInfo.html)
23081/**
23082Provided by **VKSC_VERSION_1_0**.*/
23083///
23084///# Extends
23085///- [`GraphicsPipelineCreateInfo`]
23086///- [`ComputePipelineCreateInfo`]
23087///- [`RayTracingPipelineCreateInfoKHR`]
23088///- [`RayTracingPipelineCreateInfoNV`]
23089#[repr(C)]
23090#[derive(Copy, Clone, Debug)]
23091#[doc(alias = "VkPipelineOfflineCreateInfo")]
23092pub struct PipelineOfflineCreateInfo {
23093    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO`.
23094    pub s_type: StructureType,
23095    ///Optional, may be null.
23096    pub p_next: *const core::ffi::c_void,
23097    pub pipeline_identifier: [u8; UUID_SIZE as usize],
23098    pub match_control: PipelineMatchControl,
23099    pub pool_entry_size: u64,
23100}
23101impl Default for PipelineOfflineCreateInfo {
23102    #[inline]
23103    fn default() -> Self {
23104        Self {
23105            s_type: StructureType::from_raw(1000298010i32),
23106            p_next: core::ptr::null(),
23107            pipeline_identifier: unsafe { core::mem::zeroed() },
23108            match_control: Default::default(),
23109            pool_entry_size: Default::default(),
23110        }
23111    }
23112}
23113///[`VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures.html)
23114/**
23115Provided by **VK_COMPUTE_VERSION_1_3**.*/
23116///
23117///# Extends
23118///- [`PhysicalDeviceFeatures2`]
23119///- [`DeviceCreateInfo`]
23120#[repr(C)]
23121#[derive(Copy, Clone, Debug)]
23122#[doc(alias = "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures")]
23123pub struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
23124    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES`.
23125    pub s_type: StructureType,
23126    ///Optional, may be null.
23127    pub p_next: *mut core::ffi::c_void,
23128    pub shader_zero_initialize_workgroup_memory: u32,
23129}
23130impl Default for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
23131    #[inline]
23132    fn default() -> Self {
23133        Self {
23134            s_type: StructureType::from_raw(1000325000i32),
23135            p_next: core::ptr::null_mut(),
23136            shader_zero_initialize_workgroup_memory: Default::default(),
23137        }
23138    }
23139}
23140///[`VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.html)
23141/**
23142Provided by **VK_KHR_shader_subgroup_uniform_control_flow**.*/
23143///
23144///# Extends
23145///- [`PhysicalDeviceFeatures2`]
23146///- [`DeviceCreateInfo`]
23147#[repr(C)]
23148#[derive(Copy, Clone, Debug)]
23149#[doc(alias = "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR")]
23150pub struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
23151    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR`.
23152    pub s_type: StructureType,
23153    ///Optional, may be null.
23154    pub p_next: *mut core::ffi::c_void,
23155    pub shader_subgroup_uniform_control_flow: u32,
23156}
23157impl Default for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
23158    #[inline]
23159    fn default() -> Self {
23160        Self {
23161            s_type: StructureType::from_raw(1000323000i32),
23162            p_next: core::ptr::null_mut(),
23163            shader_subgroup_uniform_control_flow: Default::default(),
23164        }
23165    }
23166}
23167///[`VkPhysicalDeviceRobustness2FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRobustness2FeaturesKHR.html)
23168/**
23169Provided by **VK_KHR_robustness2**.*/
23170///
23171///# Extends
23172///- [`PhysicalDeviceFeatures2`]
23173///- [`DeviceCreateInfo`]
23174#[repr(C)]
23175#[derive(Copy, Clone, Debug)]
23176#[doc(alias = "VkPhysicalDeviceRobustness2FeaturesKHR")]
23177pub struct PhysicalDeviceRobustness2FeaturesKHR {
23178    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR`.
23179    pub s_type: StructureType,
23180    ///Optional, may be null.
23181    pub p_next: *mut core::ffi::c_void,
23182    pub robust_buffer_access2: u32,
23183    pub robust_image_access2: u32,
23184    pub null_descriptor: u32,
23185}
23186impl Default for PhysicalDeviceRobustness2FeaturesKHR {
23187    #[inline]
23188    fn default() -> Self {
23189        Self {
23190            s_type: StructureType::from_raw(1000286000i32),
23191            p_next: core::ptr::null_mut(),
23192            robust_buffer_access2: Default::default(),
23193            robust_image_access2: Default::default(),
23194            null_descriptor: Default::default(),
23195        }
23196    }
23197}
23198///[`VkPhysicalDeviceRobustness2PropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRobustness2PropertiesKHR.html)
23199/**
23200Provided by **VK_KHR_robustness2**.*/
23201/**
23202**Returned only**, filled by Vulkan, not constructed by the application.*/
23203///
23204///# Extends
23205///- [`PhysicalDeviceProperties2`]
23206#[repr(C)]
23207#[derive(Copy, Clone, Debug)]
23208#[doc(alias = "VkPhysicalDeviceRobustness2PropertiesKHR")]
23209pub struct PhysicalDeviceRobustness2PropertiesKHR {
23210    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR`.
23211    pub s_type: StructureType,
23212    ///Optional, may be null.
23213    pub p_next: *mut core::ffi::c_void,
23214    pub robust_storage_buffer_access_size_alignment: u64,
23215    pub robust_uniform_buffer_access_size_alignment: u64,
23216}
23217impl Default for PhysicalDeviceRobustness2PropertiesKHR {
23218    #[inline]
23219    fn default() -> Self {
23220        Self {
23221            s_type: StructureType::from_raw(1000286001i32),
23222            p_next: core::ptr::null_mut(),
23223            robust_storage_buffer_access_size_alignment: Default::default(),
23224            robust_uniform_buffer_access_size_alignment: Default::default(),
23225        }
23226    }
23227}
23228///[`VkPhysicalDeviceImageRobustnessFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageRobustnessFeatures.html)
23229/**
23230Provided by **VK_COMPUTE_VERSION_1_3**.*/
23231///
23232///# Extends
23233///- [`PhysicalDeviceFeatures2`]
23234///- [`DeviceCreateInfo`]
23235#[repr(C)]
23236#[derive(Copy, Clone, Debug)]
23237#[doc(alias = "VkPhysicalDeviceImageRobustnessFeatures")]
23238pub struct PhysicalDeviceImageRobustnessFeatures {
23239    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES`.
23240    pub s_type: StructureType,
23241    ///Optional, may be null.
23242    pub p_next: *mut core::ffi::c_void,
23243    pub robust_image_access: u32,
23244}
23245impl Default for PhysicalDeviceImageRobustnessFeatures {
23246    #[inline]
23247    fn default() -> Self {
23248        Self {
23249            s_type: StructureType::from_raw(1000335000i32),
23250            p_next: core::ptr::null_mut(),
23251            robust_image_access: Default::default(),
23252        }
23253    }
23254}
23255///[`VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.html)
23256/**
23257Provided by **VK_KHR_workgroup_memory_explicit_layout**.*/
23258///
23259///# Extends
23260///- [`PhysicalDeviceFeatures2`]
23261///- [`DeviceCreateInfo`]
23262#[repr(C)]
23263#[derive(Copy, Clone, Debug)]
23264#[doc(alias = "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR")]
23265pub struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
23266    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR`.
23267    pub s_type: StructureType,
23268    ///Optional, may be null.
23269    pub p_next: *mut core::ffi::c_void,
23270    pub workgroup_memory_explicit_layout: u32,
23271    pub workgroup_memory_explicit_layout_scalar_block_layout: u32,
23272    pub workgroup_memory_explicit_layout8_bit_access: u32,
23273    pub workgroup_memory_explicit_layout16_bit_access: u32,
23274}
23275impl Default for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
23276    #[inline]
23277    fn default() -> Self {
23278        Self {
23279            s_type: StructureType::from_raw(1000336000i32),
23280            p_next: core::ptr::null_mut(),
23281            workgroup_memory_explicit_layout: Default::default(),
23282            workgroup_memory_explicit_layout_scalar_block_layout: Default::default(),
23283            workgroup_memory_explicit_layout8_bit_access: Default::default(),
23284            workgroup_memory_explicit_layout16_bit_access: Default::default(),
23285        }
23286    }
23287}
23288///[`VkPhysicalDevicePortabilitySubsetFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePortabilitySubsetFeaturesKHR.html)
23289/**
23290Provided by **VK_KHR_portability_subset**.*/
23291///
23292///# Extends
23293///- [`PhysicalDeviceFeatures2`]
23294///- [`DeviceCreateInfo`]
23295#[repr(C)]
23296#[derive(Copy, Clone, Debug)]
23297#[doc(alias = "VkPhysicalDevicePortabilitySubsetFeaturesKHR")]
23298pub struct PhysicalDevicePortabilitySubsetFeaturesKHR {
23299    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR`.
23300    pub s_type: StructureType,
23301    ///Optional, may be null.
23302    pub p_next: *mut core::ffi::c_void,
23303    pub constant_alpha_color_blend_factors: u32,
23304    pub events: u32,
23305    pub image_view_format_reinterpretation: u32,
23306    pub image_view_format_swizzle: u32,
23307    pub image_view2_d_on3_d_image: u32,
23308    pub multisample_array_image: u32,
23309    pub mutable_comparison_samplers: u32,
23310    pub point_polygons: u32,
23311    pub sampler_mip_lod_bias: u32,
23312    pub separate_stencil_mask_ref: u32,
23313    pub shader_sample_rate_interpolation_functions: u32,
23314    pub tessellation_isolines: u32,
23315    pub tessellation_point_mode: u32,
23316    pub triangle_fans: u32,
23317    pub vertex_attribute_access_beyond_stride: u32,
23318}
23319impl Default for PhysicalDevicePortabilitySubsetFeaturesKHR {
23320    #[inline]
23321    fn default() -> Self {
23322        Self {
23323            s_type: StructureType::from_raw(1000163000i32),
23324            p_next: core::ptr::null_mut(),
23325            constant_alpha_color_blend_factors: Default::default(),
23326            events: Default::default(),
23327            image_view_format_reinterpretation: Default::default(),
23328            image_view_format_swizzle: Default::default(),
23329            image_view2_d_on3_d_image: Default::default(),
23330            multisample_array_image: Default::default(),
23331            mutable_comparison_samplers: Default::default(),
23332            point_polygons: Default::default(),
23333            sampler_mip_lod_bias: Default::default(),
23334            separate_stencil_mask_ref: Default::default(),
23335            shader_sample_rate_interpolation_functions: Default::default(),
23336            tessellation_isolines: Default::default(),
23337            tessellation_point_mode: Default::default(),
23338            triangle_fans: Default::default(),
23339            vertex_attribute_access_beyond_stride: Default::default(),
23340        }
23341    }
23342}
23343///[`VkPhysicalDevicePortabilitySubsetPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePortabilitySubsetPropertiesKHR.html)
23344/**
23345Provided by **VK_KHR_portability_subset**.*/
23346/**
23347**Returned only**, filled by Vulkan, not constructed by the application.*/
23348///
23349///# Extends
23350///- [`PhysicalDeviceProperties2`]
23351#[repr(C)]
23352#[derive(Copy, Clone, Debug)]
23353#[doc(alias = "VkPhysicalDevicePortabilitySubsetPropertiesKHR")]
23354pub struct PhysicalDevicePortabilitySubsetPropertiesKHR {
23355    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR`.
23356    pub s_type: StructureType,
23357    ///Optional, may be null.
23358    pub p_next: *mut core::ffi::c_void,
23359    pub min_vertex_input_binding_stride_alignment: u32,
23360}
23361impl Default for PhysicalDevicePortabilitySubsetPropertiesKHR {
23362    #[inline]
23363    fn default() -> Self {
23364        Self {
23365            s_type: StructureType::from_raw(1000163001i32),
23366            p_next: core::ptr::null_mut(),
23367            min_vertex_input_binding_stride_alignment: Default::default(),
23368        }
23369    }
23370}
23371///[`VkPhysicalDevice4444FormatsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevice4444FormatsFeaturesEXT.html)
23372/**
23373Provided by **VK_EXT_4444_formats**.*/
23374///
23375///# Extends
23376///- [`PhysicalDeviceFeatures2`]
23377///- [`DeviceCreateInfo`]
23378#[repr(C)]
23379#[derive(Copy, Clone, Debug)]
23380#[doc(alias = "VkPhysicalDevice4444FormatsFeaturesEXT")]
23381pub struct PhysicalDevice4444FormatsFeaturesEXT {
23382    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT`.
23383    pub s_type: StructureType,
23384    ///Optional, may be null.
23385    pub p_next: *mut core::ffi::c_void,
23386    pub format_a4r4g4b4: u32,
23387    pub format_a4b4g4r4: u32,
23388}
23389impl Default for PhysicalDevice4444FormatsFeaturesEXT {
23390    #[inline]
23391    fn default() -> Self {
23392        Self {
23393            s_type: StructureType::from_raw(1000340000i32),
23394            p_next: core::ptr::null_mut(),
23395            format_a4r4g4b4: Default::default(),
23396            format_a4b4g4r4: Default::default(),
23397        }
23398    }
23399}
23400///[`VkPhysicalDeviceSubpassShadingFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.html)
23401/**
23402Provided by **VK_HUAWEI_subpass_shading**.*/
23403///
23404///# Extends
23405///- [`PhysicalDeviceFeatures2`]
23406///- [`DeviceCreateInfo`]
23407#[repr(C)]
23408#[derive(Copy, Clone, Debug)]
23409#[doc(alias = "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI")]
23410pub struct PhysicalDeviceSubpassShadingFeaturesHUAWEI {
23411    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI`.
23412    pub s_type: StructureType,
23413    ///Optional, may be null.
23414    pub p_next: *mut core::ffi::c_void,
23415    pub subpass_shading: u32,
23416}
23417impl Default for PhysicalDeviceSubpassShadingFeaturesHUAWEI {
23418    #[inline]
23419    fn default() -> Self {
23420        Self {
23421            s_type: StructureType::from_raw(1000369001i32),
23422            p_next: core::ptr::null_mut(),
23423            subpass_shading: Default::default(),
23424        }
23425    }
23426}
23427///[`VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI.html)
23428/**
23429Provided by **VK_HUAWEI_cluster_culling_shader**.*/
23430///
23431///# Extends
23432///- [`PhysicalDeviceFeatures2`]
23433///- [`DeviceCreateInfo`]
23434///
23435///# Extended By
23436///- [`PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI`]
23437#[repr(C)]
23438#[derive(Copy, Clone, Debug)]
23439#[doc(alias = "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI")]
23440pub struct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
23441    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI`.
23442    pub s_type: StructureType,
23443    ///Optional, may be null.
23444    pub p_next: *mut core::ffi::c_void,
23445    pub clusterculling_shader: u32,
23446    pub multiview_cluster_culling_shader: u32,
23447}
23448impl Default for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
23449    #[inline]
23450    fn default() -> Self {
23451        Self {
23452            s_type: StructureType::from_raw(1000404000i32),
23453            p_next: core::ptr::null_mut(),
23454            clusterculling_shader: Default::default(),
23455            multiview_cluster_culling_shader: Default::default(),
23456        }
23457    }
23458}
23459///[`VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.html)
23460/**
23461Provided by **VK_HUAWEI_cluster_culling_shader**.*/
23462///
23463///# Extends
23464///- [`PhysicalDeviceClusterCullingShaderFeaturesHUAWEI`]
23465#[repr(C)]
23466#[derive(Copy, Clone, Debug)]
23467#[doc(alias = "VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI")]
23468pub struct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
23469    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI`.
23470    pub s_type: StructureType,
23471    ///Optional, may be null.
23472    pub p_next: *mut core::ffi::c_void,
23473    pub cluster_shading_rate: u32,
23474}
23475impl Default for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
23476    #[inline]
23477    fn default() -> Self {
23478        Self {
23479            s_type: StructureType::from_raw(1000404002i32),
23480            p_next: core::ptr::null_mut(),
23481            cluster_shading_rate: Default::default(),
23482        }
23483    }
23484}
23485///[`VkBufferCopy2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCopy2.html)
23486/**
23487Provided by **VK_BASE_VERSION_1_3**.*/
23488#[repr(C)]
23489#[derive(Copy, Clone, Debug)]
23490#[doc(alias = "VkBufferCopy2")]
23491pub struct BufferCopy2 {
23492    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COPY_2`.
23493    pub s_type: StructureType,
23494    ///Optional, may be null.
23495    pub p_next: *const core::ffi::c_void,
23496    pub src_offset: u64,
23497    pub dst_offset: u64,
23498    pub size: u64,
23499}
23500impl Default for BufferCopy2 {
23501    #[inline]
23502    fn default() -> Self {
23503        Self {
23504            s_type: StructureType::from_raw(1000337006i32),
23505            p_next: core::ptr::null(),
23506            src_offset: Default::default(),
23507            dst_offset: Default::default(),
23508            size: Default::default(),
23509        }
23510    }
23511}
23512///[`VkImageCopy2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCopy2.html)
23513/**
23514Provided by **VK_BASE_VERSION_1_3**.*/
23515#[repr(C)]
23516#[derive(Copy, Clone, Debug)]
23517#[doc(alias = "VkImageCopy2")]
23518pub struct ImageCopy2 {
23519    ///Must be `VK_STRUCTURE_TYPE_IMAGE_COPY_2`.
23520    pub s_type: StructureType,
23521    ///Optional, may be null.
23522    pub p_next: *const core::ffi::c_void,
23523    pub src_subresource: ImageSubresourceLayers,
23524    pub src_offset: Offset3D,
23525    pub dst_subresource: ImageSubresourceLayers,
23526    pub dst_offset: Offset3D,
23527    pub extent: Extent3D,
23528}
23529impl Default for ImageCopy2 {
23530    #[inline]
23531    fn default() -> Self {
23532        Self {
23533            s_type: StructureType::from_raw(1000337007i32),
23534            p_next: core::ptr::null(),
23535            src_subresource: Default::default(),
23536            src_offset: Default::default(),
23537            dst_subresource: Default::default(),
23538            dst_offset: Default::default(),
23539            extent: Default::default(),
23540        }
23541    }
23542}
23543///[`VkImageBlit2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageBlit2.html)
23544/**
23545Provided by **VK_GRAPHICS_VERSION_1_3**.*/
23546///
23547///# Extended By
23548///- [`CopyCommandTransformInfoQCOM`]
23549#[repr(C)]
23550#[derive(Copy, Clone, Debug)]
23551#[doc(alias = "VkImageBlit2")]
23552pub struct ImageBlit2 {
23553    ///Must be `VK_STRUCTURE_TYPE_IMAGE_BLIT_2`.
23554    pub s_type: StructureType,
23555    ///Optional, may be null.
23556    pub p_next: *const core::ffi::c_void,
23557    pub src_subresource: ImageSubresourceLayers,
23558    pub src_offsets: [Offset3D; 2usize],
23559    pub dst_subresource: ImageSubresourceLayers,
23560    pub dst_offsets: [Offset3D; 2usize],
23561}
23562impl Default for ImageBlit2 {
23563    #[inline]
23564    fn default() -> Self {
23565        Self {
23566            s_type: StructureType::from_raw(1000337008i32),
23567            p_next: core::ptr::null(),
23568            src_subresource: Default::default(),
23569            src_offsets: unsafe { core::mem::zeroed() },
23570            dst_subresource: Default::default(),
23571            dst_offsets: unsafe { core::mem::zeroed() },
23572        }
23573    }
23574}
23575///[`VkBufferImageCopy2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferImageCopy2.html)
23576/**
23577Provided by **VK_BASE_VERSION_1_3**.*/
23578///
23579///# Extended By
23580///- [`CopyCommandTransformInfoQCOM`]
23581#[repr(C)]
23582#[derive(Copy, Clone, Debug)]
23583#[doc(alias = "VkBufferImageCopy2")]
23584pub struct BufferImageCopy2 {
23585    ///Must be `VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2`.
23586    pub s_type: StructureType,
23587    ///Optional, may be null.
23588    pub p_next: *const core::ffi::c_void,
23589    pub buffer_offset: u64,
23590    pub buffer_row_length: u32,
23591    pub buffer_image_height: u32,
23592    pub image_subresource: ImageSubresourceLayers,
23593    pub image_offset: Offset3D,
23594    pub image_extent: Extent3D,
23595}
23596impl Default for BufferImageCopy2 {
23597    #[inline]
23598    fn default() -> Self {
23599        Self {
23600            s_type: StructureType::from_raw(1000337009i32),
23601            p_next: core::ptr::null(),
23602            buffer_offset: Default::default(),
23603            buffer_row_length: Default::default(),
23604            buffer_image_height: Default::default(),
23605            image_subresource: Default::default(),
23606            image_offset: Default::default(),
23607            image_extent: Default::default(),
23608        }
23609    }
23610}
23611///[`VkImageResolve2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageResolve2.html)
23612/**
23613Provided by **VK_GRAPHICS_VERSION_1_3**.*/
23614#[repr(C)]
23615#[derive(Copy, Clone, Debug)]
23616#[doc(alias = "VkImageResolve2")]
23617pub struct ImageResolve2 {
23618    ///Must be `VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2`.
23619    pub s_type: StructureType,
23620    ///Optional, may be null.
23621    pub p_next: *const core::ffi::c_void,
23622    pub src_subresource: ImageSubresourceLayers,
23623    pub src_offset: Offset3D,
23624    pub dst_subresource: ImageSubresourceLayers,
23625    pub dst_offset: Offset3D,
23626    pub extent: Extent3D,
23627}
23628impl Default for ImageResolve2 {
23629    #[inline]
23630    fn default() -> Self {
23631        Self {
23632            s_type: StructureType::from_raw(1000337010i32),
23633            p_next: core::ptr::null(),
23634            src_subresource: Default::default(),
23635            src_offset: Default::default(),
23636            dst_subresource: Default::default(),
23637            dst_offset: Default::default(),
23638            extent: Default::default(),
23639        }
23640    }
23641}
23642///[`VkCopyBufferInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyBufferInfo2.html)
23643/**
23644Provided by **VK_BASE_VERSION_1_3**.*/
23645#[repr(C)]
23646#[derive(Copy, Clone, Debug)]
23647#[doc(alias = "VkCopyBufferInfo2")]
23648pub struct CopyBufferInfo2 {
23649    ///Must be `VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2`.
23650    pub s_type: StructureType,
23651    ///Optional, may be null.
23652    pub p_next: *const core::ffi::c_void,
23653    pub src_buffer: Buffer,
23654    pub dst_buffer: Buffer,
23655    ///Length of `p_regions`.
23656    pub region_count: u32,
23657    pub p_regions: *const BufferCopy2,
23658}
23659impl Default for CopyBufferInfo2 {
23660    #[inline]
23661    fn default() -> Self {
23662        Self {
23663            s_type: StructureType::from_raw(1000337000i32),
23664            p_next: core::ptr::null(),
23665            src_buffer: Default::default(),
23666            dst_buffer: Default::default(),
23667            region_count: Default::default(),
23668            p_regions: core::ptr::null(),
23669        }
23670    }
23671}
23672///[`VkCopyImageInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyImageInfo2.html)
23673/**
23674Provided by **VK_BASE_VERSION_1_3**.*/
23675#[repr(C)]
23676#[derive(Copy, Clone, Debug)]
23677#[doc(alias = "VkCopyImageInfo2")]
23678pub struct CopyImageInfo2 {
23679    ///Must be `VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2`.
23680    pub s_type: StructureType,
23681    ///Optional, may be null.
23682    pub p_next: *const core::ffi::c_void,
23683    pub src_image: Image,
23684    pub src_image_layout: ImageLayout,
23685    pub dst_image: Image,
23686    pub dst_image_layout: ImageLayout,
23687    ///Length of `p_regions`.
23688    pub region_count: u32,
23689    pub p_regions: *const ImageCopy2,
23690}
23691impl Default for CopyImageInfo2 {
23692    #[inline]
23693    fn default() -> Self {
23694        Self {
23695            s_type: StructureType::from_raw(1000337001i32),
23696            p_next: core::ptr::null(),
23697            src_image: Default::default(),
23698            src_image_layout: Default::default(),
23699            dst_image: Default::default(),
23700            dst_image_layout: Default::default(),
23701            region_count: Default::default(),
23702            p_regions: core::ptr::null(),
23703        }
23704    }
23705}
23706///[`VkBlitImageInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBlitImageInfo2.html)
23707/**
23708Provided by **VK_GRAPHICS_VERSION_1_3**.*/
23709///
23710///# Extended By
23711///- [`BlitImageCubicWeightsInfoQCOM`]
23712#[repr(C)]
23713#[derive(Copy, Clone, Debug)]
23714#[doc(alias = "VkBlitImageInfo2")]
23715pub struct BlitImageInfo2 {
23716    ///Must be `VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2`.
23717    pub s_type: StructureType,
23718    ///Optional, may be null.
23719    pub p_next: *const core::ffi::c_void,
23720    pub src_image: Image,
23721    pub src_image_layout: ImageLayout,
23722    pub dst_image: Image,
23723    pub dst_image_layout: ImageLayout,
23724    ///Length of `p_regions`.
23725    pub region_count: u32,
23726    pub p_regions: *const ImageBlit2,
23727    pub filter: Filter,
23728}
23729impl Default for BlitImageInfo2 {
23730    #[inline]
23731    fn default() -> Self {
23732        Self {
23733            s_type: StructureType::from_raw(1000337004i32),
23734            p_next: core::ptr::null(),
23735            src_image: Default::default(),
23736            src_image_layout: Default::default(),
23737            dst_image: Default::default(),
23738            dst_image_layout: Default::default(),
23739            region_count: Default::default(),
23740            p_regions: core::ptr::null(),
23741            filter: Default::default(),
23742        }
23743    }
23744}
23745///[`VkCopyBufferToImageInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyBufferToImageInfo2.html)
23746/**
23747Provided by **VK_BASE_VERSION_1_3**.*/
23748#[repr(C)]
23749#[derive(Copy, Clone, Debug)]
23750#[doc(alias = "VkCopyBufferToImageInfo2")]
23751pub struct CopyBufferToImageInfo2 {
23752    ///Must be `VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2`.
23753    pub s_type: StructureType,
23754    ///Optional, may be null.
23755    pub p_next: *const core::ffi::c_void,
23756    pub src_buffer: Buffer,
23757    pub dst_image: Image,
23758    pub dst_image_layout: ImageLayout,
23759    ///Length of `p_regions`.
23760    pub region_count: u32,
23761    pub p_regions: *const BufferImageCopy2,
23762}
23763impl Default for CopyBufferToImageInfo2 {
23764    #[inline]
23765    fn default() -> Self {
23766        Self {
23767            s_type: StructureType::from_raw(1000337002i32),
23768            p_next: core::ptr::null(),
23769            src_buffer: Default::default(),
23770            dst_image: Default::default(),
23771            dst_image_layout: Default::default(),
23772            region_count: Default::default(),
23773            p_regions: core::ptr::null(),
23774        }
23775    }
23776}
23777///[`VkCopyImageToBufferInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyImageToBufferInfo2.html)
23778/**
23779Provided by **VK_BASE_VERSION_1_3**.*/
23780#[repr(C)]
23781#[derive(Copy, Clone, Debug)]
23782#[doc(alias = "VkCopyImageToBufferInfo2")]
23783pub struct CopyImageToBufferInfo2 {
23784    ///Must be `VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2`.
23785    pub s_type: StructureType,
23786    ///Optional, may be null.
23787    pub p_next: *const core::ffi::c_void,
23788    pub src_image: Image,
23789    pub src_image_layout: ImageLayout,
23790    pub dst_buffer: Buffer,
23791    ///Length of `p_regions`.
23792    pub region_count: u32,
23793    pub p_regions: *const BufferImageCopy2,
23794}
23795impl Default for CopyImageToBufferInfo2 {
23796    #[inline]
23797    fn default() -> Self {
23798        Self {
23799            s_type: StructureType::from_raw(1000337003i32),
23800            p_next: core::ptr::null(),
23801            src_image: Default::default(),
23802            src_image_layout: Default::default(),
23803            dst_buffer: Default::default(),
23804            region_count: Default::default(),
23805            p_regions: core::ptr::null(),
23806        }
23807    }
23808}
23809///[`VkResolveImageInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkResolveImageInfo2.html)
23810/**
23811Provided by **VK_GRAPHICS_VERSION_1_3**.*/
23812///
23813///# Extended By
23814///- [`ResolveImageModeInfoKHR`]
23815#[repr(C)]
23816#[derive(Copy, Clone, Debug)]
23817#[doc(alias = "VkResolveImageInfo2")]
23818pub struct ResolveImageInfo2 {
23819    ///Must be `VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2`.
23820    pub s_type: StructureType,
23821    ///Optional, may be null.
23822    pub p_next: *const core::ffi::c_void,
23823    pub src_image: Image,
23824    pub src_image_layout: ImageLayout,
23825    pub dst_image: Image,
23826    pub dst_image_layout: ImageLayout,
23827    ///Length of `p_regions`.
23828    pub region_count: u32,
23829    pub p_regions: *const ImageResolve2,
23830}
23831impl Default for ResolveImageInfo2 {
23832    #[inline]
23833    fn default() -> Self {
23834        Self {
23835            s_type: StructureType::from_raw(1000337005i32),
23836            p_next: core::ptr::null(),
23837            src_image: Default::default(),
23838            src_image_layout: Default::default(),
23839            dst_image: Default::default(),
23840            dst_image_layout: Default::default(),
23841            region_count: Default::default(),
23842            p_regions: core::ptr::null(),
23843        }
23844    }
23845}
23846///[`VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.html)
23847/**
23848Provided by **VK_EXT_shader_image_atomic_int64**.*/
23849///
23850///# Extends
23851///- [`PhysicalDeviceFeatures2`]
23852///- [`DeviceCreateInfo`]
23853#[repr(C)]
23854#[derive(Copy, Clone, Debug)]
23855#[doc(alias = "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT")]
23856pub struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
23857    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT`.
23858    pub s_type: StructureType,
23859    ///Optional, may be null.
23860    pub p_next: *mut core::ffi::c_void,
23861    pub shader_image_int64_atomics: u32,
23862    pub sparse_image_int64_atomics: u32,
23863}
23864impl Default for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
23865    #[inline]
23866    fn default() -> Self {
23867        Self {
23868            s_type: StructureType::from_raw(1000234000i32),
23869            p_next: core::ptr::null_mut(),
23870            shader_image_int64_atomics: Default::default(),
23871            sparse_image_int64_atomics: Default::default(),
23872        }
23873    }
23874}
23875///[`VkFragmentShadingRateAttachmentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFragmentShadingRateAttachmentInfoKHR.html)
23876/**
23877Provided by **VK_KHR_fragment_shading_rate**.*/
23878///
23879///# Extends
23880///- [`SubpassDescription2`]
23881#[repr(C)]
23882#[derive(Copy, Clone, Debug)]
23883#[doc(alias = "VkFragmentShadingRateAttachmentInfoKHR")]
23884pub struct FragmentShadingRateAttachmentInfoKHR {
23885    ///Must be `VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR`.
23886    pub s_type: StructureType,
23887    ///Optional, may be null.
23888    pub p_next: *const core::ffi::c_void,
23889    ///Optional, may be null.
23890    pub p_fragment_shading_rate_attachment: *const AttachmentReference2,
23891    pub shading_rate_attachment_texel_size: Extent2D,
23892}
23893impl Default for FragmentShadingRateAttachmentInfoKHR {
23894    #[inline]
23895    fn default() -> Self {
23896        Self {
23897            s_type: StructureType::from_raw(1000226000i32),
23898            p_next: core::ptr::null(),
23899            p_fragment_shading_rate_attachment: core::ptr::null(),
23900            shading_rate_attachment_texel_size: Default::default(),
23901        }
23902    }
23903}
23904///[`VkPipelineFragmentShadingRateStateCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineFragmentShadingRateStateCreateInfoKHR.html)
23905/**
23906Provided by **VK_KHR_fragment_shading_rate**.*/
23907///
23908///# Extends
23909///- [`GraphicsPipelineCreateInfo`]
23910#[repr(C)]
23911#[derive(Copy, Clone, Debug)]
23912#[doc(alias = "VkPipelineFragmentShadingRateStateCreateInfoKHR")]
23913pub struct PipelineFragmentShadingRateStateCreateInfoKHR {
23914    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR`.
23915    pub s_type: StructureType,
23916    ///Optional, may be null.
23917    pub p_next: *const core::ffi::c_void,
23918    pub fragment_size: Extent2D,
23919    pub combiner_ops: [FragmentShadingRateCombinerOpKHR; 2usize],
23920}
23921impl Default for PipelineFragmentShadingRateStateCreateInfoKHR {
23922    #[inline]
23923    fn default() -> Self {
23924        Self {
23925            s_type: StructureType::from_raw(1000226001i32),
23926            p_next: core::ptr::null(),
23927            fragment_size: Default::default(),
23928            combiner_ops: unsafe { core::mem::zeroed() },
23929        }
23930    }
23931}
23932///[`VkPhysicalDeviceFragmentShadingRateFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.html)
23933/**
23934Provided by **VK_KHR_fragment_shading_rate**.*/
23935///
23936///# Extends
23937///- [`PhysicalDeviceFeatures2`]
23938///- [`DeviceCreateInfo`]
23939#[repr(C)]
23940#[derive(Copy, Clone, Debug)]
23941#[doc(alias = "VkPhysicalDeviceFragmentShadingRateFeaturesKHR")]
23942pub struct PhysicalDeviceFragmentShadingRateFeaturesKHR {
23943    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR`.
23944    pub s_type: StructureType,
23945    ///Optional, may be null.
23946    pub p_next: *mut core::ffi::c_void,
23947    pub pipeline_fragment_shading_rate: u32,
23948    pub primitive_fragment_shading_rate: u32,
23949    pub attachment_fragment_shading_rate: u32,
23950}
23951impl Default for PhysicalDeviceFragmentShadingRateFeaturesKHR {
23952    #[inline]
23953    fn default() -> Self {
23954        Self {
23955            s_type: StructureType::from_raw(1000226003i32),
23956            p_next: core::ptr::null_mut(),
23957            pipeline_fragment_shading_rate: Default::default(),
23958            primitive_fragment_shading_rate: Default::default(),
23959            attachment_fragment_shading_rate: Default::default(),
23960        }
23961    }
23962}
23963///[`VkPhysicalDeviceFragmentShadingRatePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRatePropertiesKHR.html)
23964/**
23965Provided by **VK_KHR_fragment_shading_rate**.*/
23966/**
23967**Returned only**, filled by Vulkan, not constructed by the application.*/
23968///
23969///# Extends
23970///- [`PhysicalDeviceProperties2`]
23971#[repr(C)]
23972#[derive(Copy, Clone, Debug)]
23973#[doc(alias = "VkPhysicalDeviceFragmentShadingRatePropertiesKHR")]
23974pub struct PhysicalDeviceFragmentShadingRatePropertiesKHR {
23975    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR`.
23976    pub s_type: StructureType,
23977    ///Optional, may be null.
23978    pub p_next: *mut core::ffi::c_void,
23979    pub min_fragment_shading_rate_attachment_texel_size: Extent2D,
23980    pub max_fragment_shading_rate_attachment_texel_size: Extent2D,
23981    pub max_fragment_shading_rate_attachment_texel_size_aspect_ratio: u32,
23982    pub primitive_fragment_shading_rate_with_multiple_viewports: u32,
23983    pub layered_shading_rate_attachments: u32,
23984    pub fragment_shading_rate_non_trivial_combiner_ops: u32,
23985    pub max_fragment_size: Extent2D,
23986    pub max_fragment_size_aspect_ratio: u32,
23987    pub max_fragment_shading_rate_coverage_samples: u32,
23988    pub max_fragment_shading_rate_rasterization_samples: SampleCountFlagBits,
23989    pub fragment_shading_rate_with_shader_depth_stencil_writes: u32,
23990    pub fragment_shading_rate_with_sample_mask: u32,
23991    pub fragment_shading_rate_with_shader_sample_mask: u32,
23992    pub fragment_shading_rate_with_conservative_rasterization: u32,
23993    pub fragment_shading_rate_with_fragment_shader_interlock: u32,
23994    pub fragment_shading_rate_with_custom_sample_locations: u32,
23995    pub fragment_shading_rate_strict_multiply_combiner: u32,
23996}
23997impl Default for PhysicalDeviceFragmentShadingRatePropertiesKHR {
23998    #[inline]
23999    fn default() -> Self {
24000        Self {
24001            s_type: StructureType::from_raw(1000226002i32),
24002            p_next: core::ptr::null_mut(),
24003            min_fragment_shading_rate_attachment_texel_size: Default::default(),
24004            max_fragment_shading_rate_attachment_texel_size: Default::default(),
24005            max_fragment_shading_rate_attachment_texel_size_aspect_ratio: Default::default(),
24006            primitive_fragment_shading_rate_with_multiple_viewports: Default::default(),
24007            layered_shading_rate_attachments: Default::default(),
24008            fragment_shading_rate_non_trivial_combiner_ops: Default::default(),
24009            max_fragment_size: Default::default(),
24010            max_fragment_size_aspect_ratio: Default::default(),
24011            max_fragment_shading_rate_coverage_samples: Default::default(),
24012            max_fragment_shading_rate_rasterization_samples: Default::default(),
24013            fragment_shading_rate_with_shader_depth_stencil_writes: Default::default(),
24014            fragment_shading_rate_with_sample_mask: Default::default(),
24015            fragment_shading_rate_with_shader_sample_mask: Default::default(),
24016            fragment_shading_rate_with_conservative_rasterization: Default::default(),
24017            fragment_shading_rate_with_fragment_shader_interlock: Default::default(),
24018            fragment_shading_rate_with_custom_sample_locations: Default::default(),
24019            fragment_shading_rate_strict_multiply_combiner: Default::default(),
24020        }
24021    }
24022}
24023///[`VkPhysicalDeviceFragmentShadingRateKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRateKHR.html)
24024/**
24025Provided by **VK_KHR_fragment_shading_rate**.*/
24026/**
24027**Returned only**, filled by Vulkan, not constructed by the application.*/
24028#[repr(C)]
24029#[derive(Copy, Clone, Debug)]
24030#[doc(alias = "VkPhysicalDeviceFragmentShadingRateKHR")]
24031pub struct PhysicalDeviceFragmentShadingRateKHR {
24032    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR`.
24033    pub s_type: StructureType,
24034    ///Optional, may be null.
24035    pub p_next: *mut core::ffi::c_void,
24036    pub sample_counts: SampleCountFlags,
24037    pub fragment_size: Extent2D,
24038}
24039impl Default for PhysicalDeviceFragmentShadingRateKHR {
24040    #[inline]
24041    fn default() -> Self {
24042        Self {
24043            s_type: StructureType::from_raw(1000226004i32),
24044            p_next: core::ptr::null_mut(),
24045            sample_counts: Default::default(),
24046            fragment_size: Default::default(),
24047        }
24048    }
24049}
24050///[`VkPhysicalDeviceShaderTerminateInvocationFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderTerminateInvocationFeatures.html)
24051/**
24052Provided by **VK_COMPUTE_VERSION_1_3**.*/
24053///
24054///# Extends
24055///- [`PhysicalDeviceFeatures2`]
24056///- [`DeviceCreateInfo`]
24057#[repr(C)]
24058#[derive(Copy, Clone, Debug)]
24059#[doc(alias = "VkPhysicalDeviceShaderTerminateInvocationFeatures")]
24060pub struct PhysicalDeviceShaderTerminateInvocationFeatures {
24061    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES`.
24062    pub s_type: StructureType,
24063    ///Optional, may be null.
24064    pub p_next: *mut core::ffi::c_void,
24065    pub shader_terminate_invocation: u32,
24066}
24067impl Default for PhysicalDeviceShaderTerminateInvocationFeatures {
24068    #[inline]
24069    fn default() -> Self {
24070        Self {
24071            s_type: StructureType::from_raw(1000215000i32),
24072            p_next: core::ptr::null_mut(),
24073            shader_terminate_invocation: Default::default(),
24074        }
24075    }
24076}
24077///[`VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.html)
24078/**
24079Provided by **VK_NV_fragment_shading_rate_enums**.*/
24080///
24081///# Extends
24082///- [`PhysicalDeviceFeatures2`]
24083///- [`DeviceCreateInfo`]
24084#[repr(C)]
24085#[derive(Copy, Clone, Debug)]
24086#[doc(alias = "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV")]
24087pub struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
24088    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV`.
24089    pub s_type: StructureType,
24090    ///Optional, may be null.
24091    pub p_next: *mut core::ffi::c_void,
24092    pub fragment_shading_rate_enums: u32,
24093    pub supersample_fragment_shading_rates: u32,
24094    pub no_invocation_fragment_shading_rates: u32,
24095}
24096impl Default for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
24097    #[inline]
24098    fn default() -> Self {
24099        Self {
24100            s_type: StructureType::from_raw(1000326001i32),
24101            p_next: core::ptr::null_mut(),
24102            fragment_shading_rate_enums: Default::default(),
24103            supersample_fragment_shading_rates: Default::default(),
24104            no_invocation_fragment_shading_rates: Default::default(),
24105        }
24106    }
24107}
24108///[`VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV.html)
24109/**
24110Provided by **VK_NV_fragment_shading_rate_enums**.*/
24111/**
24112**Returned only**, filled by Vulkan, not constructed by the application.*/
24113///
24114///# Extends
24115///- [`PhysicalDeviceProperties2`]
24116#[repr(C)]
24117#[derive(Copy, Clone, Debug)]
24118#[doc(alias = "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV")]
24119pub struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
24120    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV`.
24121    pub s_type: StructureType,
24122    ///Optional, may be null.
24123    pub p_next: *mut core::ffi::c_void,
24124    pub max_fragment_shading_rate_invocation_count: SampleCountFlagBits,
24125}
24126impl Default for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
24127    #[inline]
24128    fn default() -> Self {
24129        Self {
24130            s_type: StructureType::from_raw(1000326000i32),
24131            p_next: core::ptr::null_mut(),
24132            max_fragment_shading_rate_invocation_count: Default::default(),
24133        }
24134    }
24135}
24136///[`VkPipelineFragmentShadingRateEnumStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineFragmentShadingRateEnumStateCreateInfoNV.html)
24137/**
24138Provided by **VK_NV_fragment_shading_rate_enums**.*/
24139///
24140///# Extends
24141///- [`GraphicsPipelineCreateInfo`]
24142#[repr(C)]
24143#[derive(Copy, Clone, Debug)]
24144#[doc(alias = "VkPipelineFragmentShadingRateEnumStateCreateInfoNV")]
24145pub struct PipelineFragmentShadingRateEnumStateCreateInfoNV {
24146    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV`.
24147    pub s_type: StructureType,
24148    ///Optional, may be null.
24149    pub p_next: *const core::ffi::c_void,
24150    pub shading_rate_type: FragmentShadingRateTypeNV,
24151    pub shading_rate: FragmentShadingRateNV,
24152    pub combiner_ops: [FragmentShadingRateCombinerOpKHR; 2usize],
24153}
24154impl Default for PipelineFragmentShadingRateEnumStateCreateInfoNV {
24155    #[inline]
24156    fn default() -> Self {
24157        Self {
24158            s_type: StructureType::from_raw(1000326002i32),
24159            p_next: core::ptr::null(),
24160            shading_rate_type: Default::default(),
24161            shading_rate: Default::default(),
24162            combiner_ops: unsafe { core::mem::zeroed() },
24163        }
24164    }
24165}
24166///[`VkAccelerationStructureBuildSizesInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureBuildSizesInfoKHR.html)
24167/**
24168Provided by **VK_KHR_acceleration_structure**.*/
24169/**
24170**Returned only**, filled by Vulkan, not constructed by the application.*/
24171#[repr(C)]
24172#[derive(Copy, Clone, Debug)]
24173#[doc(alias = "VkAccelerationStructureBuildSizesInfoKHR")]
24174pub struct AccelerationStructureBuildSizesInfoKHR {
24175    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR`.
24176    pub s_type: StructureType,
24177    ///Optional, may be null.
24178    pub p_next: *mut core::ffi::c_void,
24179    pub acceleration_structure_size: u64,
24180    pub update_scratch_size: u64,
24181    pub build_scratch_size: u64,
24182}
24183impl Default for AccelerationStructureBuildSizesInfoKHR {
24184    #[inline]
24185    fn default() -> Self {
24186        Self {
24187            s_type: StructureType::from_raw(1000150020i32),
24188            p_next: core::ptr::null_mut(),
24189            acceleration_structure_size: Default::default(),
24190            update_scratch_size: Default::default(),
24191            build_scratch_size: Default::default(),
24192        }
24193    }
24194}
24195///[`VkPhysicalDeviceImage2DViewOf3DFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.html)
24196/**
24197Provided by **VK_EXT_image_2d_view_of_3d**.*/
24198///
24199///# Extends
24200///- [`PhysicalDeviceFeatures2`]
24201///- [`DeviceCreateInfo`]
24202#[repr(C)]
24203#[derive(Copy, Clone, Debug)]
24204#[doc(alias = "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT")]
24205pub struct PhysicalDeviceImage2DViewOf3DFeaturesEXT {
24206    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT`.
24207    pub s_type: StructureType,
24208    ///Optional, may be null.
24209    pub p_next: *mut core::ffi::c_void,
24210    pub image2_d_view_of3_d: u32,
24211    pub sampler2_d_view_of3_d: u32,
24212}
24213impl Default for PhysicalDeviceImage2DViewOf3DFeaturesEXT {
24214    #[inline]
24215    fn default() -> Self {
24216        Self {
24217            s_type: StructureType::from_raw(1000393000i32),
24218            p_next: core::ptr::null_mut(),
24219            image2_d_view_of3_d: Default::default(),
24220            sampler2_d_view_of3_d: Default::default(),
24221        }
24222    }
24223}
24224///[`VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT.html)
24225/**
24226Provided by **VK_EXT_image_sliced_view_of_3d**.*/
24227///
24228///# Extends
24229///- [`PhysicalDeviceFeatures2`]
24230///- [`DeviceCreateInfo`]
24231#[repr(C)]
24232#[derive(Copy, Clone, Debug)]
24233#[doc(alias = "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT")]
24234pub struct PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
24235    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT`.
24236    pub s_type: StructureType,
24237    ///Optional, may be null.
24238    pub p_next: *mut core::ffi::c_void,
24239    pub image_sliced_view_of3_d: u32,
24240}
24241impl Default for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
24242    #[inline]
24243    fn default() -> Self {
24244        Self {
24245            s_type: StructureType::from_raw(1000418000i32),
24246            p_next: core::ptr::null_mut(),
24247            image_sliced_view_of3_d: Default::default(),
24248        }
24249    }
24250}
24251///[`VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.html)
24252/**
24253Provided by **VK_EXT_attachment_feedback_loop_dynamic_state**.*/
24254///
24255///# Extends
24256///- [`PhysicalDeviceFeatures2`]
24257///- [`DeviceCreateInfo`]
24258#[repr(C)]
24259#[derive(Copy, Clone, Debug)]
24260#[doc(alias = "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT")]
24261pub struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
24262    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT`.
24263    pub s_type: StructureType,
24264    ///Optional, may be null.
24265    pub p_next: *mut core::ffi::c_void,
24266    pub attachment_feedback_loop_dynamic_state: u32,
24267}
24268impl Default for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
24269    #[inline]
24270    fn default() -> Self {
24271        Self {
24272            s_type: StructureType::from_raw(1000524000i32),
24273            p_next: core::ptr::null_mut(),
24274            attachment_feedback_loop_dynamic_state: Default::default(),
24275        }
24276    }
24277}
24278///[`VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT.html)
24279/**
24280Provided by **VK_EXT_legacy_vertex_attributes**.*/
24281///
24282///# Extends
24283///- [`PhysicalDeviceFeatures2`]
24284///- [`DeviceCreateInfo`]
24285#[repr(C)]
24286#[derive(Copy, Clone, Debug)]
24287#[doc(alias = "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT")]
24288pub struct PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
24289    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT`.
24290    pub s_type: StructureType,
24291    ///Optional, may be null.
24292    pub p_next: *mut core::ffi::c_void,
24293    pub legacy_vertex_attributes: u32,
24294}
24295impl Default for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
24296    #[inline]
24297    fn default() -> Self {
24298        Self {
24299            s_type: StructureType::from_raw(1000495000i32),
24300            p_next: core::ptr::null_mut(),
24301            legacy_vertex_attributes: Default::default(),
24302        }
24303    }
24304}
24305///[`VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT.html)
24306/**
24307Provided by **VK_EXT_legacy_vertex_attributes**.*/
24308/**
24309**Returned only**, filled by Vulkan, not constructed by the application.*/
24310///
24311///# Extends
24312///- [`PhysicalDeviceProperties2`]
24313#[repr(C)]
24314#[derive(Copy, Clone, Debug)]
24315#[doc(alias = "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT")]
24316pub struct PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
24317    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT`.
24318    pub s_type: StructureType,
24319    ///Optional, may be null.
24320    pub p_next: *mut core::ffi::c_void,
24321    pub native_unaligned_performance: u32,
24322}
24323impl Default for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
24324    #[inline]
24325    fn default() -> Self {
24326        Self {
24327            s_type: StructureType::from_raw(1000495001i32),
24328            p_next: core::ptr::null_mut(),
24329            native_unaligned_performance: Default::default(),
24330        }
24331    }
24332}
24333///[`VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT.html)
24334/**
24335Provided by **VK_EXT_mutable_descriptor_type**.*/
24336///
24337///# Extends
24338///- [`PhysicalDeviceFeatures2`]
24339///- [`DeviceCreateInfo`]
24340#[repr(C)]
24341#[derive(Copy, Clone, Debug)]
24342#[doc(alias = "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT")]
24343pub struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
24344    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT`.
24345    pub s_type: StructureType,
24346    ///Optional, may be null.
24347    pub p_next: *mut core::ffi::c_void,
24348    pub mutable_descriptor_type: u32,
24349}
24350impl Default for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
24351    #[inline]
24352    fn default() -> Self {
24353        Self {
24354            s_type: StructureType::from_raw(1000351000i32),
24355            p_next: core::ptr::null_mut(),
24356            mutable_descriptor_type: Default::default(),
24357        }
24358    }
24359}
24360///[`VkMutableDescriptorTypeListEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMutableDescriptorTypeListEXT.html)
24361/**
24362Provided by **VK_EXT_mutable_descriptor_type**.*/
24363#[repr(C)]
24364#[derive(Copy, Clone, Debug)]
24365#[doc(alias = "VkMutableDescriptorTypeListEXT")]
24366pub struct MutableDescriptorTypeListEXT {
24367    ///Length of `p_descriptor_types`.
24368    pub descriptor_type_count: u32,
24369    pub p_descriptor_types: *const DescriptorType,
24370}
24371impl Default for MutableDescriptorTypeListEXT {
24372    #[inline]
24373    fn default() -> Self {
24374        unsafe { core::mem::zeroed() }
24375    }
24376}
24377///[`VkMutableDescriptorTypeCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMutableDescriptorTypeCreateInfoEXT.html)
24378/**
24379Provided by **VK_EXT_mutable_descriptor_type**.*/
24380///
24381///# Extends
24382///- [`DescriptorSetLayoutCreateInfo`]
24383///- [`DescriptorPoolCreateInfo`]
24384#[repr(C)]
24385#[derive(Copy, Clone, Debug)]
24386#[doc(alias = "VkMutableDescriptorTypeCreateInfoEXT")]
24387pub struct MutableDescriptorTypeCreateInfoEXT {
24388    ///Must be `VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT`.
24389    pub s_type: StructureType,
24390    ///Optional, may be null.
24391    pub p_next: *const core::ffi::c_void,
24392    ///Length of `p_mutable_descriptor_type_lists`.
24393    pub mutable_descriptor_type_list_count: u32,
24394    pub p_mutable_descriptor_type_lists: *const MutableDescriptorTypeListEXT,
24395}
24396impl Default for MutableDescriptorTypeCreateInfoEXT {
24397    #[inline]
24398    fn default() -> Self {
24399        Self {
24400            s_type: StructureType::from_raw(1000351002i32),
24401            p_next: core::ptr::null(),
24402            mutable_descriptor_type_list_count: Default::default(),
24403            p_mutable_descriptor_type_lists: core::ptr::null(),
24404        }
24405    }
24406}
24407///[`VkPhysicalDeviceDepthClipControlFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthClipControlFeaturesEXT.html)
24408/**
24409Provided by **VK_EXT_depth_clip_control**.*/
24410///
24411///# Extends
24412///- [`PhysicalDeviceFeatures2`]
24413///- [`DeviceCreateInfo`]
24414#[repr(C)]
24415#[derive(Copy, Clone, Debug)]
24416#[doc(alias = "VkPhysicalDeviceDepthClipControlFeaturesEXT")]
24417pub struct PhysicalDeviceDepthClipControlFeaturesEXT {
24418    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT`.
24419    pub s_type: StructureType,
24420    ///Optional, may be null.
24421    pub p_next: *mut core::ffi::c_void,
24422    pub depth_clip_control: u32,
24423}
24424impl Default for PhysicalDeviceDepthClipControlFeaturesEXT {
24425    #[inline]
24426    fn default() -> Self {
24427        Self {
24428            s_type: StructureType::from_raw(1000355000i32),
24429            p_next: core::ptr::null_mut(),
24430            depth_clip_control: Default::default(),
24431        }
24432    }
24433}
24434///[`VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT.html)
24435/**
24436Provided by **VK_EXT_zero_initialize_device_memory**.*/
24437///
24438///# Extends
24439///- [`PhysicalDeviceFeatures2`]
24440///- [`DeviceCreateInfo`]
24441#[repr(C)]
24442#[derive(Copy, Clone, Debug)]
24443#[doc(alias = "VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT")]
24444pub struct PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
24445    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT`.
24446    pub s_type: StructureType,
24447    ///Optional, may be null.
24448    pub p_next: *mut core::ffi::c_void,
24449    pub zero_initialize_device_memory: u32,
24450}
24451impl Default for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
24452    #[inline]
24453    fn default() -> Self {
24454        Self {
24455            s_type: StructureType::from_raw(1000620000i32),
24456            p_next: core::ptr::null_mut(),
24457            zero_initialize_device_memory: Default::default(),
24458        }
24459    }
24460}
24461///[`VkBeginCustomResolveInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBeginCustomResolveInfoEXT.html)
24462/**
24463Provided by **VK_EXT_custom_resolve**.*/
24464#[repr(C)]
24465#[derive(Copy, Clone, Debug)]
24466#[doc(alias = "VkBeginCustomResolveInfoEXT")]
24467pub struct BeginCustomResolveInfoEXT {
24468    ///Must be `VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT`.
24469    pub s_type: StructureType,
24470    ///Optional, may be null.
24471    pub p_next: *mut core::ffi::c_void,
24472}
24473impl Default for BeginCustomResolveInfoEXT {
24474    #[inline]
24475    fn default() -> Self {
24476        Self {
24477            s_type: StructureType::from_raw(1000628001i32),
24478            p_next: core::ptr::null_mut(),
24479        }
24480    }
24481}
24482///[`VkPhysicalDeviceCustomResolveFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCustomResolveFeaturesEXT.html)
24483/**
24484Provided by **VK_EXT_custom_resolve**.*/
24485///
24486///# Extends
24487///- [`PhysicalDeviceFeatures2`]
24488///- [`DeviceCreateInfo`]
24489#[repr(C)]
24490#[derive(Copy, Clone, Debug)]
24491#[doc(alias = "VkPhysicalDeviceCustomResolveFeaturesEXT")]
24492pub struct PhysicalDeviceCustomResolveFeaturesEXT {
24493    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT`.
24494    pub s_type: StructureType,
24495    ///Optional, may be null.
24496    pub p_next: *mut core::ffi::c_void,
24497    pub custom_resolve: u32,
24498}
24499impl Default for PhysicalDeviceCustomResolveFeaturesEXT {
24500    #[inline]
24501    fn default() -> Self {
24502        Self {
24503            s_type: StructureType::from_raw(1000628000i32),
24504            p_next: core::ptr::null_mut(),
24505            custom_resolve: Default::default(),
24506        }
24507    }
24508}
24509///[`VkCustomResolveCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCustomResolveCreateInfoEXT.html)
24510/**
24511Provided by **VK_EXT_custom_resolve**.*/
24512///
24513///# Extends
24514///- [`GraphicsPipelineCreateInfo`]
24515///- [`CommandBufferInheritanceInfo`]
24516///- [`ShaderCreateInfoEXT`]
24517#[repr(C)]
24518#[derive(Copy, Clone, Debug)]
24519#[doc(alias = "VkCustomResolveCreateInfoEXT")]
24520pub struct CustomResolveCreateInfoEXT {
24521    ///Must be `VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT`.
24522    pub s_type: StructureType,
24523    ///Optional, may be null.
24524    pub p_next: *const core::ffi::c_void,
24525    pub custom_resolve: u32,
24526    ///Length of `p_color_attachment_formats`.
24527    pub color_attachment_count: u32,
24528    pub p_color_attachment_formats: *const Format,
24529    pub depth_attachment_format: Format,
24530    pub stencil_attachment_format: Format,
24531}
24532impl Default for CustomResolveCreateInfoEXT {
24533    #[inline]
24534    fn default() -> Self {
24535        Self {
24536            s_type: StructureType::from_raw(1000628002i32),
24537            p_next: core::ptr::null(),
24538            custom_resolve: Default::default(),
24539            color_attachment_count: Default::default(),
24540            p_color_attachment_formats: core::ptr::null(),
24541            depth_attachment_format: Default::default(),
24542            stencil_attachment_format: Default::default(),
24543        }
24544    }
24545}
24546///[`VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT.html)
24547/**
24548Provided by **VK_EXT_device_generated_commands**.*/
24549///
24550///# Extends
24551///- [`PhysicalDeviceFeatures2`]
24552///- [`DeviceCreateInfo`]
24553#[repr(C)]
24554#[derive(Copy, Clone, Debug)]
24555#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT")]
24556pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
24557    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT`.
24558    pub s_type: StructureType,
24559    ///Optional, may be null.
24560    pub p_next: *mut core::ffi::c_void,
24561    pub device_generated_commands: u32,
24562    pub dynamic_generated_pipeline_layout: u32,
24563}
24564impl Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
24565    #[inline]
24566    fn default() -> Self {
24567        Self {
24568            s_type: StructureType::from_raw(1000572000i32),
24569            p_next: core::ptr::null_mut(),
24570            device_generated_commands: Default::default(),
24571            dynamic_generated_pipeline_layout: Default::default(),
24572        }
24573    }
24574}
24575///[`VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT.html)
24576/**
24577Provided by **VK_EXT_device_generated_commands**.*/
24578/**
24579**Returned only**, filled by Vulkan, not constructed by the application.*/
24580///
24581///# Extends
24582///- [`PhysicalDeviceProperties2`]
24583#[repr(C)]
24584#[derive(Copy, Clone, Debug)]
24585#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT")]
24586pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
24587    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT`.
24588    pub s_type: StructureType,
24589    ///Optional, may be null.
24590    pub p_next: *mut core::ffi::c_void,
24591    pub max_indirect_pipeline_count: u32,
24592    pub max_indirect_shader_object_count: u32,
24593    pub max_indirect_sequence_count: u32,
24594    pub max_indirect_commands_token_count: u32,
24595    pub max_indirect_commands_token_offset: u32,
24596    pub max_indirect_commands_indirect_stride: u32,
24597    pub supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT,
24598    pub supported_indirect_commands_shader_stages: ShaderStageFlags,
24599    pub supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags,
24600    pub supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags,
24601    pub device_generated_commands_transform_feedback: u32,
24602    pub device_generated_commands_multi_draw_indirect_count: u32,
24603}
24604impl Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
24605    #[inline]
24606    fn default() -> Self {
24607        Self {
24608            s_type: StructureType::from_raw(1000572001i32),
24609            p_next: core::ptr::null_mut(),
24610            max_indirect_pipeline_count: Default::default(),
24611            max_indirect_shader_object_count: Default::default(),
24612            max_indirect_sequence_count: Default::default(),
24613            max_indirect_commands_token_count: Default::default(),
24614            max_indirect_commands_token_offset: Default::default(),
24615            max_indirect_commands_indirect_stride: Default::default(),
24616            supported_indirect_commands_input_modes: Default::default(),
24617            supported_indirect_commands_shader_stages: Default::default(),
24618            supported_indirect_commands_shader_stages_pipeline_binding: Default::default(),
24619            supported_indirect_commands_shader_stages_shader_binding: Default::default(),
24620            device_generated_commands_transform_feedback: Default::default(),
24621            device_generated_commands_multi_draw_indirect_count: Default::default(),
24622        }
24623    }
24624}
24625///[`VkGeneratedCommandsPipelineInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsPipelineInfoEXT.html)
24626/**
24627Provided by **VK_EXT_device_generated_commands**.*/
24628///
24629///# Extends
24630///- [`GeneratedCommandsInfoEXT`]
24631///- [`GeneratedCommandsMemoryRequirementsInfoEXT`]
24632#[repr(C)]
24633#[derive(Copy, Clone, Debug)]
24634#[doc(alias = "VkGeneratedCommandsPipelineInfoEXT")]
24635pub struct GeneratedCommandsPipelineInfoEXT {
24636    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT`.
24637    pub s_type: StructureType,
24638    ///Optional, may be null.
24639    pub p_next: *mut core::ffi::c_void,
24640    pub pipeline: Pipeline,
24641}
24642impl Default for GeneratedCommandsPipelineInfoEXT {
24643    #[inline]
24644    fn default() -> Self {
24645        Self {
24646            s_type: StructureType::from_raw(1000572013i32),
24647            p_next: core::ptr::null_mut(),
24648            pipeline: Default::default(),
24649        }
24650    }
24651}
24652///[`VkGeneratedCommandsShaderInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsShaderInfoEXT.html)
24653/**
24654Provided by **VK_EXT_device_generated_commands**.*/
24655///
24656///# Extends
24657///- [`GeneratedCommandsInfoEXT`]
24658///- [`GeneratedCommandsMemoryRequirementsInfoEXT`]
24659#[repr(C)]
24660#[derive(Copy, Clone, Debug)]
24661#[doc(alias = "VkGeneratedCommandsShaderInfoEXT")]
24662pub struct GeneratedCommandsShaderInfoEXT {
24663    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT`.
24664    pub s_type: StructureType,
24665    ///Optional, may be null.
24666    pub p_next: *mut core::ffi::c_void,
24667    ///Length of `p_shaders`.
24668    pub shader_count: u32,
24669    pub p_shaders: *const ShaderEXT,
24670}
24671impl Default for GeneratedCommandsShaderInfoEXT {
24672    #[inline]
24673    fn default() -> Self {
24674        Self {
24675            s_type: StructureType::from_raw(1000572014i32),
24676            p_next: core::ptr::null_mut(),
24677            shader_count: Default::default(),
24678            p_shaders: core::ptr::null(),
24679        }
24680    }
24681}
24682///[`VkGeneratedCommandsMemoryRequirementsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsMemoryRequirementsInfoEXT.html)
24683/**
24684Provided by **VK_EXT_device_generated_commands**.*/
24685///
24686///# Extended By
24687///- [`GeneratedCommandsPipelineInfoEXT`]
24688///- [`GeneratedCommandsShaderInfoEXT`]
24689#[repr(C)]
24690#[derive(Copy, Clone, Debug)]
24691#[doc(alias = "VkGeneratedCommandsMemoryRequirementsInfoEXT")]
24692pub struct GeneratedCommandsMemoryRequirementsInfoEXT {
24693    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT`.
24694    pub s_type: StructureType,
24695    ///Optional, may be null.
24696    pub p_next: *const core::ffi::c_void,
24697    pub indirect_execution_set: IndirectExecutionSetEXT,
24698    pub indirect_commands_layout: IndirectCommandsLayoutEXT,
24699    pub max_sequence_count: u32,
24700    pub max_draw_count: u32,
24701}
24702impl Default for GeneratedCommandsMemoryRequirementsInfoEXT {
24703    #[inline]
24704    fn default() -> Self {
24705        Self {
24706            s_type: StructureType::from_raw(1000572002i32),
24707            p_next: core::ptr::null(),
24708            indirect_execution_set: Default::default(),
24709            indirect_commands_layout: Default::default(),
24710            max_sequence_count: Default::default(),
24711            max_draw_count: Default::default(),
24712        }
24713    }
24714}
24715///[`VkIndirectExecutionSetPipelineInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetPipelineInfoEXT.html)
24716/**
24717Provided by **VK_EXT_device_generated_commands**.*/
24718#[repr(C)]
24719#[derive(Copy, Clone, Debug)]
24720#[doc(alias = "VkIndirectExecutionSetPipelineInfoEXT")]
24721pub struct IndirectExecutionSetPipelineInfoEXT {
24722    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT`.
24723    pub s_type: StructureType,
24724    ///Optional, may be null.
24725    pub p_next: *const core::ffi::c_void,
24726    pub initial_pipeline: Pipeline,
24727    pub max_pipeline_count: u32,
24728}
24729impl Default for IndirectExecutionSetPipelineInfoEXT {
24730    #[inline]
24731    fn default() -> Self {
24732        Self {
24733            s_type: StructureType::from_raw(1000572010i32),
24734            p_next: core::ptr::null(),
24735            initial_pipeline: Default::default(),
24736            max_pipeline_count: Default::default(),
24737        }
24738    }
24739}
24740///[`VkIndirectExecutionSetShaderLayoutInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetShaderLayoutInfoEXT.html)
24741/**
24742Provided by **VK_EXT_device_generated_commands**.*/
24743#[repr(C)]
24744#[derive(Copy, Clone, Debug)]
24745#[doc(alias = "VkIndirectExecutionSetShaderLayoutInfoEXT")]
24746pub struct IndirectExecutionSetShaderLayoutInfoEXT {
24747    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT`.
24748    pub s_type: StructureType,
24749    ///Optional, may be null.
24750    pub p_next: *const core::ffi::c_void,
24751    ///Length of `p_set_layouts`.
24752    pub set_layout_count: u32,
24753    ///Optional, may be null.
24754    pub p_set_layouts: *const DescriptorSetLayout,
24755}
24756impl Default for IndirectExecutionSetShaderLayoutInfoEXT {
24757    #[inline]
24758    fn default() -> Self {
24759        Self {
24760            s_type: StructureType::from_raw(1000572012i32),
24761            p_next: core::ptr::null(),
24762            set_layout_count: Default::default(),
24763            p_set_layouts: core::ptr::null(),
24764        }
24765    }
24766}
24767///[`VkIndirectExecutionSetShaderInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetShaderInfoEXT.html)
24768/**
24769Provided by **VK_EXT_device_generated_commands**.*/
24770#[repr(C)]
24771#[derive(Copy, Clone, Debug)]
24772#[doc(alias = "VkIndirectExecutionSetShaderInfoEXT")]
24773pub struct IndirectExecutionSetShaderInfoEXT {
24774    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT`.
24775    pub s_type: StructureType,
24776    ///Optional, may be null.
24777    pub p_next: *const core::ffi::c_void,
24778    ///Length of `p_set_layout_infos`.
24779    pub shader_count: u32,
24780    pub p_initial_shaders: *const ShaderEXT,
24781    ///Optional, may be null.
24782    pub p_set_layout_infos: *const IndirectExecutionSetShaderLayoutInfoEXT,
24783    pub max_shader_count: u32,
24784    ///Length of `p_push_constant_ranges`.
24785    pub push_constant_range_count: u32,
24786    pub p_push_constant_ranges: *const PushConstantRange,
24787}
24788impl Default for IndirectExecutionSetShaderInfoEXT {
24789    #[inline]
24790    fn default() -> Self {
24791        Self {
24792            s_type: StructureType::from_raw(1000572011i32),
24793            p_next: core::ptr::null(),
24794            shader_count: Default::default(),
24795            p_initial_shaders: core::ptr::null(),
24796            p_set_layout_infos: core::ptr::null(),
24797            max_shader_count: Default::default(),
24798            push_constant_range_count: Default::default(),
24799            p_push_constant_ranges: core::ptr::null(),
24800        }
24801    }
24802}
24803///[`VkIndirectExecutionSetInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetInfoEXT.html)
24804/**
24805Provided by **VK_EXT_device_generated_commands**.*/
24806#[repr(C)]
24807#[derive(Copy, Clone)]
24808#[doc(alias = "VkIndirectExecutionSetInfoEXT")]
24809pub union IndirectExecutionSetInfoEXT {
24810    pub p_pipeline_info: *const IndirectExecutionSetPipelineInfoEXT,
24811    pub p_shader_info: *const IndirectExecutionSetShaderInfoEXT,
24812}
24813impl Default for IndirectExecutionSetInfoEXT {
24814    #[inline]
24815    fn default() -> Self {
24816        unsafe { core::mem::zeroed() }
24817    }
24818}
24819impl core::fmt::Debug for IndirectExecutionSetInfoEXT {
24820    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
24821        f.write_str(stringify!(IndirectExecutionSetInfoEXT))
24822    }
24823}
24824///[`VkIndirectExecutionSetCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetCreateInfoEXT.html)
24825/**
24826Provided by **VK_EXT_device_generated_commands**.*/
24827#[repr(C)]
24828#[derive(Copy, Clone, Debug)]
24829#[doc(alias = "VkIndirectExecutionSetCreateInfoEXT")]
24830pub struct IndirectExecutionSetCreateInfoEXT {
24831    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT`.
24832    pub s_type: StructureType,
24833    ///Optional, may be null.
24834    pub p_next: *const core::ffi::c_void,
24835    pub r#type: IndirectExecutionSetInfoTypeEXT,
24836    pub info: IndirectExecutionSetInfoEXT,
24837}
24838impl Default for IndirectExecutionSetCreateInfoEXT {
24839    #[inline]
24840    fn default() -> Self {
24841        Self {
24842            s_type: StructureType::from_raw(1000572003i32),
24843            p_next: core::ptr::null(),
24844            r#type: Default::default(),
24845            info: Default::default(),
24846        }
24847    }
24848}
24849///[`VkGeneratedCommandsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsInfoEXT.html)
24850/**
24851Provided by **VK_EXT_device_generated_commands**.*/
24852///
24853///# Extended By
24854///- [`GeneratedCommandsPipelineInfoEXT`]
24855///- [`GeneratedCommandsShaderInfoEXT`]
24856#[repr(C)]
24857#[derive(Copy, Clone, Debug)]
24858#[doc(alias = "VkGeneratedCommandsInfoEXT")]
24859pub struct GeneratedCommandsInfoEXT {
24860    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT`.
24861    pub s_type: StructureType,
24862    ///Optional, may be null.
24863    pub p_next: *const core::ffi::c_void,
24864    pub shader_stages: ShaderStageFlags,
24865    pub indirect_execution_set: IndirectExecutionSetEXT,
24866    pub indirect_commands_layout: IndirectCommandsLayoutEXT,
24867    pub indirect_address: u64,
24868    pub indirect_address_size: u64,
24869    pub preprocess_address: u64,
24870    pub preprocess_size: u64,
24871    pub max_sequence_count: u32,
24872    pub sequence_count_address: u64,
24873    pub max_draw_count: u32,
24874}
24875impl Default for GeneratedCommandsInfoEXT {
24876    #[inline]
24877    fn default() -> Self {
24878        Self {
24879            s_type: StructureType::from_raw(1000572004i32),
24880            p_next: core::ptr::null(),
24881            shader_stages: Default::default(),
24882            indirect_execution_set: Default::default(),
24883            indirect_commands_layout: Default::default(),
24884            indirect_address: Default::default(),
24885            indirect_address_size: Default::default(),
24886            preprocess_address: Default::default(),
24887            preprocess_size: Default::default(),
24888            max_sequence_count: Default::default(),
24889            sequence_count_address: Default::default(),
24890            max_draw_count: Default::default(),
24891        }
24892    }
24893}
24894///[`VkWriteIndirectExecutionSetPipelineEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteIndirectExecutionSetPipelineEXT.html)
24895/**
24896Provided by **VK_EXT_device_generated_commands**.*/
24897#[repr(C)]
24898#[derive(Copy, Clone, Debug)]
24899#[doc(alias = "VkWriteIndirectExecutionSetPipelineEXT")]
24900pub struct WriteIndirectExecutionSetPipelineEXT {
24901    ///Must be `VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT`.
24902    pub s_type: StructureType,
24903    ///Optional, may be null.
24904    pub p_next: *const core::ffi::c_void,
24905    pub index: u32,
24906    pub pipeline: Pipeline,
24907}
24908impl Default for WriteIndirectExecutionSetPipelineEXT {
24909    #[inline]
24910    fn default() -> Self {
24911        Self {
24912            s_type: StructureType::from_raw(1000572008i32),
24913            p_next: core::ptr::null(),
24914            index: Default::default(),
24915            pipeline: Default::default(),
24916        }
24917    }
24918}
24919///[`VkWriteIndirectExecutionSetShaderEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteIndirectExecutionSetShaderEXT.html)
24920/**
24921Provided by **VK_EXT_device_generated_commands**.*/
24922#[repr(C)]
24923#[derive(Copy, Clone, Debug)]
24924#[doc(alias = "VkWriteIndirectExecutionSetShaderEXT")]
24925pub struct WriteIndirectExecutionSetShaderEXT {
24926    ///Must be `VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT`.
24927    pub s_type: StructureType,
24928    ///Optional, may be null.
24929    pub p_next: *const core::ffi::c_void,
24930    pub index: u32,
24931    pub shader: ShaderEXT,
24932}
24933impl Default for WriteIndirectExecutionSetShaderEXT {
24934    #[inline]
24935    fn default() -> Self {
24936        Self {
24937            s_type: StructureType::from_raw(1000572009i32),
24938            p_next: core::ptr::null(),
24939            index: Default::default(),
24940            shader: Default::default(),
24941        }
24942    }
24943}
24944///[`VkIndirectCommandsLayoutCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutCreateInfoEXT.html)
24945/**
24946Provided by **VK_EXT_device_generated_commands**.*/
24947///
24948///# Extended By
24949///- [`PipelineLayoutCreateInfo`]
24950#[repr(C)]
24951#[derive(Copy, Clone, Debug)]
24952#[doc(alias = "VkIndirectCommandsLayoutCreateInfoEXT")]
24953pub struct IndirectCommandsLayoutCreateInfoEXT {
24954    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT`.
24955    pub s_type: StructureType,
24956    ///Optional, may be null.
24957    pub p_next: *const core::ffi::c_void,
24958    pub flags: IndirectCommandsLayoutUsageFlagsEXT,
24959    pub shader_stages: ShaderStageFlags,
24960    pub indirect_stride: u32,
24961    pub pipeline_layout: PipelineLayout,
24962    ///Length of `p_tokens`.
24963    pub token_count: u32,
24964    pub p_tokens: *const IndirectCommandsLayoutTokenEXT,
24965}
24966impl Default for IndirectCommandsLayoutCreateInfoEXT {
24967    #[inline]
24968    fn default() -> Self {
24969        Self {
24970            s_type: StructureType::from_raw(1000572006i32),
24971            p_next: core::ptr::null(),
24972            flags: Default::default(),
24973            shader_stages: Default::default(),
24974            indirect_stride: Default::default(),
24975            pipeline_layout: Default::default(),
24976            token_count: Default::default(),
24977            p_tokens: core::ptr::null(),
24978        }
24979    }
24980}
24981///[`VkIndirectCommandsLayoutTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutTokenEXT.html)
24982/**
24983Provided by **VK_EXT_device_generated_commands**.*/
24984///
24985///# Extended By
24986///- [`PushConstantBankInfoNV`]
24987#[repr(C)]
24988#[derive(Copy, Clone, Debug)]
24989#[doc(alias = "VkIndirectCommandsLayoutTokenEXT")]
24990pub struct IndirectCommandsLayoutTokenEXT {
24991    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT`.
24992    pub s_type: StructureType,
24993    ///Optional, may be null.
24994    pub p_next: *const core::ffi::c_void,
24995    pub r#type: IndirectCommandsTokenTypeEXT,
24996    pub data: IndirectCommandsTokenDataEXT,
24997    pub offset: u32,
24998}
24999impl Default for IndirectCommandsLayoutTokenEXT {
25000    #[inline]
25001    fn default() -> Self {
25002        Self {
25003            s_type: StructureType::from_raw(1000572007i32),
25004            p_next: core::ptr::null(),
25005            r#type: Default::default(),
25006            data: Default::default(),
25007            offset: Default::default(),
25008        }
25009    }
25010}
25011///[`VkDrawIndirectCountIndirectCommandEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndirectCountIndirectCommandEXT.html)
25012/**
25013Provided by **VK_EXT_device_generated_commands**.*/
25014#[repr(C)]
25015#[derive(Copy, Clone, Debug)]
25016#[doc(alias = "VkDrawIndirectCountIndirectCommandEXT")]
25017pub struct DrawIndirectCountIndirectCommandEXT {
25018    pub buffer_address: u64,
25019    pub stride: u32,
25020    pub command_count: u32,
25021}
25022impl Default for DrawIndirectCountIndirectCommandEXT {
25023    #[inline]
25024    fn default() -> Self {
25025        unsafe { core::mem::zeroed() }
25026    }
25027}
25028///[`VkIndirectCommandsVertexBufferTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsVertexBufferTokenEXT.html)
25029/**
25030Provided by **VK_EXT_device_generated_commands**.*/
25031#[repr(C)]
25032#[derive(Copy, Clone, Debug)]
25033#[doc(alias = "VkIndirectCommandsVertexBufferTokenEXT")]
25034pub struct IndirectCommandsVertexBufferTokenEXT {
25035    pub vertex_binding_unit: u32,
25036}
25037impl Default for IndirectCommandsVertexBufferTokenEXT {
25038    #[inline]
25039    fn default() -> Self {
25040        unsafe { core::mem::zeroed() }
25041    }
25042}
25043///[`VkBindVertexBufferIndirectCommandEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVertexBufferIndirectCommandEXT.html)
25044/**
25045Provided by **VK_EXT_device_generated_commands**.*/
25046#[repr(C)]
25047#[derive(Copy, Clone, Debug)]
25048#[doc(alias = "VkBindVertexBufferIndirectCommandEXT")]
25049pub struct BindVertexBufferIndirectCommandEXT {
25050    pub buffer_address: u64,
25051    pub size: u32,
25052    pub stride: u32,
25053}
25054impl Default for BindVertexBufferIndirectCommandEXT {
25055    #[inline]
25056    fn default() -> Self {
25057        unsafe { core::mem::zeroed() }
25058    }
25059}
25060///[`VkIndirectCommandsIndexBufferTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsIndexBufferTokenEXT.html)
25061/**
25062Provided by **VK_EXT_device_generated_commands**.*/
25063#[repr(C)]
25064#[derive(Copy, Clone, Debug)]
25065#[doc(alias = "VkIndirectCommandsIndexBufferTokenEXT")]
25066pub struct IndirectCommandsIndexBufferTokenEXT {
25067    pub mode: IndirectCommandsInputModeFlagBitsEXT,
25068}
25069impl Default for IndirectCommandsIndexBufferTokenEXT {
25070    #[inline]
25071    fn default() -> Self {
25072        unsafe { core::mem::zeroed() }
25073    }
25074}
25075///[`VkBindIndexBufferIndirectCommandEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindIndexBufferIndirectCommandEXT.html)
25076/**
25077Provided by **VK_EXT_device_generated_commands**.*/
25078#[repr(C)]
25079#[derive(Copy, Clone, Debug)]
25080#[doc(alias = "VkBindIndexBufferIndirectCommandEXT")]
25081pub struct BindIndexBufferIndirectCommandEXT {
25082    pub buffer_address: u64,
25083    pub size: u32,
25084    pub index_type: IndexType,
25085}
25086impl Default for BindIndexBufferIndirectCommandEXT {
25087    #[inline]
25088    fn default() -> Self {
25089        unsafe { core::mem::zeroed() }
25090    }
25091}
25092///[`VkIndirectCommandsPushConstantTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsPushConstantTokenEXT.html)
25093/**
25094Provided by **VK_EXT_device_generated_commands**.*/
25095#[repr(C)]
25096#[derive(Copy, Clone, Debug)]
25097#[doc(alias = "VkIndirectCommandsPushConstantTokenEXT")]
25098pub struct IndirectCommandsPushConstantTokenEXT {
25099    pub update_range: PushConstantRange,
25100}
25101impl Default for IndirectCommandsPushConstantTokenEXT {
25102    #[inline]
25103    fn default() -> Self {
25104        unsafe { core::mem::zeroed() }
25105    }
25106}
25107///[`VkIndirectCommandsExecutionSetTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsExecutionSetTokenEXT.html)
25108/**
25109Provided by **VK_EXT_device_generated_commands**.*/
25110#[repr(C)]
25111#[derive(Copy, Clone, Debug)]
25112#[doc(alias = "VkIndirectCommandsExecutionSetTokenEXT")]
25113pub struct IndirectCommandsExecutionSetTokenEXT {
25114    pub r#type: IndirectExecutionSetInfoTypeEXT,
25115    pub shader_stages: ShaderStageFlags,
25116}
25117impl Default for IndirectCommandsExecutionSetTokenEXT {
25118    #[inline]
25119    fn default() -> Self {
25120        unsafe { core::mem::zeroed() }
25121    }
25122}
25123///[`VkIndirectCommandsTokenDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsTokenDataEXT.html)
25124/**
25125Provided by **VK_EXT_device_generated_commands**.*/
25126#[repr(C)]
25127#[derive(Copy, Clone)]
25128#[doc(alias = "VkIndirectCommandsTokenDataEXT")]
25129pub union IndirectCommandsTokenDataEXT {
25130    pub p_push_constant: *const IndirectCommandsPushConstantTokenEXT,
25131    pub p_vertex_buffer: *const IndirectCommandsVertexBufferTokenEXT,
25132    pub p_index_buffer: *const IndirectCommandsIndexBufferTokenEXT,
25133    pub p_execution_set: *const IndirectCommandsExecutionSetTokenEXT,
25134}
25135impl Default for IndirectCommandsTokenDataEXT {
25136    #[inline]
25137    fn default() -> Self {
25138        unsafe { core::mem::zeroed() }
25139    }
25140}
25141impl core::fmt::Debug for IndirectCommandsTokenDataEXT {
25142    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25143        f.write_str(stringify!(IndirectCommandsTokenDataEXT))
25144    }
25145}
25146///[`VkPipelineViewportDepthClipControlCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportDepthClipControlCreateInfoEXT.html)
25147/**
25148Provided by **VK_EXT_depth_clip_control**.*/
25149///
25150///# Extends
25151///- [`PipelineViewportStateCreateInfo`]
25152#[repr(C)]
25153#[derive(Copy, Clone, Debug)]
25154#[doc(alias = "VkPipelineViewportDepthClipControlCreateInfoEXT")]
25155pub struct PipelineViewportDepthClipControlCreateInfoEXT {
25156    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT`.
25157    pub s_type: StructureType,
25158    ///Optional, may be null.
25159    pub p_next: *const core::ffi::c_void,
25160    pub negative_one_to_one: u32,
25161}
25162impl Default for PipelineViewportDepthClipControlCreateInfoEXT {
25163    #[inline]
25164    fn default() -> Self {
25165        Self {
25166            s_type: StructureType::from_raw(1000355001i32),
25167            p_next: core::ptr::null(),
25168            negative_one_to_one: Default::default(),
25169        }
25170    }
25171}
25172///[`VkPhysicalDeviceDepthClampControlFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthClampControlFeaturesEXT.html)
25173/**
25174Provided by **VK_EXT_depth_clamp_control**.*/
25175///
25176///# Extends
25177///- [`PhysicalDeviceFeatures2`]
25178///- [`DeviceCreateInfo`]
25179#[repr(C)]
25180#[derive(Copy, Clone, Debug)]
25181#[doc(alias = "VkPhysicalDeviceDepthClampControlFeaturesEXT")]
25182pub struct PhysicalDeviceDepthClampControlFeaturesEXT {
25183    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT`.
25184    pub s_type: StructureType,
25185    ///Optional, may be null.
25186    pub p_next: *mut core::ffi::c_void,
25187    pub depth_clamp_control: u32,
25188}
25189impl Default for PhysicalDeviceDepthClampControlFeaturesEXT {
25190    #[inline]
25191    fn default() -> Self {
25192        Self {
25193            s_type: StructureType::from_raw(1000582000i32),
25194            p_next: core::ptr::null_mut(),
25195            depth_clamp_control: Default::default(),
25196        }
25197    }
25198}
25199///[`VkPipelineViewportDepthClampControlCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportDepthClampControlCreateInfoEXT.html)
25200/**
25201Provided by **VK_EXT_depth_clamp_control**.*/
25202///
25203///# Extends
25204///- [`PipelineViewportStateCreateInfo`]
25205#[repr(C)]
25206#[derive(Copy, Clone, Debug)]
25207#[doc(alias = "VkPipelineViewportDepthClampControlCreateInfoEXT")]
25208pub struct PipelineViewportDepthClampControlCreateInfoEXT {
25209    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT`.
25210    pub s_type: StructureType,
25211    ///Optional, may be null.
25212    pub p_next: *const core::ffi::c_void,
25213    pub depth_clamp_mode: DepthClampModeEXT,
25214    ///Optional, may be null.
25215    pub p_depth_clamp_range: *const DepthClampRangeEXT,
25216}
25217impl Default for PipelineViewportDepthClampControlCreateInfoEXT {
25218    #[inline]
25219    fn default() -> Self {
25220        Self {
25221            s_type: StructureType::from_raw(1000582001i32),
25222            p_next: core::ptr::null(),
25223            depth_clamp_mode: Default::default(),
25224            p_depth_clamp_range: core::ptr::null(),
25225        }
25226    }
25227}
25228///[`VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.html)
25229/**
25230Provided by **VK_EXT_vertex_input_dynamic_state**.*/
25231///
25232///# Extends
25233///- [`PhysicalDeviceFeatures2`]
25234///- [`DeviceCreateInfo`]
25235#[repr(C)]
25236#[derive(Copy, Clone, Debug)]
25237#[doc(alias = "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT")]
25238pub struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
25239    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT`.
25240    pub s_type: StructureType,
25241    ///Optional, may be null.
25242    pub p_next: *mut core::ffi::c_void,
25243    pub vertex_input_dynamic_state: u32,
25244}
25245impl Default for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
25246    #[inline]
25247    fn default() -> Self {
25248        Self {
25249            s_type: StructureType::from_raw(1000352000i32),
25250            p_next: core::ptr::null_mut(),
25251            vertex_input_dynamic_state: Default::default(),
25252        }
25253    }
25254}
25255///[`VkPhysicalDeviceExternalMemoryRDMAFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.html)
25256/**
25257Provided by **VK_NV_external_memory_rdma**.*/
25258///
25259///# Extends
25260///- [`PhysicalDeviceFeatures2`]
25261///- [`DeviceCreateInfo`]
25262#[repr(C)]
25263#[derive(Copy, Clone, Debug)]
25264#[doc(alias = "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV")]
25265pub struct PhysicalDeviceExternalMemoryRDMAFeaturesNV {
25266    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV`.
25267    pub s_type: StructureType,
25268    ///Optional, may be null.
25269    pub p_next: *mut core::ffi::c_void,
25270    pub external_memory_rdma: u32,
25271}
25272impl Default for PhysicalDeviceExternalMemoryRDMAFeaturesNV {
25273    #[inline]
25274    fn default() -> Self {
25275        Self {
25276            s_type: StructureType::from_raw(1000371001i32),
25277            p_next: core::ptr::null_mut(),
25278            external_memory_rdma: Default::default(),
25279        }
25280    }
25281}
25282///[`VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR.html)
25283/**
25284Provided by **VK_KHR_shader_relaxed_extended_instruction**.*/
25285///
25286///# Extends
25287///- [`PhysicalDeviceFeatures2`]
25288///- [`DeviceCreateInfo`]
25289#[repr(C)]
25290#[derive(Copy, Clone, Debug)]
25291#[doc(alias = "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR")]
25292pub struct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
25293    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR`.
25294    pub s_type: StructureType,
25295    ///Optional, may be null.
25296    pub p_next: *mut core::ffi::c_void,
25297    pub shader_relaxed_extended_instruction: u32,
25298}
25299impl Default for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
25300    #[inline]
25301    fn default() -> Self {
25302        Self {
25303            s_type: StructureType::from_raw(1000558000i32),
25304            p_next: core::ptr::null_mut(),
25305            shader_relaxed_extended_instruction: Default::default(),
25306        }
25307    }
25308}
25309///[`VkVertexInputBindingDescription2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputBindingDescription2EXT.html)
25310/**
25311Provided by **VK_EXT_vertex_input_dynamic_state**.*/
25312#[repr(C)]
25313#[derive(Copy, Clone, Debug)]
25314#[doc(alias = "VkVertexInputBindingDescription2EXT")]
25315pub struct VertexInputBindingDescription2EXT {
25316    ///Must be `VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT`.
25317    pub s_type: StructureType,
25318    ///Optional, may be null.
25319    pub p_next: *mut core::ffi::c_void,
25320    pub binding: u32,
25321    pub stride: u32,
25322    pub input_rate: VertexInputRate,
25323    pub divisor: u32,
25324}
25325impl Default for VertexInputBindingDescription2EXT {
25326    #[inline]
25327    fn default() -> Self {
25328        Self {
25329            s_type: StructureType::from_raw(1000352001i32),
25330            p_next: core::ptr::null_mut(),
25331            binding: Default::default(),
25332            stride: Default::default(),
25333            input_rate: Default::default(),
25334            divisor: Default::default(),
25335        }
25336    }
25337}
25338///[`VkVertexInputAttributeDescription2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputAttributeDescription2EXT.html)
25339/**
25340Provided by **VK_EXT_vertex_input_dynamic_state**.*/
25341#[repr(C)]
25342#[derive(Copy, Clone, Debug)]
25343#[doc(alias = "VkVertexInputAttributeDescription2EXT")]
25344pub struct VertexInputAttributeDescription2EXT {
25345    ///Must be `VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT`.
25346    pub s_type: StructureType,
25347    ///Optional, may be null.
25348    pub p_next: *mut core::ffi::c_void,
25349    pub location: u32,
25350    pub binding: u32,
25351    pub format: Format,
25352    pub offset: u32,
25353}
25354impl Default for VertexInputAttributeDescription2EXT {
25355    #[inline]
25356    fn default() -> Self {
25357        Self {
25358            s_type: StructureType::from_raw(1000352002i32),
25359            p_next: core::ptr::null_mut(),
25360            location: Default::default(),
25361            binding: Default::default(),
25362            format: Default::default(),
25363            offset: Default::default(),
25364        }
25365    }
25366}
25367///[`VkPhysicalDeviceColorWriteEnableFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceColorWriteEnableFeaturesEXT.html)
25368/**
25369Provided by **VK_EXT_color_write_enable**.*/
25370///
25371///# Extends
25372///- [`PhysicalDeviceFeatures2`]
25373///- [`DeviceCreateInfo`]
25374#[repr(C)]
25375#[derive(Copy, Clone, Debug)]
25376#[doc(alias = "VkPhysicalDeviceColorWriteEnableFeaturesEXT")]
25377pub struct PhysicalDeviceColorWriteEnableFeaturesEXT {
25378    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT`.
25379    pub s_type: StructureType,
25380    ///Optional, may be null.
25381    pub p_next: *mut core::ffi::c_void,
25382    pub color_write_enable: u32,
25383}
25384impl Default for PhysicalDeviceColorWriteEnableFeaturesEXT {
25385    #[inline]
25386    fn default() -> Self {
25387        Self {
25388            s_type: StructureType::from_raw(1000381000i32),
25389            p_next: core::ptr::null_mut(),
25390            color_write_enable: Default::default(),
25391        }
25392    }
25393}
25394///[`VkPipelineColorWriteCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineColorWriteCreateInfoEXT.html)
25395/**
25396Provided by **VK_EXT_color_write_enable**.*/
25397///
25398///# Extends
25399///- [`PipelineColorBlendStateCreateInfo`]
25400#[repr(C)]
25401#[derive(Copy, Clone, Debug)]
25402#[doc(alias = "VkPipelineColorWriteCreateInfoEXT")]
25403pub struct PipelineColorWriteCreateInfoEXT {
25404    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT`.
25405    pub s_type: StructureType,
25406    ///Optional, may be null.
25407    pub p_next: *const core::ffi::c_void,
25408    ///Length of `p_color_write_enables`.
25409    pub attachment_count: u32,
25410    pub p_color_write_enables: *const u32,
25411}
25412impl Default for PipelineColorWriteCreateInfoEXT {
25413    #[inline]
25414    fn default() -> Self {
25415        Self {
25416            s_type: StructureType::from_raw(1000381001i32),
25417            p_next: core::ptr::null(),
25418            attachment_count: Default::default(),
25419            p_color_write_enables: core::ptr::null(),
25420        }
25421    }
25422}
25423///[`VkMemoryBarrier2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryBarrier2.html)
25424/**
25425Provided by **VK_BASE_VERSION_1_3**.*/
25426///
25427///# Extends
25428///- [`SubpassDependency2`]
25429#[repr(C)]
25430#[derive(Copy, Clone, Debug)]
25431#[doc(alias = "VkMemoryBarrier2")]
25432pub struct MemoryBarrier2 {
25433    ///Must be `VK_STRUCTURE_TYPE_MEMORY_BARRIER_2`.
25434    pub s_type: StructureType,
25435    ///Optional, may be null.
25436    pub p_next: *const core::ffi::c_void,
25437    pub src_stage_mask: PipelineStageFlags2,
25438    pub src_access_mask: AccessFlags2,
25439    pub dst_stage_mask: PipelineStageFlags2,
25440    pub dst_access_mask: AccessFlags2,
25441}
25442impl Default for MemoryBarrier2 {
25443    #[inline]
25444    fn default() -> Self {
25445        Self {
25446            s_type: StructureType::from_raw(1000314000i32),
25447            p_next: core::ptr::null(),
25448            src_stage_mask: Default::default(),
25449            src_access_mask: Default::default(),
25450            dst_stage_mask: Default::default(),
25451            dst_access_mask: Default::default(),
25452        }
25453    }
25454}
25455///[`VkImageMemoryBarrier2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageMemoryBarrier2.html)
25456/**
25457Provided by **VK_BASE_VERSION_1_3**.*/
25458///
25459///# Extended By
25460///- [`ExternalMemoryAcquireUnmodifiedEXT`]
25461///- [`MemoryBarrierAccessFlags3KHR`]
25462///- [`SampleLocationsInfoEXT`]
25463#[repr(C)]
25464#[derive(Copy, Clone, Debug)]
25465#[doc(alias = "VkImageMemoryBarrier2")]
25466pub struct ImageMemoryBarrier2 {
25467    ///Must be `VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2`.
25468    pub s_type: StructureType,
25469    ///Optional, may be null.
25470    pub p_next: *const core::ffi::c_void,
25471    pub src_stage_mask: PipelineStageFlags2,
25472    pub src_access_mask: AccessFlags2,
25473    pub dst_stage_mask: PipelineStageFlags2,
25474    pub dst_access_mask: AccessFlags2,
25475    pub old_layout: ImageLayout,
25476    pub new_layout: ImageLayout,
25477    pub src_queue_family_index: u32,
25478    pub dst_queue_family_index: u32,
25479    pub image: Image,
25480    pub subresource_range: ImageSubresourceRange,
25481}
25482impl Default for ImageMemoryBarrier2 {
25483    #[inline]
25484    fn default() -> Self {
25485        Self {
25486            s_type: StructureType::from_raw(1000314002i32),
25487            p_next: core::ptr::null(),
25488            src_stage_mask: Default::default(),
25489            src_access_mask: Default::default(),
25490            dst_stage_mask: Default::default(),
25491            dst_access_mask: Default::default(),
25492            old_layout: Default::default(),
25493            new_layout: Default::default(),
25494            src_queue_family_index: Default::default(),
25495            dst_queue_family_index: Default::default(),
25496            image: Default::default(),
25497            subresource_range: Default::default(),
25498        }
25499    }
25500}
25501///[`VkBufferMemoryBarrier2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferMemoryBarrier2.html)
25502/**
25503Provided by **VK_BASE_VERSION_1_3**.*/
25504///
25505///# Extended By
25506///- [`ExternalMemoryAcquireUnmodifiedEXT`]
25507///- [`MemoryBarrierAccessFlags3KHR`]
25508#[repr(C)]
25509#[derive(Copy, Clone, Debug)]
25510#[doc(alias = "VkBufferMemoryBarrier2")]
25511pub struct BufferMemoryBarrier2 {
25512    ///Must be `VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2`.
25513    pub s_type: StructureType,
25514    ///Optional, may be null.
25515    pub p_next: *const core::ffi::c_void,
25516    pub src_stage_mask: PipelineStageFlags2,
25517    pub src_access_mask: AccessFlags2,
25518    pub dst_stage_mask: PipelineStageFlags2,
25519    pub dst_access_mask: AccessFlags2,
25520    pub src_queue_family_index: u32,
25521    pub dst_queue_family_index: u32,
25522    pub buffer: Buffer,
25523    pub offset: u64,
25524    pub size: u64,
25525}
25526impl Default for BufferMemoryBarrier2 {
25527    #[inline]
25528    fn default() -> Self {
25529        Self {
25530            s_type: StructureType::from_raw(1000314001i32),
25531            p_next: core::ptr::null(),
25532            src_stage_mask: Default::default(),
25533            src_access_mask: Default::default(),
25534            dst_stage_mask: Default::default(),
25535            dst_access_mask: Default::default(),
25536            src_queue_family_index: Default::default(),
25537            dst_queue_family_index: Default::default(),
25538            buffer: Default::default(),
25539            offset: Default::default(),
25540            size: Default::default(),
25541        }
25542    }
25543}
25544///[`VkMemoryBarrierAccessFlags3KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryBarrierAccessFlags3KHR.html)
25545/**
25546Provided by **VK_KHR_maintenance8**.*/
25547///
25548///# Extends
25549///- [`SubpassDependency2`]
25550///- [`BufferMemoryBarrier2`]
25551///- [`ImageMemoryBarrier2`]
25552#[repr(C)]
25553#[derive(Copy, Clone, Debug)]
25554#[doc(alias = "VkMemoryBarrierAccessFlags3KHR")]
25555pub struct MemoryBarrierAccessFlags3KHR {
25556    ///Must be `VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR`.
25557    pub s_type: StructureType,
25558    ///Optional, may be null.
25559    pub p_next: *const core::ffi::c_void,
25560    pub src_access_mask3: AccessFlags3KHR,
25561    pub dst_access_mask3: AccessFlags3KHR,
25562}
25563impl Default for MemoryBarrierAccessFlags3KHR {
25564    #[inline]
25565    fn default() -> Self {
25566        Self {
25567            s_type: StructureType::from_raw(1000574002i32),
25568            p_next: core::ptr::null(),
25569            src_access_mask3: Default::default(),
25570            dst_access_mask3: Default::default(),
25571        }
25572    }
25573}
25574///[`VkDependencyInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDependencyInfo.html)
25575/**
25576Provided by **VK_BASE_VERSION_1_3**.*/
25577///
25578///# Extended By
25579///- [`MemoryRangeBarriersInfoKHR`]
25580///- [`TensorDependencyInfoARM`]
25581///- [`TensorMemoryBarrierARM`]
25582#[repr(C)]
25583#[derive(Copy, Clone, Debug)]
25584#[doc(alias = "VkDependencyInfo")]
25585pub struct DependencyInfo {
25586    ///Must be `VK_STRUCTURE_TYPE_DEPENDENCY_INFO`.
25587    pub s_type: StructureType,
25588    ///Optional, may be null.
25589    pub p_next: *const core::ffi::c_void,
25590    pub dependency_flags: DependencyFlags,
25591    ///Length of `p_memory_barriers`.
25592    pub memory_barrier_count: u32,
25593    pub p_memory_barriers: *const MemoryBarrier2,
25594    ///Length of `p_buffer_memory_barriers`.
25595    pub buffer_memory_barrier_count: u32,
25596    pub p_buffer_memory_barriers: *const BufferMemoryBarrier2,
25597    ///Length of `p_image_memory_barriers`.
25598    pub image_memory_barrier_count: u32,
25599    pub p_image_memory_barriers: *const ImageMemoryBarrier2,
25600}
25601impl Default for DependencyInfo {
25602    #[inline]
25603    fn default() -> Self {
25604        Self {
25605            s_type: StructureType::from_raw(1000314003i32),
25606            p_next: core::ptr::null(),
25607            dependency_flags: Default::default(),
25608            memory_barrier_count: Default::default(),
25609            p_memory_barriers: core::ptr::null(),
25610            buffer_memory_barrier_count: Default::default(),
25611            p_buffer_memory_barriers: core::ptr::null(),
25612            image_memory_barrier_count: Default::default(),
25613            p_image_memory_barriers: core::ptr::null(),
25614        }
25615    }
25616}
25617///[`VkSemaphoreSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreSubmitInfo.html)
25618/**
25619Provided by **VK_BASE_VERSION_1_3**.*/
25620#[repr(C)]
25621#[derive(Copy, Clone, Debug)]
25622#[doc(alias = "VkSemaphoreSubmitInfo")]
25623pub struct SemaphoreSubmitInfo {
25624    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO`.
25625    pub s_type: StructureType,
25626    ///Optional, may be null.
25627    pub p_next: *const core::ffi::c_void,
25628    pub semaphore: Semaphore,
25629    pub value: u64,
25630    pub stage_mask: PipelineStageFlags2,
25631    pub device_index: u32,
25632}
25633impl Default for SemaphoreSubmitInfo {
25634    #[inline]
25635    fn default() -> Self {
25636        Self {
25637            s_type: StructureType::from_raw(1000314005i32),
25638            p_next: core::ptr::null(),
25639            semaphore: Default::default(),
25640            value: Default::default(),
25641            stage_mask: Default::default(),
25642            device_index: Default::default(),
25643        }
25644    }
25645}
25646///[`VkCommandBufferSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferSubmitInfo.html)
25647/**
25648Provided by **VK_BASE_VERSION_1_3**.*/
25649///
25650///# Extended By
25651///- [`RenderPassStripeSubmitInfoARM`]
25652#[repr(C)]
25653#[derive(Copy, Clone, Debug)]
25654#[doc(alias = "VkCommandBufferSubmitInfo")]
25655pub struct CommandBufferSubmitInfo {
25656    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO`.
25657    pub s_type: StructureType,
25658    ///Optional, may be null.
25659    pub p_next: *const core::ffi::c_void,
25660    pub command_buffer: CommandBuffer,
25661    pub device_mask: u32,
25662}
25663impl Default for CommandBufferSubmitInfo {
25664    #[inline]
25665    fn default() -> Self {
25666        Self {
25667            s_type: StructureType::from_raw(1000314006i32),
25668            p_next: core::ptr::null(),
25669            command_buffer: Default::default(),
25670            device_mask: Default::default(),
25671        }
25672    }
25673}
25674///[`VkSubmitInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubmitInfo2.html)
25675/**
25676Provided by **VK_BASE_VERSION_1_3**.*/
25677///
25678///# Extended By
25679///- [`FrameBoundaryEXT`]
25680///- [`FrameBoundaryTensorsARM`]
25681///- [`LatencySubmissionPresentIdNV`]
25682///- [`PerformanceQuerySubmitInfoKHR`]
25683///- [`Win32KeyedMutexAcquireReleaseInfoKHR`]
25684///- [`Win32KeyedMutexAcquireReleaseInfoNV`]
25685#[repr(C)]
25686#[derive(Copy, Clone, Debug)]
25687#[doc(alias = "VkSubmitInfo2")]
25688pub struct SubmitInfo2 {
25689    ///Must be `VK_STRUCTURE_TYPE_SUBMIT_INFO_2`.
25690    pub s_type: StructureType,
25691    ///Optional, may be null.
25692    pub p_next: *const core::ffi::c_void,
25693    pub flags: SubmitFlags,
25694    ///Length of `p_wait_semaphore_infos`.
25695    pub wait_semaphore_info_count: u32,
25696    pub p_wait_semaphore_infos: *const SemaphoreSubmitInfo,
25697    ///Length of `p_command_buffer_infos`.
25698    pub command_buffer_info_count: u32,
25699    pub p_command_buffer_infos: *const CommandBufferSubmitInfo,
25700    ///Length of `p_signal_semaphore_infos`.
25701    pub signal_semaphore_info_count: u32,
25702    pub p_signal_semaphore_infos: *const SemaphoreSubmitInfo,
25703}
25704impl Default for SubmitInfo2 {
25705    #[inline]
25706    fn default() -> Self {
25707        Self {
25708            s_type: StructureType::from_raw(1000314004i32),
25709            p_next: core::ptr::null(),
25710            flags: Default::default(),
25711            wait_semaphore_info_count: Default::default(),
25712            p_wait_semaphore_infos: core::ptr::null(),
25713            command_buffer_info_count: Default::default(),
25714            p_command_buffer_infos: core::ptr::null(),
25715            signal_semaphore_info_count: Default::default(),
25716            p_signal_semaphore_infos: core::ptr::null(),
25717        }
25718    }
25719}
25720///[`VkQueueFamilyCheckpointProperties2NV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyCheckpointProperties2NV.html)
25721/**
25722Provided by **VK_NV_device_diagnostic_checkpoints**.*/
25723/**
25724**Returned only**, filled by Vulkan, not constructed by the application.*/
25725///
25726///# Extends
25727///- [`QueueFamilyProperties2`]
25728#[repr(C)]
25729#[derive(Copy, Clone, Debug)]
25730#[doc(alias = "VkQueueFamilyCheckpointProperties2NV")]
25731pub struct QueueFamilyCheckpointProperties2NV {
25732    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV`.
25733    pub s_type: StructureType,
25734    ///Optional, may be null.
25735    pub p_next: *mut core::ffi::c_void,
25736    pub checkpoint_execution_stage_mask: PipelineStageFlags2,
25737}
25738impl Default for QueueFamilyCheckpointProperties2NV {
25739    #[inline]
25740    fn default() -> Self {
25741        Self {
25742            s_type: StructureType::from_raw(1000314008i32),
25743            p_next: core::ptr::null_mut(),
25744            checkpoint_execution_stage_mask: Default::default(),
25745        }
25746    }
25747}
25748///[`VkCheckpointData2NV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCheckpointData2NV.html)
25749/**
25750Provided by **VK_NV_device_diagnostic_checkpoints**.*/
25751/**
25752**Returned only**, filled by Vulkan, not constructed by the application.*/
25753#[repr(C)]
25754#[derive(Copy, Clone, Debug)]
25755#[doc(alias = "VkCheckpointData2NV")]
25756pub struct CheckpointData2NV {
25757    ///Must be `VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV`.
25758    pub s_type: StructureType,
25759    ///Optional, may be null.
25760    pub p_next: *mut core::ffi::c_void,
25761    pub stage: PipelineStageFlags2,
25762    pub p_checkpoint_marker: *mut core::ffi::c_void,
25763}
25764impl Default for CheckpointData2NV {
25765    #[inline]
25766    fn default() -> Self {
25767        Self {
25768            s_type: StructureType::from_raw(1000314009i32),
25769            p_next: core::ptr::null_mut(),
25770            stage: Default::default(),
25771            p_checkpoint_marker: core::ptr::null_mut(),
25772        }
25773    }
25774}
25775///[`VkPhysicalDeviceSynchronization2Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSynchronization2Features.html)
25776/**
25777Provided by **VK_BASE_VERSION_1_3**.*/
25778///
25779///# Extends
25780///- [`PhysicalDeviceFeatures2`]
25781///- [`DeviceCreateInfo`]
25782#[repr(C)]
25783#[derive(Copy, Clone, Debug)]
25784#[doc(alias = "VkPhysicalDeviceSynchronization2Features")]
25785pub struct PhysicalDeviceSynchronization2Features {
25786    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES`.
25787    pub s_type: StructureType,
25788    ///Optional, may be null.
25789    pub p_next: *mut core::ffi::c_void,
25790    pub synchronization2: u32,
25791}
25792impl Default for PhysicalDeviceSynchronization2Features {
25793    #[inline]
25794    fn default() -> Self {
25795        Self {
25796            s_type: StructureType::from_raw(1000314007i32),
25797            p_next: core::ptr::null_mut(),
25798            synchronization2: Default::default(),
25799        }
25800    }
25801}
25802///[`VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR.html)
25803/**
25804Provided by **VK_KHR_unified_image_layouts**.*/
25805///
25806///# Extends
25807///- [`PhysicalDeviceFeatures2`]
25808///- [`DeviceCreateInfo`]
25809#[repr(C)]
25810#[derive(Copy, Clone, Debug)]
25811#[doc(alias = "VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR")]
25812pub struct PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
25813    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR`.
25814    pub s_type: StructureType,
25815    ///Optional, may be null.
25816    pub p_next: *mut core::ffi::c_void,
25817    pub unified_image_layouts: u32,
25818    pub unified_image_layouts_video: u32,
25819}
25820impl Default for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
25821    #[inline]
25822    fn default() -> Self {
25823        Self {
25824            s_type: StructureType::from_raw(1000527000i32),
25825            p_next: core::ptr::null_mut(),
25826            unified_image_layouts: Default::default(),
25827            unified_image_layouts_video: Default::default(),
25828        }
25829    }
25830}
25831///[`VkPhysicalDeviceHostImageCopyFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceHostImageCopyFeatures.html)
25832/**
25833Provided by **VK_BASE_VERSION_1_4**.*/
25834///
25835///# Extends
25836///- [`PhysicalDeviceFeatures2`]
25837///- [`DeviceCreateInfo`]
25838#[repr(C)]
25839#[derive(Copy, Clone, Debug)]
25840#[doc(alias = "VkPhysicalDeviceHostImageCopyFeatures")]
25841pub struct PhysicalDeviceHostImageCopyFeatures {
25842    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES`.
25843    pub s_type: StructureType,
25844    ///Optional, may be null.
25845    pub p_next: *mut core::ffi::c_void,
25846    pub host_image_copy: u32,
25847}
25848impl Default for PhysicalDeviceHostImageCopyFeatures {
25849    #[inline]
25850    fn default() -> Self {
25851        Self {
25852            s_type: StructureType::from_raw(1000270000i32),
25853            p_next: core::ptr::null_mut(),
25854            host_image_copy: Default::default(),
25855        }
25856    }
25857}
25858///[`VkPhysicalDeviceHostImageCopyProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceHostImageCopyProperties.html)
25859/**
25860Provided by **VK_BASE_VERSION_1_4**.*/
25861///
25862///# Extends
25863///- [`PhysicalDeviceProperties2`]
25864#[repr(C)]
25865#[derive(Copy, Clone, Debug)]
25866#[doc(alias = "VkPhysicalDeviceHostImageCopyProperties")]
25867pub struct PhysicalDeviceHostImageCopyProperties {
25868    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES`.
25869    pub s_type: StructureType,
25870    ///Optional, may be null.
25871    pub p_next: *mut core::ffi::c_void,
25872    ///Length of `p_copy_src_layouts`.
25873    pub copy_src_layout_count: u32,
25874    ///Optional, may be null.
25875    pub p_copy_src_layouts: *mut ImageLayout,
25876    ///Length of `p_copy_dst_layouts`.
25877    pub copy_dst_layout_count: u32,
25878    ///Optional, may be null.
25879    pub p_copy_dst_layouts: *mut ImageLayout,
25880    pub optimal_tiling_layout_uuid: [u8; UUID_SIZE as usize],
25881    pub identical_memory_type_requirements: u32,
25882}
25883impl Default for PhysicalDeviceHostImageCopyProperties {
25884    #[inline]
25885    fn default() -> Self {
25886        Self {
25887            s_type: StructureType::from_raw(1000270001i32),
25888            p_next: core::ptr::null_mut(),
25889            copy_src_layout_count: Default::default(),
25890            p_copy_src_layouts: core::ptr::null_mut(),
25891            copy_dst_layout_count: Default::default(),
25892            p_copy_dst_layouts: core::ptr::null_mut(),
25893            optimal_tiling_layout_uuid: unsafe { core::mem::zeroed() },
25894            identical_memory_type_requirements: Default::default(),
25895        }
25896    }
25897}
25898///[`VkMemoryToImageCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryToImageCopy.html)
25899/**
25900Provided by **VK_BASE_VERSION_1_4**.*/
25901#[repr(C)]
25902#[derive(Copy, Clone, Debug)]
25903#[doc(alias = "VkMemoryToImageCopy")]
25904pub struct MemoryToImageCopy {
25905    ///Must be `VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY`.
25906    pub s_type: StructureType,
25907    ///Optional, may be null.
25908    pub p_next: *const core::ffi::c_void,
25909    pub p_host_pointer: *const core::ffi::c_void,
25910    pub memory_row_length: u32,
25911    pub memory_image_height: u32,
25912    pub image_subresource: ImageSubresourceLayers,
25913    pub image_offset: Offset3D,
25914    pub image_extent: Extent3D,
25915}
25916impl Default for MemoryToImageCopy {
25917    #[inline]
25918    fn default() -> Self {
25919        Self {
25920            s_type: StructureType::from_raw(1000270002i32),
25921            p_next: core::ptr::null(),
25922            p_host_pointer: core::ptr::null(),
25923            memory_row_length: Default::default(),
25924            memory_image_height: Default::default(),
25925            image_subresource: Default::default(),
25926            image_offset: Default::default(),
25927            image_extent: Default::default(),
25928        }
25929    }
25930}
25931///[`VkImageToMemoryCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageToMemoryCopy.html)
25932/**
25933Provided by **VK_BASE_VERSION_1_4**.*/
25934#[repr(C)]
25935#[derive(Copy, Clone, Debug)]
25936#[doc(alias = "VkImageToMemoryCopy")]
25937pub struct ImageToMemoryCopy {
25938    ///Must be `VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY`.
25939    pub s_type: StructureType,
25940    ///Optional, may be null.
25941    pub p_next: *const core::ffi::c_void,
25942    pub p_host_pointer: *mut core::ffi::c_void,
25943    pub memory_row_length: u32,
25944    pub memory_image_height: u32,
25945    pub image_subresource: ImageSubresourceLayers,
25946    pub image_offset: Offset3D,
25947    pub image_extent: Extent3D,
25948}
25949impl Default for ImageToMemoryCopy {
25950    #[inline]
25951    fn default() -> Self {
25952        Self {
25953            s_type: StructureType::from_raw(1000270003i32),
25954            p_next: core::ptr::null(),
25955            p_host_pointer: core::ptr::null_mut(),
25956            memory_row_length: Default::default(),
25957            memory_image_height: Default::default(),
25958            image_subresource: Default::default(),
25959            image_offset: Default::default(),
25960            image_extent: Default::default(),
25961        }
25962    }
25963}
25964///[`VkCopyMemoryToImageInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageInfo.html)
25965/**
25966Provided by **VK_BASE_VERSION_1_4**.*/
25967#[repr(C)]
25968#[derive(Copy, Clone, Debug)]
25969#[doc(alias = "VkCopyMemoryToImageInfo")]
25970pub struct CopyMemoryToImageInfo {
25971    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO`.
25972    pub s_type: StructureType,
25973    ///Optional, may be null.
25974    pub p_next: *const core::ffi::c_void,
25975    pub flags: HostImageCopyFlags,
25976    pub dst_image: Image,
25977    pub dst_image_layout: ImageLayout,
25978    ///Length of `p_regions`.
25979    pub region_count: u32,
25980    pub p_regions: *const MemoryToImageCopy,
25981}
25982impl Default for CopyMemoryToImageInfo {
25983    #[inline]
25984    fn default() -> Self {
25985        Self {
25986            s_type: StructureType::from_raw(1000270005i32),
25987            p_next: core::ptr::null(),
25988            flags: Default::default(),
25989            dst_image: Default::default(),
25990            dst_image_layout: Default::default(),
25991            region_count: Default::default(),
25992            p_regions: core::ptr::null(),
25993        }
25994    }
25995}
25996///[`VkCopyImageToMemoryInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyImageToMemoryInfo.html)
25997/**
25998Provided by **VK_BASE_VERSION_1_4**.*/
25999#[repr(C)]
26000#[derive(Copy, Clone, Debug)]
26001#[doc(alias = "VkCopyImageToMemoryInfo")]
26002pub struct CopyImageToMemoryInfo {
26003    ///Must be `VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO`.
26004    pub s_type: StructureType,
26005    ///Optional, may be null.
26006    pub p_next: *const core::ffi::c_void,
26007    pub flags: HostImageCopyFlags,
26008    pub src_image: Image,
26009    pub src_image_layout: ImageLayout,
26010    ///Length of `p_regions`.
26011    pub region_count: u32,
26012    pub p_regions: *const ImageToMemoryCopy,
26013}
26014impl Default for CopyImageToMemoryInfo {
26015    #[inline]
26016    fn default() -> Self {
26017        Self {
26018            s_type: StructureType::from_raw(1000270004i32),
26019            p_next: core::ptr::null(),
26020            flags: Default::default(),
26021            src_image: Default::default(),
26022            src_image_layout: Default::default(),
26023            region_count: Default::default(),
26024            p_regions: core::ptr::null(),
26025        }
26026    }
26027}
26028///[`VkCopyImageToImageInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyImageToImageInfo.html)
26029/**
26030Provided by **VK_BASE_VERSION_1_4**.*/
26031#[repr(C)]
26032#[derive(Copy, Clone, Debug)]
26033#[doc(alias = "VkCopyImageToImageInfo")]
26034pub struct CopyImageToImageInfo {
26035    ///Must be `VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO`.
26036    pub s_type: StructureType,
26037    ///Optional, may be null.
26038    pub p_next: *const core::ffi::c_void,
26039    pub flags: HostImageCopyFlags,
26040    pub src_image: Image,
26041    pub src_image_layout: ImageLayout,
26042    pub dst_image: Image,
26043    pub dst_image_layout: ImageLayout,
26044    ///Length of `p_regions`.
26045    pub region_count: u32,
26046    pub p_regions: *const ImageCopy2,
26047}
26048impl Default for CopyImageToImageInfo {
26049    #[inline]
26050    fn default() -> Self {
26051        Self {
26052            s_type: StructureType::from_raw(1000270007i32),
26053            p_next: core::ptr::null(),
26054            flags: Default::default(),
26055            src_image: Default::default(),
26056            src_image_layout: Default::default(),
26057            dst_image: Default::default(),
26058            dst_image_layout: Default::default(),
26059            region_count: Default::default(),
26060            p_regions: core::ptr::null(),
26061        }
26062    }
26063}
26064///[`VkHostImageLayoutTransitionInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostImageLayoutTransitionInfo.html)
26065/**
26066Provided by **VK_BASE_VERSION_1_4**.*/
26067#[repr(C)]
26068#[derive(Copy, Clone, Debug)]
26069#[doc(alias = "VkHostImageLayoutTransitionInfo")]
26070pub struct HostImageLayoutTransitionInfo {
26071    ///Must be `VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO`.
26072    pub s_type: StructureType,
26073    ///Optional, may be null.
26074    pub p_next: *const core::ffi::c_void,
26075    pub image: Image,
26076    pub old_layout: ImageLayout,
26077    pub new_layout: ImageLayout,
26078    pub subresource_range: ImageSubresourceRange,
26079}
26080impl Default for HostImageLayoutTransitionInfo {
26081    #[inline]
26082    fn default() -> Self {
26083        Self {
26084            s_type: StructureType::from_raw(1000270006i32),
26085            p_next: core::ptr::null(),
26086            image: Default::default(),
26087            old_layout: Default::default(),
26088            new_layout: Default::default(),
26089            subresource_range: Default::default(),
26090        }
26091    }
26092}
26093///[`VkSubresourceHostMemcpySize`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubresourceHostMemcpySize.html)
26094/**
26095Provided by **VK_BASE_VERSION_1_4**.*/
26096/**
26097**Returned only**, filled by Vulkan, not constructed by the application.*/
26098///
26099///# Extends
26100///- [`SubresourceLayout2`]
26101#[repr(C)]
26102#[derive(Copy, Clone, Debug)]
26103#[doc(alias = "VkSubresourceHostMemcpySize")]
26104pub struct SubresourceHostMemcpySize {
26105    ///Must be `VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE`.
26106    pub s_type: StructureType,
26107    ///Optional, may be null.
26108    pub p_next: *mut core::ffi::c_void,
26109    pub size: u64,
26110}
26111impl Default for SubresourceHostMemcpySize {
26112    #[inline]
26113    fn default() -> Self {
26114        Self {
26115            s_type: StructureType::from_raw(1000270008i32),
26116            p_next: core::ptr::null_mut(),
26117            size: Default::default(),
26118        }
26119    }
26120}
26121///[`VkHostImageCopyDevicePerformanceQuery`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostImageCopyDevicePerformanceQuery.html)
26122/**
26123Provided by **VK_BASE_VERSION_1_4**.*/
26124/**
26125**Returned only**, filled by Vulkan, not constructed by the application.*/
26126///
26127///# Extends
26128///- [`ImageFormatProperties2`]
26129#[repr(C)]
26130#[derive(Copy, Clone, Debug)]
26131#[doc(alias = "VkHostImageCopyDevicePerformanceQuery")]
26132pub struct HostImageCopyDevicePerformanceQuery {
26133    ///Must be `VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY`.
26134    pub s_type: StructureType,
26135    ///Optional, may be null.
26136    pub p_next: *mut core::ffi::c_void,
26137    pub optimal_device_access: u32,
26138    pub identical_memory_layout: u32,
26139}
26140impl Default for HostImageCopyDevicePerformanceQuery {
26141    #[inline]
26142    fn default() -> Self {
26143        Self {
26144            s_type: StructureType::from_raw(1000270009i32),
26145            p_next: core::ptr::null_mut(),
26146            optimal_device_access: Default::default(),
26147            identical_memory_layout: Default::default(),
26148        }
26149    }
26150}
26151///[`VkPhysicalDeviceVulkanSC10Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkanSC10Properties.html)
26152/**
26153Provided by **VKSC_VERSION_1_0**.*/
26154/**
26155**Returned only**, filled by Vulkan, not constructed by the application.*/
26156///
26157///# Extends
26158///- [`PhysicalDeviceProperties2`]
26159#[repr(C)]
26160#[derive(Copy, Clone, Debug)]
26161#[doc(alias = "VkPhysicalDeviceVulkanSC10Properties")]
26162pub struct PhysicalDeviceVulkanSC10Properties {
26163    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES`.
26164    pub s_type: StructureType,
26165    ///Optional, may be null.
26166    pub p_next: *mut core::ffi::c_void,
26167    pub device_no_dynamic_host_allocations: u32,
26168    pub device_destroy_frees_memory: u32,
26169    pub command_pool_multiple_command_buffers_recording: u32,
26170    pub command_pool_reset_command_buffer: u32,
26171    pub command_buffer_simultaneous_use: u32,
26172    pub secondary_command_buffer_null_or_imageless_framebuffer: u32,
26173    pub recycle_descriptor_set_memory: u32,
26174    pub recycle_pipeline_memory: u32,
26175    pub max_render_pass_subpasses: u32,
26176    pub max_render_pass_dependencies: u32,
26177    pub max_subpass_input_attachments: u32,
26178    pub max_subpass_preserve_attachments: u32,
26179    pub max_framebuffer_attachments: u32,
26180    pub max_descriptor_set_layout_bindings: u32,
26181    pub max_query_fault_count: u32,
26182    pub max_callback_fault_count: u32,
26183    pub max_command_pool_command_buffers: u32,
26184    pub max_command_buffer_size: u64,
26185}
26186impl Default for PhysicalDeviceVulkanSC10Properties {
26187    #[inline]
26188    fn default() -> Self {
26189        Self {
26190            s_type: StructureType::from_raw(1000298001i32),
26191            p_next: core::ptr::null_mut(),
26192            device_no_dynamic_host_allocations: Default::default(),
26193            device_destroy_frees_memory: Default::default(),
26194            command_pool_multiple_command_buffers_recording: Default::default(),
26195            command_pool_reset_command_buffer: Default::default(),
26196            command_buffer_simultaneous_use: Default::default(),
26197            secondary_command_buffer_null_or_imageless_framebuffer: Default::default(),
26198            recycle_descriptor_set_memory: Default::default(),
26199            recycle_pipeline_memory: Default::default(),
26200            max_render_pass_subpasses: Default::default(),
26201            max_render_pass_dependencies: Default::default(),
26202            max_subpass_input_attachments: Default::default(),
26203            max_subpass_preserve_attachments: Default::default(),
26204            max_framebuffer_attachments: Default::default(),
26205            max_descriptor_set_layout_bindings: Default::default(),
26206            max_query_fault_count: Default::default(),
26207            max_callback_fault_count: Default::default(),
26208            max_command_pool_command_buffers: Default::default(),
26209            max_command_buffer_size: Default::default(),
26210        }
26211    }
26212}
26213///[`VkPipelinePoolSize`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelinePoolSize.html)
26214/**
26215Provided by **VKSC_VERSION_1_0**.*/
26216#[repr(C)]
26217#[derive(Copy, Clone, Debug)]
26218#[doc(alias = "VkPipelinePoolSize")]
26219pub struct PipelinePoolSize {
26220    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE`.
26221    pub s_type: StructureType,
26222    ///Optional, may be null.
26223    pub p_next: *const core::ffi::c_void,
26224    pub pool_entry_size: u64,
26225    pub pool_entry_count: u32,
26226}
26227impl Default for PipelinePoolSize {
26228    #[inline]
26229    fn default() -> Self {
26230        Self {
26231            s_type: StructureType::from_raw(1000298005i32),
26232            p_next: core::ptr::null(),
26233            pool_entry_size: Default::default(),
26234            pool_entry_count: Default::default(),
26235        }
26236    }
26237}
26238///[`VkDeviceObjectReservationCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceObjectReservationCreateInfo.html)
26239/**
26240Provided by **VKSC_VERSION_1_0**.*/
26241///
26242///# Extends
26243///- [`DeviceCreateInfo`]
26244#[repr(C)]
26245#[derive(Copy, Clone, Debug)]
26246#[doc(alias = "VkDeviceObjectReservationCreateInfo")]
26247pub struct DeviceObjectReservationCreateInfo {
26248    ///Must be `VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO`.
26249    pub s_type: StructureType,
26250    ///Optional, may be null.
26251    pub p_next: *const core::ffi::c_void,
26252    ///Length of `p_pipeline_cache_create_infos`.
26253    pub pipeline_cache_create_info_count: u32,
26254    pub p_pipeline_cache_create_infos: *const PipelineCacheCreateInfo,
26255    ///Length of `p_pipeline_pool_sizes`.
26256    pub pipeline_pool_size_count: u32,
26257    pub p_pipeline_pool_sizes: *const PipelinePoolSize,
26258    pub semaphore_request_count: u32,
26259    pub command_buffer_request_count: u32,
26260    pub fence_request_count: u32,
26261    pub device_memory_request_count: u32,
26262    pub buffer_request_count: u32,
26263    pub image_request_count: u32,
26264    pub event_request_count: u32,
26265    pub query_pool_request_count: u32,
26266    pub buffer_view_request_count: u32,
26267    pub image_view_request_count: u32,
26268    pub layered_image_view_request_count: u32,
26269    pub pipeline_cache_request_count: u32,
26270    pub pipeline_layout_request_count: u32,
26271    pub render_pass_request_count: u32,
26272    pub graphics_pipeline_request_count: u32,
26273    pub compute_pipeline_request_count: u32,
26274    pub descriptor_set_layout_request_count: u32,
26275    pub sampler_request_count: u32,
26276    pub descriptor_pool_request_count: u32,
26277    pub descriptor_set_request_count: u32,
26278    pub framebuffer_request_count: u32,
26279    pub command_pool_request_count: u32,
26280    pub sampler_ycbcr_conversion_request_count: u32,
26281    pub surface_request_count: u32,
26282    pub swapchain_request_count: u32,
26283    pub display_mode_request_count: u32,
26284    pub subpass_description_request_count: u32,
26285    pub attachment_description_request_count: u32,
26286    pub descriptor_set_layout_binding_request_count: u32,
26287    pub descriptor_set_layout_binding_limit: u32,
26288    pub max_image_view_mip_levels: u32,
26289    pub max_image_view_array_layers: u32,
26290    pub max_layered_image_view_mip_levels: u32,
26291    pub max_occlusion_queries_per_pool: u32,
26292    pub max_pipeline_statistics_queries_per_pool: u32,
26293    pub max_timestamp_queries_per_pool: u32,
26294    pub max_immutable_samplers_per_descriptor_set_layout: u32,
26295}
26296impl Default for DeviceObjectReservationCreateInfo {
26297    #[inline]
26298    fn default() -> Self {
26299        Self {
26300            s_type: StructureType::from_raw(1000298002i32),
26301            p_next: core::ptr::null(),
26302            pipeline_cache_create_info_count: Default::default(),
26303            p_pipeline_cache_create_infos: core::ptr::null(),
26304            pipeline_pool_size_count: Default::default(),
26305            p_pipeline_pool_sizes: core::ptr::null(),
26306            semaphore_request_count: Default::default(),
26307            command_buffer_request_count: Default::default(),
26308            fence_request_count: Default::default(),
26309            device_memory_request_count: Default::default(),
26310            buffer_request_count: Default::default(),
26311            image_request_count: Default::default(),
26312            event_request_count: Default::default(),
26313            query_pool_request_count: Default::default(),
26314            buffer_view_request_count: Default::default(),
26315            image_view_request_count: Default::default(),
26316            layered_image_view_request_count: Default::default(),
26317            pipeline_cache_request_count: Default::default(),
26318            pipeline_layout_request_count: Default::default(),
26319            render_pass_request_count: Default::default(),
26320            graphics_pipeline_request_count: Default::default(),
26321            compute_pipeline_request_count: Default::default(),
26322            descriptor_set_layout_request_count: Default::default(),
26323            sampler_request_count: Default::default(),
26324            descriptor_pool_request_count: Default::default(),
26325            descriptor_set_request_count: Default::default(),
26326            framebuffer_request_count: Default::default(),
26327            command_pool_request_count: Default::default(),
26328            sampler_ycbcr_conversion_request_count: Default::default(),
26329            surface_request_count: Default::default(),
26330            swapchain_request_count: Default::default(),
26331            display_mode_request_count: Default::default(),
26332            subpass_description_request_count: Default::default(),
26333            attachment_description_request_count: Default::default(),
26334            descriptor_set_layout_binding_request_count: Default::default(),
26335            descriptor_set_layout_binding_limit: Default::default(),
26336            max_image_view_mip_levels: Default::default(),
26337            max_image_view_array_layers: Default::default(),
26338            max_layered_image_view_mip_levels: Default::default(),
26339            max_occlusion_queries_per_pool: Default::default(),
26340            max_pipeline_statistics_queries_per_pool: Default::default(),
26341            max_timestamp_queries_per_pool: Default::default(),
26342            max_immutable_samplers_per_descriptor_set_layout: Default::default(),
26343        }
26344    }
26345}
26346///[`VkCommandPoolMemoryReservationCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandPoolMemoryReservationCreateInfo.html)
26347/**
26348Provided by **VKSC_VERSION_1_0**.*/
26349///
26350///# Extends
26351///- [`CommandPoolCreateInfo`]
26352#[repr(C)]
26353#[derive(Copy, Clone, Debug)]
26354#[doc(alias = "VkCommandPoolMemoryReservationCreateInfo")]
26355pub struct CommandPoolMemoryReservationCreateInfo {
26356    ///Must be `VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO`.
26357    pub s_type: StructureType,
26358    ///Optional, may be null.
26359    pub p_next: *const core::ffi::c_void,
26360    pub command_pool_reserved_size: u64,
26361    pub command_pool_max_command_buffers: u32,
26362}
26363impl Default for CommandPoolMemoryReservationCreateInfo {
26364    #[inline]
26365    fn default() -> Self {
26366        Self {
26367            s_type: StructureType::from_raw(1000298003i32),
26368            p_next: core::ptr::null(),
26369            command_pool_reserved_size: Default::default(),
26370            command_pool_max_command_buffers: Default::default(),
26371        }
26372    }
26373}
26374///[`VkCommandPoolMemoryConsumption`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandPoolMemoryConsumption.html)
26375/**
26376Provided by **VKSC_VERSION_1_0**.*/
26377/**
26378**Returned only**, filled by Vulkan, not constructed by the application.*/
26379#[repr(C)]
26380#[derive(Copy, Clone, Debug)]
26381#[doc(alias = "VkCommandPoolMemoryConsumption")]
26382pub struct CommandPoolMemoryConsumption {
26383    ///Must be `VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION`.
26384    pub s_type: StructureType,
26385    ///Optional, may be null.
26386    pub p_next: *mut core::ffi::c_void,
26387    pub command_pool_allocated: u64,
26388    pub command_pool_reserved_size: u64,
26389    pub command_buffer_allocated: u64,
26390}
26391impl Default for CommandPoolMemoryConsumption {
26392    #[inline]
26393    fn default() -> Self {
26394        Self {
26395            s_type: StructureType::from_raw(1000298004i32),
26396            p_next: core::ptr::null_mut(),
26397            command_pool_allocated: Default::default(),
26398            command_pool_reserved_size: Default::default(),
26399            command_buffer_allocated: Default::default(),
26400        }
26401    }
26402}
26403///[`VkPhysicalDeviceVulkanSC10Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkanSC10Features.html)
26404/**
26405Provided by **VKSC_VERSION_1_0**.*/
26406///
26407///# Extends
26408///- [`PhysicalDeviceFeatures2`]
26409///- [`DeviceCreateInfo`]
26410#[repr(C)]
26411#[derive(Copy, Clone, Debug)]
26412#[doc(alias = "VkPhysicalDeviceVulkanSC10Features")]
26413pub struct PhysicalDeviceVulkanSC10Features {
26414    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES`.
26415    pub s_type: StructureType,
26416    ///Optional, may be null.
26417    pub p_next: *mut core::ffi::c_void,
26418    pub shader_atomic_instructions: u32,
26419}
26420impl Default for PhysicalDeviceVulkanSC10Features {
26421    #[inline]
26422    fn default() -> Self {
26423        Self {
26424            s_type: StructureType::from_raw(1000298000i32),
26425            p_next: core::ptr::null_mut(),
26426            shader_atomic_instructions: Default::default(),
26427        }
26428    }
26429}
26430///[`VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.html)
26431/**
26432Provided by **VK_EXT_primitives_generated_query**.*/
26433///
26434///# Extends
26435///- [`PhysicalDeviceFeatures2`]
26436///- [`DeviceCreateInfo`]
26437#[repr(C)]
26438#[derive(Copy, Clone, Debug)]
26439#[doc(alias = "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT")]
26440pub struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
26441    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT`.
26442    pub s_type: StructureType,
26443    ///Optional, may be null.
26444    pub p_next: *mut core::ffi::c_void,
26445    pub primitives_generated_query: u32,
26446    pub primitives_generated_query_with_rasterizer_discard: u32,
26447    pub primitives_generated_query_with_non_zero_streams: u32,
26448}
26449impl Default for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
26450    #[inline]
26451    fn default() -> Self {
26452        Self {
26453            s_type: StructureType::from_raw(1000382000i32),
26454            p_next: core::ptr::null_mut(),
26455            primitives_generated_query: Default::default(),
26456            primitives_generated_query_with_rasterizer_discard: Default::default(),
26457            primitives_generated_query_with_non_zero_streams: Default::default(),
26458        }
26459    }
26460}
26461///[`VkPhysicalDeviceLegacyDitheringFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLegacyDitheringFeaturesEXT.html)
26462/**
26463Provided by **VK_EXT_legacy_dithering**.*/
26464///
26465///# Extends
26466///- [`PhysicalDeviceFeatures2`]
26467///- [`DeviceCreateInfo`]
26468#[repr(C)]
26469#[derive(Copy, Clone, Debug)]
26470#[doc(alias = "VkPhysicalDeviceLegacyDitheringFeaturesEXT")]
26471pub struct PhysicalDeviceLegacyDitheringFeaturesEXT {
26472    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT`.
26473    pub s_type: StructureType,
26474    ///Optional, may be null.
26475    pub p_next: *mut core::ffi::c_void,
26476    pub legacy_dithering: u32,
26477}
26478impl Default for PhysicalDeviceLegacyDitheringFeaturesEXT {
26479    #[inline]
26480    fn default() -> Self {
26481        Self {
26482            s_type: StructureType::from_raw(1000465000i32),
26483            p_next: core::ptr::null_mut(),
26484            legacy_dithering: Default::default(),
26485        }
26486    }
26487}
26488///[`VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.html)
26489/**
26490Provided by **VK_EXT_multisampled_render_to_single_sampled**.*/
26491///
26492///# Extends
26493///- [`PhysicalDeviceFeatures2`]
26494///- [`DeviceCreateInfo`]
26495#[repr(C)]
26496#[derive(Copy, Clone, Debug)]
26497#[doc(alias = "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT")]
26498pub struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
26499    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT`.
26500    pub s_type: StructureType,
26501    ///Optional, may be null.
26502    pub p_next: *mut core::ffi::c_void,
26503    pub multisampled_render_to_single_sampled: u32,
26504}
26505impl Default for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
26506    #[inline]
26507    fn default() -> Self {
26508        Self {
26509            s_type: StructureType::from_raw(1000376000i32),
26510            p_next: core::ptr::null_mut(),
26511            multisampled_render_to_single_sampled: Default::default(),
26512        }
26513    }
26514}
26515///[`VkSurfaceCapabilitiesPresentId2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesPresentId2KHR.html)
26516/**
26517Provided by **VK_KHR_present_id2**.*/
26518///
26519///# Extends
26520///- [`SurfaceCapabilities2KHR`]
26521#[repr(C)]
26522#[derive(Copy, Clone, Debug)]
26523#[doc(alias = "VkSurfaceCapabilitiesPresentId2KHR")]
26524pub struct SurfaceCapabilitiesPresentId2KHR {
26525    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR`.
26526    pub s_type: StructureType,
26527    ///Optional, may be null.
26528    pub p_next: *mut core::ffi::c_void,
26529    pub present_id2_supported: u32,
26530}
26531impl Default for SurfaceCapabilitiesPresentId2KHR {
26532    #[inline]
26533    fn default() -> Self {
26534        Self {
26535            s_type: StructureType::from_raw(1000479000i32),
26536            p_next: core::ptr::null_mut(),
26537            present_id2_supported: Default::default(),
26538        }
26539    }
26540}
26541///[`VkSurfaceCapabilitiesPresentWait2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesPresentWait2KHR.html)
26542/**
26543Provided by **VK_KHR_present_wait2**.*/
26544///
26545///# Extends
26546///- [`SurfaceCapabilities2KHR`]
26547#[repr(C)]
26548#[derive(Copy, Clone, Debug)]
26549#[doc(alias = "VkSurfaceCapabilitiesPresentWait2KHR")]
26550pub struct SurfaceCapabilitiesPresentWait2KHR {
26551    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR`.
26552    pub s_type: StructureType,
26553    ///Optional, may be null.
26554    pub p_next: *mut core::ffi::c_void,
26555    pub present_wait2_supported: u32,
26556}
26557impl Default for SurfaceCapabilitiesPresentWait2KHR {
26558    #[inline]
26559    fn default() -> Self {
26560        Self {
26561            s_type: StructureType::from_raw(1000480000i32),
26562            p_next: core::ptr::null_mut(),
26563            present_wait2_supported: Default::default(),
26564        }
26565    }
26566}
26567///[`VkSubpassResolvePerformanceQueryEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassResolvePerformanceQueryEXT.html)
26568/**
26569Provided by **VK_EXT_multisampled_render_to_single_sampled**.*/
26570/**
26571**Returned only**, filled by Vulkan, not constructed by the application.*/
26572///
26573///# Extends
26574///- [`FormatProperties2`]
26575#[repr(C)]
26576#[derive(Copy, Clone, Debug)]
26577#[doc(alias = "VkSubpassResolvePerformanceQueryEXT")]
26578pub struct SubpassResolvePerformanceQueryEXT {
26579    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT`.
26580    pub s_type: StructureType,
26581    ///Optional, may be null.
26582    pub p_next: *mut core::ffi::c_void,
26583    pub optimal: u32,
26584}
26585impl Default for SubpassResolvePerformanceQueryEXT {
26586    #[inline]
26587    fn default() -> Self {
26588        Self {
26589            s_type: StructureType::from_raw(1000376001i32),
26590            p_next: core::ptr::null_mut(),
26591            optimal: Default::default(),
26592        }
26593    }
26594}
26595///[`VkMultisampledRenderToSingleSampledInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultisampledRenderToSingleSampledInfoEXT.html)
26596/**
26597Provided by **VK_EXT_multisampled_render_to_single_sampled**.*/
26598///
26599///# Extends
26600///- [`SubpassDescription2`]
26601///- [`RenderingInfo`]
26602#[repr(C)]
26603#[derive(Copy, Clone, Debug)]
26604#[doc(alias = "VkMultisampledRenderToSingleSampledInfoEXT")]
26605pub struct MultisampledRenderToSingleSampledInfoEXT {
26606    ///Must be `VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT`.
26607    pub s_type: StructureType,
26608    ///Optional, may be null.
26609    pub p_next: *const core::ffi::c_void,
26610    pub multisampled_render_to_single_sampled_enable: u32,
26611    pub rasterization_samples: SampleCountFlagBits,
26612}
26613impl Default for MultisampledRenderToSingleSampledInfoEXT {
26614    #[inline]
26615    fn default() -> Self {
26616        Self {
26617            s_type: StructureType::from_raw(1000376002i32),
26618            p_next: core::ptr::null(),
26619            multisampled_render_to_single_sampled_enable: Default::default(),
26620            rasterization_samples: Default::default(),
26621        }
26622    }
26623}
26624///[`VkPhysicalDevicePipelineProtectedAccessFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineProtectedAccessFeatures.html)
26625/**
26626Provided by **VK_COMPUTE_VERSION_1_4**.*/
26627///
26628///# Extends
26629///- [`PhysicalDeviceFeatures2`]
26630///- [`DeviceCreateInfo`]
26631#[repr(C)]
26632#[derive(Copy, Clone, Debug)]
26633#[doc(alias = "VkPhysicalDevicePipelineProtectedAccessFeatures")]
26634pub struct PhysicalDevicePipelineProtectedAccessFeatures {
26635    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES`.
26636    pub s_type: StructureType,
26637    ///Optional, may be null.
26638    pub p_next: *mut core::ffi::c_void,
26639    pub pipeline_protected_access: u32,
26640}
26641impl Default for PhysicalDevicePipelineProtectedAccessFeatures {
26642    #[inline]
26643    fn default() -> Self {
26644        Self {
26645            s_type: StructureType::from_raw(1000466000i32),
26646            p_next: core::ptr::null_mut(),
26647            pipeline_protected_access: Default::default(),
26648        }
26649    }
26650}
26651///[`VkQueueFamilyVideoPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyVideoPropertiesKHR.html)
26652/**
26653Provided by **VK_KHR_video_queue**.*/
26654/**
26655**Returned only**, filled by Vulkan, not constructed by the application.*/
26656///
26657///# Extends
26658///- [`QueueFamilyProperties2`]
26659#[repr(C)]
26660#[derive(Copy, Clone, Debug)]
26661#[doc(alias = "VkQueueFamilyVideoPropertiesKHR")]
26662pub struct QueueFamilyVideoPropertiesKHR {
26663    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR`.
26664    pub s_type: StructureType,
26665    ///Optional, may be null.
26666    pub p_next: *mut core::ffi::c_void,
26667    pub video_codec_operations: VideoCodecOperationFlagsKHR,
26668}
26669impl Default for QueueFamilyVideoPropertiesKHR {
26670    #[inline]
26671    fn default() -> Self {
26672        Self {
26673            s_type: StructureType::from_raw(1000023012i32),
26674            p_next: core::ptr::null_mut(),
26675            video_codec_operations: Default::default(),
26676        }
26677    }
26678}
26679///[`VkQueueFamilyQueryResultStatusPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyQueryResultStatusPropertiesKHR.html)
26680/**
26681Provided by **VK_KHR_video_queue**.*/
26682/**
26683**Returned only**, filled by Vulkan, not constructed by the application.*/
26684///
26685///# Extends
26686///- [`QueueFamilyProperties2`]
26687#[repr(C)]
26688#[derive(Copy, Clone, Debug)]
26689#[doc(alias = "VkQueueFamilyQueryResultStatusPropertiesKHR")]
26690pub struct QueueFamilyQueryResultStatusPropertiesKHR {
26691    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR`.
26692    pub s_type: StructureType,
26693    ///Optional, may be null.
26694    pub p_next: *mut core::ffi::c_void,
26695    pub query_result_status_support: u32,
26696}
26697impl Default for QueueFamilyQueryResultStatusPropertiesKHR {
26698    #[inline]
26699    fn default() -> Self {
26700        Self {
26701            s_type: StructureType::from_raw(1000023016i32),
26702            p_next: core::ptr::null_mut(),
26703            query_result_status_support: Default::default(),
26704        }
26705    }
26706}
26707///[`VkVideoProfileListInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoProfileListInfoKHR.html)
26708/**
26709Provided by **VK_KHR_video_queue**.*/
26710///
26711///# Extends
26712///- [`PhysicalDeviceImageFormatInfo2`]
26713///- [`PhysicalDeviceVideoFormatInfoKHR`]
26714///- [`ImageCreateInfo`]
26715///- [`BufferCreateInfo`]
26716#[repr(C)]
26717#[derive(Copy, Clone, Debug)]
26718#[doc(alias = "VkVideoProfileListInfoKHR")]
26719pub struct VideoProfileListInfoKHR {
26720    ///Must be `VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR`.
26721    pub s_type: StructureType,
26722    ///Optional, may be null.
26723    pub p_next: *const core::ffi::c_void,
26724    ///Length of `p_profiles`.
26725    pub profile_count: u32,
26726    pub p_profiles: *const VideoProfileInfoKHR,
26727}
26728impl Default for VideoProfileListInfoKHR {
26729    #[inline]
26730    fn default() -> Self {
26731        Self {
26732            s_type: StructureType::from_raw(1000023013i32),
26733            p_next: core::ptr::null(),
26734            profile_count: Default::default(),
26735            p_profiles: core::ptr::null(),
26736        }
26737    }
26738}
26739///[`VkPhysicalDeviceVideoFormatInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoFormatInfoKHR.html)
26740/**
26741Provided by **VK_KHR_video_queue**.*/
26742///
26743///# Extended By
26744///- [`VideoProfileListInfoKHR`]
26745#[repr(C)]
26746#[derive(Copy, Clone, Debug)]
26747#[doc(alias = "VkPhysicalDeviceVideoFormatInfoKHR")]
26748pub struct PhysicalDeviceVideoFormatInfoKHR {
26749    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR`.
26750    pub s_type: StructureType,
26751    ///Optional, may be null.
26752    pub p_next: *const core::ffi::c_void,
26753    pub image_usage: ImageUsageFlags,
26754}
26755impl Default for PhysicalDeviceVideoFormatInfoKHR {
26756    #[inline]
26757    fn default() -> Self {
26758        Self {
26759            s_type: StructureType::from_raw(1000023014i32),
26760            p_next: core::ptr::null(),
26761            image_usage: Default::default(),
26762        }
26763    }
26764}
26765///[`VkVideoFormatPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoFormatPropertiesKHR.html)
26766/**
26767Provided by **VK_KHR_video_queue**.*/
26768/**
26769**Returned only**, filled by Vulkan, not constructed by the application.*/
26770///
26771///# Extended By
26772///- [`VideoFormatAV1QuantizationMapPropertiesKHR`]
26773///- [`VideoFormatH265QuantizationMapPropertiesKHR`]
26774///- [`VideoFormatQuantizationMapPropertiesKHR`]
26775#[repr(C)]
26776#[derive(Copy, Clone, Debug)]
26777#[doc(alias = "VkVideoFormatPropertiesKHR")]
26778pub struct VideoFormatPropertiesKHR {
26779    ///Must be `VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR`.
26780    pub s_type: StructureType,
26781    ///Optional, may be null.
26782    pub p_next: *mut core::ffi::c_void,
26783    pub format: Format,
26784    pub component_mapping: ComponentMapping,
26785    pub image_create_flags: ImageCreateFlags,
26786    pub image_type: ImageType,
26787    pub image_tiling: ImageTiling,
26788    pub image_usage_flags: ImageUsageFlags,
26789}
26790impl Default for VideoFormatPropertiesKHR {
26791    #[inline]
26792    fn default() -> Self {
26793        Self {
26794            s_type: StructureType::from_raw(1000023015i32),
26795            p_next: core::ptr::null_mut(),
26796            format: Default::default(),
26797            component_mapping: Default::default(),
26798            image_create_flags: Default::default(),
26799            image_type: Default::default(),
26800            image_tiling: Default::default(),
26801            image_usage_flags: Default::default(),
26802        }
26803    }
26804}
26805///[`VkVideoEncodeQuantizationMapCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQuantizationMapCapabilitiesKHR.html)
26806/**
26807Provided by **VK_KHR_video_encode_quantization_map**.*/
26808/**
26809**Returned only**, filled by Vulkan, not constructed by the application.*/
26810///
26811///# Extends
26812///- [`VideoCapabilitiesKHR`]
26813#[repr(C)]
26814#[derive(Copy, Clone, Debug)]
26815#[doc(alias = "VkVideoEncodeQuantizationMapCapabilitiesKHR")]
26816pub struct VideoEncodeQuantizationMapCapabilitiesKHR {
26817    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR`.
26818    pub s_type: StructureType,
26819    ///Optional, may be null.
26820    pub p_next: *mut core::ffi::c_void,
26821    pub max_quantization_map_extent: Extent2D,
26822}
26823impl Default for VideoEncodeQuantizationMapCapabilitiesKHR {
26824    #[inline]
26825    fn default() -> Self {
26826        Self {
26827            s_type: StructureType::from_raw(1000553000i32),
26828            p_next: core::ptr::null_mut(),
26829            max_quantization_map_extent: Default::default(),
26830        }
26831    }
26832}
26833///[`VkVideoEncodeH264QuantizationMapCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264QuantizationMapCapabilitiesKHR.html)
26834/**
26835Provided by **VK_KHR_video_encode_quantization_map**.*/
26836/**
26837**Returned only**, filled by Vulkan, not constructed by the application.*/
26838///
26839///# Extends
26840///- [`VideoCapabilitiesKHR`]
26841#[repr(C)]
26842#[derive(Copy, Clone, Debug)]
26843#[doc(alias = "VkVideoEncodeH264QuantizationMapCapabilitiesKHR")]
26844pub struct VideoEncodeH264QuantizationMapCapabilitiesKHR {
26845    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR`.
26846    pub s_type: StructureType,
26847    ///Optional, may be null.
26848    pub p_next: *mut core::ffi::c_void,
26849    pub min_qp_delta: i32,
26850    pub max_qp_delta: i32,
26851}
26852impl Default for VideoEncodeH264QuantizationMapCapabilitiesKHR {
26853    #[inline]
26854    fn default() -> Self {
26855        Self {
26856            s_type: StructureType::from_raw(1000553003i32),
26857            p_next: core::ptr::null_mut(),
26858            min_qp_delta: Default::default(),
26859            max_qp_delta: Default::default(),
26860        }
26861    }
26862}
26863///[`VkVideoEncodeH265QuantizationMapCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265QuantizationMapCapabilitiesKHR.html)
26864/**
26865Provided by **VK_KHR_video_encode_quantization_map**.*/
26866/**
26867**Returned only**, filled by Vulkan, not constructed by the application.*/
26868///
26869///# Extends
26870///- [`VideoCapabilitiesKHR`]
26871#[repr(C)]
26872#[derive(Copy, Clone, Debug)]
26873#[doc(alias = "VkVideoEncodeH265QuantizationMapCapabilitiesKHR")]
26874pub struct VideoEncodeH265QuantizationMapCapabilitiesKHR {
26875    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR`.
26876    pub s_type: StructureType,
26877    ///Optional, may be null.
26878    pub p_next: *mut core::ffi::c_void,
26879    pub min_qp_delta: i32,
26880    pub max_qp_delta: i32,
26881}
26882impl Default for VideoEncodeH265QuantizationMapCapabilitiesKHR {
26883    #[inline]
26884    fn default() -> Self {
26885        Self {
26886            s_type: StructureType::from_raw(1000553004i32),
26887            p_next: core::ptr::null_mut(),
26888            min_qp_delta: Default::default(),
26889            max_qp_delta: Default::default(),
26890        }
26891    }
26892}
26893///[`VkVideoEncodeAV1QuantizationMapCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1QuantizationMapCapabilitiesKHR.html)
26894/**
26895Provided by **VK_KHR_video_encode_quantization_map**.*/
26896/**
26897**Returned only**, filled by Vulkan, not constructed by the application.*/
26898///
26899///# Extends
26900///- [`VideoCapabilitiesKHR`]
26901#[repr(C)]
26902#[derive(Copy, Clone, Debug)]
26903#[doc(alias = "VkVideoEncodeAV1QuantizationMapCapabilitiesKHR")]
26904pub struct VideoEncodeAV1QuantizationMapCapabilitiesKHR {
26905    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR`.
26906    pub s_type: StructureType,
26907    ///Optional, may be null.
26908    pub p_next: *mut core::ffi::c_void,
26909    pub min_q_index_delta: i32,
26910    pub max_q_index_delta: i32,
26911}
26912impl Default for VideoEncodeAV1QuantizationMapCapabilitiesKHR {
26913    #[inline]
26914    fn default() -> Self {
26915        Self {
26916            s_type: StructureType::from_raw(1000553007i32),
26917            p_next: core::ptr::null_mut(),
26918            min_q_index_delta: Default::default(),
26919            max_q_index_delta: Default::default(),
26920        }
26921    }
26922}
26923///[`VkVideoFormatQuantizationMapPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoFormatQuantizationMapPropertiesKHR.html)
26924/**
26925Provided by **VK_KHR_video_encode_quantization_map**.*/
26926/**
26927**Returned only**, filled by Vulkan, not constructed by the application.*/
26928///
26929///# Extends
26930///- [`VideoFormatPropertiesKHR`]
26931#[repr(C)]
26932#[derive(Copy, Clone, Debug)]
26933#[doc(alias = "VkVideoFormatQuantizationMapPropertiesKHR")]
26934pub struct VideoFormatQuantizationMapPropertiesKHR {
26935    ///Must be `VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR`.
26936    pub s_type: StructureType,
26937    ///Optional, may be null.
26938    pub p_next: *mut core::ffi::c_void,
26939    pub quantization_map_texel_size: Extent2D,
26940}
26941impl Default for VideoFormatQuantizationMapPropertiesKHR {
26942    #[inline]
26943    fn default() -> Self {
26944        Self {
26945            s_type: StructureType::from_raw(1000553001i32),
26946            p_next: core::ptr::null_mut(),
26947            quantization_map_texel_size: Default::default(),
26948        }
26949    }
26950}
26951///[`VkVideoFormatH265QuantizationMapPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoFormatH265QuantizationMapPropertiesKHR.html)
26952/**
26953Provided by **VK_KHR_video_encode_quantization_map**.*/
26954/**
26955**Returned only**, filled by Vulkan, not constructed by the application.*/
26956///
26957///# Extends
26958///- [`VideoFormatPropertiesKHR`]
26959#[repr(C)]
26960#[derive(Copy, Clone, Debug)]
26961#[doc(alias = "VkVideoFormatH265QuantizationMapPropertiesKHR")]
26962pub struct VideoFormatH265QuantizationMapPropertiesKHR {
26963    ///Must be `VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR`.
26964    pub s_type: StructureType,
26965    ///Optional, may be null.
26966    pub p_next: *mut core::ffi::c_void,
26967    pub compatible_ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR,
26968}
26969impl Default for VideoFormatH265QuantizationMapPropertiesKHR {
26970    #[inline]
26971    fn default() -> Self {
26972        Self {
26973            s_type: StructureType::from_raw(1000553006i32),
26974            p_next: core::ptr::null_mut(),
26975            compatible_ctb_sizes: Default::default(),
26976        }
26977    }
26978}
26979///[`VkVideoFormatAV1QuantizationMapPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoFormatAV1QuantizationMapPropertiesKHR.html)
26980/**
26981Provided by **VK_KHR_video_encode_quantization_map**.*/
26982/**
26983**Returned only**, filled by Vulkan, not constructed by the application.*/
26984///
26985///# Extends
26986///- [`VideoFormatPropertiesKHR`]
26987#[repr(C)]
26988#[derive(Copy, Clone, Debug)]
26989#[doc(alias = "VkVideoFormatAV1QuantizationMapPropertiesKHR")]
26990pub struct VideoFormatAV1QuantizationMapPropertiesKHR {
26991    ///Must be `VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR`.
26992    pub s_type: StructureType,
26993    ///Optional, may be null.
26994    pub p_next: *mut core::ffi::c_void,
26995    pub compatible_superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR,
26996}
26997impl Default for VideoFormatAV1QuantizationMapPropertiesKHR {
26998    #[inline]
26999    fn default() -> Self {
27000        Self {
27001            s_type: StructureType::from_raw(1000553008i32),
27002            p_next: core::ptr::null_mut(),
27003            compatible_superblock_sizes: Default::default(),
27004        }
27005    }
27006}
27007///[`VkVideoProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoProfileInfoKHR.html)
27008/**
27009Provided by **VK_KHR_video_queue**.*/
27010///
27011///# Extends
27012///- [`QueryPoolCreateInfo`]
27013///
27014///# Extended By
27015///- [`VideoDecodeAV1ProfileInfoKHR`]
27016///- [`VideoDecodeH264ProfileInfoKHR`]
27017///- [`VideoDecodeH265ProfileInfoKHR`]
27018///- [`VideoDecodeUsageInfoKHR`]
27019///- [`VideoDecodeVP9ProfileInfoKHR`]
27020///- [`VideoEncodeAV1ProfileInfoKHR`]
27021///- [`VideoEncodeH264ProfileInfoKHR`]
27022///- [`VideoEncodeH265ProfileInfoKHR`]
27023///- [`VideoEncodeProfileRgbConversionInfoVALVE`]
27024///- [`VideoEncodeUsageInfoKHR`]
27025#[repr(C)]
27026#[derive(Copy, Clone, Debug)]
27027#[doc(alias = "VkVideoProfileInfoKHR")]
27028pub struct VideoProfileInfoKHR {
27029    ///Must be `VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR`.
27030    pub s_type: StructureType,
27031    ///Optional, may be null.
27032    pub p_next: *const core::ffi::c_void,
27033    pub video_codec_operation: VideoCodecOperationFlagBitsKHR,
27034    pub chroma_subsampling: VideoChromaSubsamplingFlagsKHR,
27035    pub luma_bit_depth: VideoComponentBitDepthFlagsKHR,
27036    pub chroma_bit_depth: VideoComponentBitDepthFlagsKHR,
27037}
27038impl Default for VideoProfileInfoKHR {
27039    #[inline]
27040    fn default() -> Self {
27041        Self {
27042            s_type: StructureType::from_raw(1000023000i32),
27043            p_next: core::ptr::null(),
27044            video_codec_operation: Default::default(),
27045            chroma_subsampling: Default::default(),
27046            luma_bit_depth: Default::default(),
27047            chroma_bit_depth: Default::default(),
27048        }
27049    }
27050}
27051///[`VkVideoCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoCapabilitiesKHR.html)
27052/**
27053Provided by **VK_KHR_video_queue**.*/
27054/**
27055**Returned only**, filled by Vulkan, not constructed by the application.*/
27056///
27057///# Extended By
27058///- [`VideoDecodeAV1CapabilitiesKHR`]
27059///- [`VideoDecodeCapabilitiesKHR`]
27060///- [`VideoDecodeH264CapabilitiesKHR`]
27061///- [`VideoDecodeH265CapabilitiesKHR`]
27062///- [`VideoDecodeVP9CapabilitiesKHR`]
27063///- [`VideoEncodeAV1CapabilitiesKHR`]
27064///- [`VideoEncodeAV1QuantizationMapCapabilitiesKHR`]
27065///- [`VideoEncodeCapabilitiesKHR`]
27066///- [`VideoEncodeH264CapabilitiesKHR`]
27067///- [`VideoEncodeH264QuantizationMapCapabilitiesKHR`]
27068///- [`VideoEncodeH265CapabilitiesKHR`]
27069///- [`VideoEncodeH265QuantizationMapCapabilitiesKHR`]
27070///- [`VideoEncodeIntraRefreshCapabilitiesKHR`]
27071///- [`VideoEncodeQuantizationMapCapabilitiesKHR`]
27072///- [`VideoEncodeRgbConversionCapabilitiesVALVE`]
27073#[repr(C)]
27074#[derive(Copy, Clone, Debug)]
27075#[doc(alias = "VkVideoCapabilitiesKHR")]
27076pub struct VideoCapabilitiesKHR {
27077    ///Must be `VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR`.
27078    pub s_type: StructureType,
27079    ///Optional, may be null.
27080    pub p_next: *mut core::ffi::c_void,
27081    pub flags: VideoCapabilityFlagsKHR,
27082    pub min_bitstream_buffer_offset_alignment: u64,
27083    pub min_bitstream_buffer_size_alignment: u64,
27084    pub picture_access_granularity: Extent2D,
27085    pub min_coded_extent: Extent2D,
27086    pub max_coded_extent: Extent2D,
27087    pub max_dpb_slots: u32,
27088    pub max_active_reference_pictures: u32,
27089    pub std_header_version: ExtensionProperties,
27090}
27091impl Default for VideoCapabilitiesKHR {
27092    #[inline]
27093    fn default() -> Self {
27094        Self {
27095            s_type: StructureType::from_raw(1000023001i32),
27096            p_next: core::ptr::null_mut(),
27097            flags: Default::default(),
27098            min_bitstream_buffer_offset_alignment: Default::default(),
27099            min_bitstream_buffer_size_alignment: Default::default(),
27100            picture_access_granularity: Default::default(),
27101            min_coded_extent: Default::default(),
27102            max_coded_extent: Default::default(),
27103            max_dpb_slots: Default::default(),
27104            max_active_reference_pictures: Default::default(),
27105            std_header_version: Default::default(),
27106        }
27107    }
27108}
27109///[`VkVideoSessionMemoryRequirementsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoSessionMemoryRequirementsKHR.html)
27110/**
27111Provided by **VK_KHR_video_queue**.*/
27112/**
27113**Returned only**, filled by Vulkan, not constructed by the application.*/
27114#[repr(C)]
27115#[derive(Copy, Clone, Debug)]
27116#[doc(alias = "VkVideoSessionMemoryRequirementsKHR")]
27117pub struct VideoSessionMemoryRequirementsKHR {
27118    ///Must be `VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR`.
27119    pub s_type: StructureType,
27120    ///Optional, may be null.
27121    pub p_next: *mut core::ffi::c_void,
27122    pub memory_bind_index: u32,
27123    pub memory_requirements: MemoryRequirements,
27124}
27125impl Default for VideoSessionMemoryRequirementsKHR {
27126    #[inline]
27127    fn default() -> Self {
27128        Self {
27129            s_type: StructureType::from_raw(1000023003i32),
27130            p_next: core::ptr::null_mut(),
27131            memory_bind_index: Default::default(),
27132            memory_requirements: Default::default(),
27133        }
27134    }
27135}
27136///[`VkBindVideoSessionMemoryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVideoSessionMemoryInfoKHR.html)
27137/**
27138Provided by **VK_KHR_video_queue**.*/
27139#[repr(C)]
27140#[derive(Copy, Clone, Debug)]
27141#[doc(alias = "VkBindVideoSessionMemoryInfoKHR")]
27142pub struct BindVideoSessionMemoryInfoKHR {
27143    ///Must be `VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR`.
27144    pub s_type: StructureType,
27145    ///Optional, may be null.
27146    pub p_next: *const core::ffi::c_void,
27147    pub memory_bind_index: u32,
27148    pub memory: DeviceMemory,
27149    pub memory_offset: u64,
27150    pub memory_size: u64,
27151}
27152impl Default for BindVideoSessionMemoryInfoKHR {
27153    #[inline]
27154    fn default() -> Self {
27155        Self {
27156            s_type: StructureType::from_raw(1000023004i32),
27157            p_next: core::ptr::null(),
27158            memory_bind_index: Default::default(),
27159            memory: Default::default(),
27160            memory_offset: Default::default(),
27161            memory_size: Default::default(),
27162        }
27163    }
27164}
27165///[`VkVideoPictureResourceInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoPictureResourceInfoKHR.html)
27166/**
27167Provided by **VK_KHR_video_queue**.*/
27168#[repr(C)]
27169#[derive(Copy, Clone, Debug)]
27170#[doc(alias = "VkVideoPictureResourceInfoKHR")]
27171pub struct VideoPictureResourceInfoKHR {
27172    ///Must be `VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR`.
27173    pub s_type: StructureType,
27174    ///Optional, may be null.
27175    pub p_next: *const core::ffi::c_void,
27176    pub coded_offset: Offset2D,
27177    pub coded_extent: Extent2D,
27178    pub base_array_layer: u32,
27179    pub image_view_binding: ImageView,
27180}
27181impl Default for VideoPictureResourceInfoKHR {
27182    #[inline]
27183    fn default() -> Self {
27184        Self {
27185            s_type: StructureType::from_raw(1000023002i32),
27186            p_next: core::ptr::null(),
27187            coded_offset: Default::default(),
27188            coded_extent: Default::default(),
27189            base_array_layer: Default::default(),
27190            image_view_binding: Default::default(),
27191        }
27192    }
27193}
27194///[`VkVideoReferenceSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoReferenceSlotInfoKHR.html)
27195/**
27196Provided by **VK_KHR_video_queue**.*/
27197///
27198///# Extended By
27199///- [`VideoDecodeAV1DpbSlotInfoKHR`]
27200///- [`VideoDecodeH264DpbSlotInfoKHR`]
27201///- [`VideoDecodeH265DpbSlotInfoKHR`]
27202///- [`VideoEncodeAV1DpbSlotInfoKHR`]
27203///- [`VideoEncodeH264DpbSlotInfoKHR`]
27204///- [`VideoEncodeH265DpbSlotInfoKHR`]
27205///- [`VideoReferenceIntraRefreshInfoKHR`]
27206#[repr(C)]
27207#[derive(Copy, Clone, Debug)]
27208#[doc(alias = "VkVideoReferenceSlotInfoKHR")]
27209pub struct VideoReferenceSlotInfoKHR {
27210    ///Must be `VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR`.
27211    pub s_type: StructureType,
27212    ///Optional, may be null.
27213    pub p_next: *const core::ffi::c_void,
27214    pub slot_index: i32,
27215    ///Optional, may be null.
27216    pub p_picture_resource: *const VideoPictureResourceInfoKHR,
27217}
27218impl Default for VideoReferenceSlotInfoKHR {
27219    #[inline]
27220    fn default() -> Self {
27221        Self {
27222            s_type: StructureType::from_raw(1000023011i32),
27223            p_next: core::ptr::null(),
27224            slot_index: Default::default(),
27225            p_picture_resource: core::ptr::null(),
27226        }
27227    }
27228}
27229///[`VkVideoDecodeCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeCapabilitiesKHR.html)
27230/**
27231Provided by **VK_KHR_video_decode_queue**.*/
27232/**
27233**Returned only**, filled by Vulkan, not constructed by the application.*/
27234///
27235///# Extends
27236///- [`VideoCapabilitiesKHR`]
27237#[repr(C)]
27238#[derive(Copy, Clone, Debug)]
27239#[doc(alias = "VkVideoDecodeCapabilitiesKHR")]
27240pub struct VideoDecodeCapabilitiesKHR {
27241    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR`.
27242    pub s_type: StructureType,
27243    ///Optional, may be null.
27244    pub p_next: *mut core::ffi::c_void,
27245    pub flags: VideoDecodeCapabilityFlagsKHR,
27246}
27247impl Default for VideoDecodeCapabilitiesKHR {
27248    #[inline]
27249    fn default() -> Self {
27250        Self {
27251            s_type: StructureType::from_raw(1000024001i32),
27252            p_next: core::ptr::null_mut(),
27253            flags: Default::default(),
27254        }
27255    }
27256}
27257///[`VkVideoDecodeUsageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeUsageInfoKHR.html)
27258/**
27259Provided by **VK_KHR_video_decode_queue**.*/
27260///
27261///# Extends
27262///- [`VideoProfileInfoKHR`]
27263///- [`QueryPoolCreateInfo`]
27264#[repr(C)]
27265#[derive(Copy, Clone, Debug)]
27266#[doc(alias = "VkVideoDecodeUsageInfoKHR")]
27267pub struct VideoDecodeUsageInfoKHR {
27268    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR`.
27269    pub s_type: StructureType,
27270    ///Optional, may be null.
27271    pub p_next: *const core::ffi::c_void,
27272    pub video_usage_hints: VideoDecodeUsageFlagsKHR,
27273}
27274impl Default for VideoDecodeUsageInfoKHR {
27275    #[inline]
27276    fn default() -> Self {
27277        Self {
27278            s_type: StructureType::from_raw(1000024002i32),
27279            p_next: core::ptr::null(),
27280            video_usage_hints: Default::default(),
27281        }
27282    }
27283}
27284///[`VkVideoDecodeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeInfoKHR.html)
27285/**
27286Provided by **VK_KHR_video_decode_queue**.*/
27287///
27288///# Extended By
27289///- [`VideoDecodeAV1InlineSessionParametersInfoKHR`]
27290///- [`VideoDecodeAV1PictureInfoKHR`]
27291///- [`VideoDecodeH264InlineSessionParametersInfoKHR`]
27292///- [`VideoDecodeH264PictureInfoKHR`]
27293///- [`VideoDecodeH265InlineSessionParametersInfoKHR`]
27294///- [`VideoDecodeH265PictureInfoKHR`]
27295///- [`VideoDecodeVP9PictureInfoKHR`]
27296///- [`VideoInlineQueryInfoKHR`]
27297#[repr(C)]
27298#[derive(Copy, Clone, Debug)]
27299#[doc(alias = "VkVideoDecodeInfoKHR")]
27300pub struct VideoDecodeInfoKHR {
27301    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR`.
27302    pub s_type: StructureType,
27303    ///Optional, may be null.
27304    pub p_next: *const core::ffi::c_void,
27305    pub flags: VideoDecodeFlagsKHR,
27306    pub src_buffer: Buffer,
27307    pub src_buffer_offset: u64,
27308    pub src_buffer_range: u64,
27309    pub dst_picture_resource: VideoPictureResourceInfoKHR,
27310    ///Optional, may be null.
27311    pub p_setup_reference_slot: *const VideoReferenceSlotInfoKHR,
27312    ///Length of `p_reference_slots`.
27313    pub reference_slot_count: u32,
27314    pub p_reference_slots: *const VideoReferenceSlotInfoKHR,
27315}
27316impl Default for VideoDecodeInfoKHR {
27317    #[inline]
27318    fn default() -> Self {
27319        Self {
27320            s_type: StructureType::from_raw(1000024000i32),
27321            p_next: core::ptr::null(),
27322            flags: Default::default(),
27323            src_buffer: Default::default(),
27324            src_buffer_offset: Default::default(),
27325            src_buffer_range: Default::default(),
27326            dst_picture_resource: Default::default(),
27327            p_setup_reference_slot: core::ptr::null(),
27328            reference_slot_count: Default::default(),
27329            p_reference_slots: core::ptr::null(),
27330        }
27331    }
27332}
27333///[`VkPhysicalDeviceVideoMaintenance1FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoMaintenance1FeaturesKHR.html)
27334/**
27335Provided by **VK_KHR_video_maintenance1**.*/
27336///
27337///# Extends
27338///- [`PhysicalDeviceFeatures2`]
27339///- [`DeviceCreateInfo`]
27340#[repr(C)]
27341#[derive(Copy, Clone, Debug)]
27342#[doc(alias = "VkPhysicalDeviceVideoMaintenance1FeaturesKHR")]
27343pub struct PhysicalDeviceVideoMaintenance1FeaturesKHR {
27344    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR`.
27345    pub s_type: StructureType,
27346    ///Optional, may be null.
27347    pub p_next: *mut core::ffi::c_void,
27348    pub video_maintenance1: u32,
27349}
27350impl Default for PhysicalDeviceVideoMaintenance1FeaturesKHR {
27351    #[inline]
27352    fn default() -> Self {
27353        Self {
27354            s_type: StructureType::from_raw(1000515000i32),
27355            p_next: core::ptr::null_mut(),
27356            video_maintenance1: Default::default(),
27357        }
27358    }
27359}
27360///[`VkPhysicalDeviceVideoMaintenance2FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoMaintenance2FeaturesKHR.html)
27361/**
27362Provided by **VK_KHR_video_maintenance2**.*/
27363///
27364///# Extends
27365///- [`PhysicalDeviceFeatures2`]
27366///- [`DeviceCreateInfo`]
27367#[repr(C)]
27368#[derive(Copy, Clone, Debug)]
27369#[doc(alias = "VkPhysicalDeviceVideoMaintenance2FeaturesKHR")]
27370pub struct PhysicalDeviceVideoMaintenance2FeaturesKHR {
27371    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR`.
27372    pub s_type: StructureType,
27373    ///Optional, may be null.
27374    pub p_next: *mut core::ffi::c_void,
27375    pub video_maintenance2: u32,
27376}
27377impl Default for PhysicalDeviceVideoMaintenance2FeaturesKHR {
27378    #[inline]
27379    fn default() -> Self {
27380        Self {
27381            s_type: StructureType::from_raw(1000586000i32),
27382            p_next: core::ptr::null_mut(),
27383            video_maintenance2: Default::default(),
27384        }
27385    }
27386}
27387///[`VkVideoInlineQueryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoInlineQueryInfoKHR.html)
27388/**
27389Provided by **VK_KHR_video_maintenance1**.*/
27390///
27391///# Extends
27392///- [`VideoDecodeInfoKHR`]
27393///- [`VideoEncodeInfoKHR`]
27394#[repr(C)]
27395#[derive(Copy, Clone, Debug)]
27396#[doc(alias = "VkVideoInlineQueryInfoKHR")]
27397pub struct VideoInlineQueryInfoKHR {
27398    ///Must be `VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR`.
27399    pub s_type: StructureType,
27400    ///Optional, may be null.
27401    pub p_next: *const core::ffi::c_void,
27402    pub query_pool: QueryPool,
27403    pub first_query: u32,
27404    pub query_count: u32,
27405}
27406impl Default for VideoInlineQueryInfoKHR {
27407    #[inline]
27408    fn default() -> Self {
27409        Self {
27410            s_type: StructureType::from_raw(1000515001i32),
27411            p_next: core::ptr::null(),
27412            query_pool: Default::default(),
27413            first_query: Default::default(),
27414            query_count: Default::default(),
27415        }
27416    }
27417}
27418///[`VkVideoDecodeH264ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264ProfileInfoKHR.html)
27419/**
27420Provided by **VK_KHR_video_decode_h264**.*/
27421///
27422///# Extends
27423///- [`VideoProfileInfoKHR`]
27424///- [`QueryPoolCreateInfo`]
27425#[repr(C)]
27426#[derive(Copy, Clone, Debug)]
27427#[doc(alias = "VkVideoDecodeH264ProfileInfoKHR")]
27428pub struct VideoDecodeH264ProfileInfoKHR {
27429    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR`.
27430    pub s_type: StructureType,
27431    ///Optional, may be null.
27432    pub p_next: *const core::ffi::c_void,
27433    pub std_profile_idc: StdVideoH264ProfileIdc,
27434    pub picture_layout: VideoDecodeH264PictureLayoutFlagBitsKHR,
27435}
27436impl Default for VideoDecodeH264ProfileInfoKHR {
27437    #[inline]
27438    fn default() -> Self {
27439        Self {
27440            s_type: StructureType::from_raw(1000040003i32),
27441            p_next: core::ptr::null(),
27442            std_profile_idc: Default::default(),
27443            picture_layout: Default::default(),
27444        }
27445    }
27446}
27447///[`VkVideoDecodeH264CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264CapabilitiesKHR.html)
27448/**
27449Provided by **VK_KHR_video_decode_h264**.*/
27450/**
27451**Returned only**, filled by Vulkan, not constructed by the application.*/
27452///
27453///# Extends
27454///- [`VideoCapabilitiesKHR`]
27455#[repr(C)]
27456#[derive(Copy, Clone, Debug)]
27457#[doc(alias = "VkVideoDecodeH264CapabilitiesKHR")]
27458pub struct VideoDecodeH264CapabilitiesKHR {
27459    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR`.
27460    pub s_type: StructureType,
27461    ///Optional, may be null.
27462    pub p_next: *mut core::ffi::c_void,
27463    pub max_level_idc: StdVideoH264LevelIdc,
27464    pub field_offset_granularity: Offset2D,
27465}
27466impl Default for VideoDecodeH264CapabilitiesKHR {
27467    #[inline]
27468    fn default() -> Self {
27469        Self {
27470            s_type: StructureType::from_raw(1000040000i32),
27471            p_next: core::ptr::null_mut(),
27472            max_level_idc: Default::default(),
27473            field_offset_granularity: Default::default(),
27474        }
27475    }
27476}
27477///[`VkVideoDecodeH264SessionParametersAddInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264SessionParametersAddInfoKHR.html)
27478/**
27479Provided by **VK_KHR_video_decode_h264**.*/
27480///
27481///# Extends
27482///- [`VideoSessionParametersUpdateInfoKHR`]
27483#[repr(C)]
27484#[derive(Copy, Clone, Debug)]
27485#[doc(alias = "VkVideoDecodeH264SessionParametersAddInfoKHR")]
27486pub struct VideoDecodeH264SessionParametersAddInfoKHR {
27487    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR`.
27488    pub s_type: StructureType,
27489    ///Optional, may be null.
27490    pub p_next: *const core::ffi::c_void,
27491    ///Length of `p_std_sp_ss`.
27492    pub std_sps_count: u32,
27493    pub p_std_sp_ss: *const StdVideoH264SequenceParameterSet,
27494    ///Length of `p_std_pp_ss`.
27495    pub std_pps_count: u32,
27496    pub p_std_pp_ss: *const StdVideoH264PictureParameterSet,
27497}
27498impl Default for VideoDecodeH264SessionParametersAddInfoKHR {
27499    #[inline]
27500    fn default() -> Self {
27501        Self {
27502            s_type: StructureType::from_raw(1000040005i32),
27503            p_next: core::ptr::null(),
27504            std_sps_count: Default::default(),
27505            p_std_sp_ss: core::ptr::null(),
27506            std_pps_count: Default::default(),
27507            p_std_pp_ss: core::ptr::null(),
27508        }
27509    }
27510}
27511///[`VkVideoDecodeH264SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264SessionParametersCreateInfoKHR.html)
27512/**
27513Provided by **VK_KHR_video_decode_h264**.*/
27514///
27515///# Extends
27516///- [`VideoSessionParametersCreateInfoKHR`]
27517#[repr(C)]
27518#[derive(Copy, Clone, Debug)]
27519#[doc(alias = "VkVideoDecodeH264SessionParametersCreateInfoKHR")]
27520pub struct VideoDecodeH264SessionParametersCreateInfoKHR {
27521    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR`.
27522    pub s_type: StructureType,
27523    ///Optional, may be null.
27524    pub p_next: *const core::ffi::c_void,
27525    pub max_std_sps_count: u32,
27526    pub max_std_pps_count: u32,
27527    ///Optional, may be null.
27528    pub p_parameters_add_info: *const VideoDecodeH264SessionParametersAddInfoKHR,
27529}
27530impl Default for VideoDecodeH264SessionParametersCreateInfoKHR {
27531    #[inline]
27532    fn default() -> Self {
27533        Self {
27534            s_type: StructureType::from_raw(1000040004i32),
27535            p_next: core::ptr::null(),
27536            max_std_sps_count: Default::default(),
27537            max_std_pps_count: Default::default(),
27538            p_parameters_add_info: core::ptr::null(),
27539        }
27540    }
27541}
27542///[`VkVideoDecodeH264InlineSessionParametersInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264InlineSessionParametersInfoKHR.html)
27543/**
27544Provided by **VK_KHR_video_maintenance2**.*/
27545///
27546///# Extends
27547///- [`VideoDecodeInfoKHR`]
27548#[repr(C)]
27549#[derive(Copy, Clone, Debug)]
27550#[doc(alias = "VkVideoDecodeH264InlineSessionParametersInfoKHR")]
27551pub struct VideoDecodeH264InlineSessionParametersInfoKHR {
27552    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR`.
27553    pub s_type: StructureType,
27554    ///Optional, may be null.
27555    pub p_next: *const core::ffi::c_void,
27556    ///Optional, may be null.
27557    pub p_std_sps: *const StdVideoH264SequenceParameterSet,
27558    ///Optional, may be null.
27559    pub p_std_pps: *const StdVideoH264PictureParameterSet,
27560}
27561impl Default for VideoDecodeH264InlineSessionParametersInfoKHR {
27562    #[inline]
27563    fn default() -> Self {
27564        Self {
27565            s_type: StructureType::from_raw(1000586001i32),
27566            p_next: core::ptr::null(),
27567            p_std_sps: core::ptr::null(),
27568            p_std_pps: core::ptr::null(),
27569        }
27570    }
27571}
27572///[`VkVideoDecodeH264PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264PictureInfoKHR.html)
27573/**
27574Provided by **VK_KHR_video_decode_h264**.*/
27575///
27576///# Extends
27577///- [`VideoDecodeInfoKHR`]
27578#[repr(C)]
27579#[derive(Copy, Clone, Debug)]
27580#[doc(alias = "VkVideoDecodeH264PictureInfoKHR")]
27581pub struct VideoDecodeH264PictureInfoKHR {
27582    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR`.
27583    pub s_type: StructureType,
27584    ///Optional, may be null.
27585    pub p_next: *const core::ffi::c_void,
27586    pub p_std_picture_info: *const StdVideoDecodeH264PictureInfo,
27587    ///Length of `p_slice_offsets`.
27588    pub slice_count: u32,
27589    pub p_slice_offsets: *const u32,
27590}
27591impl Default for VideoDecodeH264PictureInfoKHR {
27592    #[inline]
27593    fn default() -> Self {
27594        Self {
27595            s_type: StructureType::from_raw(1000040001i32),
27596            p_next: core::ptr::null(),
27597            p_std_picture_info: core::ptr::null(),
27598            slice_count: Default::default(),
27599            p_slice_offsets: core::ptr::null(),
27600        }
27601    }
27602}
27603///[`VkVideoDecodeH264DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264DpbSlotInfoKHR.html)
27604/**
27605Provided by **VK_KHR_video_decode_h264**.*/
27606///
27607///# Extends
27608///- [`VideoReferenceSlotInfoKHR`]
27609#[repr(C)]
27610#[derive(Copy, Clone, Debug)]
27611#[doc(alias = "VkVideoDecodeH264DpbSlotInfoKHR")]
27612pub struct VideoDecodeH264DpbSlotInfoKHR {
27613    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR`.
27614    pub s_type: StructureType,
27615    ///Optional, may be null.
27616    pub p_next: *const core::ffi::c_void,
27617    pub p_std_reference_info: *const StdVideoDecodeH264ReferenceInfo,
27618}
27619impl Default for VideoDecodeH264DpbSlotInfoKHR {
27620    #[inline]
27621    fn default() -> Self {
27622        Self {
27623            s_type: StructureType::from_raw(1000040006i32),
27624            p_next: core::ptr::null(),
27625            p_std_reference_info: core::ptr::null(),
27626        }
27627    }
27628}
27629///[`VkVideoDecodeH265ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265ProfileInfoKHR.html)
27630/**
27631Provided by **VK_KHR_video_decode_h265**.*/
27632///
27633///# Extends
27634///- [`VideoProfileInfoKHR`]
27635///- [`QueryPoolCreateInfo`]
27636#[repr(C)]
27637#[derive(Copy, Clone, Debug)]
27638#[doc(alias = "VkVideoDecodeH265ProfileInfoKHR")]
27639pub struct VideoDecodeH265ProfileInfoKHR {
27640    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR`.
27641    pub s_type: StructureType,
27642    ///Optional, may be null.
27643    pub p_next: *const core::ffi::c_void,
27644    pub std_profile_idc: StdVideoH265ProfileIdc,
27645}
27646impl Default for VideoDecodeH265ProfileInfoKHR {
27647    #[inline]
27648    fn default() -> Self {
27649        Self {
27650            s_type: StructureType::from_raw(1000187003i32),
27651            p_next: core::ptr::null(),
27652            std_profile_idc: Default::default(),
27653        }
27654    }
27655}
27656///[`VkVideoDecodeH265CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265CapabilitiesKHR.html)
27657/**
27658Provided by **VK_KHR_video_decode_h265**.*/
27659/**
27660**Returned only**, filled by Vulkan, not constructed by the application.*/
27661///
27662///# Extends
27663///- [`VideoCapabilitiesKHR`]
27664#[repr(C)]
27665#[derive(Copy, Clone, Debug)]
27666#[doc(alias = "VkVideoDecodeH265CapabilitiesKHR")]
27667pub struct VideoDecodeH265CapabilitiesKHR {
27668    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR`.
27669    pub s_type: StructureType,
27670    ///Optional, may be null.
27671    pub p_next: *mut core::ffi::c_void,
27672    pub max_level_idc: StdVideoH265LevelIdc,
27673}
27674impl Default for VideoDecodeH265CapabilitiesKHR {
27675    #[inline]
27676    fn default() -> Self {
27677        Self {
27678            s_type: StructureType::from_raw(1000187000i32),
27679            p_next: core::ptr::null_mut(),
27680            max_level_idc: Default::default(),
27681        }
27682    }
27683}
27684///[`VkVideoDecodeH265SessionParametersAddInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265SessionParametersAddInfoKHR.html)
27685/**
27686Provided by **VK_KHR_video_decode_h265**.*/
27687///
27688///# Extends
27689///- [`VideoSessionParametersUpdateInfoKHR`]
27690#[repr(C)]
27691#[derive(Copy, Clone, Debug)]
27692#[doc(alias = "VkVideoDecodeH265SessionParametersAddInfoKHR")]
27693pub struct VideoDecodeH265SessionParametersAddInfoKHR {
27694    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR`.
27695    pub s_type: StructureType,
27696    ///Optional, may be null.
27697    pub p_next: *const core::ffi::c_void,
27698    ///Length of `p_std_vp_ss`.
27699    pub std_vps_count: u32,
27700    pub p_std_vp_ss: *const StdVideoH265VideoParameterSet,
27701    ///Length of `p_std_sp_ss`.
27702    pub std_sps_count: u32,
27703    pub p_std_sp_ss: *const StdVideoH265SequenceParameterSet,
27704    ///Length of `p_std_pp_ss`.
27705    pub std_pps_count: u32,
27706    pub p_std_pp_ss: *const StdVideoH265PictureParameterSet,
27707}
27708impl Default for VideoDecodeH265SessionParametersAddInfoKHR {
27709    #[inline]
27710    fn default() -> Self {
27711        Self {
27712            s_type: StructureType::from_raw(1000187002i32),
27713            p_next: core::ptr::null(),
27714            std_vps_count: Default::default(),
27715            p_std_vp_ss: core::ptr::null(),
27716            std_sps_count: Default::default(),
27717            p_std_sp_ss: core::ptr::null(),
27718            std_pps_count: Default::default(),
27719            p_std_pp_ss: core::ptr::null(),
27720        }
27721    }
27722}
27723///[`VkVideoDecodeH265SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265SessionParametersCreateInfoKHR.html)
27724/**
27725Provided by **VK_KHR_video_decode_h265**.*/
27726///
27727///# Extends
27728///- [`VideoSessionParametersCreateInfoKHR`]
27729#[repr(C)]
27730#[derive(Copy, Clone, Debug)]
27731#[doc(alias = "VkVideoDecodeH265SessionParametersCreateInfoKHR")]
27732pub struct VideoDecodeH265SessionParametersCreateInfoKHR {
27733    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR`.
27734    pub s_type: StructureType,
27735    ///Optional, may be null.
27736    pub p_next: *const core::ffi::c_void,
27737    pub max_std_vps_count: u32,
27738    pub max_std_sps_count: u32,
27739    pub max_std_pps_count: u32,
27740    ///Optional, may be null.
27741    pub p_parameters_add_info: *const VideoDecodeH265SessionParametersAddInfoKHR,
27742}
27743impl Default for VideoDecodeH265SessionParametersCreateInfoKHR {
27744    #[inline]
27745    fn default() -> Self {
27746        Self {
27747            s_type: StructureType::from_raw(1000187001i32),
27748            p_next: core::ptr::null(),
27749            max_std_vps_count: Default::default(),
27750            max_std_sps_count: Default::default(),
27751            max_std_pps_count: Default::default(),
27752            p_parameters_add_info: core::ptr::null(),
27753        }
27754    }
27755}
27756///[`VkVideoDecodeH265InlineSessionParametersInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265InlineSessionParametersInfoKHR.html)
27757/**
27758Provided by **VK_KHR_video_maintenance2**.*/
27759///
27760///# Extends
27761///- [`VideoDecodeInfoKHR`]
27762#[repr(C)]
27763#[derive(Copy, Clone, Debug)]
27764#[doc(alias = "VkVideoDecodeH265InlineSessionParametersInfoKHR")]
27765pub struct VideoDecodeH265InlineSessionParametersInfoKHR {
27766    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR`.
27767    pub s_type: StructureType,
27768    ///Optional, may be null.
27769    pub p_next: *const core::ffi::c_void,
27770    ///Optional, may be null.
27771    pub p_std_vps: *const StdVideoH265VideoParameterSet,
27772    ///Optional, may be null.
27773    pub p_std_sps: *const StdVideoH265SequenceParameterSet,
27774    ///Optional, may be null.
27775    pub p_std_pps: *const StdVideoH265PictureParameterSet,
27776}
27777impl Default for VideoDecodeH265InlineSessionParametersInfoKHR {
27778    #[inline]
27779    fn default() -> Self {
27780        Self {
27781            s_type: StructureType::from_raw(1000586002i32),
27782            p_next: core::ptr::null(),
27783            p_std_vps: core::ptr::null(),
27784            p_std_sps: core::ptr::null(),
27785            p_std_pps: core::ptr::null(),
27786        }
27787    }
27788}
27789///[`VkVideoDecodeH265PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265PictureInfoKHR.html)
27790/**
27791Provided by **VK_KHR_video_decode_h265**.*/
27792///
27793///# Extends
27794///- [`VideoDecodeInfoKHR`]
27795#[repr(C)]
27796#[derive(Copy, Clone, Debug)]
27797#[doc(alias = "VkVideoDecodeH265PictureInfoKHR")]
27798pub struct VideoDecodeH265PictureInfoKHR {
27799    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR`.
27800    pub s_type: StructureType,
27801    ///Optional, may be null.
27802    pub p_next: *const core::ffi::c_void,
27803    pub p_std_picture_info: *const StdVideoDecodeH265PictureInfo,
27804    ///Length of `p_slice_segment_offsets`.
27805    pub slice_segment_count: u32,
27806    pub p_slice_segment_offsets: *const u32,
27807}
27808impl Default for VideoDecodeH265PictureInfoKHR {
27809    #[inline]
27810    fn default() -> Self {
27811        Self {
27812            s_type: StructureType::from_raw(1000187004i32),
27813            p_next: core::ptr::null(),
27814            p_std_picture_info: core::ptr::null(),
27815            slice_segment_count: Default::default(),
27816            p_slice_segment_offsets: core::ptr::null(),
27817        }
27818    }
27819}
27820///[`VkVideoDecodeH265DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265DpbSlotInfoKHR.html)
27821/**
27822Provided by **VK_KHR_video_decode_h265**.*/
27823///
27824///# Extends
27825///- [`VideoReferenceSlotInfoKHR`]
27826#[repr(C)]
27827#[derive(Copy, Clone, Debug)]
27828#[doc(alias = "VkVideoDecodeH265DpbSlotInfoKHR")]
27829pub struct VideoDecodeH265DpbSlotInfoKHR {
27830    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR`.
27831    pub s_type: StructureType,
27832    ///Optional, may be null.
27833    pub p_next: *const core::ffi::c_void,
27834    pub p_std_reference_info: *const StdVideoDecodeH265ReferenceInfo,
27835}
27836impl Default for VideoDecodeH265DpbSlotInfoKHR {
27837    #[inline]
27838    fn default() -> Self {
27839        Self {
27840            s_type: StructureType::from_raw(1000187005i32),
27841            p_next: core::ptr::null(),
27842            p_std_reference_info: core::ptr::null(),
27843        }
27844    }
27845}
27846///[`VkPhysicalDeviceVideoDecodeVP9FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoDecodeVP9FeaturesKHR.html)
27847/**
27848Provided by **VK_KHR_video_decode_vp9**.*/
27849///
27850///# Extends
27851///- [`PhysicalDeviceFeatures2`]
27852///- [`DeviceCreateInfo`]
27853#[repr(C)]
27854#[derive(Copy, Clone, Debug)]
27855#[doc(alias = "VkPhysicalDeviceVideoDecodeVP9FeaturesKHR")]
27856pub struct PhysicalDeviceVideoDecodeVP9FeaturesKHR {
27857    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR`.
27858    pub s_type: StructureType,
27859    ///Optional, may be null.
27860    pub p_next: *mut core::ffi::c_void,
27861    pub video_decode_vp9: u32,
27862}
27863impl Default for PhysicalDeviceVideoDecodeVP9FeaturesKHR {
27864    #[inline]
27865    fn default() -> Self {
27866        Self {
27867            s_type: StructureType::from_raw(1000514000i32),
27868            p_next: core::ptr::null_mut(),
27869            video_decode_vp9: Default::default(),
27870        }
27871    }
27872}
27873///[`VkVideoDecodeVP9ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9ProfileInfoKHR.html)
27874/**
27875Provided by **VK_KHR_video_decode_vp9**.*/
27876///
27877///# Extends
27878///- [`VideoProfileInfoKHR`]
27879///- [`QueryPoolCreateInfo`]
27880#[repr(C)]
27881#[derive(Copy, Clone, Debug)]
27882#[doc(alias = "VkVideoDecodeVP9ProfileInfoKHR")]
27883pub struct VideoDecodeVP9ProfileInfoKHR {
27884    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR`.
27885    pub s_type: StructureType,
27886    ///Optional, may be null.
27887    pub p_next: *const core::ffi::c_void,
27888    pub std_profile: StdVideoVP9Profile,
27889}
27890impl Default for VideoDecodeVP9ProfileInfoKHR {
27891    #[inline]
27892    fn default() -> Self {
27893        Self {
27894            s_type: StructureType::from_raw(1000514003i32),
27895            p_next: core::ptr::null(),
27896            std_profile: Default::default(),
27897        }
27898    }
27899}
27900///[`VkVideoDecodeVP9CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9CapabilitiesKHR.html)
27901/**
27902Provided by **VK_KHR_video_decode_vp9**.*/
27903/**
27904**Returned only**, filled by Vulkan, not constructed by the application.*/
27905///
27906///# Extends
27907///- [`VideoCapabilitiesKHR`]
27908#[repr(C)]
27909#[derive(Copy, Clone, Debug)]
27910#[doc(alias = "VkVideoDecodeVP9CapabilitiesKHR")]
27911pub struct VideoDecodeVP9CapabilitiesKHR {
27912    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR`.
27913    pub s_type: StructureType,
27914    ///Optional, may be null.
27915    pub p_next: *mut core::ffi::c_void,
27916    pub max_level: StdVideoVP9Level,
27917}
27918impl Default for VideoDecodeVP9CapabilitiesKHR {
27919    #[inline]
27920    fn default() -> Self {
27921        Self {
27922            s_type: StructureType::from_raw(1000514001i32),
27923            p_next: core::ptr::null_mut(),
27924            max_level: Default::default(),
27925        }
27926    }
27927}
27928///[`VkVideoDecodeVP9PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9PictureInfoKHR.html)
27929/**
27930Provided by **VK_KHR_video_decode_vp9**.*/
27931///
27932///# Extends
27933///- [`VideoDecodeInfoKHR`]
27934#[repr(C)]
27935#[derive(Copy, Clone, Debug)]
27936#[doc(alias = "VkVideoDecodeVP9PictureInfoKHR")]
27937pub struct VideoDecodeVP9PictureInfoKHR {
27938    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR`.
27939    pub s_type: StructureType,
27940    ///Optional, may be null.
27941    pub p_next: *const core::ffi::c_void,
27942    pub p_std_picture_info: *const StdVideoDecodeVP9PictureInfo,
27943    pub reference_name_slot_indices: [i32; MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR
27944        as usize],
27945    pub uncompressed_header_offset: u32,
27946    pub compressed_header_offset: u32,
27947    pub tiles_offset: u32,
27948}
27949impl Default for VideoDecodeVP9PictureInfoKHR {
27950    #[inline]
27951    fn default() -> Self {
27952        Self {
27953            s_type: StructureType::from_raw(1000514002i32),
27954            p_next: core::ptr::null(),
27955            p_std_picture_info: core::ptr::null(),
27956            reference_name_slot_indices: unsafe { core::mem::zeroed() },
27957            uncompressed_header_offset: Default::default(),
27958            compressed_header_offset: Default::default(),
27959            tiles_offset: Default::default(),
27960        }
27961    }
27962}
27963///[`VkVideoDecodeAV1ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1ProfileInfoKHR.html)
27964/**
27965Provided by **VK_KHR_video_decode_av1**.*/
27966///
27967///# Extends
27968///- [`VideoProfileInfoKHR`]
27969///- [`QueryPoolCreateInfo`]
27970#[repr(C)]
27971#[derive(Copy, Clone, Debug)]
27972#[doc(alias = "VkVideoDecodeAV1ProfileInfoKHR")]
27973pub struct VideoDecodeAV1ProfileInfoKHR {
27974    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR`.
27975    pub s_type: StructureType,
27976    ///Optional, may be null.
27977    pub p_next: *const core::ffi::c_void,
27978    pub std_profile: StdVideoAV1Profile,
27979    pub film_grain_support: u32,
27980}
27981impl Default for VideoDecodeAV1ProfileInfoKHR {
27982    #[inline]
27983    fn default() -> Self {
27984        Self {
27985            s_type: StructureType::from_raw(1000512003i32),
27986            p_next: core::ptr::null(),
27987            std_profile: Default::default(),
27988            film_grain_support: Default::default(),
27989        }
27990    }
27991}
27992///[`VkVideoDecodeAV1CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1CapabilitiesKHR.html)
27993/**
27994Provided by **VK_KHR_video_decode_av1**.*/
27995/**
27996**Returned only**, filled by Vulkan, not constructed by the application.*/
27997///
27998///# Extends
27999///- [`VideoCapabilitiesKHR`]
28000#[repr(C)]
28001#[derive(Copy, Clone, Debug)]
28002#[doc(alias = "VkVideoDecodeAV1CapabilitiesKHR")]
28003pub struct VideoDecodeAV1CapabilitiesKHR {
28004    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR`.
28005    pub s_type: StructureType,
28006    ///Optional, may be null.
28007    pub p_next: *mut core::ffi::c_void,
28008    pub max_level: StdVideoAV1Level,
28009}
28010impl Default for VideoDecodeAV1CapabilitiesKHR {
28011    #[inline]
28012    fn default() -> Self {
28013        Self {
28014            s_type: StructureType::from_raw(1000512000i32),
28015            p_next: core::ptr::null_mut(),
28016            max_level: Default::default(),
28017        }
28018    }
28019}
28020///[`VkVideoDecodeAV1SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1SessionParametersCreateInfoKHR.html)
28021/**
28022Provided by **VK_KHR_video_decode_av1**.*/
28023///
28024///# Extends
28025///- [`VideoSessionParametersCreateInfoKHR`]
28026#[repr(C)]
28027#[derive(Copy, Clone, Debug)]
28028#[doc(alias = "VkVideoDecodeAV1SessionParametersCreateInfoKHR")]
28029pub struct VideoDecodeAV1SessionParametersCreateInfoKHR {
28030    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR`.
28031    pub s_type: StructureType,
28032    ///Optional, may be null.
28033    pub p_next: *const core::ffi::c_void,
28034    pub p_std_sequence_header: *const StdVideoAV1SequenceHeader,
28035}
28036impl Default for VideoDecodeAV1SessionParametersCreateInfoKHR {
28037    #[inline]
28038    fn default() -> Self {
28039        Self {
28040            s_type: StructureType::from_raw(1000512004i32),
28041            p_next: core::ptr::null(),
28042            p_std_sequence_header: core::ptr::null(),
28043        }
28044    }
28045}
28046///[`VkVideoDecodeAV1InlineSessionParametersInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1InlineSessionParametersInfoKHR.html)
28047/**
28048Provided by **VK_KHR_video_maintenance2**.*/
28049///
28050///# Extends
28051///- [`VideoDecodeInfoKHR`]
28052#[repr(C)]
28053#[derive(Copy, Clone, Debug)]
28054#[doc(alias = "VkVideoDecodeAV1InlineSessionParametersInfoKHR")]
28055pub struct VideoDecodeAV1InlineSessionParametersInfoKHR {
28056    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR`.
28057    pub s_type: StructureType,
28058    ///Optional, may be null.
28059    pub p_next: *const core::ffi::c_void,
28060    ///Optional, may be null.
28061    pub p_std_sequence_header: *const StdVideoAV1SequenceHeader,
28062}
28063impl Default for VideoDecodeAV1InlineSessionParametersInfoKHR {
28064    #[inline]
28065    fn default() -> Self {
28066        Self {
28067            s_type: StructureType::from_raw(1000586003i32),
28068            p_next: core::ptr::null(),
28069            p_std_sequence_header: core::ptr::null(),
28070        }
28071    }
28072}
28073///[`VkVideoDecodeAV1PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1PictureInfoKHR.html)
28074/**
28075Provided by **VK_KHR_video_decode_av1**.*/
28076///
28077///# Extends
28078///- [`VideoDecodeInfoKHR`]
28079#[repr(C)]
28080#[derive(Copy, Clone, Debug)]
28081#[doc(alias = "VkVideoDecodeAV1PictureInfoKHR")]
28082pub struct VideoDecodeAV1PictureInfoKHR {
28083    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR`.
28084    pub s_type: StructureType,
28085    ///Optional, may be null.
28086    pub p_next: *const core::ffi::c_void,
28087    pub p_std_picture_info: *const StdVideoDecodeAV1PictureInfo,
28088    pub reference_name_slot_indices: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR
28089        as usize],
28090    pub frame_header_offset: u32,
28091    ///Length of `p_tile_sizes`.
28092    pub tile_count: u32,
28093    pub p_tile_offsets: *const u32,
28094    pub p_tile_sizes: *const u32,
28095}
28096impl Default for VideoDecodeAV1PictureInfoKHR {
28097    #[inline]
28098    fn default() -> Self {
28099        Self {
28100            s_type: StructureType::from_raw(1000512001i32),
28101            p_next: core::ptr::null(),
28102            p_std_picture_info: core::ptr::null(),
28103            reference_name_slot_indices: unsafe { core::mem::zeroed() },
28104            frame_header_offset: Default::default(),
28105            tile_count: Default::default(),
28106            p_tile_offsets: core::ptr::null(),
28107            p_tile_sizes: core::ptr::null(),
28108        }
28109    }
28110}
28111///[`VkVideoDecodeAV1DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1DpbSlotInfoKHR.html)
28112/**
28113Provided by **VK_KHR_video_decode_av1**.*/
28114///
28115///# Extends
28116///- [`VideoReferenceSlotInfoKHR`]
28117#[repr(C)]
28118#[derive(Copy, Clone, Debug)]
28119#[doc(alias = "VkVideoDecodeAV1DpbSlotInfoKHR")]
28120pub struct VideoDecodeAV1DpbSlotInfoKHR {
28121    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR`.
28122    pub s_type: StructureType,
28123    ///Optional, may be null.
28124    pub p_next: *const core::ffi::c_void,
28125    pub p_std_reference_info: *const StdVideoDecodeAV1ReferenceInfo,
28126}
28127impl Default for VideoDecodeAV1DpbSlotInfoKHR {
28128    #[inline]
28129    fn default() -> Self {
28130        Self {
28131            s_type: StructureType::from_raw(1000512005i32),
28132            p_next: core::ptr::null(),
28133            p_std_reference_info: core::ptr::null(),
28134        }
28135    }
28136}
28137///[`VkVideoSessionCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoSessionCreateInfoKHR.html)
28138/**
28139Provided by **VK_KHR_video_queue**.*/
28140///
28141///# Extended By
28142///- [`VideoEncodeAV1SessionCreateInfoKHR`]
28143///- [`VideoEncodeH264SessionCreateInfoKHR`]
28144///- [`VideoEncodeH265SessionCreateInfoKHR`]
28145///- [`VideoEncodeSessionIntraRefreshCreateInfoKHR`]
28146///- [`VideoEncodeSessionRgbConversionCreateInfoVALVE`]
28147#[repr(C)]
28148#[derive(Copy, Clone, Debug)]
28149#[doc(alias = "VkVideoSessionCreateInfoKHR")]
28150pub struct VideoSessionCreateInfoKHR {
28151    ///Must be `VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR`.
28152    pub s_type: StructureType,
28153    ///Optional, may be null.
28154    pub p_next: *const core::ffi::c_void,
28155    pub queue_family_index: u32,
28156    pub flags: VideoSessionCreateFlagsKHR,
28157    pub p_video_profile: *const VideoProfileInfoKHR,
28158    pub picture_format: Format,
28159    pub max_coded_extent: Extent2D,
28160    pub reference_picture_format: Format,
28161    pub max_dpb_slots: u32,
28162    pub max_active_reference_pictures: u32,
28163    pub p_std_header_version: *const ExtensionProperties,
28164}
28165impl Default for VideoSessionCreateInfoKHR {
28166    #[inline]
28167    fn default() -> Self {
28168        Self {
28169            s_type: StructureType::from_raw(1000023005i32),
28170            p_next: core::ptr::null(),
28171            queue_family_index: Default::default(),
28172            flags: Default::default(),
28173            p_video_profile: core::ptr::null(),
28174            picture_format: Default::default(),
28175            max_coded_extent: Default::default(),
28176            reference_picture_format: Default::default(),
28177            max_dpb_slots: Default::default(),
28178            max_active_reference_pictures: Default::default(),
28179            p_std_header_version: core::ptr::null(),
28180        }
28181    }
28182}
28183///[`VkVideoSessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoSessionParametersCreateInfoKHR.html)
28184/**
28185Provided by **VK_KHR_video_queue**.*/
28186///
28187///# Extended By
28188///- [`VideoDecodeAV1SessionParametersCreateInfoKHR`]
28189///- [`VideoDecodeH264SessionParametersCreateInfoKHR`]
28190///- [`VideoDecodeH265SessionParametersCreateInfoKHR`]
28191///- [`VideoEncodeAV1SessionParametersCreateInfoKHR`]
28192///- [`VideoEncodeH264SessionParametersCreateInfoKHR`]
28193///- [`VideoEncodeH265SessionParametersCreateInfoKHR`]
28194///- [`VideoEncodeQualityLevelInfoKHR`]
28195///- [`VideoEncodeQuantizationMapSessionParametersCreateInfoKHR`]
28196#[repr(C)]
28197#[derive(Copy, Clone, Debug)]
28198#[doc(alias = "VkVideoSessionParametersCreateInfoKHR")]
28199pub struct VideoSessionParametersCreateInfoKHR {
28200    ///Must be `VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR`.
28201    pub s_type: StructureType,
28202    ///Optional, may be null.
28203    pub p_next: *const core::ffi::c_void,
28204    pub flags: VideoSessionParametersCreateFlagsKHR,
28205    pub video_session_parameters_template: VideoSessionParametersKHR,
28206    pub video_session: VideoSessionKHR,
28207}
28208impl Default for VideoSessionParametersCreateInfoKHR {
28209    #[inline]
28210    fn default() -> Self {
28211        Self {
28212            s_type: StructureType::from_raw(1000023006i32),
28213            p_next: core::ptr::null(),
28214            flags: Default::default(),
28215            video_session_parameters_template: Default::default(),
28216            video_session: Default::default(),
28217        }
28218    }
28219}
28220///[`VkVideoSessionParametersUpdateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoSessionParametersUpdateInfoKHR.html)
28221/**
28222Provided by **VK_KHR_video_queue**.*/
28223///
28224///# Extended By
28225///- [`VideoDecodeH264SessionParametersAddInfoKHR`]
28226///- [`VideoDecodeH265SessionParametersAddInfoKHR`]
28227///- [`VideoEncodeH264SessionParametersAddInfoKHR`]
28228///- [`VideoEncodeH265SessionParametersAddInfoKHR`]
28229#[repr(C)]
28230#[derive(Copy, Clone, Debug)]
28231#[doc(alias = "VkVideoSessionParametersUpdateInfoKHR")]
28232pub struct VideoSessionParametersUpdateInfoKHR {
28233    ///Must be `VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR`.
28234    pub s_type: StructureType,
28235    ///Optional, may be null.
28236    pub p_next: *const core::ffi::c_void,
28237    pub update_sequence_count: u32,
28238}
28239impl Default for VideoSessionParametersUpdateInfoKHR {
28240    #[inline]
28241    fn default() -> Self {
28242        Self {
28243            s_type: StructureType::from_raw(1000023007i32),
28244            p_next: core::ptr::null(),
28245            update_sequence_count: Default::default(),
28246        }
28247    }
28248}
28249///[`VkVideoEncodeSessionParametersGetInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeSessionParametersGetInfoKHR.html)
28250/**
28251Provided by **VK_KHR_video_encode_queue**.*/
28252///
28253///# Extended By
28254///- [`VideoEncodeH264SessionParametersGetInfoKHR`]
28255///- [`VideoEncodeH265SessionParametersGetInfoKHR`]
28256#[repr(C)]
28257#[derive(Copy, Clone, Debug)]
28258#[doc(alias = "VkVideoEncodeSessionParametersGetInfoKHR")]
28259pub struct VideoEncodeSessionParametersGetInfoKHR {
28260    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR`.
28261    pub s_type: StructureType,
28262    ///Optional, may be null.
28263    pub p_next: *const core::ffi::c_void,
28264    pub video_session_parameters: VideoSessionParametersKHR,
28265}
28266impl Default for VideoEncodeSessionParametersGetInfoKHR {
28267    #[inline]
28268    fn default() -> Self {
28269        Self {
28270            s_type: StructureType::from_raw(1000299009i32),
28271            p_next: core::ptr::null(),
28272            video_session_parameters: Default::default(),
28273        }
28274    }
28275}
28276///[`VkVideoEncodeSessionParametersFeedbackInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeSessionParametersFeedbackInfoKHR.html)
28277/**
28278Provided by **VK_KHR_video_encode_queue**.*/
28279/**
28280**Returned only**, filled by Vulkan, not constructed by the application.*/
28281///
28282///# Extended By
28283///- [`VideoEncodeH264SessionParametersFeedbackInfoKHR`]
28284///- [`VideoEncodeH265SessionParametersFeedbackInfoKHR`]
28285#[repr(C)]
28286#[derive(Copy, Clone, Debug)]
28287#[doc(alias = "VkVideoEncodeSessionParametersFeedbackInfoKHR")]
28288pub struct VideoEncodeSessionParametersFeedbackInfoKHR {
28289    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR`.
28290    pub s_type: StructureType,
28291    ///Optional, may be null.
28292    pub p_next: *mut core::ffi::c_void,
28293    pub has_overrides: u32,
28294}
28295impl Default for VideoEncodeSessionParametersFeedbackInfoKHR {
28296    #[inline]
28297    fn default() -> Self {
28298        Self {
28299            s_type: StructureType::from_raw(1000299010i32),
28300            p_next: core::ptr::null_mut(),
28301            has_overrides: Default::default(),
28302        }
28303    }
28304}
28305///[`VkVideoBeginCodingInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoBeginCodingInfoKHR.html)
28306/**
28307Provided by **VK_KHR_video_queue**.*/
28308///
28309///# Extended By
28310///- [`VideoEncodeAV1GopRemainingFrameInfoKHR`]
28311///- [`VideoEncodeAV1RateControlInfoKHR`]
28312///- [`VideoEncodeH264GopRemainingFrameInfoKHR`]
28313///- [`VideoEncodeH264RateControlInfoKHR`]
28314///- [`VideoEncodeH265GopRemainingFrameInfoKHR`]
28315///- [`VideoEncodeH265RateControlInfoKHR`]
28316///- [`VideoEncodeRateControlInfoKHR`]
28317#[repr(C)]
28318#[derive(Copy, Clone, Debug)]
28319#[doc(alias = "VkVideoBeginCodingInfoKHR")]
28320pub struct VideoBeginCodingInfoKHR {
28321    ///Must be `VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR`.
28322    pub s_type: StructureType,
28323    ///Optional, may be null.
28324    pub p_next: *const core::ffi::c_void,
28325    pub flags: VideoBeginCodingFlagsKHR,
28326    pub video_session: VideoSessionKHR,
28327    pub video_session_parameters: VideoSessionParametersKHR,
28328    ///Length of `p_reference_slots`.
28329    pub reference_slot_count: u32,
28330    pub p_reference_slots: *const VideoReferenceSlotInfoKHR,
28331}
28332impl Default for VideoBeginCodingInfoKHR {
28333    #[inline]
28334    fn default() -> Self {
28335        Self {
28336            s_type: StructureType::from_raw(1000023008i32),
28337            p_next: core::ptr::null(),
28338            flags: Default::default(),
28339            video_session: Default::default(),
28340            video_session_parameters: Default::default(),
28341            reference_slot_count: Default::default(),
28342            p_reference_slots: core::ptr::null(),
28343        }
28344    }
28345}
28346///[`VkVideoEndCodingInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEndCodingInfoKHR.html)
28347/**
28348Provided by **VK_KHR_video_queue**.*/
28349#[repr(C)]
28350#[derive(Copy, Clone, Debug)]
28351#[doc(alias = "VkVideoEndCodingInfoKHR")]
28352pub struct VideoEndCodingInfoKHR {
28353    ///Must be `VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR`.
28354    pub s_type: StructureType,
28355    ///Optional, may be null.
28356    pub p_next: *const core::ffi::c_void,
28357    pub flags: VideoEndCodingFlagsKHR,
28358}
28359impl Default for VideoEndCodingInfoKHR {
28360    #[inline]
28361    fn default() -> Self {
28362        Self {
28363            s_type: StructureType::from_raw(1000023009i32),
28364            p_next: core::ptr::null(),
28365            flags: Default::default(),
28366        }
28367    }
28368}
28369///[`VkVideoCodingControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoCodingControlInfoKHR.html)
28370/**
28371Provided by **VK_KHR_video_queue**.*/
28372///
28373///# Extended By
28374///- [`VideoEncodeAV1RateControlInfoKHR`]
28375///- [`VideoEncodeH264RateControlInfoKHR`]
28376///- [`VideoEncodeH265RateControlInfoKHR`]
28377///- [`VideoEncodeQualityLevelInfoKHR`]
28378///- [`VideoEncodeRateControlInfoKHR`]
28379#[repr(C)]
28380#[derive(Copy, Clone, Debug)]
28381#[doc(alias = "VkVideoCodingControlInfoKHR")]
28382pub struct VideoCodingControlInfoKHR {
28383    ///Must be `VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR`.
28384    pub s_type: StructureType,
28385    ///Optional, may be null.
28386    pub p_next: *const core::ffi::c_void,
28387    pub flags: VideoCodingControlFlagsKHR,
28388}
28389impl Default for VideoCodingControlInfoKHR {
28390    #[inline]
28391    fn default() -> Self {
28392        Self {
28393            s_type: StructureType::from_raw(1000023010i32),
28394            p_next: core::ptr::null(),
28395            flags: Default::default(),
28396        }
28397    }
28398}
28399///[`VkVideoEncodeUsageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeUsageInfoKHR.html)
28400/**
28401Provided by **VK_KHR_video_encode_queue**.*/
28402///
28403///# Extends
28404///- [`VideoProfileInfoKHR`]
28405///- [`QueryPoolCreateInfo`]
28406#[repr(C)]
28407#[derive(Copy, Clone, Debug)]
28408#[doc(alias = "VkVideoEncodeUsageInfoKHR")]
28409pub struct VideoEncodeUsageInfoKHR {
28410    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR`.
28411    pub s_type: StructureType,
28412    ///Optional, may be null.
28413    pub p_next: *const core::ffi::c_void,
28414    pub video_usage_hints: VideoEncodeUsageFlagsKHR,
28415    pub video_content_hints: VideoEncodeContentFlagsKHR,
28416    pub tuning_mode: VideoEncodeTuningModeKHR,
28417}
28418impl Default for VideoEncodeUsageInfoKHR {
28419    #[inline]
28420    fn default() -> Self {
28421        Self {
28422            s_type: StructureType::from_raw(1000299004i32),
28423            p_next: core::ptr::null(),
28424            video_usage_hints: Default::default(),
28425            video_content_hints: Default::default(),
28426            tuning_mode: Default::default(),
28427        }
28428    }
28429}
28430///[`VkVideoEncodeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeInfoKHR.html)
28431/**
28432Provided by **VK_KHR_video_encode_queue**.*/
28433///
28434///# Extended By
28435///- [`VideoEncodeAV1PictureInfoKHR`]
28436///- [`VideoEncodeH264PictureInfoKHR`]
28437///- [`VideoEncodeH265PictureInfoKHR`]
28438///- [`VideoEncodeIntraRefreshInfoKHR`]
28439///- [`VideoEncodeQuantizationMapInfoKHR`]
28440///- [`VideoInlineQueryInfoKHR`]
28441#[repr(C)]
28442#[derive(Copy, Clone, Debug)]
28443#[doc(alias = "VkVideoEncodeInfoKHR")]
28444pub struct VideoEncodeInfoKHR {
28445    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR`.
28446    pub s_type: StructureType,
28447    ///Optional, may be null.
28448    pub p_next: *const core::ffi::c_void,
28449    pub flags: VideoEncodeFlagsKHR,
28450    pub dst_buffer: Buffer,
28451    pub dst_buffer_offset: u64,
28452    pub dst_buffer_range: u64,
28453    pub src_picture_resource: VideoPictureResourceInfoKHR,
28454    ///Optional, may be null.
28455    pub p_setup_reference_slot: *const VideoReferenceSlotInfoKHR,
28456    ///Length of `p_reference_slots`.
28457    pub reference_slot_count: u32,
28458    pub p_reference_slots: *const VideoReferenceSlotInfoKHR,
28459    pub preceding_externally_encoded_bytes: u32,
28460}
28461impl Default for VideoEncodeInfoKHR {
28462    #[inline]
28463    fn default() -> Self {
28464        Self {
28465            s_type: StructureType::from_raw(1000299000i32),
28466            p_next: core::ptr::null(),
28467            flags: Default::default(),
28468            dst_buffer: Default::default(),
28469            dst_buffer_offset: Default::default(),
28470            dst_buffer_range: Default::default(),
28471            src_picture_resource: Default::default(),
28472            p_setup_reference_slot: core::ptr::null(),
28473            reference_slot_count: Default::default(),
28474            p_reference_slots: core::ptr::null(),
28475            preceding_externally_encoded_bytes: Default::default(),
28476        }
28477    }
28478}
28479///[`VkVideoEncodeQuantizationMapInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQuantizationMapInfoKHR.html)
28480/**
28481Provided by **VK_KHR_video_encode_quantization_map**.*/
28482///
28483///# Extends
28484///- [`VideoEncodeInfoKHR`]
28485#[repr(C)]
28486#[derive(Copy, Clone, Debug)]
28487#[doc(alias = "VkVideoEncodeQuantizationMapInfoKHR")]
28488pub struct VideoEncodeQuantizationMapInfoKHR {
28489    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR`.
28490    pub s_type: StructureType,
28491    ///Optional, may be null.
28492    pub p_next: *const core::ffi::c_void,
28493    pub quantization_map: ImageView,
28494    pub quantization_map_extent: Extent2D,
28495}
28496impl Default for VideoEncodeQuantizationMapInfoKHR {
28497    #[inline]
28498    fn default() -> Self {
28499        Self {
28500            s_type: StructureType::from_raw(1000553002i32),
28501            p_next: core::ptr::null(),
28502            quantization_map: Default::default(),
28503            quantization_map_extent: Default::default(),
28504        }
28505    }
28506}
28507///[`VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR.html)
28508/**
28509Provided by **VK_KHR_video_encode_quantization_map**.*/
28510///
28511///# Extends
28512///- [`VideoSessionParametersCreateInfoKHR`]
28513#[repr(C)]
28514#[derive(Copy, Clone, Debug)]
28515#[doc(alias = "VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR")]
28516pub struct VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
28517    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR`.
28518    pub s_type: StructureType,
28519    ///Optional, may be null.
28520    pub p_next: *const core::ffi::c_void,
28521    pub quantization_map_texel_size: Extent2D,
28522}
28523impl Default for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
28524    #[inline]
28525    fn default() -> Self {
28526        Self {
28527            s_type: StructureType::from_raw(1000553005i32),
28528            p_next: core::ptr::null(),
28529            quantization_map_texel_size: Default::default(),
28530        }
28531    }
28532}
28533///[`VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR.html)
28534/**
28535Provided by **VK_KHR_video_encode_quantization_map**.*/
28536///
28537///# Extends
28538///- [`PhysicalDeviceFeatures2`]
28539///- [`DeviceCreateInfo`]
28540#[repr(C)]
28541#[derive(Copy, Clone, Debug)]
28542#[doc(alias = "VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR")]
28543pub struct PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
28544    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR`.
28545    pub s_type: StructureType,
28546    ///Optional, may be null.
28547    pub p_next: *mut core::ffi::c_void,
28548    pub video_encode_quantization_map: u32,
28549}
28550impl Default for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
28551    #[inline]
28552    fn default() -> Self {
28553        Self {
28554            s_type: StructureType::from_raw(1000553009i32),
28555            p_next: core::ptr::null_mut(),
28556            video_encode_quantization_map: Default::default(),
28557        }
28558    }
28559}
28560///[`VkQueryPoolVideoEncodeFeedbackCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolVideoEncodeFeedbackCreateInfoKHR.html)
28561/**
28562Provided by **VK_KHR_video_encode_queue**.*/
28563///
28564///# Extends
28565///- [`QueryPoolCreateInfo`]
28566#[repr(C)]
28567#[derive(Copy, Clone, Debug)]
28568#[doc(alias = "VkQueryPoolVideoEncodeFeedbackCreateInfoKHR")]
28569pub struct QueryPoolVideoEncodeFeedbackCreateInfoKHR {
28570    ///Must be `VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR`.
28571    pub s_type: StructureType,
28572    ///Optional, may be null.
28573    pub p_next: *const core::ffi::c_void,
28574    pub encode_feedback_flags: VideoEncodeFeedbackFlagsKHR,
28575}
28576impl Default for QueryPoolVideoEncodeFeedbackCreateInfoKHR {
28577    #[inline]
28578    fn default() -> Self {
28579        Self {
28580            s_type: StructureType::from_raw(1000299005i32),
28581            p_next: core::ptr::null(),
28582            encode_feedback_flags: Default::default(),
28583        }
28584    }
28585}
28586///[`VkVideoEncodeQualityLevelInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQualityLevelInfoKHR.html)
28587/**
28588Provided by **VK_KHR_video_encode_queue**.*/
28589///
28590///# Extends
28591///- [`VideoCodingControlInfoKHR`]
28592///- [`VideoSessionParametersCreateInfoKHR`]
28593#[repr(C)]
28594#[derive(Copy, Clone, Debug)]
28595#[doc(alias = "VkVideoEncodeQualityLevelInfoKHR")]
28596pub struct VideoEncodeQualityLevelInfoKHR {
28597    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR`.
28598    pub s_type: StructureType,
28599    ///Optional, may be null.
28600    pub p_next: *const core::ffi::c_void,
28601    pub quality_level: u32,
28602}
28603impl Default for VideoEncodeQualityLevelInfoKHR {
28604    #[inline]
28605    fn default() -> Self {
28606        Self {
28607            s_type: StructureType::from_raw(1000299008i32),
28608            p_next: core::ptr::null(),
28609            quality_level: Default::default(),
28610        }
28611    }
28612}
28613///[`VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR.html)
28614/**
28615Provided by **VK_KHR_video_encode_queue**.*/
28616#[repr(C)]
28617#[derive(Copy, Clone, Debug)]
28618#[doc(alias = "VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR")]
28619pub struct PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
28620    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR`.
28621    pub s_type: StructureType,
28622    ///Optional, may be null.
28623    pub p_next: *const core::ffi::c_void,
28624    pub p_video_profile: *const VideoProfileInfoKHR,
28625    pub quality_level: u32,
28626}
28627impl Default for PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
28628    #[inline]
28629    fn default() -> Self {
28630        Self {
28631            s_type: StructureType::from_raw(1000299006i32),
28632            p_next: core::ptr::null(),
28633            p_video_profile: core::ptr::null(),
28634            quality_level: Default::default(),
28635        }
28636    }
28637}
28638///[`VkVideoEncodeQualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQualityLevelPropertiesKHR.html)
28639/**
28640Provided by **VK_KHR_video_encode_queue**.*/
28641/**
28642**Returned only**, filled by Vulkan, not constructed by the application.*/
28643///
28644///# Extended By
28645///- [`VideoEncodeAV1QualityLevelPropertiesKHR`]
28646///- [`VideoEncodeH264QualityLevelPropertiesKHR`]
28647///- [`VideoEncodeH265QualityLevelPropertiesKHR`]
28648#[repr(C)]
28649#[derive(Copy, Clone, Debug)]
28650#[doc(alias = "VkVideoEncodeQualityLevelPropertiesKHR")]
28651pub struct VideoEncodeQualityLevelPropertiesKHR {
28652    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR`.
28653    pub s_type: StructureType,
28654    ///Optional, may be null.
28655    pub p_next: *mut core::ffi::c_void,
28656    pub preferred_rate_control_mode: VideoEncodeRateControlModeFlagBitsKHR,
28657    pub preferred_rate_control_layer_count: u32,
28658}
28659impl Default for VideoEncodeQualityLevelPropertiesKHR {
28660    #[inline]
28661    fn default() -> Self {
28662        Self {
28663            s_type: StructureType::from_raw(1000299007i32),
28664            p_next: core::ptr::null_mut(),
28665            preferred_rate_control_mode: Default::default(),
28666            preferred_rate_control_layer_count: Default::default(),
28667        }
28668    }
28669}
28670///[`VkVideoEncodeRateControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeRateControlInfoKHR.html)
28671/**
28672Provided by **VK_KHR_video_encode_queue**.*/
28673///
28674///# Extends
28675///- [`VideoCodingControlInfoKHR`]
28676///- [`VideoBeginCodingInfoKHR`]
28677#[repr(C)]
28678#[derive(Copy, Clone, Debug)]
28679#[doc(alias = "VkVideoEncodeRateControlInfoKHR")]
28680pub struct VideoEncodeRateControlInfoKHR {
28681    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR`.
28682    pub s_type: StructureType,
28683    ///Optional, may be null.
28684    pub p_next: *const core::ffi::c_void,
28685    pub flags: VideoEncodeRateControlFlagsKHR,
28686    pub rate_control_mode: VideoEncodeRateControlModeFlagBitsKHR,
28687    ///Length of `p_layers`.
28688    pub layer_count: u32,
28689    pub p_layers: *const VideoEncodeRateControlLayerInfoKHR,
28690    pub virtual_buffer_size_in_ms: u32,
28691    pub initial_virtual_buffer_size_in_ms: u32,
28692}
28693impl Default for VideoEncodeRateControlInfoKHR {
28694    #[inline]
28695    fn default() -> Self {
28696        Self {
28697            s_type: StructureType::from_raw(1000299001i32),
28698            p_next: core::ptr::null(),
28699            flags: Default::default(),
28700            rate_control_mode: Default::default(),
28701            layer_count: Default::default(),
28702            p_layers: core::ptr::null(),
28703            virtual_buffer_size_in_ms: Default::default(),
28704            initial_virtual_buffer_size_in_ms: Default::default(),
28705        }
28706    }
28707}
28708///[`VkVideoEncodeRateControlLayerInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeRateControlLayerInfoKHR.html)
28709/**
28710Provided by **VK_KHR_video_encode_queue**.*/
28711///
28712///# Extended By
28713///- [`VideoEncodeAV1RateControlLayerInfoKHR`]
28714///- [`VideoEncodeH264RateControlLayerInfoKHR`]
28715///- [`VideoEncodeH265RateControlLayerInfoKHR`]
28716#[repr(C)]
28717#[derive(Copy, Clone, Debug)]
28718#[doc(alias = "VkVideoEncodeRateControlLayerInfoKHR")]
28719pub struct VideoEncodeRateControlLayerInfoKHR {
28720    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR`.
28721    pub s_type: StructureType,
28722    ///Optional, may be null.
28723    pub p_next: *const core::ffi::c_void,
28724    pub average_bitrate: u64,
28725    pub max_bitrate: u64,
28726    pub frame_rate_numerator: u32,
28727    pub frame_rate_denominator: u32,
28728}
28729impl Default for VideoEncodeRateControlLayerInfoKHR {
28730    #[inline]
28731    fn default() -> Self {
28732        Self {
28733            s_type: StructureType::from_raw(1000299002i32),
28734            p_next: core::ptr::null(),
28735            average_bitrate: Default::default(),
28736            max_bitrate: Default::default(),
28737            frame_rate_numerator: Default::default(),
28738            frame_rate_denominator: Default::default(),
28739        }
28740    }
28741}
28742///[`VkVideoEncodeCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeCapabilitiesKHR.html)
28743/**
28744Provided by **VK_KHR_video_encode_queue**.*/
28745/**
28746**Returned only**, filled by Vulkan, not constructed by the application.*/
28747///
28748///# Extends
28749///- [`VideoCapabilitiesKHR`]
28750#[repr(C)]
28751#[derive(Copy, Clone, Debug)]
28752#[doc(alias = "VkVideoEncodeCapabilitiesKHR")]
28753pub struct VideoEncodeCapabilitiesKHR {
28754    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR`.
28755    pub s_type: StructureType,
28756    ///Optional, may be null.
28757    pub p_next: *mut core::ffi::c_void,
28758    pub flags: VideoEncodeCapabilityFlagsKHR,
28759    pub rate_control_modes: VideoEncodeRateControlModeFlagsKHR,
28760    pub max_rate_control_layers: u32,
28761    pub max_bitrate: u64,
28762    pub max_quality_levels: u32,
28763    pub encode_input_picture_granularity: Extent2D,
28764    pub supported_encode_feedback_flags: VideoEncodeFeedbackFlagsKHR,
28765}
28766impl Default for VideoEncodeCapabilitiesKHR {
28767    #[inline]
28768    fn default() -> Self {
28769        Self {
28770            s_type: StructureType::from_raw(1000299003i32),
28771            p_next: core::ptr::null_mut(),
28772            flags: Default::default(),
28773            rate_control_modes: Default::default(),
28774            max_rate_control_layers: Default::default(),
28775            max_bitrate: Default::default(),
28776            max_quality_levels: Default::default(),
28777            encode_input_picture_granularity: Default::default(),
28778            supported_encode_feedback_flags: Default::default(),
28779        }
28780    }
28781}
28782///[`VkVideoEncodeH264CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264CapabilitiesKHR.html)
28783/**
28784Provided by **VK_KHR_video_encode_h264**.*/
28785/**
28786**Returned only**, filled by Vulkan, not constructed by the application.*/
28787///
28788///# Extends
28789///- [`VideoCapabilitiesKHR`]
28790#[repr(C)]
28791#[derive(Copy, Clone, Debug)]
28792#[doc(alias = "VkVideoEncodeH264CapabilitiesKHR")]
28793pub struct VideoEncodeH264CapabilitiesKHR {
28794    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR`.
28795    pub s_type: StructureType,
28796    ///Optional, may be null.
28797    pub p_next: *mut core::ffi::c_void,
28798    pub flags: VideoEncodeH264CapabilityFlagsKHR,
28799    pub max_level_idc: StdVideoH264LevelIdc,
28800    pub max_slice_count: u32,
28801    pub max_p_picture_l0_reference_count: u32,
28802    pub max_b_picture_l0_reference_count: u32,
28803    pub max_l1_reference_count: u32,
28804    pub max_temporal_layer_count: u32,
28805    pub expect_dyadic_temporal_layer_pattern: u32,
28806    pub min_qp: i32,
28807    pub max_qp: i32,
28808    pub prefers_gop_remaining_frames: u32,
28809    pub requires_gop_remaining_frames: u32,
28810    pub std_syntax_flags: VideoEncodeH264StdFlagsKHR,
28811}
28812impl Default for VideoEncodeH264CapabilitiesKHR {
28813    #[inline]
28814    fn default() -> Self {
28815        Self {
28816            s_type: StructureType::from_raw(1000038000i32),
28817            p_next: core::ptr::null_mut(),
28818            flags: Default::default(),
28819            max_level_idc: Default::default(),
28820            max_slice_count: Default::default(),
28821            max_p_picture_l0_reference_count: Default::default(),
28822            max_b_picture_l0_reference_count: Default::default(),
28823            max_l1_reference_count: Default::default(),
28824            max_temporal_layer_count: Default::default(),
28825            expect_dyadic_temporal_layer_pattern: Default::default(),
28826            min_qp: Default::default(),
28827            max_qp: Default::default(),
28828            prefers_gop_remaining_frames: Default::default(),
28829            requires_gop_remaining_frames: Default::default(),
28830            std_syntax_flags: Default::default(),
28831        }
28832    }
28833}
28834///[`VkVideoEncodeH264QualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264QualityLevelPropertiesKHR.html)
28835/**
28836Provided by **VK_KHR_video_encode_h264**.*/
28837/**
28838**Returned only**, filled by Vulkan, not constructed by the application.*/
28839///
28840///# Extends
28841///- [`VideoEncodeQualityLevelPropertiesKHR`]
28842#[repr(C)]
28843#[derive(Copy, Clone, Debug)]
28844#[doc(alias = "VkVideoEncodeH264QualityLevelPropertiesKHR")]
28845pub struct VideoEncodeH264QualityLevelPropertiesKHR {
28846    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR`.
28847    pub s_type: StructureType,
28848    ///Optional, may be null.
28849    pub p_next: *mut core::ffi::c_void,
28850    pub preferred_rate_control_flags: VideoEncodeH264RateControlFlagsKHR,
28851    pub preferred_gop_frame_count: u32,
28852    pub preferred_idr_period: u32,
28853    pub preferred_consecutive_b_frame_count: u32,
28854    pub preferred_temporal_layer_count: u32,
28855    pub preferred_constant_qp: VideoEncodeH264QpKHR,
28856    pub preferred_max_l0_reference_count: u32,
28857    pub preferred_max_l1_reference_count: u32,
28858    pub preferred_std_entropy_coding_mode_flag: u32,
28859}
28860impl Default for VideoEncodeH264QualityLevelPropertiesKHR {
28861    #[inline]
28862    fn default() -> Self {
28863        Self {
28864            s_type: StructureType::from_raw(1000038011i32),
28865            p_next: core::ptr::null_mut(),
28866            preferred_rate_control_flags: Default::default(),
28867            preferred_gop_frame_count: Default::default(),
28868            preferred_idr_period: Default::default(),
28869            preferred_consecutive_b_frame_count: Default::default(),
28870            preferred_temporal_layer_count: Default::default(),
28871            preferred_constant_qp: Default::default(),
28872            preferred_max_l0_reference_count: Default::default(),
28873            preferred_max_l1_reference_count: Default::default(),
28874            preferred_std_entropy_coding_mode_flag: Default::default(),
28875        }
28876    }
28877}
28878///[`VkVideoEncodeH264SessionCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionCreateInfoKHR.html)
28879/**
28880Provided by **VK_KHR_video_encode_h264**.*/
28881///
28882///# Extends
28883///- [`VideoSessionCreateInfoKHR`]
28884#[repr(C)]
28885#[derive(Copy, Clone, Debug)]
28886#[doc(alias = "VkVideoEncodeH264SessionCreateInfoKHR")]
28887pub struct VideoEncodeH264SessionCreateInfoKHR {
28888    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR`.
28889    pub s_type: StructureType,
28890    ///Optional, may be null.
28891    pub p_next: *const core::ffi::c_void,
28892    pub use_max_level_idc: u32,
28893    pub max_level_idc: StdVideoH264LevelIdc,
28894}
28895impl Default for VideoEncodeH264SessionCreateInfoKHR {
28896    #[inline]
28897    fn default() -> Self {
28898        Self {
28899            s_type: StructureType::from_raw(1000038010i32),
28900            p_next: core::ptr::null(),
28901            use_max_level_idc: Default::default(),
28902            max_level_idc: Default::default(),
28903        }
28904    }
28905}
28906///[`VkVideoEncodeH264SessionParametersAddInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionParametersAddInfoKHR.html)
28907/**
28908Provided by **VK_KHR_video_encode_h264**.*/
28909///
28910///# Extends
28911///- [`VideoSessionParametersUpdateInfoKHR`]
28912#[repr(C)]
28913#[derive(Copy, Clone, Debug)]
28914#[doc(alias = "VkVideoEncodeH264SessionParametersAddInfoKHR")]
28915pub struct VideoEncodeH264SessionParametersAddInfoKHR {
28916    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR`.
28917    pub s_type: StructureType,
28918    ///Optional, may be null.
28919    pub p_next: *const core::ffi::c_void,
28920    ///Length of `p_std_sp_ss`.
28921    pub std_sps_count: u32,
28922    ///Optional, may be null.
28923    pub p_std_sp_ss: *const StdVideoH264SequenceParameterSet,
28924    ///Length of `p_std_pp_ss`.
28925    pub std_pps_count: u32,
28926    ///Optional, may be null.
28927    pub p_std_pp_ss: *const StdVideoH264PictureParameterSet,
28928}
28929impl Default for VideoEncodeH264SessionParametersAddInfoKHR {
28930    #[inline]
28931    fn default() -> Self {
28932        Self {
28933            s_type: StructureType::from_raw(1000038002i32),
28934            p_next: core::ptr::null(),
28935            std_sps_count: Default::default(),
28936            p_std_sp_ss: core::ptr::null(),
28937            std_pps_count: Default::default(),
28938            p_std_pp_ss: core::ptr::null(),
28939        }
28940    }
28941}
28942///[`VkVideoEncodeH264SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionParametersCreateInfoKHR.html)
28943/**
28944Provided by **VK_KHR_video_encode_h264**.*/
28945///
28946///# Extends
28947///- [`VideoSessionParametersCreateInfoKHR`]
28948#[repr(C)]
28949#[derive(Copy, Clone, Debug)]
28950#[doc(alias = "VkVideoEncodeH264SessionParametersCreateInfoKHR")]
28951pub struct VideoEncodeH264SessionParametersCreateInfoKHR {
28952    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR`.
28953    pub s_type: StructureType,
28954    ///Optional, may be null.
28955    pub p_next: *const core::ffi::c_void,
28956    pub max_std_sps_count: u32,
28957    pub max_std_pps_count: u32,
28958    ///Optional, may be null.
28959    pub p_parameters_add_info: *const VideoEncodeH264SessionParametersAddInfoKHR,
28960}
28961impl Default for VideoEncodeH264SessionParametersCreateInfoKHR {
28962    #[inline]
28963    fn default() -> Self {
28964        Self {
28965            s_type: StructureType::from_raw(1000038001i32),
28966            p_next: core::ptr::null(),
28967            max_std_sps_count: Default::default(),
28968            max_std_pps_count: Default::default(),
28969            p_parameters_add_info: core::ptr::null(),
28970        }
28971    }
28972}
28973///[`VkVideoEncodeH264SessionParametersGetInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionParametersGetInfoKHR.html)
28974/**
28975Provided by **VK_KHR_video_encode_h264**.*/
28976///
28977///# Extends
28978///- [`VideoEncodeSessionParametersGetInfoKHR`]
28979#[repr(C)]
28980#[derive(Copy, Clone, Debug)]
28981#[doc(alias = "VkVideoEncodeH264SessionParametersGetInfoKHR")]
28982pub struct VideoEncodeH264SessionParametersGetInfoKHR {
28983    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR`.
28984    pub s_type: StructureType,
28985    ///Optional, may be null.
28986    pub p_next: *const core::ffi::c_void,
28987    pub write_std_sps: u32,
28988    pub write_std_pps: u32,
28989    pub std_sps_id: u32,
28990    pub std_pps_id: u32,
28991}
28992impl Default for VideoEncodeH264SessionParametersGetInfoKHR {
28993    #[inline]
28994    fn default() -> Self {
28995        Self {
28996            s_type: StructureType::from_raw(1000038012i32),
28997            p_next: core::ptr::null(),
28998            write_std_sps: Default::default(),
28999            write_std_pps: Default::default(),
29000            std_sps_id: Default::default(),
29001            std_pps_id: Default::default(),
29002        }
29003    }
29004}
29005///[`VkVideoEncodeH264SessionParametersFeedbackInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionParametersFeedbackInfoKHR.html)
29006/**
29007Provided by **VK_KHR_video_encode_h264**.*/
29008/**
29009**Returned only**, filled by Vulkan, not constructed by the application.*/
29010///
29011///# Extends
29012///- [`VideoEncodeSessionParametersFeedbackInfoKHR`]
29013#[repr(C)]
29014#[derive(Copy, Clone, Debug)]
29015#[doc(alias = "VkVideoEncodeH264SessionParametersFeedbackInfoKHR")]
29016pub struct VideoEncodeH264SessionParametersFeedbackInfoKHR {
29017    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR`.
29018    pub s_type: StructureType,
29019    ///Optional, may be null.
29020    pub p_next: *mut core::ffi::c_void,
29021    pub has_std_sps_overrides: u32,
29022    pub has_std_pps_overrides: u32,
29023}
29024impl Default for VideoEncodeH264SessionParametersFeedbackInfoKHR {
29025    #[inline]
29026    fn default() -> Self {
29027        Self {
29028            s_type: StructureType::from_raw(1000038013i32),
29029            p_next: core::ptr::null_mut(),
29030            has_std_sps_overrides: Default::default(),
29031            has_std_pps_overrides: Default::default(),
29032        }
29033    }
29034}
29035///[`VkVideoEncodeH264DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264DpbSlotInfoKHR.html)
29036/**
29037Provided by **VK_KHR_video_encode_h264**.*/
29038///
29039///# Extends
29040///- [`VideoReferenceSlotInfoKHR`]
29041#[repr(C)]
29042#[derive(Copy, Clone, Debug)]
29043#[doc(alias = "VkVideoEncodeH264DpbSlotInfoKHR")]
29044pub struct VideoEncodeH264DpbSlotInfoKHR {
29045    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR`.
29046    pub s_type: StructureType,
29047    ///Optional, may be null.
29048    pub p_next: *const core::ffi::c_void,
29049    pub p_std_reference_info: *const StdVideoEncodeH264ReferenceInfo,
29050}
29051impl Default for VideoEncodeH264DpbSlotInfoKHR {
29052    #[inline]
29053    fn default() -> Self {
29054        Self {
29055            s_type: StructureType::from_raw(1000038004i32),
29056            p_next: core::ptr::null(),
29057            p_std_reference_info: core::ptr::null(),
29058        }
29059    }
29060}
29061///[`VkVideoEncodeH264PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264PictureInfoKHR.html)
29062/**
29063Provided by **VK_KHR_video_encode_h264**.*/
29064///
29065///# Extends
29066///- [`VideoEncodeInfoKHR`]
29067#[repr(C)]
29068#[derive(Copy, Clone, Debug)]
29069#[doc(alias = "VkVideoEncodeH264PictureInfoKHR")]
29070pub struct VideoEncodeH264PictureInfoKHR {
29071    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR`.
29072    pub s_type: StructureType,
29073    ///Optional, may be null.
29074    pub p_next: *const core::ffi::c_void,
29075    ///Length of `p_nalu_slice_entries`.
29076    pub nalu_slice_entry_count: u32,
29077    pub p_nalu_slice_entries: *const VideoEncodeH264NaluSliceInfoKHR,
29078    pub p_std_picture_info: *const StdVideoEncodeH264PictureInfo,
29079    pub generate_prefix_nalu: u32,
29080}
29081impl Default for VideoEncodeH264PictureInfoKHR {
29082    #[inline]
29083    fn default() -> Self {
29084        Self {
29085            s_type: StructureType::from_raw(1000038003i32),
29086            p_next: core::ptr::null(),
29087            nalu_slice_entry_count: Default::default(),
29088            p_nalu_slice_entries: core::ptr::null(),
29089            p_std_picture_info: core::ptr::null(),
29090            generate_prefix_nalu: Default::default(),
29091        }
29092    }
29093}
29094///[`VkVideoEncodeH264ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264ProfileInfoKHR.html)
29095/**
29096Provided by **VK_KHR_video_encode_h264**.*/
29097///
29098///# Extends
29099///- [`VideoProfileInfoKHR`]
29100///- [`QueryPoolCreateInfo`]
29101#[repr(C)]
29102#[derive(Copy, Clone, Debug)]
29103#[doc(alias = "VkVideoEncodeH264ProfileInfoKHR")]
29104pub struct VideoEncodeH264ProfileInfoKHR {
29105    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR`.
29106    pub s_type: StructureType,
29107    ///Optional, may be null.
29108    pub p_next: *const core::ffi::c_void,
29109    pub std_profile_idc: StdVideoH264ProfileIdc,
29110}
29111impl Default for VideoEncodeH264ProfileInfoKHR {
29112    #[inline]
29113    fn default() -> Self {
29114        Self {
29115            s_type: StructureType::from_raw(1000038007i32),
29116            p_next: core::ptr::null(),
29117            std_profile_idc: Default::default(),
29118        }
29119    }
29120}
29121///[`VkVideoEncodeH264NaluSliceInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264NaluSliceInfoKHR.html)
29122/**
29123Provided by **VK_KHR_video_encode_h264**.*/
29124#[repr(C)]
29125#[derive(Copy, Clone, Debug)]
29126#[doc(alias = "VkVideoEncodeH264NaluSliceInfoKHR")]
29127pub struct VideoEncodeH264NaluSliceInfoKHR {
29128    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR`.
29129    pub s_type: StructureType,
29130    ///Optional, may be null.
29131    pub p_next: *const core::ffi::c_void,
29132    pub constant_qp: i32,
29133    pub p_std_slice_header: *const StdVideoEncodeH264SliceHeader,
29134}
29135impl Default for VideoEncodeH264NaluSliceInfoKHR {
29136    #[inline]
29137    fn default() -> Self {
29138        Self {
29139            s_type: StructureType::from_raw(1000038005i32),
29140            p_next: core::ptr::null(),
29141            constant_qp: Default::default(),
29142            p_std_slice_header: core::ptr::null(),
29143        }
29144    }
29145}
29146///[`VkVideoEncodeH264RateControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264RateControlInfoKHR.html)
29147/**
29148Provided by **VK_KHR_video_encode_h264**.*/
29149///
29150///# Extends
29151///- [`VideoCodingControlInfoKHR`]
29152///- [`VideoBeginCodingInfoKHR`]
29153#[repr(C)]
29154#[derive(Copy, Clone, Debug)]
29155#[doc(alias = "VkVideoEncodeH264RateControlInfoKHR")]
29156pub struct VideoEncodeH264RateControlInfoKHR {
29157    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR`.
29158    pub s_type: StructureType,
29159    ///Optional, may be null.
29160    pub p_next: *const core::ffi::c_void,
29161    pub flags: VideoEncodeH264RateControlFlagsKHR,
29162    pub gop_frame_count: u32,
29163    pub idr_period: u32,
29164    pub consecutive_b_frame_count: u32,
29165    pub temporal_layer_count: u32,
29166}
29167impl Default for VideoEncodeH264RateControlInfoKHR {
29168    #[inline]
29169    fn default() -> Self {
29170        Self {
29171            s_type: StructureType::from_raw(1000038008i32),
29172            p_next: core::ptr::null(),
29173            flags: Default::default(),
29174            gop_frame_count: Default::default(),
29175            idr_period: Default::default(),
29176            consecutive_b_frame_count: Default::default(),
29177            temporal_layer_count: Default::default(),
29178        }
29179    }
29180}
29181///[`VkVideoEncodeH264QpKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264QpKHR.html)
29182/**
29183Provided by **VK_KHR_video_encode_h264**.*/
29184#[repr(C)]
29185#[derive(Copy, Clone, Debug)]
29186#[doc(alias = "VkVideoEncodeH264QpKHR")]
29187pub struct VideoEncodeH264QpKHR {
29188    pub qp_i: i32,
29189    pub qp_p: i32,
29190    pub qp_b: i32,
29191}
29192impl Default for VideoEncodeH264QpKHR {
29193    #[inline]
29194    fn default() -> Self {
29195        unsafe { core::mem::zeroed() }
29196    }
29197}
29198///[`VkVideoEncodeH264FrameSizeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264FrameSizeKHR.html)
29199/**
29200Provided by **VK_KHR_video_encode_h264**.*/
29201#[repr(C)]
29202#[derive(Copy, Clone, Debug)]
29203#[doc(alias = "VkVideoEncodeH264FrameSizeKHR")]
29204pub struct VideoEncodeH264FrameSizeKHR {
29205    pub frame_i_size: u32,
29206    pub frame_p_size: u32,
29207    pub frame_b_size: u32,
29208}
29209impl Default for VideoEncodeH264FrameSizeKHR {
29210    #[inline]
29211    fn default() -> Self {
29212        unsafe { core::mem::zeroed() }
29213    }
29214}
29215///[`VkVideoEncodeH264GopRemainingFrameInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264GopRemainingFrameInfoKHR.html)
29216/**
29217Provided by **VK_KHR_video_encode_h264**.*/
29218///
29219///# Extends
29220///- [`VideoBeginCodingInfoKHR`]
29221#[repr(C)]
29222#[derive(Copy, Clone, Debug)]
29223#[doc(alias = "VkVideoEncodeH264GopRemainingFrameInfoKHR")]
29224pub struct VideoEncodeH264GopRemainingFrameInfoKHR {
29225    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR`.
29226    pub s_type: StructureType,
29227    ///Optional, may be null.
29228    pub p_next: *const core::ffi::c_void,
29229    pub use_gop_remaining_frames: u32,
29230    pub gop_remaining_i: u32,
29231    pub gop_remaining_p: u32,
29232    pub gop_remaining_b: u32,
29233}
29234impl Default for VideoEncodeH264GopRemainingFrameInfoKHR {
29235    #[inline]
29236    fn default() -> Self {
29237        Self {
29238            s_type: StructureType::from_raw(1000038006i32),
29239            p_next: core::ptr::null(),
29240            use_gop_remaining_frames: Default::default(),
29241            gop_remaining_i: Default::default(),
29242            gop_remaining_p: Default::default(),
29243            gop_remaining_b: Default::default(),
29244        }
29245    }
29246}
29247///[`VkVideoEncodeH264RateControlLayerInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264RateControlLayerInfoKHR.html)
29248/**
29249Provided by **VK_KHR_video_encode_h264**.*/
29250///
29251///# Extends
29252///- [`VideoEncodeRateControlLayerInfoKHR`]
29253#[repr(C)]
29254#[derive(Copy, Clone, Debug)]
29255#[doc(alias = "VkVideoEncodeH264RateControlLayerInfoKHR")]
29256pub struct VideoEncodeH264RateControlLayerInfoKHR {
29257    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR`.
29258    pub s_type: StructureType,
29259    ///Optional, may be null.
29260    pub p_next: *const core::ffi::c_void,
29261    pub use_min_qp: u32,
29262    pub min_qp: VideoEncodeH264QpKHR,
29263    pub use_max_qp: u32,
29264    pub max_qp: VideoEncodeH264QpKHR,
29265    pub use_max_frame_size: u32,
29266    pub max_frame_size: VideoEncodeH264FrameSizeKHR,
29267}
29268impl Default for VideoEncodeH264RateControlLayerInfoKHR {
29269    #[inline]
29270    fn default() -> Self {
29271        Self {
29272            s_type: StructureType::from_raw(1000038009i32),
29273            p_next: core::ptr::null(),
29274            use_min_qp: Default::default(),
29275            min_qp: Default::default(),
29276            use_max_qp: Default::default(),
29277            max_qp: Default::default(),
29278            use_max_frame_size: Default::default(),
29279            max_frame_size: Default::default(),
29280        }
29281    }
29282}
29283///[`VkVideoEncodeH265CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265CapabilitiesKHR.html)
29284/**
29285Provided by **VK_KHR_video_encode_h265**.*/
29286/**
29287**Returned only**, filled by Vulkan, not constructed by the application.*/
29288///
29289///# Extends
29290///- [`VideoCapabilitiesKHR`]
29291#[repr(C)]
29292#[derive(Copy, Clone, Debug)]
29293#[doc(alias = "VkVideoEncodeH265CapabilitiesKHR")]
29294pub struct VideoEncodeH265CapabilitiesKHR {
29295    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR`.
29296    pub s_type: StructureType,
29297    ///Optional, may be null.
29298    pub p_next: *mut core::ffi::c_void,
29299    pub flags: VideoEncodeH265CapabilityFlagsKHR,
29300    pub max_level_idc: StdVideoH265LevelIdc,
29301    pub max_slice_segment_count: u32,
29302    pub max_tiles: Extent2D,
29303    pub ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR,
29304    pub transform_block_sizes: VideoEncodeH265TransformBlockSizeFlagsKHR,
29305    pub max_p_picture_l0_reference_count: u32,
29306    pub max_b_picture_l0_reference_count: u32,
29307    pub max_l1_reference_count: u32,
29308    pub max_sub_layer_count: u32,
29309    pub expect_dyadic_temporal_sub_layer_pattern: u32,
29310    pub min_qp: i32,
29311    pub max_qp: i32,
29312    pub prefers_gop_remaining_frames: u32,
29313    pub requires_gop_remaining_frames: u32,
29314    pub std_syntax_flags: VideoEncodeH265StdFlagsKHR,
29315}
29316impl Default for VideoEncodeH265CapabilitiesKHR {
29317    #[inline]
29318    fn default() -> Self {
29319        Self {
29320            s_type: StructureType::from_raw(1000039000i32),
29321            p_next: core::ptr::null_mut(),
29322            flags: Default::default(),
29323            max_level_idc: Default::default(),
29324            max_slice_segment_count: Default::default(),
29325            max_tiles: Default::default(),
29326            ctb_sizes: Default::default(),
29327            transform_block_sizes: Default::default(),
29328            max_p_picture_l0_reference_count: Default::default(),
29329            max_b_picture_l0_reference_count: Default::default(),
29330            max_l1_reference_count: Default::default(),
29331            max_sub_layer_count: Default::default(),
29332            expect_dyadic_temporal_sub_layer_pattern: Default::default(),
29333            min_qp: Default::default(),
29334            max_qp: Default::default(),
29335            prefers_gop_remaining_frames: Default::default(),
29336            requires_gop_remaining_frames: Default::default(),
29337            std_syntax_flags: Default::default(),
29338        }
29339    }
29340}
29341///[`VkVideoEncodeH265QualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265QualityLevelPropertiesKHR.html)
29342/**
29343Provided by **VK_KHR_video_encode_h265**.*/
29344/**
29345**Returned only**, filled by Vulkan, not constructed by the application.*/
29346///
29347///# Extends
29348///- [`VideoEncodeQualityLevelPropertiesKHR`]
29349#[repr(C)]
29350#[derive(Copy, Clone, Debug)]
29351#[doc(alias = "VkVideoEncodeH265QualityLevelPropertiesKHR")]
29352pub struct VideoEncodeH265QualityLevelPropertiesKHR {
29353    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR`.
29354    pub s_type: StructureType,
29355    ///Optional, may be null.
29356    pub p_next: *mut core::ffi::c_void,
29357    pub preferred_rate_control_flags: VideoEncodeH265RateControlFlagsKHR,
29358    pub preferred_gop_frame_count: u32,
29359    pub preferred_idr_period: u32,
29360    pub preferred_consecutive_b_frame_count: u32,
29361    pub preferred_sub_layer_count: u32,
29362    pub preferred_constant_qp: VideoEncodeH265QpKHR,
29363    pub preferred_max_l0_reference_count: u32,
29364    pub preferred_max_l1_reference_count: u32,
29365}
29366impl Default for VideoEncodeH265QualityLevelPropertiesKHR {
29367    #[inline]
29368    fn default() -> Self {
29369        Self {
29370            s_type: StructureType::from_raw(1000039012i32),
29371            p_next: core::ptr::null_mut(),
29372            preferred_rate_control_flags: Default::default(),
29373            preferred_gop_frame_count: Default::default(),
29374            preferred_idr_period: Default::default(),
29375            preferred_consecutive_b_frame_count: Default::default(),
29376            preferred_sub_layer_count: Default::default(),
29377            preferred_constant_qp: Default::default(),
29378            preferred_max_l0_reference_count: Default::default(),
29379            preferred_max_l1_reference_count: Default::default(),
29380        }
29381    }
29382}
29383///[`VkVideoEncodeH265SessionCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionCreateInfoKHR.html)
29384/**
29385Provided by **VK_KHR_video_encode_h265**.*/
29386///
29387///# Extends
29388///- [`VideoSessionCreateInfoKHR`]
29389#[repr(C)]
29390#[derive(Copy, Clone, Debug)]
29391#[doc(alias = "VkVideoEncodeH265SessionCreateInfoKHR")]
29392pub struct VideoEncodeH265SessionCreateInfoKHR {
29393    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR`.
29394    pub s_type: StructureType,
29395    ///Optional, may be null.
29396    pub p_next: *const core::ffi::c_void,
29397    pub use_max_level_idc: u32,
29398    pub max_level_idc: StdVideoH265LevelIdc,
29399}
29400impl Default for VideoEncodeH265SessionCreateInfoKHR {
29401    #[inline]
29402    fn default() -> Self {
29403        Self {
29404            s_type: StructureType::from_raw(1000039011i32),
29405            p_next: core::ptr::null(),
29406            use_max_level_idc: Default::default(),
29407            max_level_idc: Default::default(),
29408        }
29409    }
29410}
29411///[`VkVideoEncodeH265SessionParametersAddInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionParametersAddInfoKHR.html)
29412/**
29413Provided by **VK_KHR_video_encode_h265**.*/
29414///
29415///# Extends
29416///- [`VideoSessionParametersUpdateInfoKHR`]
29417#[repr(C)]
29418#[derive(Copy, Clone, Debug)]
29419#[doc(alias = "VkVideoEncodeH265SessionParametersAddInfoKHR")]
29420pub struct VideoEncodeH265SessionParametersAddInfoKHR {
29421    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR`.
29422    pub s_type: StructureType,
29423    ///Optional, may be null.
29424    pub p_next: *const core::ffi::c_void,
29425    ///Length of `p_std_vp_ss`.
29426    pub std_vps_count: u32,
29427    ///Optional, may be null.
29428    pub p_std_vp_ss: *const StdVideoH265VideoParameterSet,
29429    ///Length of `p_std_sp_ss`.
29430    pub std_sps_count: u32,
29431    ///Optional, may be null.
29432    pub p_std_sp_ss: *const StdVideoH265SequenceParameterSet,
29433    ///Length of `p_std_pp_ss`.
29434    pub std_pps_count: u32,
29435    ///Optional, may be null.
29436    pub p_std_pp_ss: *const StdVideoH265PictureParameterSet,
29437}
29438impl Default for VideoEncodeH265SessionParametersAddInfoKHR {
29439    #[inline]
29440    fn default() -> Self {
29441        Self {
29442            s_type: StructureType::from_raw(1000039002i32),
29443            p_next: core::ptr::null(),
29444            std_vps_count: Default::default(),
29445            p_std_vp_ss: core::ptr::null(),
29446            std_sps_count: Default::default(),
29447            p_std_sp_ss: core::ptr::null(),
29448            std_pps_count: Default::default(),
29449            p_std_pp_ss: core::ptr::null(),
29450        }
29451    }
29452}
29453///[`VkVideoEncodeH265SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionParametersCreateInfoKHR.html)
29454/**
29455Provided by **VK_KHR_video_encode_h265**.*/
29456///
29457///# Extends
29458///- [`VideoSessionParametersCreateInfoKHR`]
29459#[repr(C)]
29460#[derive(Copy, Clone, Debug)]
29461#[doc(alias = "VkVideoEncodeH265SessionParametersCreateInfoKHR")]
29462pub struct VideoEncodeH265SessionParametersCreateInfoKHR {
29463    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR`.
29464    pub s_type: StructureType,
29465    ///Optional, may be null.
29466    pub p_next: *const core::ffi::c_void,
29467    pub max_std_vps_count: u32,
29468    pub max_std_sps_count: u32,
29469    pub max_std_pps_count: u32,
29470    ///Optional, may be null.
29471    pub p_parameters_add_info: *const VideoEncodeH265SessionParametersAddInfoKHR,
29472}
29473impl Default for VideoEncodeH265SessionParametersCreateInfoKHR {
29474    #[inline]
29475    fn default() -> Self {
29476        Self {
29477            s_type: StructureType::from_raw(1000039001i32),
29478            p_next: core::ptr::null(),
29479            max_std_vps_count: Default::default(),
29480            max_std_sps_count: Default::default(),
29481            max_std_pps_count: Default::default(),
29482            p_parameters_add_info: core::ptr::null(),
29483        }
29484    }
29485}
29486///[`VkVideoEncodeH265SessionParametersGetInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionParametersGetInfoKHR.html)
29487/**
29488Provided by **VK_KHR_video_encode_h265**.*/
29489///
29490///# Extends
29491///- [`VideoEncodeSessionParametersGetInfoKHR`]
29492#[repr(C)]
29493#[derive(Copy, Clone, Debug)]
29494#[doc(alias = "VkVideoEncodeH265SessionParametersGetInfoKHR")]
29495pub struct VideoEncodeH265SessionParametersGetInfoKHR {
29496    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR`.
29497    pub s_type: StructureType,
29498    ///Optional, may be null.
29499    pub p_next: *const core::ffi::c_void,
29500    pub write_std_vps: u32,
29501    pub write_std_sps: u32,
29502    pub write_std_pps: u32,
29503    pub std_vps_id: u32,
29504    pub std_sps_id: u32,
29505    pub std_pps_id: u32,
29506}
29507impl Default for VideoEncodeH265SessionParametersGetInfoKHR {
29508    #[inline]
29509    fn default() -> Self {
29510        Self {
29511            s_type: StructureType::from_raw(1000039013i32),
29512            p_next: core::ptr::null(),
29513            write_std_vps: Default::default(),
29514            write_std_sps: Default::default(),
29515            write_std_pps: Default::default(),
29516            std_vps_id: Default::default(),
29517            std_sps_id: Default::default(),
29518            std_pps_id: Default::default(),
29519        }
29520    }
29521}
29522///[`VkVideoEncodeH265SessionParametersFeedbackInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionParametersFeedbackInfoKHR.html)
29523/**
29524Provided by **VK_KHR_video_encode_h265**.*/
29525/**
29526**Returned only**, filled by Vulkan, not constructed by the application.*/
29527///
29528///# Extends
29529///- [`VideoEncodeSessionParametersFeedbackInfoKHR`]
29530#[repr(C)]
29531#[derive(Copy, Clone, Debug)]
29532#[doc(alias = "VkVideoEncodeH265SessionParametersFeedbackInfoKHR")]
29533pub struct VideoEncodeH265SessionParametersFeedbackInfoKHR {
29534    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR`.
29535    pub s_type: StructureType,
29536    ///Optional, may be null.
29537    pub p_next: *mut core::ffi::c_void,
29538    pub has_std_vps_overrides: u32,
29539    pub has_std_sps_overrides: u32,
29540    pub has_std_pps_overrides: u32,
29541}
29542impl Default for VideoEncodeH265SessionParametersFeedbackInfoKHR {
29543    #[inline]
29544    fn default() -> Self {
29545        Self {
29546            s_type: StructureType::from_raw(1000039014i32),
29547            p_next: core::ptr::null_mut(),
29548            has_std_vps_overrides: Default::default(),
29549            has_std_sps_overrides: Default::default(),
29550            has_std_pps_overrides: Default::default(),
29551        }
29552    }
29553}
29554///[`VkVideoEncodeH265PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265PictureInfoKHR.html)
29555/**
29556Provided by **VK_KHR_video_encode_h265**.*/
29557///
29558///# Extends
29559///- [`VideoEncodeInfoKHR`]
29560#[repr(C)]
29561#[derive(Copy, Clone, Debug)]
29562#[doc(alias = "VkVideoEncodeH265PictureInfoKHR")]
29563pub struct VideoEncodeH265PictureInfoKHR {
29564    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR`.
29565    pub s_type: StructureType,
29566    ///Optional, may be null.
29567    pub p_next: *const core::ffi::c_void,
29568    ///Length of `p_nalu_slice_segment_entries`.
29569    pub nalu_slice_segment_entry_count: u32,
29570    pub p_nalu_slice_segment_entries: *const VideoEncodeH265NaluSliceSegmentInfoKHR,
29571    pub p_std_picture_info: *const StdVideoEncodeH265PictureInfo,
29572}
29573impl Default for VideoEncodeH265PictureInfoKHR {
29574    #[inline]
29575    fn default() -> Self {
29576        Self {
29577            s_type: StructureType::from_raw(1000039003i32),
29578            p_next: core::ptr::null(),
29579            nalu_slice_segment_entry_count: Default::default(),
29580            p_nalu_slice_segment_entries: core::ptr::null(),
29581            p_std_picture_info: core::ptr::null(),
29582        }
29583    }
29584}
29585///[`VkVideoEncodeH265NaluSliceSegmentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265NaluSliceSegmentInfoKHR.html)
29586/**
29587Provided by **VK_KHR_video_encode_h265**.*/
29588#[repr(C)]
29589#[derive(Copy, Clone, Debug)]
29590#[doc(alias = "VkVideoEncodeH265NaluSliceSegmentInfoKHR")]
29591pub struct VideoEncodeH265NaluSliceSegmentInfoKHR {
29592    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR`.
29593    pub s_type: StructureType,
29594    ///Optional, may be null.
29595    pub p_next: *const core::ffi::c_void,
29596    pub constant_qp: i32,
29597    pub p_std_slice_segment_header: *const StdVideoEncodeH265SliceSegmentHeader,
29598}
29599impl Default for VideoEncodeH265NaluSliceSegmentInfoKHR {
29600    #[inline]
29601    fn default() -> Self {
29602        Self {
29603            s_type: StructureType::from_raw(1000039005i32),
29604            p_next: core::ptr::null(),
29605            constant_qp: Default::default(),
29606            p_std_slice_segment_header: core::ptr::null(),
29607        }
29608    }
29609}
29610///[`VkVideoEncodeH265RateControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265RateControlInfoKHR.html)
29611/**
29612Provided by **VK_KHR_video_encode_h265**.*/
29613///
29614///# Extends
29615///- [`VideoCodingControlInfoKHR`]
29616///- [`VideoBeginCodingInfoKHR`]
29617#[repr(C)]
29618#[derive(Copy, Clone, Debug)]
29619#[doc(alias = "VkVideoEncodeH265RateControlInfoKHR")]
29620pub struct VideoEncodeH265RateControlInfoKHR {
29621    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR`.
29622    pub s_type: StructureType,
29623    ///Optional, may be null.
29624    pub p_next: *const core::ffi::c_void,
29625    pub flags: VideoEncodeH265RateControlFlagsKHR,
29626    pub gop_frame_count: u32,
29627    pub idr_period: u32,
29628    pub consecutive_b_frame_count: u32,
29629    pub sub_layer_count: u32,
29630}
29631impl Default for VideoEncodeH265RateControlInfoKHR {
29632    #[inline]
29633    fn default() -> Self {
29634        Self {
29635            s_type: StructureType::from_raw(1000039009i32),
29636            p_next: core::ptr::null(),
29637            flags: Default::default(),
29638            gop_frame_count: Default::default(),
29639            idr_period: Default::default(),
29640            consecutive_b_frame_count: Default::default(),
29641            sub_layer_count: Default::default(),
29642        }
29643    }
29644}
29645///[`VkVideoEncodeH265QpKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265QpKHR.html)
29646/**
29647Provided by **VK_KHR_video_encode_h265**.*/
29648#[repr(C)]
29649#[derive(Copy, Clone, Debug)]
29650#[doc(alias = "VkVideoEncodeH265QpKHR")]
29651pub struct VideoEncodeH265QpKHR {
29652    pub qp_i: i32,
29653    pub qp_p: i32,
29654    pub qp_b: i32,
29655}
29656impl Default for VideoEncodeH265QpKHR {
29657    #[inline]
29658    fn default() -> Self {
29659        unsafe { core::mem::zeroed() }
29660    }
29661}
29662///[`VkVideoEncodeH265FrameSizeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265FrameSizeKHR.html)
29663/**
29664Provided by **VK_KHR_video_encode_h265**.*/
29665#[repr(C)]
29666#[derive(Copy, Clone, Debug)]
29667#[doc(alias = "VkVideoEncodeH265FrameSizeKHR")]
29668pub struct VideoEncodeH265FrameSizeKHR {
29669    pub frame_i_size: u32,
29670    pub frame_p_size: u32,
29671    pub frame_b_size: u32,
29672}
29673impl Default for VideoEncodeH265FrameSizeKHR {
29674    #[inline]
29675    fn default() -> Self {
29676        unsafe { core::mem::zeroed() }
29677    }
29678}
29679///[`VkVideoEncodeH265GopRemainingFrameInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265GopRemainingFrameInfoKHR.html)
29680/**
29681Provided by **VK_KHR_video_encode_h265**.*/
29682///
29683///# Extends
29684///- [`VideoBeginCodingInfoKHR`]
29685#[repr(C)]
29686#[derive(Copy, Clone, Debug)]
29687#[doc(alias = "VkVideoEncodeH265GopRemainingFrameInfoKHR")]
29688pub struct VideoEncodeH265GopRemainingFrameInfoKHR {
29689    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR`.
29690    pub s_type: StructureType,
29691    ///Optional, may be null.
29692    pub p_next: *const core::ffi::c_void,
29693    pub use_gop_remaining_frames: u32,
29694    pub gop_remaining_i: u32,
29695    pub gop_remaining_p: u32,
29696    pub gop_remaining_b: u32,
29697}
29698impl Default for VideoEncodeH265GopRemainingFrameInfoKHR {
29699    #[inline]
29700    fn default() -> Self {
29701        Self {
29702            s_type: StructureType::from_raw(1000039006i32),
29703            p_next: core::ptr::null(),
29704            use_gop_remaining_frames: Default::default(),
29705            gop_remaining_i: Default::default(),
29706            gop_remaining_p: Default::default(),
29707            gop_remaining_b: Default::default(),
29708        }
29709    }
29710}
29711///[`VkVideoEncodeH265RateControlLayerInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265RateControlLayerInfoKHR.html)
29712/**
29713Provided by **VK_KHR_video_encode_h265**.*/
29714///
29715///# Extends
29716///- [`VideoEncodeRateControlLayerInfoKHR`]
29717#[repr(C)]
29718#[derive(Copy, Clone, Debug)]
29719#[doc(alias = "VkVideoEncodeH265RateControlLayerInfoKHR")]
29720pub struct VideoEncodeH265RateControlLayerInfoKHR {
29721    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR`.
29722    pub s_type: StructureType,
29723    ///Optional, may be null.
29724    pub p_next: *const core::ffi::c_void,
29725    pub use_min_qp: u32,
29726    pub min_qp: VideoEncodeH265QpKHR,
29727    pub use_max_qp: u32,
29728    pub max_qp: VideoEncodeH265QpKHR,
29729    pub use_max_frame_size: u32,
29730    pub max_frame_size: VideoEncodeH265FrameSizeKHR,
29731}
29732impl Default for VideoEncodeH265RateControlLayerInfoKHR {
29733    #[inline]
29734    fn default() -> Self {
29735        Self {
29736            s_type: StructureType::from_raw(1000039010i32),
29737            p_next: core::ptr::null(),
29738            use_min_qp: Default::default(),
29739            min_qp: Default::default(),
29740            use_max_qp: Default::default(),
29741            max_qp: Default::default(),
29742            use_max_frame_size: Default::default(),
29743            max_frame_size: Default::default(),
29744        }
29745    }
29746}
29747///[`VkVideoEncodeH265ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265ProfileInfoKHR.html)
29748/**
29749Provided by **VK_KHR_video_encode_h265**.*/
29750///
29751///# Extends
29752///- [`VideoProfileInfoKHR`]
29753///- [`QueryPoolCreateInfo`]
29754#[repr(C)]
29755#[derive(Copy, Clone, Debug)]
29756#[doc(alias = "VkVideoEncodeH265ProfileInfoKHR")]
29757pub struct VideoEncodeH265ProfileInfoKHR {
29758    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR`.
29759    pub s_type: StructureType,
29760    ///Optional, may be null.
29761    pub p_next: *const core::ffi::c_void,
29762    pub std_profile_idc: StdVideoH265ProfileIdc,
29763}
29764impl Default for VideoEncodeH265ProfileInfoKHR {
29765    #[inline]
29766    fn default() -> Self {
29767        Self {
29768            s_type: StructureType::from_raw(1000039007i32),
29769            p_next: core::ptr::null(),
29770            std_profile_idc: Default::default(),
29771        }
29772    }
29773}
29774///[`VkVideoEncodeH265DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265DpbSlotInfoKHR.html)
29775/**
29776Provided by **VK_KHR_video_encode_h265**.*/
29777///
29778///# Extends
29779///- [`VideoReferenceSlotInfoKHR`]
29780#[repr(C)]
29781#[derive(Copy, Clone, Debug)]
29782#[doc(alias = "VkVideoEncodeH265DpbSlotInfoKHR")]
29783pub struct VideoEncodeH265DpbSlotInfoKHR {
29784    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR`.
29785    pub s_type: StructureType,
29786    ///Optional, may be null.
29787    pub p_next: *const core::ffi::c_void,
29788    pub p_std_reference_info: *const StdVideoEncodeH265ReferenceInfo,
29789}
29790impl Default for VideoEncodeH265DpbSlotInfoKHR {
29791    #[inline]
29792    fn default() -> Self {
29793        Self {
29794            s_type: StructureType::from_raw(1000039004i32),
29795            p_next: core::ptr::null(),
29796            p_std_reference_info: core::ptr::null(),
29797        }
29798    }
29799}
29800///[`VkVideoEncodeAV1CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1CapabilitiesKHR.html)
29801/**
29802Provided by **VK_KHR_video_encode_av1**.*/
29803/**
29804**Returned only**, filled by Vulkan, not constructed by the application.*/
29805///
29806///# Extends
29807///- [`VideoCapabilitiesKHR`]
29808#[repr(C)]
29809#[derive(Copy, Clone, Debug)]
29810#[doc(alias = "VkVideoEncodeAV1CapabilitiesKHR")]
29811pub struct VideoEncodeAV1CapabilitiesKHR {
29812    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR`.
29813    pub s_type: StructureType,
29814    ///Optional, may be null.
29815    pub p_next: *mut core::ffi::c_void,
29816    pub flags: VideoEncodeAV1CapabilityFlagsKHR,
29817    pub max_level: StdVideoAV1Level,
29818    pub coded_picture_alignment: Extent2D,
29819    pub max_tiles: Extent2D,
29820    pub min_tile_size: Extent2D,
29821    pub max_tile_size: Extent2D,
29822    pub superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR,
29823    pub max_single_reference_count: u32,
29824    pub single_reference_name_mask: u32,
29825    pub max_unidirectional_compound_reference_count: u32,
29826    pub max_unidirectional_compound_group1_reference_count: u32,
29827    pub unidirectional_compound_reference_name_mask: u32,
29828    pub max_bidirectional_compound_reference_count: u32,
29829    pub max_bidirectional_compound_group1_reference_count: u32,
29830    pub max_bidirectional_compound_group2_reference_count: u32,
29831    pub bidirectional_compound_reference_name_mask: u32,
29832    pub max_temporal_layer_count: u32,
29833    pub max_spatial_layer_count: u32,
29834    pub max_operating_points: u32,
29835    pub min_q_index: u32,
29836    pub max_q_index: u32,
29837    pub prefers_gop_remaining_frames: u32,
29838    pub requires_gop_remaining_frames: u32,
29839    pub std_syntax_flags: VideoEncodeAV1StdFlagsKHR,
29840}
29841impl Default for VideoEncodeAV1CapabilitiesKHR {
29842    #[inline]
29843    fn default() -> Self {
29844        Self {
29845            s_type: StructureType::from_raw(1000513000i32),
29846            p_next: core::ptr::null_mut(),
29847            flags: Default::default(),
29848            max_level: Default::default(),
29849            coded_picture_alignment: Default::default(),
29850            max_tiles: Default::default(),
29851            min_tile_size: Default::default(),
29852            max_tile_size: Default::default(),
29853            superblock_sizes: Default::default(),
29854            max_single_reference_count: Default::default(),
29855            single_reference_name_mask: Default::default(),
29856            max_unidirectional_compound_reference_count: Default::default(),
29857            max_unidirectional_compound_group1_reference_count: Default::default(),
29858            unidirectional_compound_reference_name_mask: Default::default(),
29859            max_bidirectional_compound_reference_count: Default::default(),
29860            max_bidirectional_compound_group1_reference_count: Default::default(),
29861            max_bidirectional_compound_group2_reference_count: Default::default(),
29862            bidirectional_compound_reference_name_mask: Default::default(),
29863            max_temporal_layer_count: Default::default(),
29864            max_spatial_layer_count: Default::default(),
29865            max_operating_points: Default::default(),
29866            min_q_index: Default::default(),
29867            max_q_index: Default::default(),
29868            prefers_gop_remaining_frames: Default::default(),
29869            requires_gop_remaining_frames: Default::default(),
29870            std_syntax_flags: Default::default(),
29871        }
29872    }
29873}
29874///[`VkVideoEncodeAV1QualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1QualityLevelPropertiesKHR.html)
29875/**
29876Provided by **VK_KHR_video_encode_av1**.*/
29877/**
29878**Returned only**, filled by Vulkan, not constructed by the application.*/
29879///
29880///# Extends
29881///- [`VideoEncodeQualityLevelPropertiesKHR`]
29882#[repr(C)]
29883#[derive(Copy, Clone, Debug)]
29884#[doc(alias = "VkVideoEncodeAV1QualityLevelPropertiesKHR")]
29885pub struct VideoEncodeAV1QualityLevelPropertiesKHR {
29886    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR`.
29887    pub s_type: StructureType,
29888    ///Optional, may be null.
29889    pub p_next: *mut core::ffi::c_void,
29890    pub preferred_rate_control_flags: VideoEncodeAV1RateControlFlagsKHR,
29891    pub preferred_gop_frame_count: u32,
29892    pub preferred_key_frame_period: u32,
29893    pub preferred_consecutive_bipredictive_frame_count: u32,
29894    pub preferred_temporal_layer_count: u32,
29895    pub preferred_constant_q_index: VideoEncodeAV1QIndexKHR,
29896    pub preferred_max_single_reference_count: u32,
29897    pub preferred_single_reference_name_mask: u32,
29898    pub preferred_max_unidirectional_compound_reference_count: u32,
29899    pub preferred_max_unidirectional_compound_group1_reference_count: u32,
29900    pub preferred_unidirectional_compound_reference_name_mask: u32,
29901    pub preferred_max_bidirectional_compound_reference_count: u32,
29902    pub preferred_max_bidirectional_compound_group1_reference_count: u32,
29903    pub preferred_max_bidirectional_compound_group2_reference_count: u32,
29904    pub preferred_bidirectional_compound_reference_name_mask: u32,
29905}
29906impl Default for VideoEncodeAV1QualityLevelPropertiesKHR {
29907    #[inline]
29908    fn default() -> Self {
29909        Self {
29910            s_type: StructureType::from_raw(1000513008i32),
29911            p_next: core::ptr::null_mut(),
29912            preferred_rate_control_flags: Default::default(),
29913            preferred_gop_frame_count: Default::default(),
29914            preferred_key_frame_period: Default::default(),
29915            preferred_consecutive_bipredictive_frame_count: Default::default(),
29916            preferred_temporal_layer_count: Default::default(),
29917            preferred_constant_q_index: Default::default(),
29918            preferred_max_single_reference_count: Default::default(),
29919            preferred_single_reference_name_mask: Default::default(),
29920            preferred_max_unidirectional_compound_reference_count: Default::default(),
29921            preferred_max_unidirectional_compound_group1_reference_count: Default::default(),
29922            preferred_unidirectional_compound_reference_name_mask: Default::default(),
29923            preferred_max_bidirectional_compound_reference_count: Default::default(),
29924            preferred_max_bidirectional_compound_group1_reference_count: Default::default(),
29925            preferred_max_bidirectional_compound_group2_reference_count: Default::default(),
29926            preferred_bidirectional_compound_reference_name_mask: Default::default(),
29927        }
29928    }
29929}
29930///[`VkPhysicalDeviceVideoEncodeAV1FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeAV1FeaturesKHR.html)
29931/**
29932Provided by **VK_KHR_video_encode_av1**.*/
29933///
29934///# Extends
29935///- [`PhysicalDeviceFeatures2`]
29936///- [`DeviceCreateInfo`]
29937#[repr(C)]
29938#[derive(Copy, Clone, Debug)]
29939#[doc(alias = "VkPhysicalDeviceVideoEncodeAV1FeaturesKHR")]
29940pub struct PhysicalDeviceVideoEncodeAV1FeaturesKHR {
29941    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR`.
29942    pub s_type: StructureType,
29943    ///Optional, may be null.
29944    pub p_next: *mut core::ffi::c_void,
29945    pub video_encode_av1: u32,
29946}
29947impl Default for PhysicalDeviceVideoEncodeAV1FeaturesKHR {
29948    #[inline]
29949    fn default() -> Self {
29950        Self {
29951            s_type: StructureType::from_raw(1000513004i32),
29952            p_next: core::ptr::null_mut(),
29953            video_encode_av1: Default::default(),
29954        }
29955    }
29956}
29957///[`VkVideoEncodeAV1SessionCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1SessionCreateInfoKHR.html)
29958/**
29959Provided by **VK_KHR_video_encode_av1**.*/
29960///
29961///# Extends
29962///- [`VideoSessionCreateInfoKHR`]
29963#[repr(C)]
29964#[derive(Copy, Clone, Debug)]
29965#[doc(alias = "VkVideoEncodeAV1SessionCreateInfoKHR")]
29966pub struct VideoEncodeAV1SessionCreateInfoKHR {
29967    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR`.
29968    pub s_type: StructureType,
29969    ///Optional, may be null.
29970    pub p_next: *const core::ffi::c_void,
29971    pub use_max_level: u32,
29972    pub max_level: StdVideoAV1Level,
29973}
29974impl Default for VideoEncodeAV1SessionCreateInfoKHR {
29975    #[inline]
29976    fn default() -> Self {
29977        Self {
29978            s_type: StructureType::from_raw(1000513009i32),
29979            p_next: core::ptr::null(),
29980            use_max_level: Default::default(),
29981            max_level: Default::default(),
29982        }
29983    }
29984}
29985///[`VkVideoEncodeAV1SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1SessionParametersCreateInfoKHR.html)
29986/**
29987Provided by **VK_KHR_video_encode_av1**.*/
29988///
29989///# Extends
29990///- [`VideoSessionParametersCreateInfoKHR`]
29991#[repr(C)]
29992#[derive(Copy, Clone, Debug)]
29993#[doc(alias = "VkVideoEncodeAV1SessionParametersCreateInfoKHR")]
29994pub struct VideoEncodeAV1SessionParametersCreateInfoKHR {
29995    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR`.
29996    pub s_type: StructureType,
29997    ///Optional, may be null.
29998    pub p_next: *const core::ffi::c_void,
29999    pub p_std_sequence_header: *const StdVideoAV1SequenceHeader,
30000    ///Optional, may be null.
30001    pub p_std_decoder_model_info: *const StdVideoEncodeAV1DecoderModelInfo,
30002    ///Length of `p_std_operating_points`.
30003    pub std_operating_point_count: u32,
30004    ///Optional, may be null.
30005    pub p_std_operating_points: *const StdVideoEncodeAV1OperatingPointInfo,
30006}
30007impl Default for VideoEncodeAV1SessionParametersCreateInfoKHR {
30008    #[inline]
30009    fn default() -> Self {
30010        Self {
30011            s_type: StructureType::from_raw(1000513001i32),
30012            p_next: core::ptr::null(),
30013            p_std_sequence_header: core::ptr::null(),
30014            p_std_decoder_model_info: core::ptr::null(),
30015            std_operating_point_count: Default::default(),
30016            p_std_operating_points: core::ptr::null(),
30017        }
30018    }
30019}
30020///[`VkVideoEncodeAV1DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1DpbSlotInfoKHR.html)
30021/**
30022Provided by **VK_KHR_video_encode_av1**.*/
30023///
30024///# Extends
30025///- [`VideoReferenceSlotInfoKHR`]
30026#[repr(C)]
30027#[derive(Copy, Clone, Debug)]
30028#[doc(alias = "VkVideoEncodeAV1DpbSlotInfoKHR")]
30029pub struct VideoEncodeAV1DpbSlotInfoKHR {
30030    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR`.
30031    pub s_type: StructureType,
30032    ///Optional, may be null.
30033    pub p_next: *const core::ffi::c_void,
30034    pub p_std_reference_info: *const StdVideoEncodeAV1ReferenceInfo,
30035}
30036impl Default for VideoEncodeAV1DpbSlotInfoKHR {
30037    #[inline]
30038    fn default() -> Self {
30039        Self {
30040            s_type: StructureType::from_raw(1000513003i32),
30041            p_next: core::ptr::null(),
30042            p_std_reference_info: core::ptr::null(),
30043        }
30044    }
30045}
30046///[`VkVideoEncodeAV1PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1PictureInfoKHR.html)
30047/**
30048Provided by **VK_KHR_video_encode_av1**.*/
30049///
30050///# Extends
30051///- [`VideoEncodeInfoKHR`]
30052#[repr(C)]
30053#[derive(Copy, Clone, Debug)]
30054#[doc(alias = "VkVideoEncodeAV1PictureInfoKHR")]
30055pub struct VideoEncodeAV1PictureInfoKHR {
30056    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR`.
30057    pub s_type: StructureType,
30058    ///Optional, may be null.
30059    pub p_next: *const core::ffi::c_void,
30060    pub prediction_mode: VideoEncodeAV1PredictionModeKHR,
30061    pub rate_control_group: VideoEncodeAV1RateControlGroupKHR,
30062    pub constant_q_index: u32,
30063    pub p_std_picture_info: *const StdVideoEncodeAV1PictureInfo,
30064    pub reference_name_slot_indices: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR
30065        as usize],
30066    pub primary_reference_cdf_only: u32,
30067    pub generate_obu_extension_header: u32,
30068}
30069impl Default for VideoEncodeAV1PictureInfoKHR {
30070    #[inline]
30071    fn default() -> Self {
30072        Self {
30073            s_type: StructureType::from_raw(1000513002i32),
30074            p_next: core::ptr::null(),
30075            prediction_mode: Default::default(),
30076            rate_control_group: Default::default(),
30077            constant_q_index: Default::default(),
30078            p_std_picture_info: core::ptr::null(),
30079            reference_name_slot_indices: unsafe { core::mem::zeroed() },
30080            primary_reference_cdf_only: Default::default(),
30081            generate_obu_extension_header: Default::default(),
30082        }
30083    }
30084}
30085///[`VkVideoEncodeAV1ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1ProfileInfoKHR.html)
30086/**
30087Provided by **VK_KHR_video_encode_av1**.*/
30088///
30089///# Extends
30090///- [`VideoProfileInfoKHR`]
30091///- [`QueryPoolCreateInfo`]
30092#[repr(C)]
30093#[derive(Copy, Clone, Debug)]
30094#[doc(alias = "VkVideoEncodeAV1ProfileInfoKHR")]
30095pub struct VideoEncodeAV1ProfileInfoKHR {
30096    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR`.
30097    pub s_type: StructureType,
30098    ///Optional, may be null.
30099    pub p_next: *const core::ffi::c_void,
30100    pub std_profile: StdVideoAV1Profile,
30101}
30102impl Default for VideoEncodeAV1ProfileInfoKHR {
30103    #[inline]
30104    fn default() -> Self {
30105        Self {
30106            s_type: StructureType::from_raw(1000513005i32),
30107            p_next: core::ptr::null(),
30108            std_profile: Default::default(),
30109        }
30110    }
30111}
30112///[`VkVideoEncodeAV1RateControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1RateControlInfoKHR.html)
30113/**
30114Provided by **VK_KHR_video_encode_av1**.*/
30115///
30116///# Extends
30117///- [`VideoCodingControlInfoKHR`]
30118///- [`VideoBeginCodingInfoKHR`]
30119#[repr(C)]
30120#[derive(Copy, Clone, Debug)]
30121#[doc(alias = "VkVideoEncodeAV1RateControlInfoKHR")]
30122pub struct VideoEncodeAV1RateControlInfoKHR {
30123    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR`.
30124    pub s_type: StructureType,
30125    ///Optional, may be null.
30126    pub p_next: *const core::ffi::c_void,
30127    pub flags: VideoEncodeAV1RateControlFlagsKHR,
30128    pub gop_frame_count: u32,
30129    pub key_frame_period: u32,
30130    pub consecutive_bipredictive_frame_count: u32,
30131    pub temporal_layer_count: u32,
30132}
30133impl Default for VideoEncodeAV1RateControlInfoKHR {
30134    #[inline]
30135    fn default() -> Self {
30136        Self {
30137            s_type: StructureType::from_raw(1000513006i32),
30138            p_next: core::ptr::null(),
30139            flags: Default::default(),
30140            gop_frame_count: Default::default(),
30141            key_frame_period: Default::default(),
30142            consecutive_bipredictive_frame_count: Default::default(),
30143            temporal_layer_count: Default::default(),
30144        }
30145    }
30146}
30147///[`VkVideoEncodeAV1QIndexKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1QIndexKHR.html)
30148/**
30149Provided by **VK_KHR_video_encode_av1**.*/
30150#[repr(C)]
30151#[derive(Copy, Clone, Debug)]
30152#[doc(alias = "VkVideoEncodeAV1QIndexKHR")]
30153pub struct VideoEncodeAV1QIndexKHR {
30154    pub intra_q_index: u32,
30155    pub predictive_q_index: u32,
30156    pub bipredictive_q_index: u32,
30157}
30158impl Default for VideoEncodeAV1QIndexKHR {
30159    #[inline]
30160    fn default() -> Self {
30161        unsafe { core::mem::zeroed() }
30162    }
30163}
30164///[`VkVideoEncodeAV1FrameSizeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1FrameSizeKHR.html)
30165/**
30166Provided by **VK_KHR_video_encode_av1**.*/
30167#[repr(C)]
30168#[derive(Copy, Clone, Debug)]
30169#[doc(alias = "VkVideoEncodeAV1FrameSizeKHR")]
30170pub struct VideoEncodeAV1FrameSizeKHR {
30171    pub intra_frame_size: u32,
30172    pub predictive_frame_size: u32,
30173    pub bipredictive_frame_size: u32,
30174}
30175impl Default for VideoEncodeAV1FrameSizeKHR {
30176    #[inline]
30177    fn default() -> Self {
30178        unsafe { core::mem::zeroed() }
30179    }
30180}
30181///[`VkVideoEncodeAV1GopRemainingFrameInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1GopRemainingFrameInfoKHR.html)
30182/**
30183Provided by **VK_KHR_video_encode_av1**.*/
30184///
30185///# Extends
30186///- [`VideoBeginCodingInfoKHR`]
30187#[repr(C)]
30188#[derive(Copy, Clone, Debug)]
30189#[doc(alias = "VkVideoEncodeAV1GopRemainingFrameInfoKHR")]
30190pub struct VideoEncodeAV1GopRemainingFrameInfoKHR {
30191    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR`.
30192    pub s_type: StructureType,
30193    ///Optional, may be null.
30194    pub p_next: *const core::ffi::c_void,
30195    pub use_gop_remaining_frames: u32,
30196    pub gop_remaining_intra: u32,
30197    pub gop_remaining_predictive: u32,
30198    pub gop_remaining_bipredictive: u32,
30199}
30200impl Default for VideoEncodeAV1GopRemainingFrameInfoKHR {
30201    #[inline]
30202    fn default() -> Self {
30203        Self {
30204            s_type: StructureType::from_raw(1000513010i32),
30205            p_next: core::ptr::null(),
30206            use_gop_remaining_frames: Default::default(),
30207            gop_remaining_intra: Default::default(),
30208            gop_remaining_predictive: Default::default(),
30209            gop_remaining_bipredictive: Default::default(),
30210        }
30211    }
30212}
30213///[`VkVideoEncodeAV1RateControlLayerInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1RateControlLayerInfoKHR.html)
30214/**
30215Provided by **VK_KHR_video_encode_av1**.*/
30216///
30217///# Extends
30218///- [`VideoEncodeRateControlLayerInfoKHR`]
30219#[repr(C)]
30220#[derive(Copy, Clone, Debug)]
30221#[doc(alias = "VkVideoEncodeAV1RateControlLayerInfoKHR")]
30222pub struct VideoEncodeAV1RateControlLayerInfoKHR {
30223    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR`.
30224    pub s_type: StructureType,
30225    ///Optional, may be null.
30226    pub p_next: *const core::ffi::c_void,
30227    pub use_min_q_index: u32,
30228    pub min_q_index: VideoEncodeAV1QIndexKHR,
30229    pub use_max_q_index: u32,
30230    pub max_q_index: VideoEncodeAV1QIndexKHR,
30231    pub use_max_frame_size: u32,
30232    pub max_frame_size: VideoEncodeAV1FrameSizeKHR,
30233}
30234impl Default for VideoEncodeAV1RateControlLayerInfoKHR {
30235    #[inline]
30236    fn default() -> Self {
30237        Self {
30238            s_type: StructureType::from_raw(1000513007i32),
30239            p_next: core::ptr::null(),
30240            use_min_q_index: Default::default(),
30241            min_q_index: Default::default(),
30242            use_max_q_index: Default::default(),
30243            max_q_index: Default::default(),
30244            use_max_frame_size: Default::default(),
30245            max_frame_size: Default::default(),
30246        }
30247    }
30248}
30249///[`VkPhysicalDeviceInheritedViewportScissorFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.html)
30250/**
30251Provided by **VK_NV_inherited_viewport_scissor**.*/
30252///
30253///# Extends
30254///- [`PhysicalDeviceFeatures2`]
30255///- [`DeviceCreateInfo`]
30256#[repr(C)]
30257#[derive(Copy, Clone, Debug)]
30258#[doc(alias = "VkPhysicalDeviceInheritedViewportScissorFeaturesNV")]
30259pub struct PhysicalDeviceInheritedViewportScissorFeaturesNV {
30260    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV`.
30261    pub s_type: StructureType,
30262    ///Optional, may be null.
30263    pub p_next: *mut core::ffi::c_void,
30264    pub inherited_viewport_scissor2_d: u32,
30265}
30266impl Default for PhysicalDeviceInheritedViewportScissorFeaturesNV {
30267    #[inline]
30268    fn default() -> Self {
30269        Self {
30270            s_type: StructureType::from_raw(1000278000i32),
30271            p_next: core::ptr::null_mut(),
30272            inherited_viewport_scissor2_d: Default::default(),
30273        }
30274    }
30275}
30276///[`VkCommandBufferInheritanceViewportScissorInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceViewportScissorInfoNV.html)
30277/**
30278Provided by **VK_NV_inherited_viewport_scissor**.*/
30279///
30280///# Extends
30281///- [`CommandBufferInheritanceInfo`]
30282#[repr(C)]
30283#[derive(Copy, Clone, Debug)]
30284#[doc(alias = "VkCommandBufferInheritanceViewportScissorInfoNV")]
30285pub struct CommandBufferInheritanceViewportScissorInfoNV {
30286    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV`.
30287    pub s_type: StructureType,
30288    ///Optional, may be null.
30289    pub p_next: *const core::ffi::c_void,
30290    pub viewport_scissor2_d: u32,
30291    pub viewport_depth_count: u32,
30292    pub p_viewport_depths: *const Viewport,
30293}
30294impl Default for CommandBufferInheritanceViewportScissorInfoNV {
30295    #[inline]
30296    fn default() -> Self {
30297        Self {
30298            s_type: StructureType::from_raw(1000278001i32),
30299            p_next: core::ptr::null(),
30300            viewport_scissor2_d: Default::default(),
30301            viewport_depth_count: Default::default(),
30302            p_viewport_depths: core::ptr::null(),
30303        }
30304    }
30305}
30306///[`VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.html)
30307/**
30308Provided by **VK_EXT_ycbcr_2plane_444_formats**.*/
30309///
30310///# Extends
30311///- [`PhysicalDeviceFeatures2`]
30312///- [`DeviceCreateInfo`]
30313#[repr(C)]
30314#[derive(Copy, Clone, Debug)]
30315#[doc(alias = "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT")]
30316pub struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
30317    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT`.
30318    pub s_type: StructureType,
30319    ///Optional, may be null.
30320    pub p_next: *mut core::ffi::c_void,
30321    pub ycbcr2plane444_formats: u32,
30322}
30323impl Default for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
30324    #[inline]
30325    fn default() -> Self {
30326        Self {
30327            s_type: StructureType::from_raw(1000330000i32),
30328            p_next: core::ptr::null_mut(),
30329            ycbcr2plane444_formats: Default::default(),
30330        }
30331    }
30332}
30333///[`VkPhysicalDeviceProvokingVertexFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProvokingVertexFeaturesEXT.html)
30334/**
30335Provided by **VK_EXT_provoking_vertex**.*/
30336///
30337///# Extends
30338///- [`PhysicalDeviceFeatures2`]
30339///- [`DeviceCreateInfo`]
30340#[repr(C)]
30341#[derive(Copy, Clone, Debug)]
30342#[doc(alias = "VkPhysicalDeviceProvokingVertexFeaturesEXT")]
30343pub struct PhysicalDeviceProvokingVertexFeaturesEXT {
30344    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT`.
30345    pub s_type: StructureType,
30346    ///Optional, may be null.
30347    pub p_next: *mut core::ffi::c_void,
30348    pub provoking_vertex_last: u32,
30349    pub transform_feedback_preserves_provoking_vertex: u32,
30350}
30351impl Default for PhysicalDeviceProvokingVertexFeaturesEXT {
30352    #[inline]
30353    fn default() -> Self {
30354        Self {
30355            s_type: StructureType::from_raw(1000254000i32),
30356            p_next: core::ptr::null_mut(),
30357            provoking_vertex_last: Default::default(),
30358            transform_feedback_preserves_provoking_vertex: Default::default(),
30359        }
30360    }
30361}
30362///[`VkPhysicalDeviceProvokingVertexPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProvokingVertexPropertiesEXT.html)
30363/**
30364Provided by **VK_EXT_provoking_vertex**.*/
30365/**
30366**Returned only**, filled by Vulkan, not constructed by the application.*/
30367///
30368///# Extends
30369///- [`PhysicalDeviceProperties2`]
30370#[repr(C)]
30371#[derive(Copy, Clone, Debug)]
30372#[doc(alias = "VkPhysicalDeviceProvokingVertexPropertiesEXT")]
30373pub struct PhysicalDeviceProvokingVertexPropertiesEXT {
30374    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT`.
30375    pub s_type: StructureType,
30376    ///Optional, may be null.
30377    pub p_next: *mut core::ffi::c_void,
30378    pub provoking_vertex_mode_per_pipeline: u32,
30379    pub transform_feedback_preserves_triangle_fan_provoking_vertex: u32,
30380}
30381impl Default for PhysicalDeviceProvokingVertexPropertiesEXT {
30382    #[inline]
30383    fn default() -> Self {
30384        Self {
30385            s_type: StructureType::from_raw(1000254002i32),
30386            p_next: core::ptr::null_mut(),
30387            provoking_vertex_mode_per_pipeline: Default::default(),
30388            transform_feedback_preserves_triangle_fan_provoking_vertex: Default::default(),
30389        }
30390    }
30391}
30392///[`VkPipelineRasterizationProvokingVertexStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationProvokingVertexStateCreateInfoEXT.html)
30393/**
30394Provided by **VK_EXT_provoking_vertex**.*/
30395///
30396///# Extends
30397///- [`PipelineRasterizationStateCreateInfo`]
30398#[repr(C)]
30399#[derive(Copy, Clone, Debug)]
30400#[doc(alias = "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT")]
30401pub struct PipelineRasterizationProvokingVertexStateCreateInfoEXT {
30402    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT`.
30403    pub s_type: StructureType,
30404    ///Optional, may be null.
30405    pub p_next: *const core::ffi::c_void,
30406    pub provoking_vertex_mode: ProvokingVertexModeEXT,
30407}
30408impl Default for PipelineRasterizationProvokingVertexStateCreateInfoEXT {
30409    #[inline]
30410    fn default() -> Self {
30411        Self {
30412            s_type: StructureType::from_raw(1000254001i32),
30413            p_next: core::ptr::null(),
30414            provoking_vertex_mode: Default::default(),
30415        }
30416    }
30417}
30418///[`VkVideoEncodeIntraRefreshCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeIntraRefreshCapabilitiesKHR.html)
30419/**
30420Provided by **VK_KHR_video_encode_intra_refresh**.*/
30421/**
30422**Returned only**, filled by Vulkan, not constructed by the application.*/
30423///
30424///# Extends
30425///- [`VideoCapabilitiesKHR`]
30426#[repr(C)]
30427#[derive(Copy, Clone, Debug)]
30428#[doc(alias = "VkVideoEncodeIntraRefreshCapabilitiesKHR")]
30429pub struct VideoEncodeIntraRefreshCapabilitiesKHR {
30430    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR`.
30431    pub s_type: StructureType,
30432    ///Optional, may be null.
30433    pub p_next: *mut core::ffi::c_void,
30434    pub intra_refresh_modes: VideoEncodeIntraRefreshModeFlagsKHR,
30435    pub max_intra_refresh_cycle_duration: u32,
30436    pub max_intra_refresh_active_reference_pictures: u32,
30437    pub partition_independent_intra_refresh_regions: u32,
30438    pub non_rectangular_intra_refresh_regions: u32,
30439}
30440impl Default for VideoEncodeIntraRefreshCapabilitiesKHR {
30441    #[inline]
30442    fn default() -> Self {
30443        Self {
30444            s_type: StructureType::from_raw(1000552000i32),
30445            p_next: core::ptr::null_mut(),
30446            intra_refresh_modes: Default::default(),
30447            max_intra_refresh_cycle_duration: Default::default(),
30448            max_intra_refresh_active_reference_pictures: Default::default(),
30449            partition_independent_intra_refresh_regions: Default::default(),
30450            non_rectangular_intra_refresh_regions: Default::default(),
30451        }
30452    }
30453}
30454///[`VkVideoEncodeSessionIntraRefreshCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeSessionIntraRefreshCreateInfoKHR.html)
30455/**
30456Provided by **VK_KHR_video_encode_intra_refresh**.*/
30457///
30458///# Extends
30459///- [`VideoSessionCreateInfoKHR`]
30460#[repr(C)]
30461#[derive(Copy, Clone, Debug)]
30462#[doc(alias = "VkVideoEncodeSessionIntraRefreshCreateInfoKHR")]
30463pub struct VideoEncodeSessionIntraRefreshCreateInfoKHR {
30464    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR`.
30465    pub s_type: StructureType,
30466    ///Optional, may be null.
30467    pub p_next: *const core::ffi::c_void,
30468    pub intra_refresh_mode: VideoEncodeIntraRefreshModeFlagBitsKHR,
30469}
30470impl Default for VideoEncodeSessionIntraRefreshCreateInfoKHR {
30471    #[inline]
30472    fn default() -> Self {
30473        Self {
30474            s_type: StructureType::from_raw(1000552001i32),
30475            p_next: core::ptr::null(),
30476            intra_refresh_mode: Default::default(),
30477        }
30478    }
30479}
30480///[`VkVideoEncodeIntraRefreshInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeIntraRefreshInfoKHR.html)
30481/**
30482Provided by **VK_KHR_video_encode_intra_refresh**.*/
30483///
30484///# Extends
30485///- [`VideoEncodeInfoKHR`]
30486#[repr(C)]
30487#[derive(Copy, Clone, Debug)]
30488#[doc(alias = "VkVideoEncodeIntraRefreshInfoKHR")]
30489pub struct VideoEncodeIntraRefreshInfoKHR {
30490    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR`.
30491    pub s_type: StructureType,
30492    ///Optional, may be null.
30493    pub p_next: *const core::ffi::c_void,
30494    pub intra_refresh_cycle_duration: u32,
30495    pub intra_refresh_index: u32,
30496}
30497impl Default for VideoEncodeIntraRefreshInfoKHR {
30498    #[inline]
30499    fn default() -> Self {
30500        Self {
30501            s_type: StructureType::from_raw(1000552002i32),
30502            p_next: core::ptr::null(),
30503            intra_refresh_cycle_duration: Default::default(),
30504            intra_refresh_index: Default::default(),
30505        }
30506    }
30507}
30508///[`VkVideoReferenceIntraRefreshInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoReferenceIntraRefreshInfoKHR.html)
30509/**
30510Provided by **VK_KHR_video_encode_intra_refresh**.*/
30511///
30512///# Extends
30513///- [`VideoReferenceSlotInfoKHR`]
30514#[repr(C)]
30515#[derive(Copy, Clone, Debug)]
30516#[doc(alias = "VkVideoReferenceIntraRefreshInfoKHR")]
30517pub struct VideoReferenceIntraRefreshInfoKHR {
30518    ///Must be `VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR`.
30519    pub s_type: StructureType,
30520    ///Optional, may be null.
30521    pub p_next: *const core::ffi::c_void,
30522    pub dirty_intra_refresh_regions: u32,
30523}
30524impl Default for VideoReferenceIntraRefreshInfoKHR {
30525    #[inline]
30526    fn default() -> Self {
30527        Self {
30528            s_type: StructureType::from_raw(1000552003i32),
30529            p_next: core::ptr::null(),
30530            dirty_intra_refresh_regions: Default::default(),
30531        }
30532    }
30533}
30534///[`VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR.html)
30535/**
30536Provided by **VK_KHR_video_encode_intra_refresh**.*/
30537///
30538///# Extends
30539///- [`PhysicalDeviceFeatures2`]
30540///- [`DeviceCreateInfo`]
30541#[repr(C)]
30542#[derive(Copy, Clone, Debug)]
30543#[doc(alias = "VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR")]
30544pub struct PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
30545    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR`.
30546    pub s_type: StructureType,
30547    ///Optional, may be null.
30548    pub p_next: *mut core::ffi::c_void,
30549    pub video_encode_intra_refresh: u32,
30550}
30551impl Default for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
30552    #[inline]
30553    fn default() -> Self {
30554        Self {
30555            s_type: StructureType::from_raw(1000552004i32),
30556            p_next: core::ptr::null_mut(),
30557            video_encode_intra_refresh: Default::default(),
30558        }
30559    }
30560}
30561///[`VkCuModuleCreateInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuModuleCreateInfoNVX.html)
30562/**
30563Provided by **VK_NVX_binary_import**.*/
30564///
30565///# Extended By
30566///- [`CuModuleTexturingModeCreateInfoNVX`]
30567#[repr(C)]
30568#[derive(Copy, Clone, Debug)]
30569#[doc(alias = "VkCuModuleCreateInfoNVX")]
30570pub struct CuModuleCreateInfoNVX {
30571    ///Must be `VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX`.
30572    pub s_type: StructureType,
30573    ///Optional, may be null.
30574    pub p_next: *const core::ffi::c_void,
30575    ///Length of `p_data`.
30576    pub data_size: usize,
30577    pub p_data: *const core::ffi::c_void,
30578}
30579impl Default for CuModuleCreateInfoNVX {
30580    #[inline]
30581    fn default() -> Self {
30582        Self {
30583            s_type: StructureType::from_raw(1000029000i32),
30584            p_next: core::ptr::null(),
30585            data_size: Default::default(),
30586            p_data: core::ptr::null(),
30587        }
30588    }
30589}
30590///[`VkCuModuleTexturingModeCreateInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuModuleTexturingModeCreateInfoNVX.html)
30591/**
30592Provided by **VK_NVX_binary_import**.*/
30593///
30594///# Extends
30595///- [`CuModuleCreateInfoNVX`]
30596#[repr(C)]
30597#[derive(Copy, Clone, Debug)]
30598#[doc(alias = "VkCuModuleTexturingModeCreateInfoNVX")]
30599pub struct CuModuleTexturingModeCreateInfoNVX {
30600    ///Must be `VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX`.
30601    pub s_type: StructureType,
30602    ///Optional, may be null.
30603    pub p_next: *const core::ffi::c_void,
30604    pub use64bit_texturing: u32,
30605}
30606impl Default for CuModuleTexturingModeCreateInfoNVX {
30607    #[inline]
30608    fn default() -> Self {
30609        Self {
30610            s_type: StructureType::from_raw(1000029004i32),
30611            p_next: core::ptr::null(),
30612            use64bit_texturing: Default::default(),
30613        }
30614    }
30615}
30616///[`VkCuFunctionCreateInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuFunctionCreateInfoNVX.html)
30617/**
30618Provided by **VK_NVX_binary_import**.*/
30619#[repr(C)]
30620#[derive(Copy, Clone, Debug)]
30621#[doc(alias = "VkCuFunctionCreateInfoNVX")]
30622pub struct CuFunctionCreateInfoNVX {
30623    ///Must be `VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX`.
30624    pub s_type: StructureType,
30625    ///Optional, may be null.
30626    pub p_next: *const core::ffi::c_void,
30627    pub module: CuModuleNVX,
30628    pub p_name: *const core::ffi::c_char,
30629}
30630impl Default for CuFunctionCreateInfoNVX {
30631    #[inline]
30632    fn default() -> Self {
30633        Self {
30634            s_type: StructureType::from_raw(1000029001i32),
30635            p_next: core::ptr::null(),
30636            module: Default::default(),
30637            p_name: core::ptr::null(),
30638        }
30639    }
30640}
30641///[`VkCuLaunchInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuLaunchInfoNVX.html)
30642/**
30643Provided by **VK_NVX_binary_import**.*/
30644#[repr(C)]
30645#[derive(Copy, Clone, Debug)]
30646#[doc(alias = "VkCuLaunchInfoNVX")]
30647pub struct CuLaunchInfoNVX {
30648    ///Must be `VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX`.
30649    pub s_type: StructureType,
30650    ///Optional, may be null.
30651    pub p_next: *const core::ffi::c_void,
30652    pub function: CuFunctionNVX,
30653    pub grid_dim_x: u32,
30654    pub grid_dim_y: u32,
30655    pub grid_dim_z: u32,
30656    pub block_dim_x: u32,
30657    pub block_dim_y: u32,
30658    pub block_dim_z: u32,
30659    pub shared_mem_bytes: u32,
30660    ///Length of `p_params`.
30661    pub param_count: usize,
30662    pub p_params: *const *const core::ffi::c_void,
30663    ///Length of `p_extras`.
30664    pub extra_count: usize,
30665    pub p_extras: *const *const core::ffi::c_void,
30666}
30667impl Default for CuLaunchInfoNVX {
30668    #[inline]
30669    fn default() -> Self {
30670        Self {
30671            s_type: StructureType::from_raw(1000029002i32),
30672            p_next: core::ptr::null(),
30673            function: Default::default(),
30674            grid_dim_x: Default::default(),
30675            grid_dim_y: Default::default(),
30676            grid_dim_z: Default::default(),
30677            block_dim_x: Default::default(),
30678            block_dim_y: Default::default(),
30679            block_dim_z: Default::default(),
30680            shared_mem_bytes: Default::default(),
30681            param_count: Default::default(),
30682            p_params: core::ptr::null(),
30683            extra_count: Default::default(),
30684            p_extras: core::ptr::null(),
30685        }
30686    }
30687}
30688///[`VkPhysicalDeviceDescriptorBufferFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferFeaturesEXT.html)
30689/**
30690Provided by **VK_EXT_descriptor_buffer**.*/
30691///
30692///# Extends
30693///- [`PhysicalDeviceFeatures2`]
30694///- [`DeviceCreateInfo`]
30695#[repr(C)]
30696#[derive(Copy, Clone, Debug)]
30697#[doc(alias = "VkPhysicalDeviceDescriptorBufferFeaturesEXT")]
30698pub struct PhysicalDeviceDescriptorBufferFeaturesEXT {
30699    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT`.
30700    pub s_type: StructureType,
30701    ///Optional, may be null.
30702    pub p_next: *mut core::ffi::c_void,
30703    pub descriptor_buffer: u32,
30704    pub descriptor_buffer_capture_replay: u32,
30705    pub descriptor_buffer_image_layout_ignored: u32,
30706    pub descriptor_buffer_push_descriptors: u32,
30707}
30708impl Default for PhysicalDeviceDescriptorBufferFeaturesEXT {
30709    #[inline]
30710    fn default() -> Self {
30711        Self {
30712            s_type: StructureType::from_raw(1000316002i32),
30713            p_next: core::ptr::null_mut(),
30714            descriptor_buffer: Default::default(),
30715            descriptor_buffer_capture_replay: Default::default(),
30716            descriptor_buffer_image_layout_ignored: Default::default(),
30717            descriptor_buffer_push_descriptors: Default::default(),
30718        }
30719    }
30720}
30721///[`VkPhysicalDeviceDescriptorBufferPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferPropertiesEXT.html)
30722/**
30723Provided by **VK_EXT_descriptor_buffer**.*/
30724/**
30725**Returned only**, filled by Vulkan, not constructed by the application.*/
30726///
30727///# Extends
30728///- [`PhysicalDeviceProperties2`]
30729#[repr(C)]
30730#[derive(Copy, Clone, Debug)]
30731#[doc(alias = "VkPhysicalDeviceDescriptorBufferPropertiesEXT")]
30732pub struct PhysicalDeviceDescriptorBufferPropertiesEXT {
30733    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT`.
30734    pub s_type: StructureType,
30735    ///Optional, may be null.
30736    pub p_next: *mut core::ffi::c_void,
30737    pub combined_image_sampler_descriptor_single_array: u32,
30738    pub bufferless_push_descriptors: u32,
30739    pub allow_sampler_image_view_post_submit_creation: u32,
30740    pub descriptor_buffer_offset_alignment: u64,
30741    pub max_descriptor_buffer_bindings: u32,
30742    pub max_resource_descriptor_buffer_bindings: u32,
30743    pub max_sampler_descriptor_buffer_bindings: u32,
30744    pub max_embedded_immutable_sampler_bindings: u32,
30745    pub max_embedded_immutable_samplers: u32,
30746    pub buffer_capture_replay_descriptor_data_size: usize,
30747    pub image_capture_replay_descriptor_data_size: usize,
30748    pub image_view_capture_replay_descriptor_data_size: usize,
30749    pub sampler_capture_replay_descriptor_data_size: usize,
30750    pub acceleration_structure_capture_replay_descriptor_data_size: usize,
30751    pub sampler_descriptor_size: usize,
30752    pub combined_image_sampler_descriptor_size: usize,
30753    pub sampled_image_descriptor_size: usize,
30754    pub storage_image_descriptor_size: usize,
30755    pub uniform_texel_buffer_descriptor_size: usize,
30756    pub robust_uniform_texel_buffer_descriptor_size: usize,
30757    pub storage_texel_buffer_descriptor_size: usize,
30758    pub robust_storage_texel_buffer_descriptor_size: usize,
30759    pub uniform_buffer_descriptor_size: usize,
30760    pub robust_uniform_buffer_descriptor_size: usize,
30761    pub storage_buffer_descriptor_size: usize,
30762    pub robust_storage_buffer_descriptor_size: usize,
30763    pub input_attachment_descriptor_size: usize,
30764    pub acceleration_structure_descriptor_size: usize,
30765    pub max_sampler_descriptor_buffer_range: u64,
30766    pub max_resource_descriptor_buffer_range: u64,
30767    pub sampler_descriptor_buffer_address_space_size: u64,
30768    pub resource_descriptor_buffer_address_space_size: u64,
30769    pub descriptor_buffer_address_space_size: u64,
30770}
30771impl Default for PhysicalDeviceDescriptorBufferPropertiesEXT {
30772    #[inline]
30773    fn default() -> Self {
30774        Self {
30775            s_type: StructureType::from_raw(1000316000i32),
30776            p_next: core::ptr::null_mut(),
30777            combined_image_sampler_descriptor_single_array: Default::default(),
30778            bufferless_push_descriptors: Default::default(),
30779            allow_sampler_image_view_post_submit_creation: Default::default(),
30780            descriptor_buffer_offset_alignment: Default::default(),
30781            max_descriptor_buffer_bindings: Default::default(),
30782            max_resource_descriptor_buffer_bindings: Default::default(),
30783            max_sampler_descriptor_buffer_bindings: Default::default(),
30784            max_embedded_immutable_sampler_bindings: Default::default(),
30785            max_embedded_immutable_samplers: Default::default(),
30786            buffer_capture_replay_descriptor_data_size: Default::default(),
30787            image_capture_replay_descriptor_data_size: Default::default(),
30788            image_view_capture_replay_descriptor_data_size: Default::default(),
30789            sampler_capture_replay_descriptor_data_size: Default::default(),
30790            acceleration_structure_capture_replay_descriptor_data_size: Default::default(),
30791            sampler_descriptor_size: Default::default(),
30792            combined_image_sampler_descriptor_size: Default::default(),
30793            sampled_image_descriptor_size: Default::default(),
30794            storage_image_descriptor_size: Default::default(),
30795            uniform_texel_buffer_descriptor_size: Default::default(),
30796            robust_uniform_texel_buffer_descriptor_size: Default::default(),
30797            storage_texel_buffer_descriptor_size: Default::default(),
30798            robust_storage_texel_buffer_descriptor_size: Default::default(),
30799            uniform_buffer_descriptor_size: Default::default(),
30800            robust_uniform_buffer_descriptor_size: Default::default(),
30801            storage_buffer_descriptor_size: Default::default(),
30802            robust_storage_buffer_descriptor_size: Default::default(),
30803            input_attachment_descriptor_size: Default::default(),
30804            acceleration_structure_descriptor_size: Default::default(),
30805            max_sampler_descriptor_buffer_range: Default::default(),
30806            max_resource_descriptor_buffer_range: Default::default(),
30807            sampler_descriptor_buffer_address_space_size: Default::default(),
30808            resource_descriptor_buffer_address_space_size: Default::default(),
30809            descriptor_buffer_address_space_size: Default::default(),
30810        }
30811    }
30812}
30813///[`VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT.html)
30814/**
30815Provided by **VK_EXT_descriptor_buffer**.*/
30816/**
30817**Returned only**, filled by Vulkan, not constructed by the application.*/
30818///
30819///# Extends
30820///- [`PhysicalDeviceProperties2`]
30821#[repr(C)]
30822#[derive(Copy, Clone, Debug)]
30823#[doc(alias = "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT")]
30824pub struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
30825    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT`.
30826    pub s_type: StructureType,
30827    ///Optional, may be null.
30828    pub p_next: *mut core::ffi::c_void,
30829    pub combined_image_sampler_density_map_descriptor_size: usize,
30830}
30831impl Default for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
30832    #[inline]
30833    fn default() -> Self {
30834        Self {
30835            s_type: StructureType::from_raw(1000316001i32),
30836            p_next: core::ptr::null_mut(),
30837            combined_image_sampler_density_map_descriptor_size: Default::default(),
30838        }
30839    }
30840}
30841///[`VkDescriptorAddressInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorAddressInfoEXT.html)
30842/**
30843Provided by **VK_EXT_descriptor_buffer**.*/
30844#[repr(C)]
30845#[derive(Copy, Clone, Debug)]
30846#[doc(alias = "VkDescriptorAddressInfoEXT")]
30847pub struct DescriptorAddressInfoEXT {
30848    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT`.
30849    pub s_type: StructureType,
30850    ///Optional, may be null.
30851    pub p_next: *mut core::ffi::c_void,
30852    pub address: u64,
30853    pub range: u64,
30854    pub format: Format,
30855}
30856impl Default for DescriptorAddressInfoEXT {
30857    #[inline]
30858    fn default() -> Self {
30859        Self {
30860            s_type: StructureType::from_raw(1000316003i32),
30861            p_next: core::ptr::null_mut(),
30862            address: Default::default(),
30863            range: Default::default(),
30864            format: Default::default(),
30865        }
30866    }
30867}
30868///[`VkDescriptorBufferBindingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorBufferBindingInfoEXT.html)
30869/**
30870Provided by **VK_EXT_descriptor_buffer**.*/
30871///
30872///# Extended By
30873///- [`BufferUsageFlags2CreateInfo`]
30874///- [`DescriptorBufferBindingPushDescriptorBufferHandleEXT`]
30875#[repr(C)]
30876#[derive(Copy, Clone, Debug)]
30877#[doc(alias = "VkDescriptorBufferBindingInfoEXT")]
30878pub struct DescriptorBufferBindingInfoEXT {
30879    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT`.
30880    pub s_type: StructureType,
30881    ///Optional, may be null.
30882    pub p_next: *const core::ffi::c_void,
30883    pub address: u64,
30884    pub usage: BufferUsageFlags,
30885}
30886impl Default for DescriptorBufferBindingInfoEXT {
30887    #[inline]
30888    fn default() -> Self {
30889        Self {
30890            s_type: StructureType::from_raw(1000316011i32),
30891            p_next: core::ptr::null(),
30892            address: Default::default(),
30893            usage: Default::default(),
30894        }
30895    }
30896}
30897///[`VkDescriptorBufferBindingPushDescriptorBufferHandleEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorBufferBindingPushDescriptorBufferHandleEXT.html)
30898/**
30899Provided by **VK_EXT_descriptor_buffer**.*/
30900///
30901///# Extends
30902///- [`DescriptorBufferBindingInfoEXT`]
30903#[repr(C)]
30904#[derive(Copy, Clone, Debug)]
30905#[doc(alias = "VkDescriptorBufferBindingPushDescriptorBufferHandleEXT")]
30906pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT {
30907    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT`.
30908    pub s_type: StructureType,
30909    ///Optional, may be null.
30910    pub p_next: *const core::ffi::c_void,
30911    pub buffer: Buffer,
30912}
30913impl Default for DescriptorBufferBindingPushDescriptorBufferHandleEXT {
30914    #[inline]
30915    fn default() -> Self {
30916        Self {
30917            s_type: StructureType::from_raw(1000316012i32),
30918            p_next: core::ptr::null(),
30919            buffer: Default::default(),
30920        }
30921    }
30922}
30923///[`VkDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorDataEXT.html)
30924/**
30925Provided by **VK_EXT_descriptor_buffer**.*/
30926#[repr(C)]
30927#[derive(Copy, Clone)]
30928#[doc(alias = "VkDescriptorDataEXT")]
30929pub union DescriptorDataEXT {
30930    pub p_sampler: *const Sampler,
30931    pub p_combined_image_sampler: *const DescriptorImageInfo,
30932    pub p_input_attachment_image: *const DescriptorImageInfo,
30933    pub p_sampled_image: *const DescriptorImageInfo,
30934    pub p_storage_image: *const DescriptorImageInfo,
30935    pub p_uniform_texel_buffer: *const DescriptorAddressInfoEXT,
30936    pub p_storage_texel_buffer: *const DescriptorAddressInfoEXT,
30937    pub p_uniform_buffer: *const DescriptorAddressInfoEXT,
30938    pub p_storage_buffer: *const DescriptorAddressInfoEXT,
30939    pub acceleration_structure: u64,
30940}
30941impl Default for DescriptorDataEXT {
30942    #[inline]
30943    fn default() -> Self {
30944        unsafe { core::mem::zeroed() }
30945    }
30946}
30947impl core::fmt::Debug for DescriptorDataEXT {
30948    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
30949        f.write_str(stringify!(DescriptorDataEXT))
30950    }
30951}
30952///[`VkDescriptorGetInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorGetInfoEXT.html)
30953/**
30954Provided by **VK_EXT_descriptor_buffer**.*/
30955///
30956///# Extended By
30957///- [`DescriptorGetTensorInfoARM`]
30958#[repr(C)]
30959#[derive(Copy, Clone, Debug)]
30960#[doc(alias = "VkDescriptorGetInfoEXT")]
30961pub struct DescriptorGetInfoEXT {
30962    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT`.
30963    pub s_type: StructureType,
30964    ///Optional, may be null.
30965    pub p_next: *const core::ffi::c_void,
30966    pub r#type: DescriptorType,
30967    pub data: DescriptorDataEXT,
30968}
30969impl Default for DescriptorGetInfoEXT {
30970    #[inline]
30971    fn default() -> Self {
30972        Self {
30973            s_type: StructureType::from_raw(1000316004i32),
30974            p_next: core::ptr::null(),
30975            r#type: Default::default(),
30976            data: Default::default(),
30977        }
30978    }
30979}
30980///[`VkBufferCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCaptureDescriptorDataInfoEXT.html)
30981/**
30982Provided by **VK_EXT_descriptor_buffer**.*/
30983#[repr(C)]
30984#[derive(Copy, Clone, Debug)]
30985#[doc(alias = "VkBufferCaptureDescriptorDataInfoEXT")]
30986pub struct BufferCaptureDescriptorDataInfoEXT {
30987    ///Must be `VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
30988    pub s_type: StructureType,
30989    ///Optional, may be null.
30990    pub p_next: *const core::ffi::c_void,
30991    pub buffer: Buffer,
30992}
30993impl Default for BufferCaptureDescriptorDataInfoEXT {
30994    #[inline]
30995    fn default() -> Self {
30996        Self {
30997            s_type: StructureType::from_raw(1000316005i32),
30998            p_next: core::ptr::null(),
30999            buffer: Default::default(),
31000        }
31001    }
31002}
31003///[`VkImageCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCaptureDescriptorDataInfoEXT.html)
31004/**
31005Provided by **VK_EXT_descriptor_buffer**.*/
31006#[repr(C)]
31007#[derive(Copy, Clone, Debug)]
31008#[doc(alias = "VkImageCaptureDescriptorDataInfoEXT")]
31009pub struct ImageCaptureDescriptorDataInfoEXT {
31010    ///Must be `VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
31011    pub s_type: StructureType,
31012    ///Optional, may be null.
31013    pub p_next: *const core::ffi::c_void,
31014    pub image: Image,
31015}
31016impl Default for ImageCaptureDescriptorDataInfoEXT {
31017    #[inline]
31018    fn default() -> Self {
31019        Self {
31020            s_type: StructureType::from_raw(1000316006i32),
31021            p_next: core::ptr::null(),
31022            image: Default::default(),
31023        }
31024    }
31025}
31026///[`VkImageViewCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewCaptureDescriptorDataInfoEXT.html)
31027/**
31028Provided by **VK_EXT_descriptor_buffer**.*/
31029#[repr(C)]
31030#[derive(Copy, Clone, Debug)]
31031#[doc(alias = "VkImageViewCaptureDescriptorDataInfoEXT")]
31032pub struct ImageViewCaptureDescriptorDataInfoEXT {
31033    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
31034    pub s_type: StructureType,
31035    ///Optional, may be null.
31036    pub p_next: *const core::ffi::c_void,
31037    pub image_view: ImageView,
31038}
31039impl Default for ImageViewCaptureDescriptorDataInfoEXT {
31040    #[inline]
31041    fn default() -> Self {
31042        Self {
31043            s_type: StructureType::from_raw(1000316007i32),
31044            p_next: core::ptr::null(),
31045            image_view: Default::default(),
31046        }
31047    }
31048}
31049///[`VkSamplerCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCaptureDescriptorDataInfoEXT.html)
31050/**
31051Provided by **VK_EXT_descriptor_buffer**.*/
31052#[repr(C)]
31053#[derive(Copy, Clone, Debug)]
31054#[doc(alias = "VkSamplerCaptureDescriptorDataInfoEXT")]
31055pub struct SamplerCaptureDescriptorDataInfoEXT {
31056    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
31057    pub s_type: StructureType,
31058    ///Optional, may be null.
31059    pub p_next: *const core::ffi::c_void,
31060    pub sampler: Sampler,
31061}
31062impl Default for SamplerCaptureDescriptorDataInfoEXT {
31063    #[inline]
31064    fn default() -> Self {
31065        Self {
31066            s_type: StructureType::from_raw(1000316008i32),
31067            p_next: core::ptr::null(),
31068            sampler: Default::default(),
31069        }
31070    }
31071}
31072///[`VkAccelerationStructureCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureCaptureDescriptorDataInfoEXT.html)
31073/**
31074Provided by **VK_EXT_descriptor_buffer**.*/
31075#[repr(C)]
31076#[derive(Copy, Clone, Debug)]
31077#[doc(alias = "VkAccelerationStructureCaptureDescriptorDataInfoEXT")]
31078pub struct AccelerationStructureCaptureDescriptorDataInfoEXT {
31079    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
31080    pub s_type: StructureType,
31081    ///Optional, may be null.
31082    pub p_next: *const core::ffi::c_void,
31083    pub acceleration_structure: AccelerationStructureKHR,
31084    pub acceleration_structure_nv: AccelerationStructureNV,
31085}
31086impl Default for AccelerationStructureCaptureDescriptorDataInfoEXT {
31087    #[inline]
31088    fn default() -> Self {
31089        Self {
31090            s_type: StructureType::from_raw(1000316009i32),
31091            p_next: core::ptr::null(),
31092            acceleration_structure: Default::default(),
31093            acceleration_structure_nv: Default::default(),
31094        }
31095    }
31096}
31097///[`VkOpaqueCaptureDescriptorDataCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpaqueCaptureDescriptorDataCreateInfoEXT.html)
31098/**
31099Provided by **VK_EXT_descriptor_buffer**.*/
31100///
31101///# Extends
31102///- [`BufferCreateInfo`]
31103///- [`ImageCreateInfo`]
31104///- [`ImageViewCreateInfo`]
31105///- [`SamplerCreateInfo`]
31106///- [`AccelerationStructureCreateInfoKHR`]
31107///- [`AccelerationStructureCreateInfoNV`]
31108///- [`TensorCreateInfoARM`]
31109///- [`TensorViewCreateInfoARM`]
31110///- [`AccelerationStructureCreateInfo2KHR`]
31111#[repr(C)]
31112#[derive(Copy, Clone, Debug)]
31113#[doc(alias = "VkOpaqueCaptureDescriptorDataCreateInfoEXT")]
31114pub struct OpaqueCaptureDescriptorDataCreateInfoEXT {
31115    ///Must be `VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT`.
31116    pub s_type: StructureType,
31117    ///Optional, may be null.
31118    pub p_next: *const core::ffi::c_void,
31119    pub opaque_capture_descriptor_data: *const core::ffi::c_void,
31120}
31121impl Default for OpaqueCaptureDescriptorDataCreateInfoEXT {
31122    #[inline]
31123    fn default() -> Self {
31124        Self {
31125            s_type: StructureType::from_raw(1000316010i32),
31126            p_next: core::ptr::null(),
31127            opaque_capture_descriptor_data: core::ptr::null(),
31128        }
31129    }
31130}
31131///[`VkPhysicalDeviceShaderIntegerDotProductFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderIntegerDotProductFeatures.html)
31132/**
31133Provided by **VK_COMPUTE_VERSION_1_3**.*/
31134///
31135///# Extends
31136///- [`PhysicalDeviceFeatures2`]
31137///- [`DeviceCreateInfo`]
31138#[repr(C)]
31139#[derive(Copy, Clone, Debug)]
31140#[doc(alias = "VkPhysicalDeviceShaderIntegerDotProductFeatures")]
31141pub struct PhysicalDeviceShaderIntegerDotProductFeatures {
31142    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES`.
31143    pub s_type: StructureType,
31144    ///Optional, may be null.
31145    pub p_next: *mut core::ffi::c_void,
31146    pub shader_integer_dot_product: u32,
31147}
31148impl Default for PhysicalDeviceShaderIntegerDotProductFeatures {
31149    #[inline]
31150    fn default() -> Self {
31151        Self {
31152            s_type: StructureType::from_raw(1000280000i32),
31153            p_next: core::ptr::null_mut(),
31154            shader_integer_dot_product: Default::default(),
31155        }
31156    }
31157}
31158///[`VkPhysicalDeviceShaderIntegerDotProductProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderIntegerDotProductProperties.html)
31159/**
31160Provided by **VK_COMPUTE_VERSION_1_3**.*/
31161/**
31162**Returned only**, filled by Vulkan, not constructed by the application.*/
31163///
31164///# Extends
31165///- [`PhysicalDeviceProperties2`]
31166#[repr(C)]
31167#[derive(Copy, Clone, Debug)]
31168#[doc(alias = "VkPhysicalDeviceShaderIntegerDotProductProperties")]
31169pub struct PhysicalDeviceShaderIntegerDotProductProperties {
31170    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES`.
31171    pub s_type: StructureType,
31172    ///Optional, may be null.
31173    pub p_next: *mut core::ffi::c_void,
31174    pub integer_dot_product8_bit_unsigned_accelerated: u32,
31175    pub integer_dot_product8_bit_signed_accelerated: u32,
31176    pub integer_dot_product8_bit_mixed_signedness_accelerated: u32,
31177    pub integer_dot_product4x8_bit_packed_unsigned_accelerated: u32,
31178    pub integer_dot_product4x8_bit_packed_signed_accelerated: u32,
31179    pub integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: u32,
31180    pub integer_dot_product16_bit_unsigned_accelerated: u32,
31181    pub integer_dot_product16_bit_signed_accelerated: u32,
31182    pub integer_dot_product16_bit_mixed_signedness_accelerated: u32,
31183    pub integer_dot_product32_bit_unsigned_accelerated: u32,
31184    pub integer_dot_product32_bit_signed_accelerated: u32,
31185    pub integer_dot_product32_bit_mixed_signedness_accelerated: u32,
31186    pub integer_dot_product64_bit_unsigned_accelerated: u32,
31187    pub integer_dot_product64_bit_signed_accelerated: u32,
31188    pub integer_dot_product64_bit_mixed_signedness_accelerated: u32,
31189    pub integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: u32,
31190    pub integer_dot_product_accumulating_saturating8_bit_signed_accelerated: u32,
31191    pub integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: u32,
31192    pub integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: u32,
31193    pub integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: u32,
31194    pub integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: u32,
31195    pub integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: u32,
31196    pub integer_dot_product_accumulating_saturating16_bit_signed_accelerated: u32,
31197    pub integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: u32,
31198    pub integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: u32,
31199    pub integer_dot_product_accumulating_saturating32_bit_signed_accelerated: u32,
31200    pub integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: u32,
31201    pub integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: u32,
31202    pub integer_dot_product_accumulating_saturating64_bit_signed_accelerated: u32,
31203    pub integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: u32,
31204}
31205impl Default for PhysicalDeviceShaderIntegerDotProductProperties {
31206    #[inline]
31207    fn default() -> Self {
31208        Self {
31209            s_type: StructureType::from_raw(1000280001i32),
31210            p_next: core::ptr::null_mut(),
31211            integer_dot_product8_bit_unsigned_accelerated: Default::default(),
31212            integer_dot_product8_bit_signed_accelerated: Default::default(),
31213            integer_dot_product8_bit_mixed_signedness_accelerated: Default::default(),
31214            integer_dot_product4x8_bit_packed_unsigned_accelerated: Default::default(),
31215            integer_dot_product4x8_bit_packed_signed_accelerated: Default::default(),
31216            integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: Default::default(),
31217            integer_dot_product16_bit_unsigned_accelerated: Default::default(),
31218            integer_dot_product16_bit_signed_accelerated: Default::default(),
31219            integer_dot_product16_bit_mixed_signedness_accelerated: Default::default(),
31220            integer_dot_product32_bit_unsigned_accelerated: Default::default(),
31221            integer_dot_product32_bit_signed_accelerated: Default::default(),
31222            integer_dot_product32_bit_mixed_signedness_accelerated: Default::default(),
31223            integer_dot_product64_bit_unsigned_accelerated: Default::default(),
31224            integer_dot_product64_bit_signed_accelerated: Default::default(),
31225            integer_dot_product64_bit_mixed_signedness_accelerated: Default::default(),
31226            integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: Default::default(),
31227            integer_dot_product_accumulating_saturating8_bit_signed_accelerated: Default::default(),
31228            integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: Default::default(),
31229            integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: Default::default(),
31230            integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: Default::default(),
31231            integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: Default::default(),
31232            integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: Default::default(),
31233            integer_dot_product_accumulating_saturating16_bit_signed_accelerated: Default::default(),
31234            integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: Default::default(),
31235            integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: Default::default(),
31236            integer_dot_product_accumulating_saturating32_bit_signed_accelerated: Default::default(),
31237            integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: Default::default(),
31238            integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: Default::default(),
31239            integer_dot_product_accumulating_saturating64_bit_signed_accelerated: Default::default(),
31240            integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: Default::default(),
31241        }
31242    }
31243}
31244///[`VkPhysicalDeviceDrmPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDrmPropertiesEXT.html)
31245/**
31246Provided by **VK_EXT_physical_device_drm**.*/
31247/**
31248**Returned only**, filled by Vulkan, not constructed by the application.*/
31249///
31250///# Extends
31251///- [`PhysicalDeviceProperties2`]
31252#[repr(C)]
31253#[derive(Copy, Clone, Debug)]
31254#[doc(alias = "VkPhysicalDeviceDrmPropertiesEXT")]
31255pub struct PhysicalDeviceDrmPropertiesEXT {
31256    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT`.
31257    pub s_type: StructureType,
31258    ///Optional, may be null.
31259    pub p_next: *mut core::ffi::c_void,
31260    pub has_primary: u32,
31261    pub has_render: u32,
31262    pub primary_major: i64,
31263    pub primary_minor: i64,
31264    pub render_major: i64,
31265    pub render_minor: i64,
31266}
31267impl Default for PhysicalDeviceDrmPropertiesEXT {
31268    #[inline]
31269    fn default() -> Self {
31270        Self {
31271            s_type: StructureType::from_raw(1000353000i32),
31272            p_next: core::ptr::null_mut(),
31273            has_primary: Default::default(),
31274            has_render: Default::default(),
31275            primary_major: Default::default(),
31276            primary_minor: Default::default(),
31277            render_major: Default::default(),
31278            render_minor: Default::default(),
31279        }
31280    }
31281}
31282///[`VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.html)
31283/**
31284Provided by **VK_KHR_fragment_shader_barycentric**.*/
31285///
31286///# Extends
31287///- [`PhysicalDeviceFeatures2`]
31288///- [`DeviceCreateInfo`]
31289#[repr(C)]
31290#[derive(Copy, Clone, Debug)]
31291#[doc(alias = "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR")]
31292pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
31293    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR`.
31294    pub s_type: StructureType,
31295    ///Optional, may be null.
31296    pub p_next: *mut core::ffi::c_void,
31297    pub fragment_shader_barycentric: u32,
31298}
31299impl Default for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
31300    #[inline]
31301    fn default() -> Self {
31302        Self {
31303            s_type: StructureType::from_raw(1000203000i32),
31304            p_next: core::ptr::null_mut(),
31305            fragment_shader_barycentric: Default::default(),
31306        }
31307    }
31308}
31309///[`VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR.html)
31310/**
31311Provided by **VK_KHR_fragment_shader_barycentric**.*/
31312/**
31313**Returned only**, filled by Vulkan, not constructed by the application.*/
31314///
31315///# Extends
31316///- [`PhysicalDeviceProperties2`]
31317#[repr(C)]
31318#[derive(Copy, Clone, Debug)]
31319#[doc(alias = "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR")]
31320pub struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
31321    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR`.
31322    pub s_type: StructureType,
31323    ///Optional, may be null.
31324    pub p_next: *mut core::ffi::c_void,
31325    pub tri_strip_vertex_order_independent_of_provoking_vertex: u32,
31326}
31327impl Default for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
31328    #[inline]
31329    fn default() -> Self {
31330        Self {
31331            s_type: StructureType::from_raw(1000322000i32),
31332            p_next: core::ptr::null_mut(),
31333            tri_strip_vertex_order_independent_of_provoking_vertex: Default::default(),
31334        }
31335    }
31336}
31337///[`VkPhysicalDeviceShaderFmaFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFmaFeaturesKHR.html)
31338/**
31339Provided by **VK_KHR_shader_fma**.*/
31340///
31341///# Extends
31342///- [`PhysicalDeviceFeatures2`]
31343///- [`DeviceCreateInfo`]
31344#[repr(C)]
31345#[derive(Copy, Clone, Debug)]
31346#[doc(alias = "VkPhysicalDeviceShaderFmaFeaturesKHR")]
31347pub struct PhysicalDeviceShaderFmaFeaturesKHR {
31348    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR`.
31349    pub s_type: StructureType,
31350    ///Optional, may be null.
31351    pub p_next: *mut core::ffi::c_void,
31352    pub shader_fma_float16: u32,
31353    pub shader_fma_float32: u32,
31354    pub shader_fma_float64: u32,
31355}
31356impl Default for PhysicalDeviceShaderFmaFeaturesKHR {
31357    #[inline]
31358    fn default() -> Self {
31359        Self {
31360            s_type: StructureType::from_raw(1000579000i32),
31361            p_next: core::ptr::null_mut(),
31362            shader_fma_float16: Default::default(),
31363            shader_fma_float32: Default::default(),
31364            shader_fma_float64: Default::default(),
31365        }
31366    }
31367}
31368///[`VkPhysicalDeviceRayTracingMotionBlurFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.html)
31369/**
31370Provided by **VK_NV_ray_tracing_motion_blur**.*/
31371///
31372///# Extends
31373///- [`PhysicalDeviceFeatures2`]
31374///- [`DeviceCreateInfo`]
31375#[repr(C)]
31376#[derive(Copy, Clone, Debug)]
31377#[doc(alias = "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV")]
31378pub struct PhysicalDeviceRayTracingMotionBlurFeaturesNV {
31379    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV`.
31380    pub s_type: StructureType,
31381    ///Optional, may be null.
31382    pub p_next: *mut core::ffi::c_void,
31383    pub ray_tracing_motion_blur: u32,
31384    pub ray_tracing_motion_blur_pipeline_trace_rays_indirect: u32,
31385}
31386impl Default for PhysicalDeviceRayTracingMotionBlurFeaturesNV {
31387    #[inline]
31388    fn default() -> Self {
31389        Self {
31390            s_type: StructureType::from_raw(1000327001i32),
31391            p_next: core::ptr::null_mut(),
31392            ray_tracing_motion_blur: Default::default(),
31393            ray_tracing_motion_blur_pipeline_trace_rays_indirect: Default::default(),
31394        }
31395    }
31396}
31397///[`VkPhysicalDeviceRayTracingValidationFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingValidationFeaturesNV.html)
31398/**
31399Provided by **VK_NV_ray_tracing_validation**.*/
31400///
31401///# Extends
31402///- [`PhysicalDeviceFeatures2`]
31403///- [`DeviceCreateInfo`]
31404#[repr(C)]
31405#[derive(Copy, Clone, Debug)]
31406#[doc(alias = "VkPhysicalDeviceRayTracingValidationFeaturesNV")]
31407pub struct PhysicalDeviceRayTracingValidationFeaturesNV {
31408    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV`.
31409    pub s_type: StructureType,
31410    ///Optional, may be null.
31411    pub p_next: *mut core::ffi::c_void,
31412    pub ray_tracing_validation: u32,
31413}
31414impl Default for PhysicalDeviceRayTracingValidationFeaturesNV {
31415    #[inline]
31416    fn default() -> Self {
31417        Self {
31418            s_type: StructureType::from_raw(1000568000i32),
31419            p_next: core::ptr::null_mut(),
31420            ray_tracing_validation: Default::default(),
31421        }
31422    }
31423}
31424///[`VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV.html)
31425/**
31426Provided by **VK_NV_ray_tracing_linear_swept_spheres**.*/
31427///
31428///# Extends
31429///- [`PhysicalDeviceFeatures2`]
31430///- [`DeviceCreateInfo`]
31431#[repr(C)]
31432#[derive(Copy, Clone, Debug)]
31433#[doc(alias = "VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV")]
31434pub struct PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
31435    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV`.
31436    pub s_type: StructureType,
31437    ///Optional, may be null.
31438    pub p_next: *mut core::ffi::c_void,
31439    pub spheres: u32,
31440    pub linear_swept_spheres: u32,
31441}
31442impl Default for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
31443    #[inline]
31444    fn default() -> Self {
31445        Self {
31446            s_type: StructureType::from_raw(1000429008i32),
31447            p_next: core::ptr::null_mut(),
31448            spheres: Default::default(),
31449            linear_swept_spheres: Default::default(),
31450        }
31451    }
31452}
31453///[`VkAccelerationStructureGeometryMotionTrianglesDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryMotionTrianglesDataNV.html)
31454/**
31455Provided by **VK_NV_ray_tracing_motion_blur**.*/
31456///
31457///# Extends
31458///- [`AccelerationStructureGeometryTrianglesDataKHR`]
31459#[repr(C)]
31460#[derive(Copy, Clone, Debug)]
31461#[doc(alias = "VkAccelerationStructureGeometryMotionTrianglesDataNV")]
31462pub struct AccelerationStructureGeometryMotionTrianglesDataNV {
31463    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV`.
31464    pub s_type: StructureType,
31465    ///Optional, may be null.
31466    pub p_next: *const core::ffi::c_void,
31467    pub vertex_data: DeviceOrHostAddressConstKHR,
31468}
31469impl Default for AccelerationStructureGeometryMotionTrianglesDataNV {
31470    #[inline]
31471    fn default() -> Self {
31472        Self {
31473            s_type: StructureType::from_raw(1000327000i32),
31474            p_next: core::ptr::null(),
31475            vertex_data: Default::default(),
31476        }
31477    }
31478}
31479///[`VkAccelerationStructureMotionInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInfoNV.html)
31480/**
31481Provided by **VK_NV_ray_tracing_motion_blur**.*/
31482///
31483///# Extends
31484///- [`AccelerationStructureCreateInfoKHR`]
31485#[repr(C)]
31486#[derive(Copy, Clone, Debug)]
31487#[doc(alias = "VkAccelerationStructureMotionInfoNV")]
31488pub struct AccelerationStructureMotionInfoNV {
31489    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV`.
31490    pub s_type: StructureType,
31491    ///Optional, may be null.
31492    pub p_next: *const core::ffi::c_void,
31493    pub max_instances: u32,
31494    pub flags: AccelerationStructureMotionInfoFlagsNV,
31495}
31496impl Default for AccelerationStructureMotionInfoNV {
31497    #[inline]
31498    fn default() -> Self {
31499        Self {
31500            s_type: StructureType::from_raw(1000327002i32),
31501            p_next: core::ptr::null(),
31502            max_instances: Default::default(),
31503            flags: Default::default(),
31504        }
31505    }
31506}
31507///[`VkSRTDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSRTDataNV.html)
31508/**
31509Provided by **VK_NV_ray_tracing_motion_blur**.*/
31510#[repr(C)]
31511#[derive(Copy, Clone, Debug)]
31512#[doc(alias = "VkSRTDataNV")]
31513pub struct SRTDataNV {
31514    pub sx: f32,
31515    pub a: f32,
31516    pub b: f32,
31517    pub pvx: f32,
31518    pub sy: f32,
31519    pub c: f32,
31520    pub pvy: f32,
31521    pub sz: f32,
31522    pub pvz: f32,
31523    pub qx: f32,
31524    pub qy: f32,
31525    pub qz: f32,
31526    pub qw: f32,
31527    pub tx: f32,
31528    pub ty: f32,
31529    pub tz: f32,
31530}
31531impl Default for SRTDataNV {
31532    #[inline]
31533    fn default() -> Self {
31534        unsafe { core::mem::zeroed() }
31535    }
31536}
31537///[`VkAccelerationStructureSRTMotionInstanceNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureSRTMotionInstanceNV.html)
31538/**
31539Provided by **VK_NV_ray_tracing_motion_blur**.*/
31540#[repr(C)]
31541#[derive(Copy, Clone, Debug)]
31542#[doc(alias = "VkAccelerationStructureSRTMotionInstanceNV")]
31543pub struct AccelerationStructureSRTMotionInstanceNV {
31544    pub transform_t0: SRTDataNV,
31545    pub transform_t1: SRTDataNV,
31546    pub bitfield_0: u32,
31547    pub bitfield_1: u32,
31548    pub acceleration_structure_reference: u64,
31549}
31550impl Default for AccelerationStructureSRTMotionInstanceNV {
31551    #[inline]
31552    fn default() -> Self {
31553        unsafe { core::mem::zeroed() }
31554    }
31555}
31556impl AccelerationStructureSRTMotionInstanceNV {
31557    #[inline]
31558    pub fn instance_custom_index(&self) -> u32 {
31559        self.bitfield_0 & 16777215u32
31560    }
31561    #[inline]
31562    pub fn set_instance_custom_index(&mut self, val: u32) {
31563        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
31564    }
31565    #[inline]
31566    pub fn mask(&self) -> u32 {
31567        (self.bitfield_0 >> 24u32) & 255u32
31568    }
31569    #[inline]
31570    pub fn set_mask(&mut self, val: u32) {
31571        self.bitfield_0 = (self.bitfield_0 & !(255u32 << 24u32))
31572            | ((val & 255u32) << 24u32);
31573    }
31574    #[inline]
31575    pub fn instance_shader_binding_table_record_offset(&self) -> u32 {
31576        self.bitfield_1 & 16777215u32
31577    }
31578    #[inline]
31579    pub fn set_instance_shader_binding_table_record_offset(&mut self, val: u32) {
31580        self.bitfield_1 = (self.bitfield_1 & !16777215u32) | (val & 16777215u32);
31581    }
31582    #[inline]
31583    pub fn flags(&self) -> u32 {
31584        (self.bitfield_1 >> 24u32) & 255u32
31585    }
31586    #[inline]
31587    pub fn set_flags(&mut self, val: u32) {
31588        self.bitfield_1 = (self.bitfield_1 & !(255u32 << 24u32))
31589            | ((val & 255u32) << 24u32);
31590    }
31591}
31592///[`VkAccelerationStructureMatrixMotionInstanceNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMatrixMotionInstanceNV.html)
31593/**
31594Provided by **VK_NV_ray_tracing_motion_blur**.*/
31595#[repr(C)]
31596#[derive(Copy, Clone, Debug)]
31597#[doc(alias = "VkAccelerationStructureMatrixMotionInstanceNV")]
31598pub struct AccelerationStructureMatrixMotionInstanceNV {
31599    pub transform_t0: TransformMatrixKHR,
31600    pub transform_t1: TransformMatrixKHR,
31601    pub bitfield_0: u32,
31602    pub bitfield_1: u32,
31603    pub acceleration_structure_reference: u64,
31604}
31605impl Default for AccelerationStructureMatrixMotionInstanceNV {
31606    #[inline]
31607    fn default() -> Self {
31608        unsafe { core::mem::zeroed() }
31609    }
31610}
31611impl AccelerationStructureMatrixMotionInstanceNV {
31612    #[inline]
31613    pub fn instance_custom_index(&self) -> u32 {
31614        self.bitfield_0 & 16777215u32
31615    }
31616    #[inline]
31617    pub fn set_instance_custom_index(&mut self, val: u32) {
31618        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
31619    }
31620    #[inline]
31621    pub fn mask(&self) -> u32 {
31622        (self.bitfield_0 >> 24u32) & 255u32
31623    }
31624    #[inline]
31625    pub fn set_mask(&mut self, val: u32) {
31626        self.bitfield_0 = (self.bitfield_0 & !(255u32 << 24u32))
31627            | ((val & 255u32) << 24u32);
31628    }
31629    #[inline]
31630    pub fn instance_shader_binding_table_record_offset(&self) -> u32 {
31631        self.bitfield_1 & 16777215u32
31632    }
31633    #[inline]
31634    pub fn set_instance_shader_binding_table_record_offset(&mut self, val: u32) {
31635        self.bitfield_1 = (self.bitfield_1 & !16777215u32) | (val & 16777215u32);
31636    }
31637    #[inline]
31638    pub fn flags(&self) -> u32 {
31639        (self.bitfield_1 >> 24u32) & 255u32
31640    }
31641    #[inline]
31642    pub fn set_flags(&mut self, val: u32) {
31643        self.bitfield_1 = (self.bitfield_1 & !(255u32 << 24u32))
31644            | ((val & 255u32) << 24u32);
31645    }
31646}
31647///[`VkAccelerationStructureMotionInstanceDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInstanceDataNV.html)
31648/**
31649Provided by **VK_NV_ray_tracing_motion_blur**.*/
31650#[repr(C)]
31651#[derive(Copy, Clone)]
31652#[doc(alias = "VkAccelerationStructureMotionInstanceDataNV")]
31653pub union AccelerationStructureMotionInstanceDataNV {
31654    pub static_instance: AccelerationStructureInstanceKHR,
31655    pub matrix_motion_instance: AccelerationStructureMatrixMotionInstanceNV,
31656    pub srt_motion_instance: AccelerationStructureSRTMotionInstanceNV,
31657}
31658impl Default for AccelerationStructureMotionInstanceDataNV {
31659    #[inline]
31660    fn default() -> Self {
31661        unsafe { core::mem::zeroed() }
31662    }
31663}
31664impl core::fmt::Debug for AccelerationStructureMotionInstanceDataNV {
31665    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
31666        f.write_str(stringify!(AccelerationStructureMotionInstanceDataNV))
31667    }
31668}
31669///[`VkAccelerationStructureMotionInstanceNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInstanceNV.html)
31670/**
31671Provided by **VK_NV_ray_tracing_motion_blur**.*/
31672#[repr(C)]
31673#[derive(Copy, Clone, Debug)]
31674#[doc(alias = "VkAccelerationStructureMotionInstanceNV")]
31675pub struct AccelerationStructureMotionInstanceNV {
31676    pub r#type: AccelerationStructureMotionInstanceTypeNV,
31677    pub flags: AccelerationStructureMotionInstanceFlagsNV,
31678    pub data: AccelerationStructureMotionInstanceDataNV,
31679}
31680impl Default for AccelerationStructureMotionInstanceNV {
31681    #[inline]
31682    fn default() -> Self {
31683        unsafe { core::mem::zeroed() }
31684    }
31685}
31686///[`VkMemoryGetRemoteAddressInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetRemoteAddressInfoNV.html)
31687/**
31688Provided by **VK_NV_external_memory_rdma**.*/
31689#[repr(C)]
31690#[derive(Copy, Clone, Debug)]
31691#[doc(alias = "VkMemoryGetRemoteAddressInfoNV")]
31692pub struct MemoryGetRemoteAddressInfoNV {
31693    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV`.
31694    pub s_type: StructureType,
31695    ///Optional, may be null.
31696    pub p_next: *const core::ffi::c_void,
31697    pub memory: DeviceMemory,
31698    pub handle_type: ExternalMemoryHandleTypeFlagBits,
31699}
31700impl Default for MemoryGetRemoteAddressInfoNV {
31701    #[inline]
31702    fn default() -> Self {
31703        Self {
31704            s_type: StructureType::from_raw(1000371000i32),
31705            p_next: core::ptr::null(),
31706            memory: Default::default(),
31707            handle_type: Default::default(),
31708        }
31709    }
31710}
31711///[`VkImportMemoryBufferCollectionFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryBufferCollectionFUCHSIA.html)
31712/**
31713Provided by **VK_FUCHSIA_buffer_collection**.*/
31714///
31715///# Extends
31716///- [`MemoryAllocateInfo`]
31717#[repr(C)]
31718#[derive(Copy, Clone, Debug)]
31719#[doc(alias = "VkImportMemoryBufferCollectionFUCHSIA")]
31720pub struct ImportMemoryBufferCollectionFUCHSIA {
31721    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA`.
31722    pub s_type: StructureType,
31723    ///Optional, may be null.
31724    pub p_next: *const core::ffi::c_void,
31725    pub collection: BufferCollectionFUCHSIA,
31726    pub index: u32,
31727}
31728impl Default for ImportMemoryBufferCollectionFUCHSIA {
31729    #[inline]
31730    fn default() -> Self {
31731        Self {
31732            s_type: StructureType::from_raw(1000366001i32),
31733            p_next: core::ptr::null(),
31734            collection: Default::default(),
31735            index: Default::default(),
31736        }
31737    }
31738}
31739///[`VkBufferCollectionImageCreateInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionImageCreateInfoFUCHSIA.html)
31740/**
31741Provided by **VK_FUCHSIA_buffer_collection**.*/
31742///
31743///# Extends
31744///- [`ImageCreateInfo`]
31745#[repr(C)]
31746#[derive(Copy, Clone, Debug)]
31747#[doc(alias = "VkBufferCollectionImageCreateInfoFUCHSIA")]
31748pub struct BufferCollectionImageCreateInfoFUCHSIA {
31749    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA`.
31750    pub s_type: StructureType,
31751    ///Optional, may be null.
31752    pub p_next: *const core::ffi::c_void,
31753    pub collection: BufferCollectionFUCHSIA,
31754    pub index: u32,
31755}
31756impl Default for BufferCollectionImageCreateInfoFUCHSIA {
31757    #[inline]
31758    fn default() -> Self {
31759        Self {
31760            s_type: StructureType::from_raw(1000366002i32),
31761            p_next: core::ptr::null(),
31762            collection: Default::default(),
31763            index: Default::default(),
31764        }
31765    }
31766}
31767///[`VkBufferCollectionBufferCreateInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionBufferCreateInfoFUCHSIA.html)
31768/**
31769Provided by **VK_FUCHSIA_buffer_collection**.*/
31770///
31771///# Extends
31772///- [`BufferCreateInfo`]
31773#[repr(C)]
31774#[derive(Copy, Clone, Debug)]
31775#[doc(alias = "VkBufferCollectionBufferCreateInfoFUCHSIA")]
31776pub struct BufferCollectionBufferCreateInfoFUCHSIA {
31777    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA`.
31778    pub s_type: StructureType,
31779    ///Optional, may be null.
31780    pub p_next: *const core::ffi::c_void,
31781    pub collection: BufferCollectionFUCHSIA,
31782    pub index: u32,
31783}
31784impl Default for BufferCollectionBufferCreateInfoFUCHSIA {
31785    #[inline]
31786    fn default() -> Self {
31787        Self {
31788            s_type: StructureType::from_raw(1000366005i32),
31789            p_next: core::ptr::null(),
31790            collection: Default::default(),
31791            index: Default::default(),
31792        }
31793    }
31794}
31795///[`VkBufferCollectionCreateInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionCreateInfoFUCHSIA.html)
31796/**
31797Provided by **VK_FUCHSIA_buffer_collection**.*/
31798#[repr(C)]
31799#[derive(Copy, Clone, Debug)]
31800#[doc(alias = "VkBufferCollectionCreateInfoFUCHSIA")]
31801pub struct BufferCollectionCreateInfoFUCHSIA {
31802    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA`.
31803    pub s_type: StructureType,
31804    ///Optional, may be null.
31805    pub p_next: *const core::ffi::c_void,
31806    pub collection_token: u32,
31807}
31808impl Default for BufferCollectionCreateInfoFUCHSIA {
31809    #[inline]
31810    fn default() -> Self {
31811        Self {
31812            s_type: StructureType::from_raw(1000366000i32),
31813            p_next: core::ptr::null(),
31814            collection_token: Default::default(),
31815        }
31816    }
31817}
31818///[`VkBufferCollectionPropertiesFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionPropertiesFUCHSIA.html)
31819/**
31820Provided by **VK_FUCHSIA_buffer_collection**.*/
31821/**
31822**Returned only**, filled by Vulkan, not constructed by the application.*/
31823#[repr(C)]
31824#[derive(Copy, Clone, Debug)]
31825#[doc(alias = "VkBufferCollectionPropertiesFUCHSIA")]
31826pub struct BufferCollectionPropertiesFUCHSIA {
31827    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA`.
31828    pub s_type: StructureType,
31829    ///Optional, may be null.
31830    pub p_next: *mut core::ffi::c_void,
31831    pub memory_type_bits: u32,
31832    pub buffer_count: u32,
31833    pub create_info_index: u32,
31834    pub sysmem_pixel_format: u64,
31835    pub format_features: FormatFeatureFlags,
31836    pub sysmem_color_space_index: SysmemColorSpaceFUCHSIA,
31837    pub sampler_ycbcr_conversion_components: ComponentMapping,
31838    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
31839    pub suggested_ycbcr_range: SamplerYcbcrRange,
31840    pub suggested_x_chroma_offset: ChromaLocation,
31841    pub suggested_y_chroma_offset: ChromaLocation,
31842}
31843impl Default for BufferCollectionPropertiesFUCHSIA {
31844    #[inline]
31845    fn default() -> Self {
31846        Self {
31847            s_type: StructureType::from_raw(1000366003i32),
31848            p_next: core::ptr::null_mut(),
31849            memory_type_bits: Default::default(),
31850            buffer_count: Default::default(),
31851            create_info_index: Default::default(),
31852            sysmem_pixel_format: Default::default(),
31853            format_features: Default::default(),
31854            sysmem_color_space_index: Default::default(),
31855            sampler_ycbcr_conversion_components: Default::default(),
31856            suggested_ycbcr_model: Default::default(),
31857            suggested_ycbcr_range: Default::default(),
31858            suggested_x_chroma_offset: Default::default(),
31859            suggested_y_chroma_offset: Default::default(),
31860        }
31861    }
31862}
31863///[`VkBufferConstraintsInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferConstraintsInfoFUCHSIA.html)
31864/**
31865Provided by **VK_FUCHSIA_buffer_collection**.*/
31866#[repr(C)]
31867#[derive(Copy, Clone, Debug)]
31868#[doc(alias = "VkBufferConstraintsInfoFUCHSIA")]
31869pub struct BufferConstraintsInfoFUCHSIA {
31870    ///Must be `VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA`.
31871    pub s_type: StructureType,
31872    ///Optional, may be null.
31873    pub p_next: *const core::ffi::c_void,
31874    pub create_info: BufferCreateInfo,
31875    pub required_format_features: FormatFeatureFlags,
31876    pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA,
31877}
31878impl Default for BufferConstraintsInfoFUCHSIA {
31879    #[inline]
31880    fn default() -> Self {
31881        Self {
31882            s_type: StructureType::from_raw(1000366004i32),
31883            p_next: core::ptr::null(),
31884            create_info: Default::default(),
31885            required_format_features: Default::default(),
31886            buffer_collection_constraints: Default::default(),
31887        }
31888    }
31889}
31890///[`VkSysmemColorSpaceFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSysmemColorSpaceFUCHSIA.html)
31891/**
31892Provided by **VK_FUCHSIA_buffer_collection**.*/
31893#[repr(C)]
31894#[derive(Copy, Clone, Debug)]
31895#[doc(alias = "VkSysmemColorSpaceFUCHSIA")]
31896pub struct SysmemColorSpaceFUCHSIA {
31897    ///Must be `VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA`.
31898    pub s_type: StructureType,
31899    ///Optional, may be null.
31900    pub p_next: *const core::ffi::c_void,
31901    pub color_space: u32,
31902}
31903impl Default for SysmemColorSpaceFUCHSIA {
31904    #[inline]
31905    fn default() -> Self {
31906        Self {
31907            s_type: StructureType::from_raw(1000366008i32),
31908            p_next: core::ptr::null(),
31909            color_space: Default::default(),
31910        }
31911    }
31912}
31913///[`VkImageFormatConstraintsInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageFormatConstraintsInfoFUCHSIA.html)
31914/**
31915Provided by **VK_FUCHSIA_buffer_collection**.*/
31916#[repr(C)]
31917#[derive(Copy, Clone, Debug)]
31918#[doc(alias = "VkImageFormatConstraintsInfoFUCHSIA")]
31919pub struct ImageFormatConstraintsInfoFUCHSIA {
31920    ///Must be `VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA`.
31921    pub s_type: StructureType,
31922    ///Optional, may be null.
31923    pub p_next: *const core::ffi::c_void,
31924    pub image_create_info: ImageCreateInfo,
31925    pub required_format_features: FormatFeatureFlags,
31926    pub flags: ImageFormatConstraintsFlagsFUCHSIA,
31927    pub sysmem_pixel_format: u64,
31928    ///Length of `p_color_spaces`.
31929    pub color_space_count: u32,
31930    pub p_color_spaces: *const SysmemColorSpaceFUCHSIA,
31931}
31932impl Default for ImageFormatConstraintsInfoFUCHSIA {
31933    #[inline]
31934    fn default() -> Self {
31935        Self {
31936            s_type: StructureType::from_raw(1000366007i32),
31937            p_next: core::ptr::null(),
31938            image_create_info: Default::default(),
31939            required_format_features: Default::default(),
31940            flags: Default::default(),
31941            sysmem_pixel_format: Default::default(),
31942            color_space_count: Default::default(),
31943            p_color_spaces: core::ptr::null(),
31944        }
31945    }
31946}
31947///[`VkImageConstraintsInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageConstraintsInfoFUCHSIA.html)
31948/**
31949Provided by **VK_FUCHSIA_buffer_collection**.*/
31950#[repr(C)]
31951#[derive(Copy, Clone, Debug)]
31952#[doc(alias = "VkImageConstraintsInfoFUCHSIA")]
31953pub struct ImageConstraintsInfoFUCHSIA {
31954    ///Must be `VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA`.
31955    pub s_type: StructureType,
31956    ///Optional, may be null.
31957    pub p_next: *const core::ffi::c_void,
31958    ///Length of `p_format_constraints`.
31959    pub format_constraints_count: u32,
31960    pub p_format_constraints: *const ImageFormatConstraintsInfoFUCHSIA,
31961    pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA,
31962    pub flags: ImageConstraintsInfoFlagsFUCHSIA,
31963}
31964impl Default for ImageConstraintsInfoFUCHSIA {
31965    #[inline]
31966    fn default() -> Self {
31967        Self {
31968            s_type: StructureType::from_raw(1000366006i32),
31969            p_next: core::ptr::null(),
31970            format_constraints_count: Default::default(),
31971            p_format_constraints: core::ptr::null(),
31972            buffer_collection_constraints: Default::default(),
31973            flags: Default::default(),
31974        }
31975    }
31976}
31977///[`VkBufferCollectionConstraintsInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionConstraintsInfoFUCHSIA.html)
31978/**
31979Provided by **VK_FUCHSIA_buffer_collection**.*/
31980#[repr(C)]
31981#[derive(Copy, Clone, Debug)]
31982#[doc(alias = "VkBufferCollectionConstraintsInfoFUCHSIA")]
31983pub struct BufferCollectionConstraintsInfoFUCHSIA {
31984    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA`.
31985    pub s_type: StructureType,
31986    ///Optional, may be null.
31987    pub p_next: *const core::ffi::c_void,
31988    pub min_buffer_count: u32,
31989    pub max_buffer_count: u32,
31990    pub min_buffer_count_for_camping: u32,
31991    pub min_buffer_count_for_dedicated_slack: u32,
31992    pub min_buffer_count_for_shared_slack: u32,
31993}
31994impl Default for BufferCollectionConstraintsInfoFUCHSIA {
31995    #[inline]
31996    fn default() -> Self {
31997        Self {
31998            s_type: StructureType::from_raw(1000366009i32),
31999            p_next: core::ptr::null(),
32000            min_buffer_count: Default::default(),
32001            max_buffer_count: Default::default(),
32002            min_buffer_count_for_camping: Default::default(),
32003            min_buffer_count_for_dedicated_slack: Default::default(),
32004            min_buffer_count_for_shared_slack: Default::default(),
32005        }
32006    }
32007}
32008///[`VkCudaModuleCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCudaModuleCreateInfoNV.html)
32009/**
32010Provided by **VK_NV_cuda_kernel_launch**.*/
32011#[repr(C)]
32012#[derive(Copy, Clone, Debug)]
32013#[doc(alias = "VkCudaModuleCreateInfoNV")]
32014pub struct CudaModuleCreateInfoNV {
32015    ///Must be `VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV`.
32016    pub s_type: StructureType,
32017    ///Optional, may be null.
32018    pub p_next: *const core::ffi::c_void,
32019    ///Length of `p_data`.
32020    pub data_size: usize,
32021    pub p_data: *const core::ffi::c_void,
32022}
32023impl Default for CudaModuleCreateInfoNV {
32024    #[inline]
32025    fn default() -> Self {
32026        Self {
32027            s_type: StructureType::from_raw(1000307000i32),
32028            p_next: core::ptr::null(),
32029            data_size: Default::default(),
32030            p_data: core::ptr::null(),
32031        }
32032    }
32033}
32034///[`VkCudaFunctionCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCudaFunctionCreateInfoNV.html)
32035/**
32036Provided by **VK_NV_cuda_kernel_launch**.*/
32037#[repr(C)]
32038#[derive(Copy, Clone, Debug)]
32039#[doc(alias = "VkCudaFunctionCreateInfoNV")]
32040pub struct CudaFunctionCreateInfoNV {
32041    ///Must be `VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV`.
32042    pub s_type: StructureType,
32043    ///Optional, may be null.
32044    pub p_next: *const core::ffi::c_void,
32045    pub module: CudaModuleNV,
32046    pub p_name: *const core::ffi::c_char,
32047}
32048impl Default for CudaFunctionCreateInfoNV {
32049    #[inline]
32050    fn default() -> Self {
32051        Self {
32052            s_type: StructureType::from_raw(1000307001i32),
32053            p_next: core::ptr::null(),
32054            module: Default::default(),
32055            p_name: core::ptr::null(),
32056        }
32057    }
32058}
32059///[`VkCudaLaunchInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCudaLaunchInfoNV.html)
32060/**
32061Provided by **VK_NV_cuda_kernel_launch**.*/
32062#[repr(C)]
32063#[derive(Copy, Clone, Debug)]
32064#[doc(alias = "VkCudaLaunchInfoNV")]
32065pub struct CudaLaunchInfoNV {
32066    ///Must be `VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV`.
32067    pub s_type: StructureType,
32068    ///Optional, may be null.
32069    pub p_next: *const core::ffi::c_void,
32070    pub function: CudaFunctionNV,
32071    pub grid_dim_x: u32,
32072    pub grid_dim_y: u32,
32073    pub grid_dim_z: u32,
32074    pub block_dim_x: u32,
32075    pub block_dim_y: u32,
32076    pub block_dim_z: u32,
32077    pub shared_mem_bytes: u32,
32078    ///Length of `p_params`.
32079    pub param_count: usize,
32080    pub p_params: *const *const core::ffi::c_void,
32081    ///Length of `p_extras`.
32082    pub extra_count: usize,
32083    pub p_extras: *const *const core::ffi::c_void,
32084}
32085impl Default for CudaLaunchInfoNV {
32086    #[inline]
32087    fn default() -> Self {
32088        Self {
32089            s_type: StructureType::from_raw(1000307002i32),
32090            p_next: core::ptr::null(),
32091            function: Default::default(),
32092            grid_dim_x: Default::default(),
32093            grid_dim_y: Default::default(),
32094            grid_dim_z: Default::default(),
32095            block_dim_x: Default::default(),
32096            block_dim_y: Default::default(),
32097            block_dim_z: Default::default(),
32098            shared_mem_bytes: Default::default(),
32099            param_count: Default::default(),
32100            p_params: core::ptr::null(),
32101            extra_count: Default::default(),
32102            p_extras: core::ptr::null(),
32103        }
32104    }
32105}
32106///[`VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.html)
32107/**
32108Provided by **VK_EXT_rgba10x6_formats**.*/
32109///
32110///# Extends
32111///- [`PhysicalDeviceFeatures2`]
32112///- [`DeviceCreateInfo`]
32113#[repr(C)]
32114#[derive(Copy, Clone, Debug)]
32115#[doc(alias = "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT")]
32116pub struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
32117    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT`.
32118    pub s_type: StructureType,
32119    ///Optional, may be null.
32120    pub p_next: *mut core::ffi::c_void,
32121    pub format_rgba10x6_without_y_cb_cr_sampler: u32,
32122}
32123impl Default for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
32124    #[inline]
32125    fn default() -> Self {
32126        Self {
32127            s_type: StructureType::from_raw(1000344000i32),
32128            p_next: core::ptr::null_mut(),
32129            format_rgba10x6_without_y_cb_cr_sampler: Default::default(),
32130        }
32131    }
32132}
32133///[`VkFormatProperties3`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFormatProperties3.html)
32134/**
32135Provided by **VK_BASE_VERSION_1_3**.*/
32136/**
32137**Returned only**, filled by Vulkan, not constructed by the application.*/
32138///
32139///# Extends
32140///- [`FormatProperties2`]
32141#[repr(C)]
32142#[derive(Copy, Clone, Debug)]
32143#[doc(alias = "VkFormatProperties3")]
32144pub struct FormatProperties3 {
32145    ///Must be `VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3`.
32146    pub s_type: StructureType,
32147    ///Optional, may be null.
32148    pub p_next: *mut core::ffi::c_void,
32149    pub linear_tiling_features: FormatFeatureFlags2,
32150    pub optimal_tiling_features: FormatFeatureFlags2,
32151    pub buffer_features: FormatFeatureFlags2,
32152}
32153impl Default for FormatProperties3 {
32154    #[inline]
32155    fn default() -> Self {
32156        Self {
32157            s_type: StructureType::from_raw(1000360000i32),
32158            p_next: core::ptr::null_mut(),
32159            linear_tiling_features: Default::default(),
32160            optimal_tiling_features: Default::default(),
32161            buffer_features: Default::default(),
32162        }
32163    }
32164}
32165///[`VkDrmFormatModifierPropertiesList2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrmFormatModifierPropertiesList2EXT.html)
32166/**
32167Provided by **VK_EXT_image_drm_format_modifier**.*/
32168/**
32169**Returned only**, filled by Vulkan, not constructed by the application.*/
32170///
32171///# Extends
32172///- [`FormatProperties2`]
32173#[repr(C)]
32174#[derive(Copy, Clone, Debug)]
32175#[doc(alias = "VkDrmFormatModifierPropertiesList2EXT")]
32176pub struct DrmFormatModifierPropertiesList2EXT {
32177    ///Must be `VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT`.
32178    pub s_type: StructureType,
32179    ///Optional, may be null.
32180    pub p_next: *mut core::ffi::c_void,
32181    ///Length of `p_drm_format_modifier_properties`.
32182    pub drm_format_modifier_count: u32,
32183    ///Optional, may be null.
32184    pub p_drm_format_modifier_properties: *mut DrmFormatModifierProperties2EXT,
32185}
32186impl Default for DrmFormatModifierPropertiesList2EXT {
32187    #[inline]
32188    fn default() -> Self {
32189        Self {
32190            s_type: StructureType::from_raw(1000158006i32),
32191            p_next: core::ptr::null_mut(),
32192            drm_format_modifier_count: Default::default(),
32193            p_drm_format_modifier_properties: core::ptr::null_mut(),
32194        }
32195    }
32196}
32197///[`VkDrmFormatModifierProperties2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrmFormatModifierProperties2EXT.html)
32198/**
32199Provided by **VK_EXT_image_drm_format_modifier**.*/
32200/**
32201**Returned only**, filled by Vulkan, not constructed by the application.*/
32202#[repr(C)]
32203#[derive(Copy, Clone, Debug)]
32204#[doc(alias = "VkDrmFormatModifierProperties2EXT")]
32205pub struct DrmFormatModifierProperties2EXT {
32206    pub drm_format_modifier: u64,
32207    pub drm_format_modifier_plane_count: u32,
32208    pub drm_format_modifier_tiling_features: FormatFeatureFlags2,
32209}
32210impl Default for DrmFormatModifierProperties2EXT {
32211    #[inline]
32212    fn default() -> Self {
32213        unsafe { core::mem::zeroed() }
32214    }
32215}
32216///[`VkAndroidHardwareBufferFormatProperties2ANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferFormatProperties2ANDROID.html)
32217/**
32218Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
32219/**
32220**Returned only**, filled by Vulkan, not constructed by the application.*/
32221///
32222///# Extends
32223///- [`AndroidHardwareBufferPropertiesANDROID`]
32224#[repr(C)]
32225#[derive(Copy, Clone, Debug)]
32226#[doc(alias = "VkAndroidHardwareBufferFormatProperties2ANDROID")]
32227pub struct AndroidHardwareBufferFormatProperties2ANDROID {
32228    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID`.
32229    pub s_type: StructureType,
32230    ///Optional, may be null.
32231    pub p_next: *mut core::ffi::c_void,
32232    pub format: Format,
32233    pub external_format: u64,
32234    pub format_features: FormatFeatureFlags2,
32235    pub sampler_ycbcr_conversion_components: ComponentMapping,
32236    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
32237    pub suggested_ycbcr_range: SamplerYcbcrRange,
32238    pub suggested_x_chroma_offset: ChromaLocation,
32239    pub suggested_y_chroma_offset: ChromaLocation,
32240}
32241impl Default for AndroidHardwareBufferFormatProperties2ANDROID {
32242    #[inline]
32243    fn default() -> Self {
32244        Self {
32245            s_type: StructureType::from_raw(1000129006i32),
32246            p_next: core::ptr::null_mut(),
32247            format: Default::default(),
32248            external_format: Default::default(),
32249            format_features: Default::default(),
32250            sampler_ycbcr_conversion_components: Default::default(),
32251            suggested_ycbcr_model: Default::default(),
32252            suggested_ycbcr_range: Default::default(),
32253            suggested_x_chroma_offset: Default::default(),
32254            suggested_y_chroma_offset: Default::default(),
32255        }
32256    }
32257}
32258///[`VkPipelineRenderingCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRenderingCreateInfo.html)
32259/**
32260Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32261///
32262///# Extends
32263///- [`GraphicsPipelineCreateInfo`]
32264#[repr(C)]
32265#[derive(Copy, Clone, Debug)]
32266#[doc(alias = "VkPipelineRenderingCreateInfo")]
32267pub struct PipelineRenderingCreateInfo {
32268    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO`.
32269    pub s_type: StructureType,
32270    ///Optional, may be null.
32271    pub p_next: *const core::ffi::c_void,
32272    pub view_mask: u32,
32273    ///Length of `p_color_attachment_formats`.
32274    pub color_attachment_count: u32,
32275    pub p_color_attachment_formats: *const Format,
32276    pub depth_attachment_format: Format,
32277    pub stencil_attachment_format: Format,
32278}
32279impl Default for PipelineRenderingCreateInfo {
32280    #[inline]
32281    fn default() -> Self {
32282        Self {
32283            s_type: StructureType::from_raw(1000044002i32),
32284            p_next: core::ptr::null(),
32285            view_mask: Default::default(),
32286            color_attachment_count: Default::default(),
32287            p_color_attachment_formats: core::ptr::null(),
32288            depth_attachment_format: Default::default(),
32289            stencil_attachment_format: Default::default(),
32290        }
32291    }
32292}
32293///[`VkRenderingInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingInfo.html)
32294/**
32295Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32296///
32297///# Extended By
32298///- [`DeviceGroupRenderPassBeginInfo`]
32299///- [`MultisampledRenderToSingleSampledInfoEXT`]
32300///- [`MultiviewPerViewAttributesInfoNVX`]
32301///- [`MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM`]
32302///- [`RenderPassPerformanceCountersByRegionBeginInfoARM`]
32303///- [`RenderPassStripeBeginInfoARM`]
32304///- [`RenderPassTileShadingCreateInfoQCOM`]
32305///- [`RenderingFragmentDensityMapAttachmentInfoEXT`]
32306///- [`RenderingFragmentShadingRateAttachmentInfoKHR`]
32307///- [`TileMemorySizeInfoQCOM`]
32308#[repr(C)]
32309#[derive(Copy, Clone, Debug)]
32310#[doc(alias = "VkRenderingInfo")]
32311pub struct RenderingInfo {
32312    ///Must be `VK_STRUCTURE_TYPE_RENDERING_INFO`.
32313    pub s_type: StructureType,
32314    ///Optional, may be null.
32315    pub p_next: *const core::ffi::c_void,
32316    pub flags: RenderingFlags,
32317    pub render_area: Rect2D,
32318    pub layer_count: u32,
32319    pub view_mask: u32,
32320    ///Length of `p_color_attachments`.
32321    pub color_attachment_count: u32,
32322    pub p_color_attachments: *const RenderingAttachmentInfo,
32323    ///Optional, may be null.
32324    pub p_depth_attachment: *const RenderingAttachmentInfo,
32325    ///Optional, may be null.
32326    pub p_stencil_attachment: *const RenderingAttachmentInfo,
32327}
32328impl Default for RenderingInfo {
32329    #[inline]
32330    fn default() -> Self {
32331        Self {
32332            s_type: StructureType::from_raw(1000044000i32),
32333            p_next: core::ptr::null(),
32334            flags: Default::default(),
32335            render_area: Default::default(),
32336            layer_count: Default::default(),
32337            view_mask: Default::default(),
32338            color_attachment_count: Default::default(),
32339            p_color_attachments: core::ptr::null(),
32340            p_depth_attachment: core::ptr::null(),
32341            p_stencil_attachment: core::ptr::null(),
32342        }
32343    }
32344}
32345///[`VkRenderingEndInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingEndInfoKHR.html)
32346/**
32347Provided by **VK_KHR_maintenance10**.*/
32348///
32349///# Extended By
32350///- [`RenderPassFragmentDensityMapOffsetEndInfoEXT`]
32351#[repr(C)]
32352#[derive(Copy, Clone, Debug)]
32353#[doc(alias = "VkRenderingEndInfoKHR")]
32354pub struct RenderingEndInfoKHR {
32355    ///Must be `VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR`.
32356    pub s_type: StructureType,
32357    ///Optional, may be null.
32358    pub p_next: *const core::ffi::c_void,
32359}
32360impl Default for RenderingEndInfoKHR {
32361    #[inline]
32362    fn default() -> Self {
32363        Self {
32364            s_type: StructureType::from_raw(1000619003i32),
32365            p_next: core::ptr::null(),
32366        }
32367    }
32368}
32369///[`VkRenderingAttachmentInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingAttachmentInfo.html)
32370/**
32371Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32372///
32373///# Extended By
32374///- [`AttachmentFeedbackLoopInfoEXT`]
32375///- [`RenderingAttachmentFlagsInfoKHR`]
32376#[repr(C)]
32377#[derive(Copy, Clone, Debug)]
32378#[doc(alias = "VkRenderingAttachmentInfo")]
32379pub struct RenderingAttachmentInfo {
32380    ///Must be `VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO`.
32381    pub s_type: StructureType,
32382    ///Optional, may be null.
32383    pub p_next: *const core::ffi::c_void,
32384    pub image_view: ImageView,
32385    pub image_layout: ImageLayout,
32386    pub resolve_mode: ResolveModeFlagBits,
32387    pub resolve_image_view: ImageView,
32388    pub resolve_image_layout: ImageLayout,
32389    pub load_op: AttachmentLoadOp,
32390    pub store_op: AttachmentStoreOp,
32391    pub clear_value: ClearValue,
32392}
32393impl Default for RenderingAttachmentInfo {
32394    #[inline]
32395    fn default() -> Self {
32396        Self {
32397            s_type: StructureType::from_raw(1000044001i32),
32398            p_next: core::ptr::null(),
32399            image_view: Default::default(),
32400            image_layout: Default::default(),
32401            resolve_mode: Default::default(),
32402            resolve_image_view: Default::default(),
32403            resolve_image_layout: Default::default(),
32404            load_op: Default::default(),
32405            store_op: Default::default(),
32406            clear_value: Default::default(),
32407        }
32408    }
32409}
32410///[`VkRenderingFragmentShadingRateAttachmentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingFragmentShadingRateAttachmentInfoKHR.html)
32411/**
32412Provided by **VK_KHR_fragment_shading_rate**.*/
32413///
32414///# Extends
32415///- [`RenderingInfo`]
32416#[repr(C)]
32417#[derive(Copy, Clone, Debug)]
32418#[doc(alias = "VkRenderingFragmentShadingRateAttachmentInfoKHR")]
32419pub struct RenderingFragmentShadingRateAttachmentInfoKHR {
32420    ///Must be `VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR`.
32421    pub s_type: StructureType,
32422    ///Optional, may be null.
32423    pub p_next: *const core::ffi::c_void,
32424    pub image_view: ImageView,
32425    pub image_layout: ImageLayout,
32426    pub shading_rate_attachment_texel_size: Extent2D,
32427}
32428impl Default for RenderingFragmentShadingRateAttachmentInfoKHR {
32429    #[inline]
32430    fn default() -> Self {
32431        Self {
32432            s_type: StructureType::from_raw(1000044006i32),
32433            p_next: core::ptr::null(),
32434            image_view: Default::default(),
32435            image_layout: Default::default(),
32436            shading_rate_attachment_texel_size: Default::default(),
32437        }
32438    }
32439}
32440///[`VkRenderingFragmentDensityMapAttachmentInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingFragmentDensityMapAttachmentInfoEXT.html)
32441/**
32442Provided by **VK_EXT_fragment_density_map**.*/
32443///
32444///# Extends
32445///- [`RenderingInfo`]
32446#[repr(C)]
32447#[derive(Copy, Clone, Debug)]
32448#[doc(alias = "VkRenderingFragmentDensityMapAttachmentInfoEXT")]
32449pub struct RenderingFragmentDensityMapAttachmentInfoEXT {
32450    ///Must be `VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT`.
32451    pub s_type: StructureType,
32452    ///Optional, may be null.
32453    pub p_next: *const core::ffi::c_void,
32454    pub image_view: ImageView,
32455    pub image_layout: ImageLayout,
32456}
32457impl Default for RenderingFragmentDensityMapAttachmentInfoEXT {
32458    #[inline]
32459    fn default() -> Self {
32460        Self {
32461            s_type: StructureType::from_raw(1000044007i32),
32462            p_next: core::ptr::null(),
32463            image_view: Default::default(),
32464            image_layout: Default::default(),
32465        }
32466    }
32467}
32468///[`VkPhysicalDeviceDynamicRenderingFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDynamicRenderingFeatures.html)
32469/**
32470Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32471///
32472///# Extends
32473///- [`PhysicalDeviceFeatures2`]
32474///- [`DeviceCreateInfo`]
32475#[repr(C)]
32476#[derive(Copy, Clone, Debug)]
32477#[doc(alias = "VkPhysicalDeviceDynamicRenderingFeatures")]
32478pub struct PhysicalDeviceDynamicRenderingFeatures {
32479    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES`.
32480    pub s_type: StructureType,
32481    ///Optional, may be null.
32482    pub p_next: *mut core::ffi::c_void,
32483    pub dynamic_rendering: u32,
32484}
32485impl Default for PhysicalDeviceDynamicRenderingFeatures {
32486    #[inline]
32487    fn default() -> Self {
32488        Self {
32489            s_type: StructureType::from_raw(1000044003i32),
32490            p_next: core::ptr::null_mut(),
32491            dynamic_rendering: Default::default(),
32492        }
32493    }
32494}
32495///[`VkCommandBufferInheritanceRenderingInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceRenderingInfo.html)
32496/**
32497Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32498///
32499///# Extends
32500///- [`CommandBufferInheritanceInfo`]
32501#[repr(C)]
32502#[derive(Copy, Clone, Debug)]
32503#[doc(alias = "VkCommandBufferInheritanceRenderingInfo")]
32504pub struct CommandBufferInheritanceRenderingInfo {
32505    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO`.
32506    pub s_type: StructureType,
32507    ///Optional, may be null.
32508    pub p_next: *const core::ffi::c_void,
32509    pub flags: RenderingFlags,
32510    pub view_mask: u32,
32511    ///Length of `p_color_attachment_formats`.
32512    pub color_attachment_count: u32,
32513    pub p_color_attachment_formats: *const Format,
32514    pub depth_attachment_format: Format,
32515    pub stencil_attachment_format: Format,
32516    pub rasterization_samples: SampleCountFlagBits,
32517}
32518impl Default for CommandBufferInheritanceRenderingInfo {
32519    #[inline]
32520    fn default() -> Self {
32521        Self {
32522            s_type: StructureType::from_raw(1000044004i32),
32523            p_next: core::ptr::null(),
32524            flags: Default::default(),
32525            view_mask: Default::default(),
32526            color_attachment_count: Default::default(),
32527            p_color_attachment_formats: core::ptr::null(),
32528            depth_attachment_format: Default::default(),
32529            stencil_attachment_format: Default::default(),
32530            rasterization_samples: Default::default(),
32531        }
32532    }
32533}
32534///[`VkAttachmentSampleCountInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentSampleCountInfoAMD.html)
32535/**
32536Provided by **VK_AMD_mixed_attachment_samples**.*/
32537///
32538///# Extends
32539///- [`CommandBufferInheritanceInfo`]
32540///- [`GraphicsPipelineCreateInfo`]
32541#[repr(C)]
32542#[derive(Copy, Clone, Debug)]
32543#[doc(alias = "VkAttachmentSampleCountInfoAMD")]
32544pub struct AttachmentSampleCountInfoAMD {
32545    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD`.
32546    pub s_type: StructureType,
32547    ///Optional, may be null.
32548    pub p_next: *const core::ffi::c_void,
32549    ///Length of `p_color_attachment_samples`.
32550    pub color_attachment_count: u32,
32551    pub p_color_attachment_samples: *const SampleCountFlagBits,
32552    pub depth_stencil_attachment_samples: SampleCountFlagBits,
32553}
32554impl Default for AttachmentSampleCountInfoAMD {
32555    #[inline]
32556    fn default() -> Self {
32557        Self {
32558            s_type: StructureType::from_raw(1000044008i32),
32559            p_next: core::ptr::null(),
32560            color_attachment_count: Default::default(),
32561            p_color_attachment_samples: core::ptr::null(),
32562            depth_stencil_attachment_samples: Default::default(),
32563        }
32564    }
32565}
32566///[`VkMultiviewPerViewAttributesInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultiviewPerViewAttributesInfoNVX.html)
32567/**
32568Provided by **VK_NVX_multiview_per_view_attributes**.*/
32569///
32570///# Extends
32571///- [`CommandBufferInheritanceInfo`]
32572///- [`GraphicsPipelineCreateInfo`]
32573///- [`RenderingInfo`]
32574#[repr(C)]
32575#[derive(Copy, Clone, Debug)]
32576#[doc(alias = "VkMultiviewPerViewAttributesInfoNVX")]
32577pub struct MultiviewPerViewAttributesInfoNVX {
32578    ///Must be `VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX`.
32579    pub s_type: StructureType,
32580    ///Optional, may be null.
32581    pub p_next: *const core::ffi::c_void,
32582    pub per_view_attributes: u32,
32583    pub per_view_attributes_position_x_only: u32,
32584}
32585impl Default for MultiviewPerViewAttributesInfoNVX {
32586    #[inline]
32587    fn default() -> Self {
32588        Self {
32589            s_type: StructureType::from_raw(1000044009i32),
32590            p_next: core::ptr::null(),
32591            per_view_attributes: Default::default(),
32592            per_view_attributes_position_x_only: Default::default(),
32593        }
32594    }
32595}
32596///[`VkPhysicalDeviceImageViewMinLodFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageViewMinLodFeaturesEXT.html)
32597/**
32598Provided by **VK_EXT_image_view_min_lod**.*/
32599///
32600///# Extends
32601///- [`PhysicalDeviceFeatures2`]
32602///- [`DeviceCreateInfo`]
32603#[repr(C)]
32604#[derive(Copy, Clone, Debug)]
32605#[doc(alias = "VkPhysicalDeviceImageViewMinLodFeaturesEXT")]
32606pub struct PhysicalDeviceImageViewMinLodFeaturesEXT {
32607    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT`.
32608    pub s_type: StructureType,
32609    ///Optional, may be null.
32610    pub p_next: *mut core::ffi::c_void,
32611    pub min_lod: u32,
32612}
32613impl Default for PhysicalDeviceImageViewMinLodFeaturesEXT {
32614    #[inline]
32615    fn default() -> Self {
32616        Self {
32617            s_type: StructureType::from_raw(1000391000i32),
32618            p_next: core::ptr::null_mut(),
32619            min_lod: Default::default(),
32620        }
32621    }
32622}
32623///[`VkImageViewMinLodCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewMinLodCreateInfoEXT.html)
32624/**
32625Provided by **VK_EXT_image_view_min_lod**.*/
32626///
32627///# Extends
32628///- [`ImageViewCreateInfo`]
32629#[repr(C)]
32630#[derive(Copy, Clone, Debug)]
32631#[doc(alias = "VkImageViewMinLodCreateInfoEXT")]
32632pub struct ImageViewMinLodCreateInfoEXT {
32633    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT`.
32634    pub s_type: StructureType,
32635    ///Optional, may be null.
32636    pub p_next: *const core::ffi::c_void,
32637    pub min_lod: f32,
32638}
32639impl Default for ImageViewMinLodCreateInfoEXT {
32640    #[inline]
32641    fn default() -> Self {
32642        Self {
32643            s_type: StructureType::from_raw(1000391001i32),
32644            p_next: core::ptr::null(),
32645            min_lod: Default::default(),
32646        }
32647    }
32648}
32649///[`VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.html)
32650/**
32651Provided by **VK_EXT_rasterization_order_attachment_access**.*/
32652///
32653///# Extends
32654///- [`PhysicalDeviceFeatures2`]
32655///- [`DeviceCreateInfo`]
32656#[repr(C)]
32657#[derive(Copy, Clone, Debug)]
32658#[doc(alias = "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT")]
32659pub struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
32660    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT`.
32661    pub s_type: StructureType,
32662    ///Optional, may be null.
32663    pub p_next: *mut core::ffi::c_void,
32664    pub rasterization_order_color_attachment_access: u32,
32665    pub rasterization_order_depth_attachment_access: u32,
32666    pub rasterization_order_stencil_attachment_access: u32,
32667}
32668impl Default for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
32669    #[inline]
32670    fn default() -> Self {
32671        Self {
32672            s_type: StructureType::from_raw(1000342000i32),
32673            p_next: core::ptr::null_mut(),
32674            rasterization_order_color_attachment_access: Default::default(),
32675            rasterization_order_depth_attachment_access: Default::default(),
32676            rasterization_order_stencil_attachment_access: Default::default(),
32677        }
32678    }
32679}
32680///[`VkPhysicalDeviceLinearColorAttachmentFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.html)
32681/**
32682Provided by **VK_NV_linear_color_attachment**.*/
32683///
32684///# Extends
32685///- [`PhysicalDeviceFeatures2`]
32686///- [`DeviceCreateInfo`]
32687#[repr(C)]
32688#[derive(Copy, Clone, Debug)]
32689#[doc(alias = "VkPhysicalDeviceLinearColorAttachmentFeaturesNV")]
32690pub struct PhysicalDeviceLinearColorAttachmentFeaturesNV {
32691    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV`.
32692    pub s_type: StructureType,
32693    ///Optional, may be null.
32694    pub p_next: *mut core::ffi::c_void,
32695    pub linear_color_attachment: u32,
32696}
32697impl Default for PhysicalDeviceLinearColorAttachmentFeaturesNV {
32698    #[inline]
32699    fn default() -> Self {
32700        Self {
32701            s_type: StructureType::from_raw(1000430000i32),
32702            p_next: core::ptr::null_mut(),
32703            linear_color_attachment: Default::default(),
32704        }
32705    }
32706}
32707///[`VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT.html)
32708/**
32709Provided by **VK_EXT_graphics_pipeline_library**.*/
32710///
32711///# Extends
32712///- [`PhysicalDeviceFeatures2`]
32713///- [`DeviceCreateInfo`]
32714#[repr(C)]
32715#[derive(Copy, Clone, Debug)]
32716#[doc(alias = "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT")]
32717pub struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
32718    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT`.
32719    pub s_type: StructureType,
32720    ///Optional, may be null.
32721    pub p_next: *mut core::ffi::c_void,
32722    pub graphics_pipeline_library: u32,
32723}
32724impl Default for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
32725    #[inline]
32726    fn default() -> Self {
32727        Self {
32728            s_type: StructureType::from_raw(1000320000i32),
32729            p_next: core::ptr::null_mut(),
32730            graphics_pipeline_library: Default::default(),
32731        }
32732    }
32733}
32734///[`VkPhysicalDevicePipelineBinaryFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineBinaryFeaturesKHR.html)
32735/**
32736Provided by **VK_KHR_pipeline_binary**.*/
32737///
32738///# Extends
32739///- [`PhysicalDeviceFeatures2`]
32740///- [`DeviceCreateInfo`]
32741#[repr(C)]
32742#[derive(Copy, Clone, Debug)]
32743#[doc(alias = "VkPhysicalDevicePipelineBinaryFeaturesKHR")]
32744pub struct PhysicalDevicePipelineBinaryFeaturesKHR {
32745    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR`.
32746    pub s_type: StructureType,
32747    ///Optional, may be null.
32748    pub p_next: *mut core::ffi::c_void,
32749    pub pipeline_binaries: u32,
32750}
32751impl Default for PhysicalDevicePipelineBinaryFeaturesKHR {
32752    #[inline]
32753    fn default() -> Self {
32754        Self {
32755            s_type: StructureType::from_raw(1000483000i32),
32756            p_next: core::ptr::null_mut(),
32757            pipeline_binaries: Default::default(),
32758        }
32759    }
32760}
32761///[`VkDevicePipelineBinaryInternalCacheControlKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDevicePipelineBinaryInternalCacheControlKHR.html)
32762/**
32763Provided by **VK_KHR_pipeline_binary**.*/
32764///
32765///# Extends
32766///- [`DeviceCreateInfo`]
32767#[repr(C)]
32768#[derive(Copy, Clone, Debug)]
32769#[doc(alias = "VkDevicePipelineBinaryInternalCacheControlKHR")]
32770pub struct DevicePipelineBinaryInternalCacheControlKHR {
32771    ///Must be `VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR`.
32772    pub s_type: StructureType,
32773    ///Optional, may be null.
32774    pub p_next: *const core::ffi::c_void,
32775    pub disable_internal_cache: u32,
32776}
32777impl Default for DevicePipelineBinaryInternalCacheControlKHR {
32778    #[inline]
32779    fn default() -> Self {
32780        Self {
32781            s_type: StructureType::from_raw(1000483008i32),
32782            p_next: core::ptr::null(),
32783            disable_internal_cache: Default::default(),
32784        }
32785    }
32786}
32787///[`VkPhysicalDevicePipelineBinaryPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineBinaryPropertiesKHR.html)
32788/**
32789Provided by **VK_KHR_pipeline_binary**.*/
32790/**
32791**Returned only**, filled by Vulkan, not constructed by the application.*/
32792///
32793///# Extends
32794///- [`PhysicalDeviceProperties2`]
32795#[repr(C)]
32796#[derive(Copy, Clone, Debug)]
32797#[doc(alias = "VkPhysicalDevicePipelineBinaryPropertiesKHR")]
32798pub struct PhysicalDevicePipelineBinaryPropertiesKHR {
32799    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR`.
32800    pub s_type: StructureType,
32801    ///Optional, may be null.
32802    pub p_next: *mut core::ffi::c_void,
32803    pub pipeline_binary_internal_cache: u32,
32804    pub pipeline_binary_internal_cache_control: u32,
32805    pub pipeline_binary_prefers_internal_cache: u32,
32806    pub pipeline_binary_precompiled_internal_cache: u32,
32807    pub pipeline_binary_compressed_data: u32,
32808}
32809impl Default for PhysicalDevicePipelineBinaryPropertiesKHR {
32810    #[inline]
32811    fn default() -> Self {
32812        Self {
32813            s_type: StructureType::from_raw(1000483004i32),
32814            p_next: core::ptr::null_mut(),
32815            pipeline_binary_internal_cache: Default::default(),
32816            pipeline_binary_internal_cache_control: Default::default(),
32817            pipeline_binary_prefers_internal_cache: Default::default(),
32818            pipeline_binary_precompiled_internal_cache: Default::default(),
32819            pipeline_binary_compressed_data: Default::default(),
32820        }
32821    }
32822}
32823///[`VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT.html)
32824/**
32825Provided by **VK_EXT_graphics_pipeline_library**.*/
32826/**
32827**Returned only**, filled by Vulkan, not constructed by the application.*/
32828///
32829///# Extends
32830///- [`PhysicalDeviceProperties2`]
32831#[repr(C)]
32832#[derive(Copy, Clone, Debug)]
32833#[doc(alias = "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT")]
32834pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
32835    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT`.
32836    pub s_type: StructureType,
32837    ///Optional, may be null.
32838    pub p_next: *mut core::ffi::c_void,
32839    pub graphics_pipeline_library_fast_linking: u32,
32840    pub graphics_pipeline_library_independent_interpolation_decoration: u32,
32841}
32842impl Default for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
32843    #[inline]
32844    fn default() -> Self {
32845        Self {
32846            s_type: StructureType::from_raw(1000320001i32),
32847            p_next: core::ptr::null_mut(),
32848            graphics_pipeline_library_fast_linking: Default::default(),
32849            graphics_pipeline_library_independent_interpolation_decoration: Default::default(),
32850        }
32851    }
32852}
32853///[`VkGraphicsPipelineLibraryCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineLibraryCreateInfoEXT.html)
32854/**
32855Provided by **VK_EXT_graphics_pipeline_library**.*/
32856///
32857///# Extends
32858///- [`GraphicsPipelineCreateInfo`]
32859#[repr(C)]
32860#[derive(Copy, Clone, Debug)]
32861#[doc(alias = "VkGraphicsPipelineLibraryCreateInfoEXT")]
32862pub struct GraphicsPipelineLibraryCreateInfoEXT {
32863    ///Must be `VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT`.
32864    pub s_type: StructureType,
32865    ///Optional, may be null.
32866    pub p_next: *const core::ffi::c_void,
32867    pub flags: GraphicsPipelineLibraryFlagsEXT,
32868}
32869impl Default for GraphicsPipelineLibraryCreateInfoEXT {
32870    #[inline]
32871    fn default() -> Self {
32872        Self {
32873            s_type: StructureType::from_raw(1000320002i32),
32874            p_next: core::ptr::null(),
32875            flags: Default::default(),
32876        }
32877    }
32878}
32879///[`VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE.html)
32880/**
32881Provided by **VK_VALVE_descriptor_set_host_mapping**.*/
32882///
32883///# Extends
32884///- [`PhysicalDeviceFeatures2`]
32885///- [`DeviceCreateInfo`]
32886#[repr(C)]
32887#[derive(Copy, Clone, Debug)]
32888#[doc(alias = "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE")]
32889pub struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
32890    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE`.
32891    pub s_type: StructureType,
32892    ///Optional, may be null.
32893    pub p_next: *mut core::ffi::c_void,
32894    pub descriptor_set_host_mapping: u32,
32895}
32896impl Default for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
32897    #[inline]
32898    fn default() -> Self {
32899        Self {
32900            s_type: StructureType::from_raw(1000420000i32),
32901            p_next: core::ptr::null_mut(),
32902            descriptor_set_host_mapping: Default::default(),
32903        }
32904    }
32905}
32906///[`VkDescriptorSetBindingReferenceVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetBindingReferenceVALVE.html)
32907/**
32908Provided by **VK_VALVE_descriptor_set_host_mapping**.*/
32909#[repr(C)]
32910#[derive(Copy, Clone, Debug)]
32911#[doc(alias = "VkDescriptorSetBindingReferenceVALVE")]
32912pub struct DescriptorSetBindingReferenceVALVE {
32913    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE`.
32914    pub s_type: StructureType,
32915    ///Optional, may be null.
32916    pub p_next: *const core::ffi::c_void,
32917    pub descriptor_set_layout: DescriptorSetLayout,
32918    pub binding: u32,
32919}
32920impl Default for DescriptorSetBindingReferenceVALVE {
32921    #[inline]
32922    fn default() -> Self {
32923        Self {
32924            s_type: StructureType::from_raw(1000420001i32),
32925            p_next: core::ptr::null(),
32926            descriptor_set_layout: Default::default(),
32927            binding: Default::default(),
32928        }
32929    }
32930}
32931///[`VkDescriptorSetLayoutHostMappingInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutHostMappingInfoVALVE.html)
32932/**
32933Provided by **VK_VALVE_descriptor_set_host_mapping**.*/
32934#[repr(C)]
32935#[derive(Copy, Clone, Debug)]
32936#[doc(alias = "VkDescriptorSetLayoutHostMappingInfoVALVE")]
32937pub struct DescriptorSetLayoutHostMappingInfoVALVE {
32938    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE`.
32939    pub s_type: StructureType,
32940    ///Optional, may be null.
32941    pub p_next: *mut core::ffi::c_void,
32942    pub descriptor_offset: usize,
32943    pub descriptor_size: u32,
32944}
32945impl Default for DescriptorSetLayoutHostMappingInfoVALVE {
32946    #[inline]
32947    fn default() -> Self {
32948        Self {
32949            s_type: StructureType::from_raw(1000420002i32),
32950            p_next: core::ptr::null_mut(),
32951            descriptor_offset: Default::default(),
32952            descriptor_size: Default::default(),
32953        }
32954    }
32955}
32956///[`VkPhysicalDeviceNestedCommandBufferFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceNestedCommandBufferFeaturesEXT.html)
32957/**
32958Provided by **VK_EXT_nested_command_buffer**.*/
32959///
32960///# Extends
32961///- [`PhysicalDeviceFeatures2`]
32962///- [`DeviceCreateInfo`]
32963#[repr(C)]
32964#[derive(Copy, Clone, Debug)]
32965#[doc(alias = "VkPhysicalDeviceNestedCommandBufferFeaturesEXT")]
32966pub struct PhysicalDeviceNestedCommandBufferFeaturesEXT {
32967    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT`.
32968    pub s_type: StructureType,
32969    ///Optional, may be null.
32970    pub p_next: *mut core::ffi::c_void,
32971    pub nested_command_buffer: u32,
32972    pub nested_command_buffer_rendering: u32,
32973    pub nested_command_buffer_simultaneous_use: u32,
32974}
32975impl Default for PhysicalDeviceNestedCommandBufferFeaturesEXT {
32976    #[inline]
32977    fn default() -> Self {
32978        Self {
32979            s_type: StructureType::from_raw(1000451000i32),
32980            p_next: core::ptr::null_mut(),
32981            nested_command_buffer: Default::default(),
32982            nested_command_buffer_rendering: Default::default(),
32983            nested_command_buffer_simultaneous_use: Default::default(),
32984        }
32985    }
32986}
32987///[`VkPhysicalDeviceNestedCommandBufferPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceNestedCommandBufferPropertiesEXT.html)
32988/**
32989Provided by **VK_EXT_nested_command_buffer**.*/
32990/**
32991**Returned only**, filled by Vulkan, not constructed by the application.*/
32992///
32993///# Extends
32994///- [`PhysicalDeviceProperties2`]
32995#[repr(C)]
32996#[derive(Copy, Clone, Debug)]
32997#[doc(alias = "VkPhysicalDeviceNestedCommandBufferPropertiesEXT")]
32998pub struct PhysicalDeviceNestedCommandBufferPropertiesEXT {
32999    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT`.
33000    pub s_type: StructureType,
33001    ///Optional, may be null.
33002    pub p_next: *mut core::ffi::c_void,
33003    pub max_command_buffer_nesting_level: u32,
33004}
33005impl Default for PhysicalDeviceNestedCommandBufferPropertiesEXT {
33006    #[inline]
33007    fn default() -> Self {
33008        Self {
33009            s_type: StructureType::from_raw(1000451001i32),
33010            p_next: core::ptr::null_mut(),
33011            max_command_buffer_nesting_level: Default::default(),
33012        }
33013    }
33014}
33015///[`VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT.html)
33016/**
33017Provided by **VK_EXT_shader_module_identifier**.*/
33018///
33019///# Extends
33020///- [`PhysicalDeviceFeatures2`]
33021///- [`DeviceCreateInfo`]
33022#[repr(C)]
33023#[derive(Copy, Clone, Debug)]
33024#[doc(alias = "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT")]
33025pub struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
33026    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT`.
33027    pub s_type: StructureType,
33028    ///Optional, may be null.
33029    pub p_next: *mut core::ffi::c_void,
33030    pub shader_module_identifier: u32,
33031}
33032impl Default for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
33033    #[inline]
33034    fn default() -> Self {
33035        Self {
33036            s_type: StructureType::from_raw(1000462000i32),
33037            p_next: core::ptr::null_mut(),
33038            shader_module_identifier: Default::default(),
33039        }
33040    }
33041}
33042///[`VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT.html)
33043/**
33044Provided by **VK_EXT_shader_module_identifier**.*/
33045/**
33046**Returned only**, filled by Vulkan, not constructed by the application.*/
33047///
33048///# Extends
33049///- [`PhysicalDeviceProperties2`]
33050#[repr(C)]
33051#[derive(Copy, Clone, Debug)]
33052#[doc(alias = "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT")]
33053pub struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
33054    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT`.
33055    pub s_type: StructureType,
33056    ///Optional, may be null.
33057    pub p_next: *mut core::ffi::c_void,
33058    pub shader_module_identifier_algorithm_uuid: [u8; UUID_SIZE as usize],
33059}
33060impl Default for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
33061    #[inline]
33062    fn default() -> Self {
33063        Self {
33064            s_type: StructureType::from_raw(1000462001i32),
33065            p_next: core::ptr::null_mut(),
33066            shader_module_identifier_algorithm_uuid: unsafe { core::mem::zeroed() },
33067        }
33068    }
33069}
33070///[`VkPipelineShaderStageModuleIdentifierCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineShaderStageModuleIdentifierCreateInfoEXT.html)
33071/**
33072Provided by **VK_EXT_shader_module_identifier**.*/
33073///
33074///# Extends
33075///- [`PipelineShaderStageCreateInfo`]
33076#[repr(C)]
33077#[derive(Copy, Clone, Debug)]
33078#[doc(alias = "VkPipelineShaderStageModuleIdentifierCreateInfoEXT")]
33079pub struct PipelineShaderStageModuleIdentifierCreateInfoEXT {
33080    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT`.
33081    pub s_type: StructureType,
33082    ///Optional, may be null.
33083    pub p_next: *const core::ffi::c_void,
33084    ///Length of `p_identifier`.
33085    pub identifier_size: u32,
33086    pub p_identifier: *const u8,
33087}
33088impl Default for PipelineShaderStageModuleIdentifierCreateInfoEXT {
33089    #[inline]
33090    fn default() -> Self {
33091        Self {
33092            s_type: StructureType::from_raw(1000462002i32),
33093            p_next: core::ptr::null(),
33094            identifier_size: Default::default(),
33095            p_identifier: core::ptr::null(),
33096        }
33097    }
33098}
33099///[`VkShaderModuleIdentifierEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderModuleIdentifierEXT.html)
33100/**
33101Provided by **VK_EXT_shader_module_identifier**.*/
33102/**
33103**Returned only**, filled by Vulkan, not constructed by the application.*/
33104#[repr(C)]
33105#[derive(Copy, Clone, Debug)]
33106#[doc(alias = "VkShaderModuleIdentifierEXT")]
33107pub struct ShaderModuleIdentifierEXT {
33108    ///Must be `VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT`.
33109    pub s_type: StructureType,
33110    ///Optional, may be null.
33111    pub p_next: *mut core::ffi::c_void,
33112    pub identifier_size: u32,
33113    pub identifier: [u8; MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT as usize],
33114}
33115impl Default for ShaderModuleIdentifierEXT {
33116    #[inline]
33117    fn default() -> Self {
33118        Self {
33119            s_type: StructureType::from_raw(1000462003i32),
33120            p_next: core::ptr::null_mut(),
33121            identifier_size: Default::default(),
33122            identifier: unsafe { core::mem::zeroed() },
33123        }
33124    }
33125}
33126///[`VkImageCompressionControlEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCompressionControlEXT.html)
33127/**
33128Provided by **VK_EXT_image_compression_control**.*/
33129///
33130///# Extends
33131///- [`ImageCreateInfo`]
33132///- [`SwapchainCreateInfoKHR`]
33133///- [`PhysicalDeviceImageFormatInfo2`]
33134#[repr(C)]
33135#[derive(Copy, Clone, Debug)]
33136#[doc(alias = "VkImageCompressionControlEXT")]
33137pub struct ImageCompressionControlEXT {
33138    ///Must be `VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT`.
33139    pub s_type: StructureType,
33140    ///Optional, may be null.
33141    pub p_next: *const core::ffi::c_void,
33142    pub flags: ImageCompressionFlagsEXT,
33143    ///Length of `p_fixed_rate_flags`.
33144    pub compression_control_plane_count: u32,
33145    pub p_fixed_rate_flags: *mut ImageCompressionFixedRateFlagsEXT,
33146}
33147impl Default for ImageCompressionControlEXT {
33148    #[inline]
33149    fn default() -> Self {
33150        Self {
33151            s_type: StructureType::from_raw(1000338001i32),
33152            p_next: core::ptr::null(),
33153            flags: Default::default(),
33154            compression_control_plane_count: Default::default(),
33155            p_fixed_rate_flags: core::ptr::null_mut(),
33156        }
33157    }
33158}
33159///[`VkPhysicalDeviceImageCompressionControlFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageCompressionControlFeaturesEXT.html)
33160/**
33161Provided by **VK_EXT_image_compression_control**.*/
33162///
33163///# Extends
33164///- [`PhysicalDeviceFeatures2`]
33165///- [`DeviceCreateInfo`]
33166#[repr(C)]
33167#[derive(Copy, Clone, Debug)]
33168#[doc(alias = "VkPhysicalDeviceImageCompressionControlFeaturesEXT")]
33169pub struct PhysicalDeviceImageCompressionControlFeaturesEXT {
33170    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT`.
33171    pub s_type: StructureType,
33172    ///Optional, may be null.
33173    pub p_next: *mut core::ffi::c_void,
33174    pub image_compression_control: u32,
33175}
33176impl Default for PhysicalDeviceImageCompressionControlFeaturesEXT {
33177    #[inline]
33178    fn default() -> Self {
33179        Self {
33180            s_type: StructureType::from_raw(1000338000i32),
33181            p_next: core::ptr::null_mut(),
33182            image_compression_control: Default::default(),
33183        }
33184    }
33185}
33186///[`VkImageCompressionPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCompressionPropertiesEXT.html)
33187/**
33188Provided by **VK_EXT_image_compression_control**.*/
33189/**
33190**Returned only**, filled by Vulkan, not constructed by the application.*/
33191///
33192///# Extends
33193///- [`ImageFormatProperties2`]
33194///- [`SurfaceFormat2KHR`]
33195///- [`SubresourceLayout2`]
33196#[repr(C)]
33197#[derive(Copy, Clone, Debug)]
33198#[doc(alias = "VkImageCompressionPropertiesEXT")]
33199pub struct ImageCompressionPropertiesEXT {
33200    ///Must be `VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT`.
33201    pub s_type: StructureType,
33202    ///Optional, may be null.
33203    pub p_next: *mut core::ffi::c_void,
33204    pub image_compression_flags: ImageCompressionFlagsEXT,
33205    pub image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT,
33206}
33207impl Default for ImageCompressionPropertiesEXT {
33208    #[inline]
33209    fn default() -> Self {
33210        Self {
33211            s_type: StructureType::from_raw(1000338004i32),
33212            p_next: core::ptr::null_mut(),
33213            image_compression_flags: Default::default(),
33214            image_compression_fixed_rate_flags: Default::default(),
33215        }
33216    }
33217}
33218///[`VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT.html)
33219/**
33220Provided by **VK_EXT_image_compression_control_swapchain**.*/
33221///
33222///# Extends
33223///- [`PhysicalDeviceFeatures2`]
33224///- [`DeviceCreateInfo`]
33225#[repr(C)]
33226#[derive(Copy, Clone, Debug)]
33227#[doc(alias = "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT")]
33228pub struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
33229    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT`.
33230    pub s_type: StructureType,
33231    ///Optional, may be null.
33232    pub p_next: *mut core::ffi::c_void,
33233    pub image_compression_control_swapchain: u32,
33234}
33235impl Default for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
33236    #[inline]
33237    fn default() -> Self {
33238        Self {
33239            s_type: StructureType::from_raw(1000437000i32),
33240            p_next: core::ptr::null_mut(),
33241            image_compression_control_swapchain: Default::default(),
33242        }
33243    }
33244}
33245///[`VkImageSubresource2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSubresource2.html)
33246/**
33247Provided by **VK_BASE_VERSION_1_4**.*/
33248#[repr(C)]
33249#[derive(Copy, Clone, Debug)]
33250#[doc(alias = "VkImageSubresource2")]
33251pub struct ImageSubresource2 {
33252    ///Must be `VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2`.
33253    pub s_type: StructureType,
33254    ///Optional, may be null.
33255    pub p_next: *mut core::ffi::c_void,
33256    pub image_subresource: ImageSubresource,
33257}
33258impl Default for ImageSubresource2 {
33259    #[inline]
33260    fn default() -> Self {
33261        Self {
33262            s_type: StructureType::from_raw(1000338003i32),
33263            p_next: core::ptr::null_mut(),
33264            image_subresource: Default::default(),
33265        }
33266    }
33267}
33268///[`VkSubresourceLayout2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubresourceLayout2.html)
33269/**
33270Provided by **VK_BASE_VERSION_1_4**.*/
33271/**
33272**Returned only**, filled by Vulkan, not constructed by the application.*/
33273///
33274///# Extended By
33275///- [`ImageCompressionPropertiesEXT`]
33276///- [`SubresourceHostMemcpySize`]
33277#[repr(C)]
33278#[derive(Copy, Clone, Debug)]
33279#[doc(alias = "VkSubresourceLayout2")]
33280pub struct SubresourceLayout2 {
33281    ///Must be `VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2`.
33282    pub s_type: StructureType,
33283    ///Optional, may be null.
33284    pub p_next: *mut core::ffi::c_void,
33285    pub subresource_layout: SubresourceLayout,
33286}
33287impl Default for SubresourceLayout2 {
33288    #[inline]
33289    fn default() -> Self {
33290        Self {
33291            s_type: StructureType::from_raw(1000338002i32),
33292            p_next: core::ptr::null_mut(),
33293            subresource_layout: Default::default(),
33294        }
33295    }
33296}
33297///[`VkRenderPassCreationControlEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreationControlEXT.html)
33298/**
33299Provided by **VK_EXT_subpass_merge_feedback**.*/
33300///
33301///# Extends
33302///- [`RenderPassCreateInfo2`]
33303///- [`SubpassDescription2`]
33304#[repr(C)]
33305#[derive(Copy, Clone, Debug)]
33306#[doc(alias = "VkRenderPassCreationControlEXT")]
33307pub struct RenderPassCreationControlEXT {
33308    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT`.
33309    pub s_type: StructureType,
33310    ///Optional, may be null.
33311    pub p_next: *const core::ffi::c_void,
33312    pub disallow_merging: u32,
33313}
33314impl Default for RenderPassCreationControlEXT {
33315    #[inline]
33316    fn default() -> Self {
33317        Self {
33318            s_type: StructureType::from_raw(1000458001i32),
33319            p_next: core::ptr::null(),
33320            disallow_merging: Default::default(),
33321        }
33322    }
33323}
33324///[`VkRenderPassCreationFeedbackInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreationFeedbackInfoEXT.html)
33325/**
33326Provided by **VK_EXT_subpass_merge_feedback**.*/
33327/**
33328**Returned only**, filled by Vulkan, not constructed by the application.*/
33329#[repr(C)]
33330#[derive(Copy, Clone, Debug)]
33331#[doc(alias = "VkRenderPassCreationFeedbackInfoEXT")]
33332pub struct RenderPassCreationFeedbackInfoEXT {
33333    pub post_merge_subpass_count: u32,
33334}
33335impl Default for RenderPassCreationFeedbackInfoEXT {
33336    #[inline]
33337    fn default() -> Self {
33338        unsafe { core::mem::zeroed() }
33339    }
33340}
33341///[`VkRenderPassCreationFeedbackCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreationFeedbackCreateInfoEXT.html)
33342/**
33343Provided by **VK_EXT_subpass_merge_feedback**.*/
33344///
33345///# Extends
33346///- [`RenderPassCreateInfo2`]
33347#[repr(C)]
33348#[derive(Copy, Clone, Debug)]
33349#[doc(alias = "VkRenderPassCreationFeedbackCreateInfoEXT")]
33350pub struct RenderPassCreationFeedbackCreateInfoEXT {
33351    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT`.
33352    pub s_type: StructureType,
33353    ///Optional, may be null.
33354    pub p_next: *const core::ffi::c_void,
33355    pub p_render_pass_feedback: *mut RenderPassCreationFeedbackInfoEXT,
33356}
33357impl Default for RenderPassCreationFeedbackCreateInfoEXT {
33358    #[inline]
33359    fn default() -> Self {
33360        Self {
33361            s_type: StructureType::from_raw(1000458002i32),
33362            p_next: core::ptr::null(),
33363            p_render_pass_feedback: core::ptr::null_mut(),
33364        }
33365    }
33366}
33367///[`VkRenderPassSubpassFeedbackInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassSubpassFeedbackInfoEXT.html)
33368/**
33369Provided by **VK_EXT_subpass_merge_feedback**.*/
33370/**
33371**Returned only**, filled by Vulkan, not constructed by the application.*/
33372#[repr(C)]
33373#[derive(Copy, Clone, Debug)]
33374#[doc(alias = "VkRenderPassSubpassFeedbackInfoEXT")]
33375pub struct RenderPassSubpassFeedbackInfoEXT {
33376    pub subpass_merge_status: SubpassMergeStatusEXT,
33377    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
33378    pub post_merge_index: u32,
33379}
33380impl Default for RenderPassSubpassFeedbackInfoEXT {
33381    #[inline]
33382    fn default() -> Self {
33383        unsafe { core::mem::zeroed() }
33384    }
33385}
33386///[`VkRenderPassSubpassFeedbackCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassSubpassFeedbackCreateInfoEXT.html)
33387/**
33388Provided by **VK_EXT_subpass_merge_feedback**.*/
33389///
33390///# Extends
33391///- [`SubpassDescription2`]
33392#[repr(C)]
33393#[derive(Copy, Clone, Debug)]
33394#[doc(alias = "VkRenderPassSubpassFeedbackCreateInfoEXT")]
33395pub struct RenderPassSubpassFeedbackCreateInfoEXT {
33396    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT`.
33397    pub s_type: StructureType,
33398    ///Optional, may be null.
33399    pub p_next: *const core::ffi::c_void,
33400    pub p_subpass_feedback: *mut RenderPassSubpassFeedbackInfoEXT,
33401}
33402impl Default for RenderPassSubpassFeedbackCreateInfoEXT {
33403    #[inline]
33404    fn default() -> Self {
33405        Self {
33406            s_type: StructureType::from_raw(1000458003i32),
33407            p_next: core::ptr::null(),
33408            p_subpass_feedback: core::ptr::null_mut(),
33409        }
33410    }
33411}
33412///[`VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT.html)
33413/**
33414Provided by **VK_EXT_subpass_merge_feedback**.*/
33415///
33416///# Extends
33417///- [`PhysicalDeviceFeatures2`]
33418///- [`DeviceCreateInfo`]
33419#[repr(C)]
33420#[derive(Copy, Clone, Debug)]
33421#[doc(alias = "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT")]
33422pub struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
33423    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT`.
33424    pub s_type: StructureType,
33425    ///Optional, may be null.
33426    pub p_next: *mut core::ffi::c_void,
33427    pub subpass_merge_feedback: u32,
33428}
33429impl Default for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
33430    #[inline]
33431    fn default() -> Self {
33432        Self {
33433            s_type: StructureType::from_raw(1000458000i32),
33434            p_next: core::ptr::null_mut(),
33435            subpass_merge_feedback: Default::default(),
33436        }
33437    }
33438}
33439///[`VkMicromapBuildInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapBuildInfoEXT.html)
33440/**
33441Provided by **VK_EXT_opacity_micromap**.*/
33442#[repr(C)]
33443#[derive(Copy, Clone, Debug)]
33444#[doc(alias = "VkMicromapBuildInfoEXT")]
33445pub struct MicromapBuildInfoEXT {
33446    ///Must be `VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT`.
33447    pub s_type: StructureType,
33448    ///Optional, may be null.
33449    pub p_next: *const core::ffi::c_void,
33450    pub r#type: MicromapTypeEXT,
33451    pub flags: BuildMicromapFlagsEXT,
33452    pub mode: BuildMicromapModeEXT,
33453    pub dst_micromap: MicromapEXT,
33454    ///Length of `pp_usage_counts`.
33455    pub usage_counts_count: u32,
33456    ///Optional, may be null.
33457    pub p_usage_counts: *const MicromapUsageEXT,
33458    ///Optional, may be null.
33459    pub pp_usage_counts: *const *const MicromapUsageEXT,
33460    pub data: DeviceOrHostAddressConstKHR,
33461    pub scratch_data: DeviceOrHostAddressKHR,
33462    pub triangle_array: DeviceOrHostAddressConstKHR,
33463    pub triangle_array_stride: u64,
33464}
33465impl Default for MicromapBuildInfoEXT {
33466    #[inline]
33467    fn default() -> Self {
33468        Self {
33469            s_type: StructureType::from_raw(1000396000i32),
33470            p_next: core::ptr::null(),
33471            r#type: Default::default(),
33472            flags: Default::default(),
33473            mode: Default::default(),
33474            dst_micromap: Default::default(),
33475            usage_counts_count: Default::default(),
33476            p_usage_counts: core::ptr::null(),
33477            pp_usage_counts: core::ptr::null(),
33478            data: Default::default(),
33479            scratch_data: Default::default(),
33480            triangle_array: Default::default(),
33481            triangle_array_stride: Default::default(),
33482        }
33483    }
33484}
33485///[`VkMicromapCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapCreateInfoEXT.html)
33486/**
33487Provided by **VK_EXT_opacity_micromap**.*/
33488#[repr(C)]
33489#[derive(Copy, Clone, Debug)]
33490#[doc(alias = "VkMicromapCreateInfoEXT")]
33491pub struct MicromapCreateInfoEXT {
33492    ///Must be `VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT`.
33493    pub s_type: StructureType,
33494    ///Optional, may be null.
33495    pub p_next: *const core::ffi::c_void,
33496    pub create_flags: MicromapCreateFlagsEXT,
33497    pub buffer: Buffer,
33498    pub offset: u64,
33499    pub size: u64,
33500    pub r#type: MicromapTypeEXT,
33501    pub device_address: u64,
33502}
33503impl Default for MicromapCreateInfoEXT {
33504    #[inline]
33505    fn default() -> Self {
33506        Self {
33507            s_type: StructureType::from_raw(1000396007i32),
33508            p_next: core::ptr::null(),
33509            create_flags: Default::default(),
33510            buffer: Default::default(),
33511            offset: Default::default(),
33512            size: Default::default(),
33513            r#type: Default::default(),
33514            device_address: Default::default(),
33515        }
33516    }
33517}
33518///[`VkMicromapVersionInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapVersionInfoEXT.html)
33519/**
33520Provided by **VK_EXT_opacity_micromap**.*/
33521#[repr(C)]
33522#[derive(Copy, Clone, Debug)]
33523#[doc(alias = "VkMicromapVersionInfoEXT")]
33524pub struct MicromapVersionInfoEXT {
33525    ///Must be `VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT`.
33526    pub s_type: StructureType,
33527    ///Optional, may be null.
33528    pub p_next: *const core::ffi::c_void,
33529    pub p_version_data: *const u8,
33530}
33531impl Default for MicromapVersionInfoEXT {
33532    #[inline]
33533    fn default() -> Self {
33534        Self {
33535            s_type: StructureType::from_raw(1000396001i32),
33536            p_next: core::ptr::null(),
33537            p_version_data: core::ptr::null(),
33538        }
33539    }
33540}
33541///[`VkCopyMicromapInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMicromapInfoEXT.html)
33542/**
33543Provided by **VK_EXT_opacity_micromap**.*/
33544#[repr(C)]
33545#[derive(Copy, Clone, Debug)]
33546#[doc(alias = "VkCopyMicromapInfoEXT")]
33547pub struct CopyMicromapInfoEXT {
33548    ///Must be `VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT`.
33549    pub s_type: StructureType,
33550    ///Optional, may be null.
33551    pub p_next: *const core::ffi::c_void,
33552    pub src: MicromapEXT,
33553    pub dst: MicromapEXT,
33554    pub mode: CopyMicromapModeEXT,
33555}
33556impl Default for CopyMicromapInfoEXT {
33557    #[inline]
33558    fn default() -> Self {
33559        Self {
33560            s_type: StructureType::from_raw(1000396002i32),
33561            p_next: core::ptr::null(),
33562            src: Default::default(),
33563            dst: Default::default(),
33564            mode: Default::default(),
33565        }
33566    }
33567}
33568///[`VkCopyMicromapToMemoryInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMicromapToMemoryInfoEXT.html)
33569/**
33570Provided by **VK_EXT_opacity_micromap**.*/
33571#[repr(C)]
33572#[derive(Copy, Clone, Debug)]
33573#[doc(alias = "VkCopyMicromapToMemoryInfoEXT")]
33574pub struct CopyMicromapToMemoryInfoEXT {
33575    ///Must be `VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT`.
33576    pub s_type: StructureType,
33577    ///Optional, may be null.
33578    pub p_next: *const core::ffi::c_void,
33579    pub src: MicromapEXT,
33580    pub dst: DeviceOrHostAddressKHR,
33581    pub mode: CopyMicromapModeEXT,
33582}
33583impl Default for CopyMicromapToMemoryInfoEXT {
33584    #[inline]
33585    fn default() -> Self {
33586        Self {
33587            s_type: StructureType::from_raw(1000396003i32),
33588            p_next: core::ptr::null(),
33589            src: Default::default(),
33590            dst: Default::default(),
33591            mode: Default::default(),
33592        }
33593    }
33594}
33595///[`VkCopyMemoryToMicromapInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToMicromapInfoEXT.html)
33596/**
33597Provided by **VK_EXT_opacity_micromap**.*/
33598#[repr(C)]
33599#[derive(Copy, Clone, Debug)]
33600#[doc(alias = "VkCopyMemoryToMicromapInfoEXT")]
33601pub struct CopyMemoryToMicromapInfoEXT {
33602    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT`.
33603    pub s_type: StructureType,
33604    ///Optional, may be null.
33605    pub p_next: *const core::ffi::c_void,
33606    pub src: DeviceOrHostAddressConstKHR,
33607    pub dst: MicromapEXT,
33608    pub mode: CopyMicromapModeEXT,
33609}
33610impl Default for CopyMemoryToMicromapInfoEXT {
33611    #[inline]
33612    fn default() -> Self {
33613        Self {
33614            s_type: StructureType::from_raw(1000396004i32),
33615            p_next: core::ptr::null(),
33616            src: Default::default(),
33617            dst: Default::default(),
33618            mode: Default::default(),
33619        }
33620    }
33621}
33622///[`VkMicromapBuildSizesInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapBuildSizesInfoEXT.html)
33623/**
33624Provided by **VK_EXT_opacity_micromap**.*/
33625#[repr(C)]
33626#[derive(Copy, Clone, Debug)]
33627#[doc(alias = "VkMicromapBuildSizesInfoEXT")]
33628pub struct MicromapBuildSizesInfoEXT {
33629    ///Must be `VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT`.
33630    pub s_type: StructureType,
33631    ///Optional, may be null.
33632    pub p_next: *const core::ffi::c_void,
33633    pub micromap_size: u64,
33634    pub build_scratch_size: u64,
33635    pub discardable: u32,
33636}
33637impl Default for MicromapBuildSizesInfoEXT {
33638    #[inline]
33639    fn default() -> Self {
33640        Self {
33641            s_type: StructureType::from_raw(1000396008i32),
33642            p_next: core::ptr::null(),
33643            micromap_size: Default::default(),
33644            build_scratch_size: Default::default(),
33645            discardable: Default::default(),
33646        }
33647    }
33648}
33649///[`VkMicromapUsageEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapUsageEXT.html)
33650/**
33651Provided by **VK_EXT_opacity_micromap**.*/
33652#[repr(C)]
33653#[derive(Copy, Clone, Debug)]
33654#[doc(alias = "VkMicromapUsageEXT")]
33655pub struct MicromapUsageEXT {
33656    pub count: u32,
33657    pub subdivision_level: u32,
33658    pub format: u32,
33659}
33660impl Default for MicromapUsageEXT {
33661    #[inline]
33662    fn default() -> Self {
33663        unsafe { core::mem::zeroed() }
33664    }
33665}
33666///[`VkMicromapTriangleEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapTriangleEXT.html)
33667/**
33668Provided by **VK_EXT_opacity_micromap**.*/
33669#[repr(C)]
33670#[derive(Copy, Clone, Debug)]
33671#[doc(alias = "VkMicromapTriangleEXT")]
33672pub struct MicromapTriangleEXT {
33673    pub data_offset: u32,
33674    pub subdivision_level: u16,
33675    pub format: u16,
33676}
33677impl Default for MicromapTriangleEXT {
33678    #[inline]
33679    fn default() -> Self {
33680        unsafe { core::mem::zeroed() }
33681    }
33682}
33683///[`VkPhysicalDeviceOpacityMicromapFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceOpacityMicromapFeaturesEXT.html)
33684/**
33685Provided by **VK_EXT_opacity_micromap**.*/
33686///
33687///# Extends
33688///- [`PhysicalDeviceFeatures2`]
33689///- [`DeviceCreateInfo`]
33690#[repr(C)]
33691#[derive(Copy, Clone, Debug)]
33692#[doc(alias = "VkPhysicalDeviceOpacityMicromapFeaturesEXT")]
33693pub struct PhysicalDeviceOpacityMicromapFeaturesEXT {
33694    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT`.
33695    pub s_type: StructureType,
33696    ///Optional, may be null.
33697    pub p_next: *mut core::ffi::c_void,
33698    pub micromap: u32,
33699    pub micromap_capture_replay: u32,
33700    pub micromap_host_commands: u32,
33701}
33702impl Default for PhysicalDeviceOpacityMicromapFeaturesEXT {
33703    #[inline]
33704    fn default() -> Self {
33705        Self {
33706            s_type: StructureType::from_raw(1000396005i32),
33707            p_next: core::ptr::null_mut(),
33708            micromap: Default::default(),
33709            micromap_capture_replay: Default::default(),
33710            micromap_host_commands: Default::default(),
33711        }
33712    }
33713}
33714///[`VkPhysicalDeviceOpacityMicromapPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceOpacityMicromapPropertiesEXT.html)
33715/**
33716Provided by **VK_EXT_opacity_micromap**.*/
33717/**
33718**Returned only**, filled by Vulkan, not constructed by the application.*/
33719///
33720///# Extends
33721///- [`PhysicalDeviceProperties2`]
33722#[repr(C)]
33723#[derive(Copy, Clone, Debug)]
33724#[doc(alias = "VkPhysicalDeviceOpacityMicromapPropertiesEXT")]
33725pub struct PhysicalDeviceOpacityMicromapPropertiesEXT {
33726    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT`.
33727    pub s_type: StructureType,
33728    ///Optional, may be null.
33729    pub p_next: *mut core::ffi::c_void,
33730    pub max_opacity2_state_subdivision_level: u32,
33731    pub max_opacity4_state_subdivision_level: u32,
33732}
33733impl Default for PhysicalDeviceOpacityMicromapPropertiesEXT {
33734    #[inline]
33735    fn default() -> Self {
33736        Self {
33737            s_type: StructureType::from_raw(1000396006i32),
33738            p_next: core::ptr::null_mut(),
33739            max_opacity2_state_subdivision_level: Default::default(),
33740            max_opacity4_state_subdivision_level: Default::default(),
33741        }
33742    }
33743}
33744///[`VkAccelerationStructureTrianglesOpacityMicromapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureTrianglesOpacityMicromapEXT.html)
33745/**
33746Provided by **VK_EXT_opacity_micromap**.*/
33747///
33748///# Extends
33749///- [`AccelerationStructureGeometryTrianglesDataKHR`]
33750///- [`AccelerationStructureDenseGeometryFormatTrianglesDataAMDX`]
33751#[repr(C)]
33752#[derive(Copy, Clone, Debug)]
33753#[doc(alias = "VkAccelerationStructureTrianglesOpacityMicromapEXT")]
33754pub struct AccelerationStructureTrianglesOpacityMicromapEXT {
33755    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT`.
33756    pub s_type: StructureType,
33757    ///Optional, may be null.
33758    pub p_next: *mut core::ffi::c_void,
33759    pub index_type: IndexType,
33760    pub index_buffer: DeviceOrHostAddressConstKHR,
33761    pub index_stride: u64,
33762    pub base_triangle: u32,
33763    ///Length of `pp_usage_counts`.
33764    pub usage_counts_count: u32,
33765    ///Optional, may be null.
33766    pub p_usage_counts: *const MicromapUsageEXT,
33767    ///Optional, may be null.
33768    pub pp_usage_counts: *const *const MicromapUsageEXT,
33769    pub micromap: MicromapEXT,
33770}
33771impl Default for AccelerationStructureTrianglesOpacityMicromapEXT {
33772    #[inline]
33773    fn default() -> Self {
33774        Self {
33775            s_type: StructureType::from_raw(1000396009i32),
33776            p_next: core::ptr::null_mut(),
33777            index_type: Default::default(),
33778            index_buffer: Default::default(),
33779            index_stride: Default::default(),
33780            base_triangle: Default::default(),
33781            usage_counts_count: Default::default(),
33782            p_usage_counts: core::ptr::null(),
33783            pp_usage_counts: core::ptr::null(),
33784            micromap: Default::default(),
33785        }
33786    }
33787}
33788///[`VkPhysicalDeviceDisplacementMicromapFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDisplacementMicromapFeaturesNV.html)
33789/**
33790Provided by **VK_NV_displacement_micromap**.*/
33791///
33792///# Extends
33793///- [`PhysicalDeviceFeatures2`]
33794///- [`DeviceCreateInfo`]
33795#[repr(C)]
33796#[derive(Copy, Clone, Debug)]
33797#[doc(alias = "VkPhysicalDeviceDisplacementMicromapFeaturesNV")]
33798pub struct PhysicalDeviceDisplacementMicromapFeaturesNV {
33799    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV`.
33800    pub s_type: StructureType,
33801    ///Optional, may be null.
33802    pub p_next: *mut core::ffi::c_void,
33803    pub displacement_micromap: u32,
33804}
33805impl Default for PhysicalDeviceDisplacementMicromapFeaturesNV {
33806    #[inline]
33807    fn default() -> Self {
33808        Self {
33809            s_type: StructureType::from_raw(1000397000i32),
33810            p_next: core::ptr::null_mut(),
33811            displacement_micromap: Default::default(),
33812        }
33813    }
33814}
33815///[`VkPhysicalDeviceDisplacementMicromapPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDisplacementMicromapPropertiesNV.html)
33816/**
33817Provided by **VK_NV_displacement_micromap**.*/
33818/**
33819**Returned only**, filled by Vulkan, not constructed by the application.*/
33820///
33821///# Extends
33822///- [`PhysicalDeviceProperties2`]
33823#[repr(C)]
33824#[derive(Copy, Clone, Debug)]
33825#[doc(alias = "VkPhysicalDeviceDisplacementMicromapPropertiesNV")]
33826pub struct PhysicalDeviceDisplacementMicromapPropertiesNV {
33827    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV`.
33828    pub s_type: StructureType,
33829    ///Optional, may be null.
33830    pub p_next: *mut core::ffi::c_void,
33831    pub max_displacement_micromap_subdivision_level: u32,
33832}
33833impl Default for PhysicalDeviceDisplacementMicromapPropertiesNV {
33834    #[inline]
33835    fn default() -> Self {
33836        Self {
33837            s_type: StructureType::from_raw(1000397001i32),
33838            p_next: core::ptr::null_mut(),
33839            max_displacement_micromap_subdivision_level: Default::default(),
33840        }
33841    }
33842}
33843///[`VkAccelerationStructureTrianglesDisplacementMicromapNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureTrianglesDisplacementMicromapNV.html)
33844/**
33845Provided by **VK_NV_displacement_micromap**.*/
33846///
33847///# Extends
33848///- [`AccelerationStructureGeometryTrianglesDataKHR`]
33849#[repr(C)]
33850#[derive(Copy, Clone, Debug)]
33851#[doc(alias = "VkAccelerationStructureTrianglesDisplacementMicromapNV")]
33852pub struct AccelerationStructureTrianglesDisplacementMicromapNV {
33853    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV`.
33854    pub s_type: StructureType,
33855    ///Optional, may be null.
33856    pub p_next: *mut core::ffi::c_void,
33857    pub displacement_bias_and_scale_format: Format,
33858    pub displacement_vector_format: Format,
33859    pub displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR,
33860    pub displacement_bias_and_scale_stride: u64,
33861    pub displacement_vector_buffer: DeviceOrHostAddressConstKHR,
33862    pub displacement_vector_stride: u64,
33863    pub displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR,
33864    pub displaced_micromap_primitive_flags_stride: u64,
33865    pub index_type: IndexType,
33866    pub index_buffer: DeviceOrHostAddressConstKHR,
33867    pub index_stride: u64,
33868    pub base_triangle: u32,
33869    ///Length of `pp_usage_counts`.
33870    pub usage_counts_count: u32,
33871    ///Optional, may be null.
33872    pub p_usage_counts: *const MicromapUsageEXT,
33873    ///Optional, may be null.
33874    pub pp_usage_counts: *const *const MicromapUsageEXT,
33875    pub micromap: MicromapEXT,
33876}
33877impl Default for AccelerationStructureTrianglesDisplacementMicromapNV {
33878    #[inline]
33879    fn default() -> Self {
33880        Self {
33881            s_type: StructureType::from_raw(1000397002i32),
33882            p_next: core::ptr::null_mut(),
33883            displacement_bias_and_scale_format: Default::default(),
33884            displacement_vector_format: Default::default(),
33885            displacement_bias_and_scale_buffer: Default::default(),
33886            displacement_bias_and_scale_stride: Default::default(),
33887            displacement_vector_buffer: Default::default(),
33888            displacement_vector_stride: Default::default(),
33889            displaced_micromap_primitive_flags: Default::default(),
33890            displaced_micromap_primitive_flags_stride: Default::default(),
33891            index_type: Default::default(),
33892            index_buffer: Default::default(),
33893            index_stride: Default::default(),
33894            base_triangle: Default::default(),
33895            usage_counts_count: Default::default(),
33896            p_usage_counts: core::ptr::null(),
33897            pp_usage_counts: core::ptr::null(),
33898            micromap: Default::default(),
33899        }
33900    }
33901}
33902///[`VkPipelinePropertiesIdentifierEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelinePropertiesIdentifierEXT.html)
33903/**
33904Provided by **VK_EXT_pipeline_properties**.*/
33905/**
33906**Returned only**, filled by Vulkan, not constructed by the application.*/
33907#[repr(C)]
33908#[derive(Copy, Clone, Debug)]
33909#[doc(alias = "VkPipelinePropertiesIdentifierEXT")]
33910pub struct PipelinePropertiesIdentifierEXT {
33911    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT`.
33912    pub s_type: StructureType,
33913    ///Optional, may be null.
33914    pub p_next: *mut core::ffi::c_void,
33915    pub pipeline_identifier: [u8; UUID_SIZE as usize],
33916}
33917impl Default for PipelinePropertiesIdentifierEXT {
33918    #[inline]
33919    fn default() -> Self {
33920        Self {
33921            s_type: StructureType::from_raw(1000372000i32),
33922            p_next: core::ptr::null_mut(),
33923            pipeline_identifier: unsafe { core::mem::zeroed() },
33924        }
33925    }
33926}
33927///[`VkPhysicalDevicePipelinePropertiesFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelinePropertiesFeaturesEXT.html)
33928/**
33929Provided by **VK_EXT_pipeline_properties**.*/
33930///
33931///# Extends
33932///- [`PhysicalDeviceFeatures2`]
33933///- [`DeviceCreateInfo`]
33934#[repr(C)]
33935#[derive(Copy, Clone, Debug)]
33936#[doc(alias = "VkPhysicalDevicePipelinePropertiesFeaturesEXT")]
33937pub struct PhysicalDevicePipelinePropertiesFeaturesEXT {
33938    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT`.
33939    pub s_type: StructureType,
33940    ///Optional, may be null.
33941    pub p_next: *mut core::ffi::c_void,
33942    pub pipeline_properties_identifier: u32,
33943}
33944impl Default for PhysicalDevicePipelinePropertiesFeaturesEXT {
33945    #[inline]
33946    fn default() -> Self {
33947        Self {
33948            s_type: StructureType::from_raw(1000372001i32),
33949            p_next: core::ptr::null_mut(),
33950            pipeline_properties_identifier: Default::default(),
33951        }
33952    }
33953}
33954///[`VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.html)
33955/**
33956Provided by **VK_AMD_shader_early_and_late_fragment_tests**.*/
33957///
33958///# Extends
33959///- [`PhysicalDeviceFeatures2`]
33960///- [`DeviceCreateInfo`]
33961#[repr(C)]
33962#[derive(Copy, Clone, Debug)]
33963#[doc(alias = "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD")]
33964pub struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
33965    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD`.
33966    pub s_type: StructureType,
33967    ///Optional, may be null.
33968    pub p_next: *mut core::ffi::c_void,
33969    pub shader_early_and_late_fragment_tests: u32,
33970}
33971impl Default for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
33972    #[inline]
33973    fn default() -> Self {
33974        Self {
33975            s_type: StructureType::from_raw(1000321000i32),
33976            p_next: core::ptr::null_mut(),
33977            shader_early_and_late_fragment_tests: Default::default(),
33978        }
33979    }
33980}
33981///[`VkExternalMemoryAcquireUnmodifiedEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryAcquireUnmodifiedEXT.html)
33982/**
33983Provided by **VK_EXT_external_memory_acquire_unmodified**.*/
33984///
33985///# Extends
33986///- [`BufferMemoryBarrier`]
33987///- [`BufferMemoryBarrier2`]
33988///- [`ImageMemoryBarrier`]
33989///- [`ImageMemoryBarrier2`]
33990#[repr(C)]
33991#[derive(Copy, Clone, Debug)]
33992#[doc(alias = "VkExternalMemoryAcquireUnmodifiedEXT")]
33993pub struct ExternalMemoryAcquireUnmodifiedEXT {
33994    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT`.
33995    pub s_type: StructureType,
33996    ///Optional, may be null.
33997    pub p_next: *const core::ffi::c_void,
33998    pub acquire_unmodified_memory: u32,
33999}
34000impl Default for ExternalMemoryAcquireUnmodifiedEXT {
34001    #[inline]
34002    fn default() -> Self {
34003        Self {
34004            s_type: StructureType::from_raw(1000453000i32),
34005            p_next: core::ptr::null(),
34006            acquire_unmodified_memory: Default::default(),
34007        }
34008    }
34009}
34010///[`VkExportMetalObjectCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalObjectCreateInfoEXT.html)
34011/**
34012Provided by **VK_EXT_metal_objects**.*/
34013///
34014///# Extends
34015///- [`InstanceCreateInfo`]
34016///- [`MemoryAllocateInfo`]
34017///- [`ImageCreateInfo`]
34018///- [`ImageViewCreateInfo`]
34019///- [`BufferViewCreateInfo`]
34020///- [`SemaphoreCreateInfo`]
34021///- [`EventCreateInfo`]
34022#[repr(C)]
34023#[derive(Copy, Clone, Debug)]
34024#[doc(alias = "VkExportMetalObjectCreateInfoEXT")]
34025pub struct ExportMetalObjectCreateInfoEXT {
34026    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT`.
34027    pub s_type: StructureType,
34028    ///Optional, may be null.
34029    pub p_next: *const core::ffi::c_void,
34030    pub export_object_type: ExportMetalObjectTypeFlagBitsEXT,
34031}
34032impl Default for ExportMetalObjectCreateInfoEXT {
34033    #[inline]
34034    fn default() -> Self {
34035        Self {
34036            s_type: StructureType::from_raw(1000311000i32),
34037            p_next: core::ptr::null(),
34038            export_object_type: Default::default(),
34039        }
34040    }
34041}
34042///[`VkExportMetalObjectsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalObjectsInfoEXT.html)
34043/**
34044Provided by **VK_EXT_metal_objects**.*/
34045///
34046///# Extended By
34047///- [`ExportMetalBufferInfoEXT`]
34048///- [`ExportMetalCommandQueueInfoEXT`]
34049///- [`ExportMetalDeviceInfoEXT`]
34050///- [`ExportMetalIOSurfaceInfoEXT`]
34051///- [`ExportMetalSharedEventInfoEXT`]
34052///- [`ExportMetalTextureInfoEXT`]
34053#[repr(C)]
34054#[derive(Copy, Clone, Debug)]
34055#[doc(alias = "VkExportMetalObjectsInfoEXT")]
34056pub struct ExportMetalObjectsInfoEXT {
34057    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT`.
34058    pub s_type: StructureType,
34059    ///Optional, may be null.
34060    pub p_next: *const core::ffi::c_void,
34061}
34062impl Default for ExportMetalObjectsInfoEXT {
34063    #[inline]
34064    fn default() -> Self {
34065        Self {
34066            s_type: StructureType::from_raw(1000311001i32),
34067            p_next: core::ptr::null(),
34068        }
34069    }
34070}
34071///[`VkExportMetalDeviceInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalDeviceInfoEXT.html)
34072/**
34073Provided by **VK_EXT_metal_objects**.*/
34074///
34075///# Extends
34076///- [`ExportMetalObjectsInfoEXT`]
34077#[repr(C)]
34078#[derive(Copy, Clone, Debug)]
34079#[doc(alias = "VkExportMetalDeviceInfoEXT")]
34080pub struct ExportMetalDeviceInfoEXT {
34081    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT`.
34082    pub s_type: StructureType,
34083    ///Optional, may be null.
34084    pub p_next: *const core::ffi::c_void,
34085    pub mtl_device: *const core::ffi::c_void,
34086}
34087impl Default for ExportMetalDeviceInfoEXT {
34088    #[inline]
34089    fn default() -> Self {
34090        Self {
34091            s_type: StructureType::from_raw(1000311002i32),
34092            p_next: core::ptr::null(),
34093            mtl_device: core::ptr::null(),
34094        }
34095    }
34096}
34097///[`VkExportMetalCommandQueueInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalCommandQueueInfoEXT.html)
34098/**
34099Provided by **VK_EXT_metal_objects**.*/
34100///
34101///# Extends
34102///- [`ExportMetalObjectsInfoEXT`]
34103#[repr(C)]
34104#[derive(Copy, Clone, Debug)]
34105#[doc(alias = "VkExportMetalCommandQueueInfoEXT")]
34106pub struct ExportMetalCommandQueueInfoEXT {
34107    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT`.
34108    pub s_type: StructureType,
34109    ///Optional, may be null.
34110    pub p_next: *const core::ffi::c_void,
34111    pub queue: Queue,
34112    pub mtl_command_queue: *const core::ffi::c_void,
34113}
34114impl Default for ExportMetalCommandQueueInfoEXT {
34115    #[inline]
34116    fn default() -> Self {
34117        Self {
34118            s_type: StructureType::from_raw(1000311003i32),
34119            p_next: core::ptr::null(),
34120            queue: Default::default(),
34121            mtl_command_queue: core::ptr::null(),
34122        }
34123    }
34124}
34125///[`VkExportMetalBufferInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalBufferInfoEXT.html)
34126/**
34127Provided by **VK_EXT_metal_objects**.*/
34128///
34129///# Extends
34130///- [`ExportMetalObjectsInfoEXT`]
34131#[repr(C)]
34132#[derive(Copy, Clone, Debug)]
34133#[doc(alias = "VkExportMetalBufferInfoEXT")]
34134pub struct ExportMetalBufferInfoEXT {
34135    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT`.
34136    pub s_type: StructureType,
34137    ///Optional, may be null.
34138    pub p_next: *const core::ffi::c_void,
34139    pub memory: DeviceMemory,
34140    pub mtl_buffer: *const core::ffi::c_void,
34141}
34142impl Default for ExportMetalBufferInfoEXT {
34143    #[inline]
34144    fn default() -> Self {
34145        Self {
34146            s_type: StructureType::from_raw(1000311004i32),
34147            p_next: core::ptr::null(),
34148            memory: Default::default(),
34149            mtl_buffer: core::ptr::null(),
34150        }
34151    }
34152}
34153///[`VkImportMetalBufferInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMetalBufferInfoEXT.html)
34154/**
34155Provided by **VK_EXT_metal_objects**.*/
34156///
34157///# Extends
34158///- [`MemoryAllocateInfo`]
34159#[repr(C)]
34160#[derive(Copy, Clone, Debug)]
34161#[doc(alias = "VkImportMetalBufferInfoEXT")]
34162pub struct ImportMetalBufferInfoEXT {
34163    ///Must be `VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT`.
34164    pub s_type: StructureType,
34165    ///Optional, may be null.
34166    pub p_next: *const core::ffi::c_void,
34167    pub mtl_buffer: *const core::ffi::c_void,
34168}
34169impl Default for ImportMetalBufferInfoEXT {
34170    #[inline]
34171    fn default() -> Self {
34172        Self {
34173            s_type: StructureType::from_raw(1000311005i32),
34174            p_next: core::ptr::null(),
34175            mtl_buffer: core::ptr::null(),
34176        }
34177    }
34178}
34179///[`VkExportMetalTextureInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalTextureInfoEXT.html)
34180/**
34181Provided by **VK_EXT_metal_objects**.*/
34182///
34183///# Extends
34184///- [`ExportMetalObjectsInfoEXT`]
34185#[repr(C)]
34186#[derive(Copy, Clone, Debug)]
34187#[doc(alias = "VkExportMetalTextureInfoEXT")]
34188pub struct ExportMetalTextureInfoEXT {
34189    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT`.
34190    pub s_type: StructureType,
34191    ///Optional, may be null.
34192    pub p_next: *const core::ffi::c_void,
34193    pub image: Image,
34194    pub image_view: ImageView,
34195    pub buffer_view: BufferView,
34196    pub plane: ImageAspectFlagBits,
34197    pub mtl_texture: *const core::ffi::c_void,
34198}
34199impl Default for ExportMetalTextureInfoEXT {
34200    #[inline]
34201    fn default() -> Self {
34202        Self {
34203            s_type: StructureType::from_raw(1000311006i32),
34204            p_next: core::ptr::null(),
34205            image: Default::default(),
34206            image_view: Default::default(),
34207            buffer_view: Default::default(),
34208            plane: Default::default(),
34209            mtl_texture: core::ptr::null(),
34210        }
34211    }
34212}
34213///[`VkImportMetalTextureInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMetalTextureInfoEXT.html)
34214/**
34215Provided by **VK_EXT_metal_objects**.*/
34216///
34217///# Extends
34218///- [`ImageCreateInfo`]
34219#[repr(C)]
34220#[derive(Copy, Clone, Debug)]
34221#[doc(alias = "VkImportMetalTextureInfoEXT")]
34222pub struct ImportMetalTextureInfoEXT {
34223    ///Must be `VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT`.
34224    pub s_type: StructureType,
34225    ///Optional, may be null.
34226    pub p_next: *const core::ffi::c_void,
34227    pub plane: ImageAspectFlagBits,
34228    pub mtl_texture: *const core::ffi::c_void,
34229}
34230impl Default for ImportMetalTextureInfoEXT {
34231    #[inline]
34232    fn default() -> Self {
34233        Self {
34234            s_type: StructureType::from_raw(1000311007i32),
34235            p_next: core::ptr::null(),
34236            plane: Default::default(),
34237            mtl_texture: core::ptr::null(),
34238        }
34239    }
34240}
34241///[`VkExportMetalIOSurfaceInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalIOSurfaceInfoEXT.html)
34242/**
34243Provided by **VK_EXT_metal_objects**.*/
34244///
34245///# Extends
34246///- [`ExportMetalObjectsInfoEXT`]
34247#[repr(C)]
34248#[derive(Copy, Clone, Debug)]
34249#[doc(alias = "VkExportMetalIOSurfaceInfoEXT")]
34250pub struct ExportMetalIOSurfaceInfoEXT {
34251    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT`.
34252    pub s_type: StructureType,
34253    ///Optional, may be null.
34254    pub p_next: *const core::ffi::c_void,
34255    pub image: Image,
34256    pub io_surface: *const core::ffi::c_void,
34257}
34258impl Default for ExportMetalIOSurfaceInfoEXT {
34259    #[inline]
34260    fn default() -> Self {
34261        Self {
34262            s_type: StructureType::from_raw(1000311008i32),
34263            p_next: core::ptr::null(),
34264            image: Default::default(),
34265            io_surface: core::ptr::null(),
34266        }
34267    }
34268}
34269///[`VkImportMetalIOSurfaceInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMetalIOSurfaceInfoEXT.html)
34270/**
34271Provided by **VK_EXT_metal_objects**.*/
34272///
34273///# Extends
34274///- [`ImageCreateInfo`]
34275#[repr(C)]
34276#[derive(Copy, Clone, Debug)]
34277#[doc(alias = "VkImportMetalIOSurfaceInfoEXT")]
34278pub struct ImportMetalIOSurfaceInfoEXT {
34279    ///Must be `VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT`.
34280    pub s_type: StructureType,
34281    ///Optional, may be null.
34282    pub p_next: *const core::ffi::c_void,
34283    pub io_surface: *const core::ffi::c_void,
34284}
34285impl Default for ImportMetalIOSurfaceInfoEXT {
34286    #[inline]
34287    fn default() -> Self {
34288        Self {
34289            s_type: StructureType::from_raw(1000311009i32),
34290            p_next: core::ptr::null(),
34291            io_surface: core::ptr::null(),
34292        }
34293    }
34294}
34295///[`VkExportMetalSharedEventInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalSharedEventInfoEXT.html)
34296/**
34297Provided by **VK_EXT_metal_objects**.*/
34298///
34299///# Extends
34300///- [`ExportMetalObjectsInfoEXT`]
34301#[repr(C)]
34302#[derive(Copy, Clone, Debug)]
34303#[doc(alias = "VkExportMetalSharedEventInfoEXT")]
34304pub struct ExportMetalSharedEventInfoEXT {
34305    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT`.
34306    pub s_type: StructureType,
34307    ///Optional, may be null.
34308    pub p_next: *const core::ffi::c_void,
34309    pub semaphore: Semaphore,
34310    pub event: Event,
34311    pub mtl_shared_event: *const core::ffi::c_void,
34312}
34313impl Default for ExportMetalSharedEventInfoEXT {
34314    #[inline]
34315    fn default() -> Self {
34316        Self {
34317            s_type: StructureType::from_raw(1000311010i32),
34318            p_next: core::ptr::null(),
34319            semaphore: Default::default(),
34320            event: Default::default(),
34321            mtl_shared_event: core::ptr::null(),
34322        }
34323    }
34324}
34325///[`VkImportMetalSharedEventInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMetalSharedEventInfoEXT.html)
34326/**
34327Provided by **VK_EXT_metal_objects**.*/
34328///
34329///# Extends
34330///- [`SemaphoreCreateInfo`]
34331///- [`EventCreateInfo`]
34332#[repr(C)]
34333#[derive(Copy, Clone, Debug)]
34334#[doc(alias = "VkImportMetalSharedEventInfoEXT")]
34335pub struct ImportMetalSharedEventInfoEXT {
34336    ///Must be `VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT`.
34337    pub s_type: StructureType,
34338    ///Optional, may be null.
34339    pub p_next: *const core::ffi::c_void,
34340    pub mtl_shared_event: *const core::ffi::c_void,
34341}
34342impl Default for ImportMetalSharedEventInfoEXT {
34343    #[inline]
34344    fn default() -> Self {
34345        Self {
34346            s_type: StructureType::from_raw(1000311011i32),
34347            p_next: core::ptr::null(),
34348            mtl_shared_event: core::ptr::null(),
34349        }
34350    }
34351}
34352///[`VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT.html)
34353/**
34354Provided by **VK_EXT_non_seamless_cube_map**.*/
34355///
34356///# Extends
34357///- [`PhysicalDeviceFeatures2`]
34358///- [`DeviceCreateInfo`]
34359#[repr(C)]
34360#[derive(Copy, Clone, Debug)]
34361#[doc(alias = "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT")]
34362pub struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
34363    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT`.
34364    pub s_type: StructureType,
34365    ///Optional, may be null.
34366    pub p_next: *mut core::ffi::c_void,
34367    pub non_seamless_cube_map: u32,
34368}
34369impl Default for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
34370    #[inline]
34371    fn default() -> Self {
34372        Self {
34373            s_type: StructureType::from_raw(1000422000i32),
34374            p_next: core::ptr::null_mut(),
34375            non_seamless_cube_map: Default::default(),
34376        }
34377    }
34378}
34379///[`VkPhysicalDevicePipelineRobustnessFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineRobustnessFeatures.html)
34380/**
34381Provided by **VK_COMPUTE_VERSION_1_4**.*/
34382///
34383///# Extends
34384///- [`PhysicalDeviceFeatures2`]
34385///- [`DeviceCreateInfo`]
34386#[repr(C)]
34387#[derive(Copy, Clone, Debug)]
34388#[doc(alias = "VkPhysicalDevicePipelineRobustnessFeatures")]
34389pub struct PhysicalDevicePipelineRobustnessFeatures {
34390    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES`.
34391    pub s_type: StructureType,
34392    ///Optional, may be null.
34393    pub p_next: *mut core::ffi::c_void,
34394    pub pipeline_robustness: u32,
34395}
34396impl Default for PhysicalDevicePipelineRobustnessFeatures {
34397    #[inline]
34398    fn default() -> Self {
34399        Self {
34400            s_type: StructureType::from_raw(1000068001i32),
34401            p_next: core::ptr::null_mut(),
34402            pipeline_robustness: Default::default(),
34403        }
34404    }
34405}
34406///[`VkPipelineRobustnessCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRobustnessCreateInfo.html)
34407/**
34408Provided by **VK_COMPUTE_VERSION_1_4**.*/
34409///
34410///# Extends
34411///- [`GraphicsPipelineCreateInfo`]
34412///- [`ComputePipelineCreateInfo`]
34413///- [`PipelineShaderStageCreateInfo`]
34414///- [`RayTracingPipelineCreateInfoKHR`]
34415#[repr(C)]
34416#[derive(Copy, Clone, Debug)]
34417#[doc(alias = "VkPipelineRobustnessCreateInfo")]
34418pub struct PipelineRobustnessCreateInfo {
34419    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO`.
34420    pub s_type: StructureType,
34421    ///Optional, may be null.
34422    pub p_next: *const core::ffi::c_void,
34423    pub storage_buffers: PipelineRobustnessBufferBehavior,
34424    pub uniform_buffers: PipelineRobustnessBufferBehavior,
34425    pub vertex_inputs: PipelineRobustnessBufferBehavior,
34426    pub images: PipelineRobustnessImageBehavior,
34427}
34428impl Default for PipelineRobustnessCreateInfo {
34429    #[inline]
34430    fn default() -> Self {
34431        Self {
34432            s_type: StructureType::from_raw(1000068000i32),
34433            p_next: core::ptr::null(),
34434            storage_buffers: Default::default(),
34435            uniform_buffers: Default::default(),
34436            vertex_inputs: Default::default(),
34437            images: Default::default(),
34438        }
34439    }
34440}
34441///[`VkPhysicalDevicePipelineRobustnessProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineRobustnessProperties.html)
34442/**
34443Provided by **VK_COMPUTE_VERSION_1_4**.*/
34444/**
34445**Returned only**, filled by Vulkan, not constructed by the application.*/
34446///
34447///# Extends
34448///- [`PhysicalDeviceProperties2`]
34449#[repr(C)]
34450#[derive(Copy, Clone, Debug)]
34451#[doc(alias = "VkPhysicalDevicePipelineRobustnessProperties")]
34452pub struct PhysicalDevicePipelineRobustnessProperties {
34453    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES`.
34454    pub s_type: StructureType,
34455    ///Optional, may be null.
34456    pub p_next: *mut core::ffi::c_void,
34457    pub default_robustness_storage_buffers: PipelineRobustnessBufferBehavior,
34458    pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior,
34459    pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior,
34460    pub default_robustness_images: PipelineRobustnessImageBehavior,
34461}
34462impl Default for PhysicalDevicePipelineRobustnessProperties {
34463    #[inline]
34464    fn default() -> Self {
34465        Self {
34466            s_type: StructureType::from_raw(1000068002i32),
34467            p_next: core::ptr::null_mut(),
34468            default_robustness_storage_buffers: Default::default(),
34469            default_robustness_uniform_buffers: Default::default(),
34470            default_robustness_vertex_inputs: Default::default(),
34471            default_robustness_images: Default::default(),
34472        }
34473    }
34474}
34475///[`VkImageViewSampleWeightCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewSampleWeightCreateInfoQCOM.html)
34476/**
34477Provided by **VK_QCOM_image_processing**.*/
34478///
34479///# Extends
34480///- [`ImageViewCreateInfo`]
34481#[repr(C)]
34482#[derive(Copy, Clone, Debug)]
34483#[doc(alias = "VkImageViewSampleWeightCreateInfoQCOM")]
34484pub struct ImageViewSampleWeightCreateInfoQCOM {
34485    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM`.
34486    pub s_type: StructureType,
34487    ///Optional, may be null.
34488    pub p_next: *const core::ffi::c_void,
34489    pub filter_center: Offset2D,
34490    pub filter_size: Extent2D,
34491    pub num_phases: u32,
34492}
34493impl Default for ImageViewSampleWeightCreateInfoQCOM {
34494    #[inline]
34495    fn default() -> Self {
34496        Self {
34497            s_type: StructureType::from_raw(1000440002i32),
34498            p_next: core::ptr::null(),
34499            filter_center: Default::default(),
34500            filter_size: Default::default(),
34501            num_phases: Default::default(),
34502        }
34503    }
34504}
34505///[`VkPhysicalDeviceImageProcessingFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageProcessingFeaturesQCOM.html)
34506/**
34507Provided by **VK_QCOM_image_processing**.*/
34508///
34509///# Extends
34510///- [`PhysicalDeviceFeatures2`]
34511///- [`DeviceCreateInfo`]
34512#[repr(C)]
34513#[derive(Copy, Clone, Debug)]
34514#[doc(alias = "VkPhysicalDeviceImageProcessingFeaturesQCOM")]
34515pub struct PhysicalDeviceImageProcessingFeaturesQCOM {
34516    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM`.
34517    pub s_type: StructureType,
34518    ///Optional, may be null.
34519    pub p_next: *mut core::ffi::c_void,
34520    pub texture_sample_weighted: u32,
34521    pub texture_box_filter: u32,
34522    pub texture_block_match: u32,
34523}
34524impl Default for PhysicalDeviceImageProcessingFeaturesQCOM {
34525    #[inline]
34526    fn default() -> Self {
34527        Self {
34528            s_type: StructureType::from_raw(1000440000i32),
34529            p_next: core::ptr::null_mut(),
34530            texture_sample_weighted: Default::default(),
34531            texture_box_filter: Default::default(),
34532            texture_block_match: Default::default(),
34533        }
34534    }
34535}
34536///[`VkPhysicalDeviceImageProcessingPropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageProcessingPropertiesQCOM.html)
34537/**
34538Provided by **VK_QCOM_image_processing**.*/
34539/**
34540**Returned only**, filled by Vulkan, not constructed by the application.*/
34541///
34542///# Extends
34543///- [`PhysicalDeviceProperties2`]
34544#[repr(C)]
34545#[derive(Copy, Clone, Debug)]
34546#[doc(alias = "VkPhysicalDeviceImageProcessingPropertiesQCOM")]
34547pub struct PhysicalDeviceImageProcessingPropertiesQCOM {
34548    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM`.
34549    pub s_type: StructureType,
34550    ///Optional, may be null.
34551    pub p_next: *mut core::ffi::c_void,
34552    pub max_weight_filter_phases: u32,
34553    pub max_weight_filter_dimension: Extent2D,
34554    pub max_block_match_region: Extent2D,
34555    pub max_box_filter_block_size: Extent2D,
34556}
34557impl Default for PhysicalDeviceImageProcessingPropertiesQCOM {
34558    #[inline]
34559    fn default() -> Self {
34560        Self {
34561            s_type: StructureType::from_raw(1000440001i32),
34562            p_next: core::ptr::null_mut(),
34563            max_weight_filter_phases: Default::default(),
34564            max_weight_filter_dimension: Default::default(),
34565            max_block_match_region: Default::default(),
34566            max_box_filter_block_size: Default::default(),
34567        }
34568    }
34569}
34570///[`VkPhysicalDeviceTilePropertiesFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTilePropertiesFeaturesQCOM.html)
34571/**
34572Provided by **VK_QCOM_tile_properties**.*/
34573///
34574///# Extends
34575///- [`PhysicalDeviceFeatures2`]
34576///- [`DeviceCreateInfo`]
34577#[repr(C)]
34578#[derive(Copy, Clone, Debug)]
34579#[doc(alias = "VkPhysicalDeviceTilePropertiesFeaturesQCOM")]
34580pub struct PhysicalDeviceTilePropertiesFeaturesQCOM {
34581    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM`.
34582    pub s_type: StructureType,
34583    ///Optional, may be null.
34584    pub p_next: *mut core::ffi::c_void,
34585    pub tile_properties: u32,
34586}
34587impl Default for PhysicalDeviceTilePropertiesFeaturesQCOM {
34588    #[inline]
34589    fn default() -> Self {
34590        Self {
34591            s_type: StructureType::from_raw(1000484000i32),
34592            p_next: core::ptr::null_mut(),
34593            tile_properties: Default::default(),
34594        }
34595    }
34596}
34597///[`VkTilePropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTilePropertiesQCOM.html)
34598/**
34599Provided by **VK_QCOM_tile_properties**.*/
34600#[repr(C)]
34601#[derive(Copy, Clone, Debug)]
34602#[doc(alias = "VkTilePropertiesQCOM")]
34603pub struct TilePropertiesQCOM {
34604    ///Must be `VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM`.
34605    pub s_type: StructureType,
34606    ///Optional, may be null.
34607    pub p_next: *mut core::ffi::c_void,
34608    pub tile_size: Extent3D,
34609    pub apron_size: Extent2D,
34610    pub origin: Offset2D,
34611}
34612impl Default for TilePropertiesQCOM {
34613    #[inline]
34614    fn default() -> Self {
34615        Self {
34616            s_type: StructureType::from_raw(1000484001i32),
34617            p_next: core::ptr::null_mut(),
34618            tile_size: Default::default(),
34619            apron_size: Default::default(),
34620            origin: Default::default(),
34621        }
34622    }
34623}
34624///[`VkTileMemoryBindInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTileMemoryBindInfoQCOM.html)
34625/**
34626Provided by **VK_QCOM_tile_memory_heap**.*/
34627///
34628///# Extends
34629///- [`CommandBufferInheritanceInfo`]
34630#[repr(C)]
34631#[derive(Copy, Clone, Debug)]
34632#[doc(alias = "VkTileMemoryBindInfoQCOM")]
34633pub struct TileMemoryBindInfoQCOM {
34634    ///Must be `VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM`.
34635    pub s_type: StructureType,
34636    ///Optional, may be null.
34637    pub p_next: *const core::ffi::c_void,
34638    pub memory: DeviceMemory,
34639}
34640impl Default for TileMemoryBindInfoQCOM {
34641    #[inline]
34642    fn default() -> Self {
34643        Self {
34644            s_type: StructureType::from_raw(1000547003i32),
34645            p_next: core::ptr::null(),
34646            memory: Default::default(),
34647        }
34648    }
34649}
34650///[`VkPhysicalDeviceAmigoProfilingFeaturesSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAmigoProfilingFeaturesSEC.html)
34651/**
34652Provided by **VK_SEC_amigo_profiling**.*/
34653///
34654///# Extends
34655///- [`PhysicalDeviceFeatures2`]
34656///- [`DeviceCreateInfo`]
34657#[repr(C)]
34658#[derive(Copy, Clone, Debug)]
34659#[doc(alias = "VkPhysicalDeviceAmigoProfilingFeaturesSEC")]
34660pub struct PhysicalDeviceAmigoProfilingFeaturesSEC {
34661    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC`.
34662    pub s_type: StructureType,
34663    ///Optional, may be null.
34664    pub p_next: *mut core::ffi::c_void,
34665    pub amigo_profiling: u32,
34666}
34667impl Default for PhysicalDeviceAmigoProfilingFeaturesSEC {
34668    #[inline]
34669    fn default() -> Self {
34670        Self {
34671            s_type: StructureType::from_raw(1000485000i32),
34672            p_next: core::ptr::null_mut(),
34673            amigo_profiling: Default::default(),
34674        }
34675    }
34676}
34677///[`VkAmigoProfilingSubmitInfoSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAmigoProfilingSubmitInfoSEC.html)
34678/**
34679Provided by **VK_SEC_amigo_profiling**.*/
34680///
34681///# Extends
34682///- [`SubmitInfo`]
34683#[repr(C)]
34684#[derive(Copy, Clone, Debug)]
34685#[doc(alias = "VkAmigoProfilingSubmitInfoSEC")]
34686pub struct AmigoProfilingSubmitInfoSEC {
34687    ///Must be `VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC`.
34688    pub s_type: StructureType,
34689    ///Optional, may be null.
34690    pub p_next: *const core::ffi::c_void,
34691    pub first_draw_timestamp: u64,
34692    pub swap_buffer_timestamp: u64,
34693}
34694impl Default for AmigoProfilingSubmitInfoSEC {
34695    #[inline]
34696    fn default() -> Self {
34697        Self {
34698            s_type: StructureType::from_raw(1000485001i32),
34699            p_next: core::ptr::null(),
34700            first_draw_timestamp: Default::default(),
34701            swap_buffer_timestamp: Default::default(),
34702        }
34703    }
34704}
34705///[`VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.html)
34706/**
34707Provided by **VK_EXT_attachment_feedback_loop_layout**.*/
34708///
34709///# Extends
34710///- [`PhysicalDeviceFeatures2`]
34711///- [`DeviceCreateInfo`]
34712#[repr(C)]
34713#[derive(Copy, Clone, Debug)]
34714#[doc(alias = "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT")]
34715pub struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
34716    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT`.
34717    pub s_type: StructureType,
34718    ///Optional, may be null.
34719    pub p_next: *mut core::ffi::c_void,
34720    pub attachment_feedback_loop_layout: u32,
34721}
34722impl Default for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
34723    #[inline]
34724    fn default() -> Self {
34725        Self {
34726            s_type: StructureType::from_raw(1000339000i32),
34727            p_next: core::ptr::null_mut(),
34728            attachment_feedback_loop_layout: Default::default(),
34729        }
34730    }
34731}
34732///[`VkAttachmentFeedbackLoopInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentFeedbackLoopInfoEXT.html)
34733/**
34734Provided by **VK_KHR_unified_image_layouts**.*/
34735///
34736///# Extends
34737///- [`RenderingAttachmentInfo`]
34738#[repr(C)]
34739#[derive(Copy, Clone, Debug)]
34740#[doc(alias = "VkAttachmentFeedbackLoopInfoEXT")]
34741pub struct AttachmentFeedbackLoopInfoEXT {
34742    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT`.
34743    pub s_type: StructureType,
34744    ///Optional, may be null.
34745    pub p_next: *const core::ffi::c_void,
34746    pub feedback_loop_enable: u32,
34747}
34748impl Default for AttachmentFeedbackLoopInfoEXT {
34749    #[inline]
34750    fn default() -> Self {
34751        Self {
34752            s_type: StructureType::from_raw(1000527001i32),
34753            p_next: core::ptr::null(),
34754            feedback_loop_enable: Default::default(),
34755        }
34756    }
34757}
34758///[`VkPhysicalDeviceAddressBindingReportFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAddressBindingReportFeaturesEXT.html)
34759/**
34760Provided by **VK_EXT_device_address_binding_report**.*/
34761///
34762///# Extends
34763///- [`PhysicalDeviceFeatures2`]
34764///- [`DeviceCreateInfo`]
34765#[repr(C)]
34766#[derive(Copy, Clone, Debug)]
34767#[doc(alias = "VkPhysicalDeviceAddressBindingReportFeaturesEXT")]
34768pub struct PhysicalDeviceAddressBindingReportFeaturesEXT {
34769    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT`.
34770    pub s_type: StructureType,
34771    ///Optional, may be null.
34772    pub p_next: *mut core::ffi::c_void,
34773    pub report_address_binding: u32,
34774}
34775impl Default for PhysicalDeviceAddressBindingReportFeaturesEXT {
34776    #[inline]
34777    fn default() -> Self {
34778        Self {
34779            s_type: StructureType::from_raw(1000354000i32),
34780            p_next: core::ptr::null_mut(),
34781            report_address_binding: Default::default(),
34782        }
34783    }
34784}
34785///[`VkRenderingAttachmentFlagsInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingAttachmentFlagsInfoKHR.html)
34786/**
34787Provided by **VK_KHR_maintenance10**.*/
34788///
34789///# Extends
34790///- [`RenderingAttachmentInfo`]
34791#[repr(C)]
34792#[derive(Copy, Clone, Debug)]
34793#[doc(alias = "VkRenderingAttachmentFlagsInfoKHR")]
34794pub struct RenderingAttachmentFlagsInfoKHR {
34795    ///Must be `VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR`.
34796    pub s_type: StructureType,
34797    ///Optional, may be null.
34798    pub p_next: *const core::ffi::c_void,
34799    pub flags: RenderingAttachmentFlagsKHR,
34800}
34801impl Default for RenderingAttachmentFlagsInfoKHR {
34802    #[inline]
34803    fn default() -> Self {
34804        Self {
34805            s_type: StructureType::from_raw(1000630002i32),
34806            p_next: core::ptr::null(),
34807            flags: Default::default(),
34808        }
34809    }
34810}
34811///[`VkResolveImageModeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkResolveImageModeInfoKHR.html)
34812/**
34813Provided by **VK_KHR_maintenance10**.*/
34814///
34815///# Extends
34816///- [`ResolveImageInfo2`]
34817#[repr(C)]
34818#[derive(Copy, Clone, Debug)]
34819#[doc(alias = "VkResolveImageModeInfoKHR")]
34820pub struct ResolveImageModeInfoKHR {
34821    ///Must be `VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR`.
34822    pub s_type: StructureType,
34823    ///Optional, may be null.
34824    pub p_next: *const core::ffi::c_void,
34825    pub flags: ResolveImageFlagsKHR,
34826    pub resolve_mode: ResolveModeFlagBits,
34827    pub stencil_resolve_mode: ResolveModeFlagBits,
34828}
34829impl Default for ResolveImageModeInfoKHR {
34830    #[inline]
34831    fn default() -> Self {
34832        Self {
34833            s_type: StructureType::from_raw(1000630004i32),
34834            p_next: core::ptr::null(),
34835            flags: Default::default(),
34836            resolve_mode: Default::default(),
34837            stencil_resolve_mode: Default::default(),
34838        }
34839    }
34840}
34841///[`VkDeviceAddressBindingCallbackDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceAddressBindingCallbackDataEXT.html)
34842/**
34843Provided by **VK_EXT_device_address_binding_report**.*/
34844///
34845///# Extends
34846///- [`DebugUtilsMessengerCallbackDataEXT`]
34847#[repr(C)]
34848#[derive(Copy, Clone, Debug)]
34849#[doc(alias = "VkDeviceAddressBindingCallbackDataEXT")]
34850pub struct DeviceAddressBindingCallbackDataEXT {
34851    ///Must be `VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT`.
34852    pub s_type: StructureType,
34853    ///Optional, may be null.
34854    pub p_next: *mut core::ffi::c_void,
34855    pub flags: DeviceAddressBindingFlagsEXT,
34856    pub base_address: u64,
34857    pub size: u64,
34858    pub binding_type: DeviceAddressBindingTypeEXT,
34859}
34860impl Default for DeviceAddressBindingCallbackDataEXT {
34861    #[inline]
34862    fn default() -> Self {
34863        Self {
34864            s_type: StructureType::from_raw(1000354001i32),
34865            p_next: core::ptr::null_mut(),
34866            flags: Default::default(),
34867            base_address: Default::default(),
34868            size: Default::default(),
34869            binding_type: Default::default(),
34870        }
34871    }
34872}
34873///[`VkPhysicalDeviceOpticalFlowFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceOpticalFlowFeaturesNV.html)
34874/**
34875Provided by **VK_NV_optical_flow**.*/
34876///
34877///# Extends
34878///- [`PhysicalDeviceFeatures2`]
34879///- [`DeviceCreateInfo`]
34880#[repr(C)]
34881#[derive(Copy, Clone, Debug)]
34882#[doc(alias = "VkPhysicalDeviceOpticalFlowFeaturesNV")]
34883pub struct PhysicalDeviceOpticalFlowFeaturesNV {
34884    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV`.
34885    pub s_type: StructureType,
34886    ///Optional, may be null.
34887    pub p_next: *mut core::ffi::c_void,
34888    pub optical_flow: u32,
34889}
34890impl Default for PhysicalDeviceOpticalFlowFeaturesNV {
34891    #[inline]
34892    fn default() -> Self {
34893        Self {
34894            s_type: StructureType::from_raw(1000464000i32),
34895            p_next: core::ptr::null_mut(),
34896            optical_flow: Default::default(),
34897        }
34898    }
34899}
34900///[`VkPhysicalDeviceOpticalFlowPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceOpticalFlowPropertiesNV.html)
34901/**
34902Provided by **VK_NV_optical_flow**.*/
34903/**
34904**Returned only**, filled by Vulkan, not constructed by the application.*/
34905///
34906///# Extends
34907///- [`PhysicalDeviceProperties2`]
34908#[repr(C)]
34909#[derive(Copy, Clone, Debug)]
34910#[doc(alias = "VkPhysicalDeviceOpticalFlowPropertiesNV")]
34911pub struct PhysicalDeviceOpticalFlowPropertiesNV {
34912    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV`.
34913    pub s_type: StructureType,
34914    ///Optional, may be null.
34915    pub p_next: *mut core::ffi::c_void,
34916    pub supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV,
34917    pub supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV,
34918    pub hint_supported: u32,
34919    pub cost_supported: u32,
34920    pub bidirectional_flow_supported: u32,
34921    pub global_flow_supported: u32,
34922    pub min_width: u32,
34923    pub min_height: u32,
34924    pub max_width: u32,
34925    pub max_height: u32,
34926    pub max_num_regions_of_interest: u32,
34927}
34928impl Default for PhysicalDeviceOpticalFlowPropertiesNV {
34929    #[inline]
34930    fn default() -> Self {
34931        Self {
34932            s_type: StructureType::from_raw(1000464001i32),
34933            p_next: core::ptr::null_mut(),
34934            supported_output_grid_sizes: Default::default(),
34935            supported_hint_grid_sizes: Default::default(),
34936            hint_supported: Default::default(),
34937            cost_supported: Default::default(),
34938            bidirectional_flow_supported: Default::default(),
34939            global_flow_supported: Default::default(),
34940            min_width: Default::default(),
34941            min_height: Default::default(),
34942            max_width: Default::default(),
34943            max_height: Default::default(),
34944            max_num_regions_of_interest: Default::default(),
34945        }
34946    }
34947}
34948///[`VkOpticalFlowImageFormatInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowImageFormatInfoNV.html)
34949/**
34950Provided by **VK_NV_optical_flow**.*/
34951///
34952///# Extends
34953///- [`PhysicalDeviceImageFormatInfo2`]
34954///- [`ImageCreateInfo`]
34955#[repr(C)]
34956#[derive(Copy, Clone, Debug)]
34957#[doc(alias = "VkOpticalFlowImageFormatInfoNV")]
34958pub struct OpticalFlowImageFormatInfoNV {
34959    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV`.
34960    pub s_type: StructureType,
34961    ///Optional, may be null.
34962    pub p_next: *const core::ffi::c_void,
34963    pub usage: OpticalFlowUsageFlagsNV,
34964}
34965impl Default for OpticalFlowImageFormatInfoNV {
34966    #[inline]
34967    fn default() -> Self {
34968        Self {
34969            s_type: StructureType::from_raw(1000464002i32),
34970            p_next: core::ptr::null(),
34971            usage: Default::default(),
34972        }
34973    }
34974}
34975///[`VkOpticalFlowImageFormatPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowImageFormatPropertiesNV.html)
34976/**
34977Provided by **VK_NV_optical_flow**.*/
34978/**
34979**Returned only**, filled by Vulkan, not constructed by the application.*/
34980#[repr(C)]
34981#[derive(Copy, Clone, Debug)]
34982#[doc(alias = "VkOpticalFlowImageFormatPropertiesNV")]
34983pub struct OpticalFlowImageFormatPropertiesNV {
34984    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV`.
34985    pub s_type: StructureType,
34986    ///Optional, may be null.
34987    pub p_next: *mut core::ffi::c_void,
34988    pub format: Format,
34989}
34990impl Default for OpticalFlowImageFormatPropertiesNV {
34991    #[inline]
34992    fn default() -> Self {
34993        Self {
34994            s_type: StructureType::from_raw(1000464003i32),
34995            p_next: core::ptr::null_mut(),
34996            format: Default::default(),
34997        }
34998    }
34999}
35000///[`VkOpticalFlowSessionCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowSessionCreateInfoNV.html)
35001/**
35002Provided by **VK_NV_optical_flow**.*/
35003///
35004///# Extended By
35005///- [`OpticalFlowSessionCreatePrivateDataInfoNV`]
35006#[repr(C)]
35007#[derive(Copy, Clone, Debug)]
35008#[doc(alias = "VkOpticalFlowSessionCreateInfoNV")]
35009pub struct OpticalFlowSessionCreateInfoNV {
35010    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV`.
35011    pub s_type: StructureType,
35012    ///Optional, may be null.
35013    pub p_next: *mut core::ffi::c_void,
35014    pub width: u32,
35015    pub height: u32,
35016    pub image_format: Format,
35017    pub flow_vector_format: Format,
35018    pub cost_format: Format,
35019    pub output_grid_size: OpticalFlowGridSizeFlagsNV,
35020    pub hint_grid_size: OpticalFlowGridSizeFlagsNV,
35021    pub performance_level: OpticalFlowPerformanceLevelNV,
35022    pub flags: OpticalFlowSessionCreateFlagsNV,
35023}
35024impl Default for OpticalFlowSessionCreateInfoNV {
35025    #[inline]
35026    fn default() -> Self {
35027        Self {
35028            s_type: StructureType::from_raw(1000464004i32),
35029            p_next: core::ptr::null_mut(),
35030            width: Default::default(),
35031            height: Default::default(),
35032            image_format: Default::default(),
35033            flow_vector_format: Default::default(),
35034            cost_format: Default::default(),
35035            output_grid_size: Default::default(),
35036            hint_grid_size: Default::default(),
35037            performance_level: Default::default(),
35038            flags: Default::default(),
35039        }
35040    }
35041}
35042///[`VkOpticalFlowSessionCreatePrivateDataInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowSessionCreatePrivateDataInfoNV.html)
35043/**
35044Provided by **VK_NV_optical_flow**.*/
35045///
35046///# Extends
35047///- [`OpticalFlowSessionCreateInfoNV`]
35048#[repr(C)]
35049#[derive(Copy, Clone, Debug)]
35050#[doc(alias = "VkOpticalFlowSessionCreatePrivateDataInfoNV")]
35051pub struct OpticalFlowSessionCreatePrivateDataInfoNV {
35052    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV`.
35053    pub s_type: StructureType,
35054    ///Optional, may be null.
35055    pub p_next: *mut core::ffi::c_void,
35056    pub id: u32,
35057    pub size: u32,
35058    pub p_private_data: *const core::ffi::c_void,
35059}
35060impl Default for OpticalFlowSessionCreatePrivateDataInfoNV {
35061    #[inline]
35062    fn default() -> Self {
35063        Self {
35064            s_type: StructureType::from_raw(1000464010i32),
35065            p_next: core::ptr::null_mut(),
35066            id: Default::default(),
35067            size: Default::default(),
35068            p_private_data: core::ptr::null(),
35069        }
35070    }
35071}
35072///[`VkOpticalFlowExecuteInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowExecuteInfoNV.html)
35073/**
35074Provided by **VK_NV_optical_flow**.*/
35075#[repr(C)]
35076#[derive(Copy, Clone, Debug)]
35077#[doc(alias = "VkOpticalFlowExecuteInfoNV")]
35078pub struct OpticalFlowExecuteInfoNV {
35079    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV`.
35080    pub s_type: StructureType,
35081    ///Optional, may be null.
35082    pub p_next: *mut core::ffi::c_void,
35083    pub flags: OpticalFlowExecuteFlagsNV,
35084    ///Length of `p_regions`.
35085    pub region_count: u32,
35086    pub p_regions: *const Rect2D,
35087}
35088impl Default for OpticalFlowExecuteInfoNV {
35089    #[inline]
35090    fn default() -> Self {
35091        Self {
35092            s_type: StructureType::from_raw(1000464005i32),
35093            p_next: core::ptr::null_mut(),
35094            flags: Default::default(),
35095            region_count: Default::default(),
35096            p_regions: core::ptr::null(),
35097        }
35098    }
35099}
35100///[`VkPhysicalDeviceFaultFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFaultFeaturesEXT.html)
35101/**
35102Provided by **VK_EXT_device_fault**.*/
35103///
35104///# Extends
35105///- [`PhysicalDeviceFeatures2`]
35106///- [`DeviceCreateInfo`]
35107#[repr(C)]
35108#[derive(Copy, Clone, Debug)]
35109#[doc(alias = "VkPhysicalDeviceFaultFeaturesEXT")]
35110pub struct PhysicalDeviceFaultFeaturesEXT {
35111    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT`.
35112    pub s_type: StructureType,
35113    ///Optional, may be null.
35114    pub p_next: *mut core::ffi::c_void,
35115    pub device_fault: u32,
35116    pub device_fault_vendor_binary: u32,
35117}
35118impl Default for PhysicalDeviceFaultFeaturesEXT {
35119    #[inline]
35120    fn default() -> Self {
35121        Self {
35122            s_type: StructureType::from_raw(1000341000i32),
35123            p_next: core::ptr::null_mut(),
35124            device_fault: Default::default(),
35125            device_fault_vendor_binary: Default::default(),
35126        }
35127    }
35128}
35129///[`VkDeviceFaultAddressInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultAddressInfoKHR.html)
35130/**
35131Provided by **VK_KHR_device_fault**.*/
35132/**
35133**Returned only**, filled by Vulkan, not constructed by the application.*/
35134#[repr(C)]
35135#[derive(Copy, Clone, Debug)]
35136#[doc(alias = "VkDeviceFaultAddressInfoKHR")]
35137pub struct DeviceFaultAddressInfoKHR {
35138    pub address_type: DeviceFaultAddressTypeKHR,
35139    pub reported_address: u64,
35140    pub address_precision: u64,
35141}
35142impl Default for DeviceFaultAddressInfoKHR {
35143    #[inline]
35144    fn default() -> Self {
35145        unsafe { core::mem::zeroed() }
35146    }
35147}
35148///[`VkDeviceFaultVendorInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultVendorInfoKHR.html)
35149/**
35150Provided by **VK_KHR_device_fault**.*/
35151/**
35152**Returned only**, filled by Vulkan, not constructed by the application.*/
35153#[repr(C)]
35154#[derive(Copy, Clone, Debug)]
35155#[doc(alias = "VkDeviceFaultVendorInfoKHR")]
35156pub struct DeviceFaultVendorInfoKHR {
35157    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
35158    pub vendor_fault_code: u64,
35159    pub vendor_fault_data: u64,
35160}
35161impl Default for DeviceFaultVendorInfoKHR {
35162    #[inline]
35163    fn default() -> Self {
35164        unsafe { core::mem::zeroed() }
35165    }
35166}
35167///[`VkDeviceFaultInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultInfoKHR.html)
35168/**
35169Provided by **VK_KHR_device_fault**.*/
35170/**
35171**Returned only**, filled by Vulkan, not constructed by the application.*/
35172#[repr(C)]
35173#[derive(Copy, Clone, Debug)]
35174#[doc(alias = "VkDeviceFaultInfoKHR")]
35175pub struct DeviceFaultInfoKHR {
35176    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_KHR`.
35177    pub s_type: StructureType,
35178    ///Optional, may be null.
35179    pub p_next: *mut core::ffi::c_void,
35180    pub flags: DeviceFaultFlagsKHR,
35181    pub group_id: u64,
35182    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
35183    pub fault_address_info: DeviceFaultAddressInfoKHR,
35184    pub instruction_address_info: DeviceFaultAddressInfoKHR,
35185    pub vendor_info: DeviceFaultVendorInfoKHR,
35186}
35187impl Default for DeviceFaultInfoKHR {
35188    #[inline]
35189    fn default() -> Self {
35190        Self {
35191            s_type: StructureType::from_raw(1000573002i32),
35192            p_next: core::ptr::null_mut(),
35193            flags: Default::default(),
35194            group_id: Default::default(),
35195            description: unsafe { core::mem::zeroed() },
35196            fault_address_info: Default::default(),
35197            instruction_address_info: Default::default(),
35198            vendor_info: Default::default(),
35199        }
35200    }
35201}
35202///[`VkDeviceFaultDebugInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultDebugInfoKHR.html)
35203/**
35204Provided by **VK_KHR_device_fault**.*/
35205/**
35206**Returned only**, filled by Vulkan, not constructed by the application.*/
35207///
35208///# Extended By
35209///- [`DeviceFaultShaderAbortMessageInfoKHR`]
35210#[repr(C)]
35211#[derive(Copy, Clone, Debug)]
35212#[doc(alias = "VkDeviceFaultDebugInfoKHR")]
35213pub struct DeviceFaultDebugInfoKHR {
35214    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_DEBUG_INFO_KHR`.
35215    pub s_type: StructureType,
35216    ///Optional, may be null.
35217    pub p_next: *mut core::ffi::c_void,
35218    ///Length of `p_vendor_binary_data`.
35219    pub vendor_binary_size: u32,
35220    ///Optional, may be null.
35221    pub p_vendor_binary_data: *mut core::ffi::c_void,
35222}
35223impl Default for DeviceFaultDebugInfoKHR {
35224    #[inline]
35225    fn default() -> Self {
35226        Self {
35227            s_type: StructureType::from_raw(1000573003i32),
35228            p_next: core::ptr::null_mut(),
35229            vendor_binary_size: Default::default(),
35230            p_vendor_binary_data: core::ptr::null_mut(),
35231        }
35232    }
35233}
35234///[`VkDeviceFaultCountsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultCountsEXT.html)
35235/**
35236Provided by **VK_EXT_device_fault**.*/
35237#[repr(C)]
35238#[derive(Copy, Clone, Debug)]
35239#[doc(alias = "VkDeviceFaultCountsEXT")]
35240pub struct DeviceFaultCountsEXT {
35241    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT`.
35242    pub s_type: StructureType,
35243    ///Optional, may be null.
35244    pub p_next: *mut core::ffi::c_void,
35245    pub address_info_count: u32,
35246    pub vendor_info_count: u32,
35247    pub vendor_binary_size: u64,
35248}
35249impl Default for DeviceFaultCountsEXT {
35250    #[inline]
35251    fn default() -> Self {
35252        Self {
35253            s_type: StructureType::from_raw(1000341001i32),
35254            p_next: core::ptr::null_mut(),
35255            address_info_count: Default::default(),
35256            vendor_info_count: Default::default(),
35257            vendor_binary_size: Default::default(),
35258        }
35259    }
35260}
35261///[`VkDeviceFaultInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultInfoEXT.html)
35262/**
35263Provided by **VK_EXT_device_fault**.*/
35264/**
35265**Returned only**, filled by Vulkan, not constructed by the application.*/
35266#[repr(C)]
35267#[derive(Copy, Clone, Debug)]
35268#[doc(alias = "VkDeviceFaultInfoEXT")]
35269pub struct DeviceFaultInfoEXT {
35270    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT`.
35271    pub s_type: StructureType,
35272    ///Optional, may be null.
35273    pub p_next: *mut core::ffi::c_void,
35274    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
35275    ///Optional, may be null.
35276    pub p_address_infos: *mut DeviceFaultAddressInfoKHR,
35277    ///Optional, may be null.
35278    pub p_vendor_infos: *mut DeviceFaultVendorInfoKHR,
35279    ///Optional, may be null.
35280    pub p_vendor_binary_data: *mut core::ffi::c_void,
35281}
35282impl Default for DeviceFaultInfoEXT {
35283    #[inline]
35284    fn default() -> Self {
35285        Self {
35286            s_type: StructureType::from_raw(1000341002i32),
35287            p_next: core::ptr::null_mut(),
35288            description: unsafe { core::mem::zeroed() },
35289            p_address_infos: core::ptr::null_mut(),
35290            p_vendor_infos: core::ptr::null_mut(),
35291            p_vendor_binary_data: core::ptr::null_mut(),
35292        }
35293    }
35294}
35295///[`VkDeviceFaultVendorBinaryHeaderVersionOneKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultVendorBinaryHeaderVersionOneKHR.html)
35296/**
35297Provided by **VK_KHR_device_fault**.*/
35298#[repr(C)]
35299#[derive(Copy, Clone, Debug)]
35300#[doc(alias = "VkDeviceFaultVendorBinaryHeaderVersionOneKHR")]
35301pub struct DeviceFaultVendorBinaryHeaderVersionOneKHR {
35302    pub header_size: u32,
35303    pub header_version: DeviceFaultVendorBinaryHeaderVersionKHR,
35304    pub vendor_id: u32,
35305    pub device_id: u32,
35306    pub driver_version: u32,
35307    pub pipeline_cache_uuid: [u8; UUID_SIZE as usize],
35308    pub application_name_offset: u32,
35309    pub application_version: u32,
35310    pub engine_name_offset: u32,
35311    pub engine_version: u32,
35312    pub api_version: u32,
35313}
35314impl Default for DeviceFaultVendorBinaryHeaderVersionOneKHR {
35315    #[inline]
35316    fn default() -> Self {
35317        unsafe { core::mem::zeroed() }
35318    }
35319}
35320///[`VkPhysicalDeviceFaultFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFaultFeaturesKHR.html)
35321/**
35322Provided by **VK_KHR_device_fault**.*/
35323///
35324///# Extends
35325///- [`PhysicalDeviceFeatures2`]
35326///- [`DeviceCreateInfo`]
35327#[repr(C)]
35328#[derive(Copy, Clone, Debug)]
35329#[doc(alias = "VkPhysicalDeviceFaultFeaturesKHR")]
35330pub struct PhysicalDeviceFaultFeaturesKHR {
35331    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR`.
35332    pub s_type: StructureType,
35333    ///Optional, may be null.
35334    pub p_next: *mut core::ffi::c_void,
35335    pub device_fault: u32,
35336    pub device_fault_vendor_binary: u32,
35337    pub device_fault_report_masked: u32,
35338    pub device_fault_device_lost_on_masked: u32,
35339}
35340impl Default for PhysicalDeviceFaultFeaturesKHR {
35341    #[inline]
35342    fn default() -> Self {
35343        Self {
35344            s_type: StructureType::from_raw(1000573000i32),
35345            p_next: core::ptr::null_mut(),
35346            device_fault: Default::default(),
35347            device_fault_vendor_binary: Default::default(),
35348            device_fault_report_masked: Default::default(),
35349            device_fault_device_lost_on_masked: Default::default(),
35350        }
35351    }
35352}
35353///[`VkPhysicalDeviceFaultPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFaultPropertiesKHR.html)
35354/**
35355Provided by **VK_KHR_device_fault**.*/
35356/**
35357**Returned only**, filled by Vulkan, not constructed by the application.*/
35358///
35359///# Extends
35360///- [`PhysicalDeviceProperties2`]
35361#[repr(C)]
35362#[derive(Copy, Clone, Debug)]
35363#[doc(alias = "VkPhysicalDeviceFaultPropertiesKHR")]
35364pub struct PhysicalDeviceFaultPropertiesKHR {
35365    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR`.
35366    pub s_type: StructureType,
35367    ///Optional, may be null.
35368    pub p_next: *mut core::ffi::c_void,
35369    pub max_device_fault_count: u32,
35370}
35371impl Default for PhysicalDeviceFaultPropertiesKHR {
35372    #[inline]
35373    fn default() -> Self {
35374        Self {
35375            s_type: StructureType::from_raw(1000573001i32),
35376            p_next: core::ptr::null_mut(),
35377            max_device_fault_count: Default::default(),
35378        }
35379    }
35380}
35381///[`VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT.html)
35382/**
35383Provided by **VK_EXT_pipeline_library_group_handles**.*/
35384///
35385///# Extends
35386///- [`PhysicalDeviceFeatures2`]
35387///- [`DeviceCreateInfo`]
35388#[repr(C)]
35389#[derive(Copy, Clone, Debug)]
35390#[doc(alias = "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT")]
35391pub struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
35392    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT`.
35393    pub s_type: StructureType,
35394    ///Optional, may be null.
35395    pub p_next: *mut core::ffi::c_void,
35396    pub pipeline_library_group_handles: u32,
35397}
35398impl Default for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
35399    #[inline]
35400    fn default() -> Self {
35401        Self {
35402            s_type: StructureType::from_raw(1000498000i32),
35403            p_next: core::ptr::null_mut(),
35404            pipeline_library_group_handles: Default::default(),
35405        }
35406    }
35407}
35408///[`VkDepthBiasInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDepthBiasInfoEXT.html)
35409/**
35410Provided by **VK_EXT_depth_bias_control**.*/
35411///
35412///# Extended By
35413///- [`DepthBiasRepresentationInfoEXT`]
35414#[repr(C)]
35415#[derive(Copy, Clone, Debug)]
35416#[doc(alias = "VkDepthBiasInfoEXT")]
35417pub struct DepthBiasInfoEXT {
35418    ///Must be `VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT`.
35419    pub s_type: StructureType,
35420    ///Optional, may be null.
35421    pub p_next: *const core::ffi::c_void,
35422    pub depth_bias_constant_factor: f32,
35423    pub depth_bias_clamp: f32,
35424    pub depth_bias_slope_factor: f32,
35425}
35426impl Default for DepthBiasInfoEXT {
35427    #[inline]
35428    fn default() -> Self {
35429        Self {
35430            s_type: StructureType::from_raw(1000283001i32),
35431            p_next: core::ptr::null(),
35432            depth_bias_constant_factor: Default::default(),
35433            depth_bias_clamp: Default::default(),
35434            depth_bias_slope_factor: Default::default(),
35435        }
35436    }
35437}
35438///[`VkDepthBiasRepresentationInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDepthBiasRepresentationInfoEXT.html)
35439/**
35440Provided by **VK_EXT_depth_bias_control**.*/
35441///
35442///# Extends
35443///- [`DepthBiasInfoEXT`]
35444///- [`PipelineRasterizationStateCreateInfo`]
35445#[repr(C)]
35446#[derive(Copy, Clone, Debug)]
35447#[doc(alias = "VkDepthBiasRepresentationInfoEXT")]
35448pub struct DepthBiasRepresentationInfoEXT {
35449    ///Must be `VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT`.
35450    pub s_type: StructureType,
35451    ///Optional, may be null.
35452    pub p_next: *const core::ffi::c_void,
35453    pub depth_bias_representation: DepthBiasRepresentationEXT,
35454    pub depth_bias_exact: u32,
35455}
35456impl Default for DepthBiasRepresentationInfoEXT {
35457    #[inline]
35458    fn default() -> Self {
35459        Self {
35460            s_type: StructureType::from_raw(1000283002i32),
35461            p_next: core::ptr::null(),
35462            depth_bias_representation: Default::default(),
35463            depth_bias_exact: Default::default(),
35464        }
35465    }
35466}
35467///[`VkDecompressMemoryRegionNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDecompressMemoryRegionNV.html)
35468/**
35469Provided by **VK_NV_memory_decompression**.*/
35470#[repr(C)]
35471#[derive(Copy, Clone, Debug)]
35472#[doc(alias = "VkDecompressMemoryRegionNV")]
35473pub struct DecompressMemoryRegionNV {
35474    pub src_address: u64,
35475    pub dst_address: u64,
35476    pub compressed_size: u64,
35477    pub decompressed_size: u64,
35478    pub decompression_method: MemoryDecompressionMethodFlagsNV,
35479}
35480impl Default for DecompressMemoryRegionNV {
35481    #[inline]
35482    fn default() -> Self {
35483        unsafe { core::mem::zeroed() }
35484    }
35485}
35486///[`VkDecompressMemoryRegionEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDecompressMemoryRegionEXT.html)
35487/**
35488Provided by **VK_EXT_memory_decompression**.*/
35489#[repr(C)]
35490#[derive(Copy, Clone, Debug)]
35491#[doc(alias = "VkDecompressMemoryRegionEXT")]
35492pub struct DecompressMemoryRegionEXT {
35493    pub src_address: u64,
35494    pub dst_address: u64,
35495    pub compressed_size: u64,
35496    pub decompressed_size: u64,
35497}
35498impl Default for DecompressMemoryRegionEXT {
35499    #[inline]
35500    fn default() -> Self {
35501        unsafe { core::mem::zeroed() }
35502    }
35503}
35504///[`VkDecompressMemoryInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDecompressMemoryInfoEXT.html)
35505/**
35506Provided by **VK_EXT_memory_decompression**.*/
35507#[repr(C)]
35508#[derive(Copy, Clone, Debug)]
35509#[doc(alias = "VkDecompressMemoryInfoEXT")]
35510pub struct DecompressMemoryInfoEXT {
35511    ///Must be `VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT`.
35512    pub s_type: StructureType,
35513    ///Optional, may be null.
35514    pub p_next: *const core::ffi::c_void,
35515    pub decompression_method: MemoryDecompressionMethodFlagsEXT,
35516    ///Length of `p_regions`.
35517    pub region_count: u32,
35518    pub p_regions: *const DecompressMemoryRegionEXT,
35519}
35520impl Default for DecompressMemoryInfoEXT {
35521    #[inline]
35522    fn default() -> Self {
35523        Self {
35524            s_type: StructureType::from_raw(1000550002i32),
35525            p_next: core::ptr::null(),
35526            decompression_method: Default::default(),
35527            region_count: Default::default(),
35528            p_regions: core::ptr::null(),
35529        }
35530    }
35531}
35532///[`VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM.html)
35533/**
35534Provided by **VK_ARM_shader_core_builtins**.*/
35535/**
35536**Returned only**, filled by Vulkan, not constructed by the application.*/
35537///
35538///# Extends
35539///- [`PhysicalDeviceProperties2`]
35540#[repr(C)]
35541#[derive(Copy, Clone, Debug)]
35542#[doc(alias = "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM")]
35543pub struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
35544    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM`.
35545    pub s_type: StructureType,
35546    ///Optional, may be null.
35547    pub p_next: *mut core::ffi::c_void,
35548    pub shader_core_mask: u64,
35549    pub shader_core_count: u32,
35550    pub shader_warps_per_core: u32,
35551}
35552impl Default for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
35553    #[inline]
35554    fn default() -> Self {
35555        Self {
35556            s_type: StructureType::from_raw(1000497001i32),
35557            p_next: core::ptr::null_mut(),
35558            shader_core_mask: Default::default(),
35559            shader_core_count: Default::default(),
35560            shader_warps_per_core: Default::default(),
35561        }
35562    }
35563}
35564///[`VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM.html)
35565/**
35566Provided by **VK_ARM_shader_core_builtins**.*/
35567///
35568///# Extends
35569///- [`PhysicalDeviceFeatures2`]
35570///- [`DeviceCreateInfo`]
35571#[repr(C)]
35572#[derive(Copy, Clone, Debug)]
35573#[doc(alias = "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM")]
35574pub struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
35575    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM`.
35576    pub s_type: StructureType,
35577    ///Optional, may be null.
35578    pub p_next: *mut core::ffi::c_void,
35579    pub shader_core_builtins: u32,
35580}
35581impl Default for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
35582    #[inline]
35583    fn default() -> Self {
35584        Self {
35585            s_type: StructureType::from_raw(1000497000i32),
35586            p_next: core::ptr::null_mut(),
35587            shader_core_builtins: Default::default(),
35588        }
35589    }
35590}
35591///[`VkFrameBoundaryEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFrameBoundaryEXT.html)
35592/**
35593Provided by **VK_EXT_frame_boundary**.*/
35594///
35595///# Extends
35596///- [`SubmitInfo`]
35597///- [`SubmitInfo2`]
35598///- [`PresentInfoKHR`]
35599///- [`BindSparseInfo`]
35600#[repr(C)]
35601#[derive(Copy, Clone, Debug)]
35602#[doc(alias = "VkFrameBoundaryEXT")]
35603pub struct FrameBoundaryEXT {
35604    ///Must be `VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT`.
35605    pub s_type: StructureType,
35606    ///Optional, may be null.
35607    pub p_next: *const core::ffi::c_void,
35608    pub flags: FrameBoundaryFlagsEXT,
35609    pub frame_id: u64,
35610    ///Length of `p_images`.
35611    pub image_count: u32,
35612    ///Optional, may be null.
35613    pub p_images: *const Image,
35614    ///Length of `p_buffers`.
35615    pub buffer_count: u32,
35616    ///Optional, may be null.
35617    pub p_buffers: *const Buffer,
35618    pub tag_name: u64,
35619    ///Length of `p_tag`.
35620    pub tag_size: usize,
35621    ///Optional, may be null.
35622    pub p_tag: *const core::ffi::c_void,
35623}
35624impl Default for FrameBoundaryEXT {
35625    #[inline]
35626    fn default() -> Self {
35627        Self {
35628            s_type: StructureType::from_raw(1000375001i32),
35629            p_next: core::ptr::null(),
35630            flags: Default::default(),
35631            frame_id: Default::default(),
35632            image_count: Default::default(),
35633            p_images: core::ptr::null(),
35634            buffer_count: Default::default(),
35635            p_buffers: core::ptr::null(),
35636            tag_name: Default::default(),
35637            tag_size: Default::default(),
35638            p_tag: core::ptr::null(),
35639        }
35640    }
35641}
35642///[`VkPhysicalDeviceFrameBoundaryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFrameBoundaryFeaturesEXT.html)
35643/**
35644Provided by **VK_EXT_frame_boundary**.*/
35645///
35646///# Extends
35647///- [`PhysicalDeviceFeatures2`]
35648///- [`DeviceCreateInfo`]
35649#[repr(C)]
35650#[derive(Copy, Clone, Debug)]
35651#[doc(alias = "VkPhysicalDeviceFrameBoundaryFeaturesEXT")]
35652pub struct PhysicalDeviceFrameBoundaryFeaturesEXT {
35653    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT`.
35654    pub s_type: StructureType,
35655    ///Optional, may be null.
35656    pub p_next: *mut core::ffi::c_void,
35657    pub frame_boundary: u32,
35658}
35659impl Default for PhysicalDeviceFrameBoundaryFeaturesEXT {
35660    #[inline]
35661    fn default() -> Self {
35662        Self {
35663            s_type: StructureType::from_raw(1000375000i32),
35664            p_next: core::ptr::null_mut(),
35665            frame_boundary: Default::default(),
35666        }
35667    }
35668}
35669///[`VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.html)
35670/**
35671Provided by **VK_EXT_dynamic_rendering_unused_attachments**.*/
35672///
35673///# Extends
35674///- [`PhysicalDeviceFeatures2`]
35675///- [`DeviceCreateInfo`]
35676#[repr(C)]
35677#[derive(Copy, Clone, Debug)]
35678#[doc(alias = "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT")]
35679pub struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
35680    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT`.
35681    pub s_type: StructureType,
35682    ///Optional, may be null.
35683    pub p_next: *mut core::ffi::c_void,
35684    pub dynamic_rendering_unused_attachments: u32,
35685}
35686impl Default for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
35687    #[inline]
35688    fn default() -> Self {
35689        Self {
35690            s_type: StructureType::from_raw(1000499000i32),
35691            p_next: core::ptr::null_mut(),
35692            dynamic_rendering_unused_attachments: Default::default(),
35693        }
35694    }
35695}
35696///[`VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR.html)
35697/**
35698Provided by **VK_KHR_internally_synchronized_queues**.*/
35699///
35700///# Extends
35701///- [`PhysicalDeviceFeatures2`]
35702///- [`DeviceCreateInfo`]
35703#[repr(C)]
35704#[derive(Copy, Clone, Debug)]
35705#[doc(alias = "VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR")]
35706pub struct PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
35707    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR`.
35708    pub s_type: StructureType,
35709    ///Optional, may be null.
35710    pub p_next: *mut core::ffi::c_void,
35711    pub internally_synchronized_queues: u32,
35712}
35713impl Default for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
35714    #[inline]
35715    fn default() -> Self {
35716        Self {
35717            s_type: StructureType::from_raw(1000504000i32),
35718            p_next: core::ptr::null_mut(),
35719            internally_synchronized_queues: Default::default(),
35720        }
35721    }
35722}
35723///[`VkSurfacePresentModeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfacePresentModeKHR.html)
35724/**
35725Provided by **VK_KHR_surface_maintenance1**.*/
35726///
35727///# Extends
35728///- [`PhysicalDeviceSurfaceInfo2KHR`]
35729#[repr(C)]
35730#[derive(Copy, Clone, Debug)]
35731#[doc(alias = "VkSurfacePresentModeKHR")]
35732pub struct SurfacePresentModeKHR {
35733    ///Must be `VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR`.
35734    pub s_type: StructureType,
35735    ///Optional, may be null.
35736    pub p_next: *mut core::ffi::c_void,
35737    pub present_mode: PresentModeKHR,
35738}
35739impl Default for SurfacePresentModeKHR {
35740    #[inline]
35741    fn default() -> Self {
35742        Self {
35743            s_type: StructureType::from_raw(1000274000i32),
35744            p_next: core::ptr::null_mut(),
35745            present_mode: Default::default(),
35746        }
35747    }
35748}
35749///[`VkSurfacePresentScalingCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfacePresentScalingCapabilitiesKHR.html)
35750/**
35751Provided by **VK_KHR_surface_maintenance1**.*/
35752///
35753///# Extends
35754///- [`SurfaceCapabilities2KHR`]
35755#[repr(C)]
35756#[derive(Copy, Clone, Debug)]
35757#[doc(alias = "VkSurfacePresentScalingCapabilitiesKHR")]
35758pub struct SurfacePresentScalingCapabilitiesKHR {
35759    ///Must be `VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR`.
35760    pub s_type: StructureType,
35761    ///Optional, may be null.
35762    pub p_next: *mut core::ffi::c_void,
35763    pub supported_present_scaling: PresentScalingFlagsKHR,
35764    pub supported_present_gravity_x: PresentGravityFlagsKHR,
35765    pub supported_present_gravity_y: PresentGravityFlagsKHR,
35766    pub min_scaled_image_extent: Extent2D,
35767    pub max_scaled_image_extent: Extent2D,
35768}
35769impl Default for SurfacePresentScalingCapabilitiesKHR {
35770    #[inline]
35771    fn default() -> Self {
35772        Self {
35773            s_type: StructureType::from_raw(1000274001i32),
35774            p_next: core::ptr::null_mut(),
35775            supported_present_scaling: Default::default(),
35776            supported_present_gravity_x: Default::default(),
35777            supported_present_gravity_y: Default::default(),
35778            min_scaled_image_extent: Default::default(),
35779            max_scaled_image_extent: Default::default(),
35780        }
35781    }
35782}
35783///[`VkSurfacePresentModeCompatibilityKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfacePresentModeCompatibilityKHR.html)
35784/**
35785Provided by **VK_KHR_surface_maintenance1**.*/
35786///
35787///# Extends
35788///- [`SurfaceCapabilities2KHR`]
35789#[repr(C)]
35790#[derive(Copy, Clone, Debug)]
35791#[doc(alias = "VkSurfacePresentModeCompatibilityKHR")]
35792pub struct SurfacePresentModeCompatibilityKHR {
35793    ///Must be `VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR`.
35794    pub s_type: StructureType,
35795    ///Optional, may be null.
35796    pub p_next: *mut core::ffi::c_void,
35797    ///Length of `p_present_modes`.
35798    pub present_mode_count: u32,
35799    ///Optional, may be null.
35800    pub p_present_modes: *mut PresentModeKHR,
35801}
35802impl Default for SurfacePresentModeCompatibilityKHR {
35803    #[inline]
35804    fn default() -> Self {
35805        Self {
35806            s_type: StructureType::from_raw(1000274002i32),
35807            p_next: core::ptr::null_mut(),
35808            present_mode_count: Default::default(),
35809            p_present_modes: core::ptr::null_mut(),
35810        }
35811    }
35812}
35813///[`VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR.html)
35814/**
35815Provided by **VK_KHR_swapchain_maintenance1**.*/
35816///
35817///# Extends
35818///- [`PhysicalDeviceFeatures2`]
35819///- [`DeviceCreateInfo`]
35820#[repr(C)]
35821#[derive(Copy, Clone, Debug)]
35822#[doc(alias = "VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR")]
35823pub struct PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
35824    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR`.
35825    pub s_type: StructureType,
35826    ///Optional, may be null.
35827    pub p_next: *mut core::ffi::c_void,
35828    pub swapchain_maintenance1: u32,
35829}
35830impl Default for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
35831    #[inline]
35832    fn default() -> Self {
35833        Self {
35834            s_type: StructureType::from_raw(1000275000i32),
35835            p_next: core::ptr::null_mut(),
35836            swapchain_maintenance1: Default::default(),
35837        }
35838    }
35839}
35840///[`VkSwapchainPresentFenceInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentFenceInfoKHR.html)
35841/**
35842Provided by **VK_KHR_swapchain_maintenance1**.*/
35843///
35844///# Extends
35845///- [`PresentInfoKHR`]
35846#[repr(C)]
35847#[derive(Copy, Clone, Debug)]
35848#[doc(alias = "VkSwapchainPresentFenceInfoKHR")]
35849pub struct SwapchainPresentFenceInfoKHR {
35850    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR`.
35851    pub s_type: StructureType,
35852    ///Optional, may be null.
35853    pub p_next: *const core::ffi::c_void,
35854    ///Length of `p_fences`.
35855    pub swapchain_count: u32,
35856    ///Optional, may be null.
35857    pub p_fences: *const Fence,
35858}
35859impl Default for SwapchainPresentFenceInfoKHR {
35860    #[inline]
35861    fn default() -> Self {
35862        Self {
35863            s_type: StructureType::from_raw(1000275001i32),
35864            p_next: core::ptr::null(),
35865            swapchain_count: Default::default(),
35866            p_fences: core::ptr::null(),
35867        }
35868    }
35869}
35870///[`VkSwapchainPresentModesCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentModesCreateInfoKHR.html)
35871/**
35872Provided by **VK_KHR_swapchain_maintenance1**.*/
35873///
35874///# Extends
35875///- [`SwapchainCreateInfoKHR`]
35876#[repr(C)]
35877#[derive(Copy, Clone, Debug)]
35878#[doc(alias = "VkSwapchainPresentModesCreateInfoKHR")]
35879pub struct SwapchainPresentModesCreateInfoKHR {
35880    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR`.
35881    pub s_type: StructureType,
35882    ///Optional, may be null.
35883    pub p_next: *const core::ffi::c_void,
35884    ///Length of `p_present_modes`.
35885    pub present_mode_count: u32,
35886    pub p_present_modes: *const PresentModeKHR,
35887}
35888impl Default for SwapchainPresentModesCreateInfoKHR {
35889    #[inline]
35890    fn default() -> Self {
35891        Self {
35892            s_type: StructureType::from_raw(1000275002i32),
35893            p_next: core::ptr::null(),
35894            present_mode_count: Default::default(),
35895            p_present_modes: core::ptr::null(),
35896        }
35897    }
35898}
35899///[`VkSwapchainPresentModeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentModeInfoKHR.html)
35900/**
35901Provided by **VK_KHR_swapchain_maintenance1**.*/
35902///
35903///# Extends
35904///- [`PresentInfoKHR`]
35905#[repr(C)]
35906#[derive(Copy, Clone, Debug)]
35907#[doc(alias = "VkSwapchainPresentModeInfoKHR")]
35908pub struct SwapchainPresentModeInfoKHR {
35909    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR`.
35910    pub s_type: StructureType,
35911    ///Optional, may be null.
35912    pub p_next: *const core::ffi::c_void,
35913    ///Length of `p_present_modes`.
35914    pub swapchain_count: u32,
35915    pub p_present_modes: *const PresentModeKHR,
35916}
35917impl Default for SwapchainPresentModeInfoKHR {
35918    #[inline]
35919    fn default() -> Self {
35920        Self {
35921            s_type: StructureType::from_raw(1000275003i32),
35922            p_next: core::ptr::null(),
35923            swapchain_count: Default::default(),
35924            p_present_modes: core::ptr::null(),
35925        }
35926    }
35927}
35928///[`VkSwapchainPresentScalingCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentScalingCreateInfoKHR.html)
35929/**
35930Provided by **VK_KHR_swapchain_maintenance1**.*/
35931///
35932///# Extends
35933///- [`SwapchainCreateInfoKHR`]
35934#[repr(C)]
35935#[derive(Copy, Clone, Debug)]
35936#[doc(alias = "VkSwapchainPresentScalingCreateInfoKHR")]
35937pub struct SwapchainPresentScalingCreateInfoKHR {
35938    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR`.
35939    pub s_type: StructureType,
35940    ///Optional, may be null.
35941    pub p_next: *const core::ffi::c_void,
35942    pub scaling_behavior: PresentScalingFlagsKHR,
35943    pub present_gravity_x: PresentGravityFlagsKHR,
35944    pub present_gravity_y: PresentGravityFlagsKHR,
35945}
35946impl Default for SwapchainPresentScalingCreateInfoKHR {
35947    #[inline]
35948    fn default() -> Self {
35949        Self {
35950            s_type: StructureType::from_raw(1000275004i32),
35951            p_next: core::ptr::null(),
35952            scaling_behavior: Default::default(),
35953            present_gravity_x: Default::default(),
35954            present_gravity_y: Default::default(),
35955        }
35956    }
35957}
35958///[`VkReleaseSwapchainImagesInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkReleaseSwapchainImagesInfoKHR.html)
35959/**
35960Provided by **VK_KHR_swapchain_maintenance1**.*/
35961#[repr(C)]
35962#[derive(Copy, Clone, Debug)]
35963#[doc(alias = "VkReleaseSwapchainImagesInfoKHR")]
35964pub struct ReleaseSwapchainImagesInfoKHR {
35965    ///Must be `VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR`.
35966    pub s_type: StructureType,
35967    ///Optional, may be null.
35968    pub p_next: *const core::ffi::c_void,
35969    ///**Thread safety:** must be externally synchronized.
35970    pub swapchain: SwapchainKHR,
35971    ///Length of `p_image_indices`.
35972    pub image_index_count: u32,
35973    pub p_image_indices: *const u32,
35974}
35975impl Default for ReleaseSwapchainImagesInfoKHR {
35976    #[inline]
35977    fn default() -> Self {
35978        Self {
35979            s_type: StructureType::from_raw(1000275005i32),
35980            p_next: core::ptr::null(),
35981            swapchain: Default::default(),
35982            image_index_count: Default::default(),
35983            p_image_indices: core::ptr::null(),
35984        }
35985    }
35986}
35987///[`VkPhysicalDeviceDepthBiasControlFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthBiasControlFeaturesEXT.html)
35988/**
35989Provided by **VK_EXT_depth_bias_control**.*/
35990///
35991///# Extends
35992///- [`PhysicalDeviceFeatures2`]
35993///- [`DeviceCreateInfo`]
35994#[repr(C)]
35995#[derive(Copy, Clone, Debug)]
35996#[doc(alias = "VkPhysicalDeviceDepthBiasControlFeaturesEXT")]
35997pub struct PhysicalDeviceDepthBiasControlFeaturesEXT {
35998    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT`.
35999    pub s_type: StructureType,
36000    ///Optional, may be null.
36001    pub p_next: *mut core::ffi::c_void,
36002    pub depth_bias_control: u32,
36003    pub least_representable_value_force_unorm_representation: u32,
36004    pub float_representation: u32,
36005    pub depth_bias_exact: u32,
36006}
36007impl Default for PhysicalDeviceDepthBiasControlFeaturesEXT {
36008    #[inline]
36009    fn default() -> Self {
36010        Self {
36011            s_type: StructureType::from_raw(1000283000i32),
36012            p_next: core::ptr::null_mut(),
36013            depth_bias_control: Default::default(),
36014            least_representable_value_force_unorm_representation: Default::default(),
36015            float_representation: Default::default(),
36016            depth_bias_exact: Default::default(),
36017        }
36018    }
36019}
36020///[`VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT.html)
36021/**
36022Provided by **VK_EXT_ray_tracing_invocation_reorder**.*/
36023///
36024///# Extends
36025///- [`PhysicalDeviceFeatures2`]
36026///- [`DeviceCreateInfo`]
36027#[repr(C)]
36028#[derive(Copy, Clone, Debug)]
36029#[doc(alias = "VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT")]
36030pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
36031    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT`.
36032    pub s_type: StructureType,
36033    ///Optional, may be null.
36034    pub p_next: *mut core::ffi::c_void,
36035    pub ray_tracing_invocation_reorder: u32,
36036}
36037impl Default for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
36038    #[inline]
36039    fn default() -> Self {
36040        Self {
36041            s_type: StructureType::from_raw(1000581000i32),
36042            p_next: core::ptr::null_mut(),
36043            ray_tracing_invocation_reorder: Default::default(),
36044        }
36045    }
36046}
36047///[`VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV.html)
36048/**
36049Provided by **VK_NV_ray_tracing_invocation_reorder**.*/
36050///
36051///# Extends
36052///- [`PhysicalDeviceFeatures2`]
36053///- [`DeviceCreateInfo`]
36054#[repr(C)]
36055#[derive(Copy, Clone, Debug)]
36056#[doc(alias = "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV")]
36057pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
36058    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV`.
36059    pub s_type: StructureType,
36060    ///Optional, may be null.
36061    pub p_next: *mut core::ffi::c_void,
36062    pub ray_tracing_invocation_reorder: u32,
36063}
36064impl Default for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
36065    #[inline]
36066    fn default() -> Self {
36067        Self {
36068            s_type: StructureType::from_raw(1000490000i32),
36069            p_next: core::ptr::null_mut(),
36070            ray_tracing_invocation_reorder: Default::default(),
36071        }
36072    }
36073}
36074///[`VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT.html)
36075/**
36076Provided by **VK_EXT_ray_tracing_invocation_reorder**.*/
36077/**
36078**Returned only**, filled by Vulkan, not constructed by the application.*/
36079///
36080///# Extends
36081///- [`PhysicalDeviceProperties2`]
36082#[repr(C)]
36083#[derive(Copy, Clone, Debug)]
36084#[doc(alias = "VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT")]
36085pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
36086    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT`.
36087    pub s_type: StructureType,
36088    ///Optional, may be null.
36089    pub p_next: *mut core::ffi::c_void,
36090    pub ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeEXT,
36091    pub max_shader_binding_table_record_index: u32,
36092}
36093impl Default for PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
36094    #[inline]
36095    fn default() -> Self {
36096        Self {
36097            s_type: StructureType::from_raw(1000581001i32),
36098            p_next: core::ptr::null_mut(),
36099            ray_tracing_invocation_reorder_reordering_hint: Default::default(),
36100            max_shader_binding_table_record_index: Default::default(),
36101        }
36102    }
36103}
36104///[`VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV.html)
36105/**
36106Provided by **VK_NV_ray_tracing_invocation_reorder**.*/
36107/**
36108**Returned only**, filled by Vulkan, not constructed by the application.*/
36109///
36110///# Extends
36111///- [`PhysicalDeviceProperties2`]
36112#[repr(C)]
36113#[derive(Copy, Clone, Debug)]
36114#[doc(alias = "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV")]
36115pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
36116    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV`.
36117    pub s_type: StructureType,
36118    ///Optional, may be null.
36119    pub p_next: *mut core::ffi::c_void,
36120    pub ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeEXT,
36121}
36122impl Default for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
36123    #[inline]
36124    fn default() -> Self {
36125        Self {
36126            s_type: StructureType::from_raw(1000490001i32),
36127            p_next: core::ptr::null_mut(),
36128            ray_tracing_invocation_reorder_reordering_hint: Default::default(),
36129        }
36130    }
36131}
36132///[`VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV.html)
36133/**
36134Provided by **VK_NV_extended_sparse_address_space**.*/
36135///
36136///# Extends
36137///- [`PhysicalDeviceFeatures2`]
36138///- [`DeviceCreateInfo`]
36139#[repr(C)]
36140#[derive(Copy, Clone, Debug)]
36141#[doc(alias = "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV")]
36142pub struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
36143    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV`.
36144    pub s_type: StructureType,
36145    ///Optional, may be null.
36146    pub p_next: *mut core::ffi::c_void,
36147    pub extended_sparse_address_space: u32,
36148}
36149impl Default for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
36150    #[inline]
36151    fn default() -> Self {
36152        Self {
36153            s_type: StructureType::from_raw(1000492000i32),
36154            p_next: core::ptr::null_mut(),
36155            extended_sparse_address_space: Default::default(),
36156        }
36157    }
36158}
36159///[`VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV.html)
36160/**
36161Provided by **VK_NV_extended_sparse_address_space**.*/
36162/**
36163**Returned only**, filled by Vulkan, not constructed by the application.*/
36164///
36165///# Extends
36166///- [`PhysicalDeviceProperties2`]
36167#[repr(C)]
36168#[derive(Copy, Clone, Debug)]
36169#[doc(alias = "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV")]
36170pub struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
36171    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV`.
36172    pub s_type: StructureType,
36173    ///Optional, may be null.
36174    pub p_next: *mut core::ffi::c_void,
36175    pub extended_sparse_address_space_size: u64,
36176    pub extended_sparse_image_usage_flags: ImageUsageFlags,
36177    pub extended_sparse_buffer_usage_flags: BufferUsageFlags,
36178}
36179impl Default for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
36180    #[inline]
36181    fn default() -> Self {
36182        Self {
36183            s_type: StructureType::from_raw(1000492001i32),
36184            p_next: core::ptr::null_mut(),
36185            extended_sparse_address_space_size: Default::default(),
36186            extended_sparse_image_usage_flags: Default::default(),
36187            extended_sparse_buffer_usage_flags: Default::default(),
36188        }
36189    }
36190}
36191///[`VkDirectDriverLoadingInfoLUNARG`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDirectDriverLoadingInfoLUNARG.html)
36192/**
36193Provided by **VK_LUNARG_direct_driver_loading**.*/
36194#[repr(C)]
36195#[derive(Copy, Clone, Debug)]
36196#[doc(alias = "VkDirectDriverLoadingInfoLUNARG")]
36197pub struct DirectDriverLoadingInfoLUNARG {
36198    ///Must be `VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG`.
36199    pub s_type: StructureType,
36200    ///Optional, may be null.
36201    pub p_next: *mut core::ffi::c_void,
36202    pub flags: DirectDriverLoadingFlagsLUNARG,
36203    pub pfn_get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG,
36204}
36205impl Default for DirectDriverLoadingInfoLUNARG {
36206    #[inline]
36207    fn default() -> Self {
36208        Self {
36209            s_type: StructureType::from_raw(1000459000i32),
36210            p_next: core::ptr::null_mut(),
36211            flags: Default::default(),
36212            pfn_get_instance_proc_addr: Default::default(),
36213        }
36214    }
36215}
36216///[`VkDirectDriverLoadingListLUNARG`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDirectDriverLoadingListLUNARG.html)
36217/**
36218Provided by **VK_LUNARG_direct_driver_loading**.*/
36219///
36220///# Extends
36221///- [`InstanceCreateInfo`]
36222#[repr(C)]
36223#[derive(Copy, Clone, Debug)]
36224#[doc(alias = "VkDirectDriverLoadingListLUNARG")]
36225pub struct DirectDriverLoadingListLUNARG {
36226    ///Must be `VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG`.
36227    pub s_type: StructureType,
36228    ///Optional, may be null.
36229    pub p_next: *const core::ffi::c_void,
36230    pub mode: DirectDriverLoadingModeLUNARG,
36231    ///Length of `p_drivers`.
36232    pub driver_count: u32,
36233    pub p_drivers: *const DirectDriverLoadingInfoLUNARG,
36234}
36235impl Default for DirectDriverLoadingListLUNARG {
36236    #[inline]
36237    fn default() -> Self {
36238        Self {
36239            s_type: StructureType::from_raw(1000459001i32),
36240            p_next: core::ptr::null(),
36241            mode: Default::default(),
36242            driver_count: Default::default(),
36243            p_drivers: core::ptr::null(),
36244        }
36245    }
36246}
36247///[`VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.html)
36248/**
36249Provided by **VK_QCOM_multiview_per_view_viewports**.*/
36250///
36251///# Extends
36252///- [`PhysicalDeviceFeatures2`]
36253///- [`DeviceCreateInfo`]
36254#[repr(C)]
36255#[derive(Copy, Clone, Debug)]
36256#[doc(alias = "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM")]
36257pub struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
36258    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM`.
36259    pub s_type: StructureType,
36260    ///Optional, may be null.
36261    pub p_next: *mut core::ffi::c_void,
36262    pub multiview_per_view_viewports: u32,
36263}
36264impl Default for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
36265    #[inline]
36266    fn default() -> Self {
36267        Self {
36268            s_type: StructureType::from_raw(1000488000i32),
36269            p_next: core::ptr::null_mut(),
36270            multiview_per_view_viewports: Default::default(),
36271        }
36272    }
36273}
36274///[`VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR.html)
36275/**
36276Provided by **VK_KHR_ray_tracing_position_fetch**.*/
36277///
36278///# Extends
36279///- [`PhysicalDeviceFeatures2`]
36280///- [`DeviceCreateInfo`]
36281#[repr(C)]
36282#[derive(Copy, Clone, Debug)]
36283#[doc(alias = "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR")]
36284pub struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
36285    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR`.
36286    pub s_type: StructureType,
36287    ///Optional, may be null.
36288    pub p_next: *mut core::ffi::c_void,
36289    pub ray_tracing_position_fetch: u32,
36290}
36291impl Default for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
36292    #[inline]
36293    fn default() -> Self {
36294        Self {
36295            s_type: StructureType::from_raw(1000481000i32),
36296            p_next: core::ptr::null_mut(),
36297            ray_tracing_position_fetch: Default::default(),
36298        }
36299    }
36300}
36301///[`VkDeviceImageSubresourceInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceImageSubresourceInfo.html)
36302/**
36303Provided by **VK_BASE_VERSION_1_4**.*/
36304#[repr(C)]
36305#[derive(Copy, Clone, Debug)]
36306#[doc(alias = "VkDeviceImageSubresourceInfo")]
36307pub struct DeviceImageSubresourceInfo {
36308    ///Must be `VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO`.
36309    pub s_type: StructureType,
36310    ///Optional, may be null.
36311    pub p_next: *const core::ffi::c_void,
36312    pub p_create_info: *const ImageCreateInfo,
36313    pub p_subresource: *const ImageSubresource2,
36314}
36315impl Default for DeviceImageSubresourceInfo {
36316    #[inline]
36317    fn default() -> Self {
36318        Self {
36319            s_type: StructureType::from_raw(1000470004i32),
36320            p_next: core::ptr::null(),
36321            p_create_info: core::ptr::null(),
36322            p_subresource: core::ptr::null(),
36323        }
36324    }
36325}
36326///[`VkPhysicalDeviceShaderCorePropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCorePropertiesARM.html)
36327/**
36328Provided by **VK_ARM_shader_core_properties**.*/
36329/**
36330**Returned only**, filled by Vulkan, not constructed by the application.*/
36331///
36332///# Extends
36333///- [`PhysicalDeviceProperties2`]
36334#[repr(C)]
36335#[derive(Copy, Clone, Debug)]
36336#[doc(alias = "VkPhysicalDeviceShaderCorePropertiesARM")]
36337pub struct PhysicalDeviceShaderCorePropertiesARM {
36338    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM`.
36339    pub s_type: StructureType,
36340    ///Optional, may be null.
36341    pub p_next: *mut core::ffi::c_void,
36342    pub pixel_rate: u32,
36343    pub texel_rate: u32,
36344    pub fma_rate: u32,
36345}
36346impl Default for PhysicalDeviceShaderCorePropertiesARM {
36347    #[inline]
36348    fn default() -> Self {
36349        Self {
36350            s_type: StructureType::from_raw(1000415000i32),
36351            p_next: core::ptr::null_mut(),
36352            pixel_rate: Default::default(),
36353            texel_rate: Default::default(),
36354            fma_rate: Default::default(),
36355        }
36356    }
36357}
36358///[`VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.html)
36359/**
36360Provided by **VK_QCOM_multiview_per_view_render_areas**.*/
36361///
36362///# Extends
36363///- [`PhysicalDeviceFeatures2`]
36364///- [`DeviceCreateInfo`]
36365#[repr(C)]
36366#[derive(Copy, Clone, Debug)]
36367#[doc(alias = "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM")]
36368pub struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
36369    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM`.
36370    pub s_type: StructureType,
36371    ///Optional, may be null.
36372    pub p_next: *mut core::ffi::c_void,
36373    pub multiview_per_view_render_areas: u32,
36374}
36375impl Default for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
36376    #[inline]
36377    fn default() -> Self {
36378        Self {
36379            s_type: StructureType::from_raw(1000510000i32),
36380            p_next: core::ptr::null_mut(),
36381            multiview_per_view_render_areas: Default::default(),
36382        }
36383    }
36384}
36385///[`VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM.html)
36386/**
36387Provided by **VK_QCOM_multiview_per_view_render_areas**.*/
36388///
36389///# Extends
36390///- [`RenderPassBeginInfo`]
36391///- [`RenderingInfo`]
36392#[repr(C)]
36393#[derive(Copy, Clone, Debug)]
36394#[doc(alias = "VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM")]
36395pub struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
36396    ///Must be `VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM`.
36397    pub s_type: StructureType,
36398    ///Optional, may be null.
36399    pub p_next: *const core::ffi::c_void,
36400    ///Length of `p_per_view_render_areas`.
36401    pub per_view_render_area_count: u32,
36402    pub p_per_view_render_areas: *const Rect2D,
36403}
36404impl Default for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
36405    #[inline]
36406    fn default() -> Self {
36407        Self {
36408            s_type: StructureType::from_raw(1000510001i32),
36409            p_next: core::ptr::null(),
36410            per_view_render_area_count: Default::default(),
36411            p_per_view_render_areas: core::ptr::null(),
36412        }
36413    }
36414}
36415///[`VkQueryLowLatencySupportNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryLowLatencySupportNV.html)
36416/**
36417Provided by **VK_NV_low_latency**.*/
36418///
36419///# Extends
36420///- [`SemaphoreCreateInfo`]
36421#[repr(C)]
36422#[derive(Copy, Clone, Debug)]
36423#[doc(alias = "VkQueryLowLatencySupportNV")]
36424pub struct QueryLowLatencySupportNV {
36425    ///Must be `VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV`.
36426    pub s_type: StructureType,
36427    ///Optional, may be null.
36428    pub p_next: *const core::ffi::c_void,
36429    pub p_queried_low_latency_data: *mut core::ffi::c_void,
36430}
36431impl Default for QueryLowLatencySupportNV {
36432    #[inline]
36433    fn default() -> Self {
36434        Self {
36435            s_type: StructureType::from_raw(1000310000i32),
36436            p_next: core::ptr::null(),
36437            p_queried_low_latency_data: core::ptr::null_mut(),
36438        }
36439    }
36440}
36441///[`VkMemoryMapInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryMapInfo.html)
36442/**
36443Provided by **VK_BASE_VERSION_1_4**.*/
36444///
36445///# Extended By
36446///- [`MemoryMapPlacedInfoEXT`]
36447#[repr(C)]
36448#[derive(Copy, Clone, Debug)]
36449#[doc(alias = "VkMemoryMapInfo")]
36450pub struct MemoryMapInfo {
36451    ///Must be `VK_STRUCTURE_TYPE_MEMORY_MAP_INFO`.
36452    pub s_type: StructureType,
36453    ///Optional, may be null.
36454    pub p_next: *const core::ffi::c_void,
36455    pub flags: MemoryMapFlags,
36456    ///**Thread safety:** must be externally synchronized.
36457    pub memory: DeviceMemory,
36458    pub offset: u64,
36459    pub size: u64,
36460}
36461impl Default for MemoryMapInfo {
36462    #[inline]
36463    fn default() -> Self {
36464        Self {
36465            s_type: StructureType::from_raw(1000271000i32),
36466            p_next: core::ptr::null(),
36467            flags: Default::default(),
36468            memory: Default::default(),
36469            offset: Default::default(),
36470            size: Default::default(),
36471        }
36472    }
36473}
36474///[`VkMemoryUnmapInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryUnmapInfo.html)
36475/**
36476Provided by **VK_BASE_VERSION_1_4**.*/
36477#[repr(C)]
36478#[derive(Copy, Clone, Debug)]
36479#[doc(alias = "VkMemoryUnmapInfo")]
36480pub struct MemoryUnmapInfo {
36481    ///Must be `VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO`.
36482    pub s_type: StructureType,
36483    ///Optional, may be null.
36484    pub p_next: *const core::ffi::c_void,
36485    pub flags: MemoryUnmapFlags,
36486    ///**Thread safety:** must be externally synchronized.
36487    pub memory: DeviceMemory,
36488}
36489impl Default for MemoryUnmapInfo {
36490    #[inline]
36491    fn default() -> Self {
36492        Self {
36493            s_type: StructureType::from_raw(1000271001i32),
36494            p_next: core::ptr::null(),
36495            flags: Default::default(),
36496            memory: Default::default(),
36497        }
36498    }
36499}
36500///[`VkPhysicalDeviceShaderObjectFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderObjectFeaturesEXT.html)
36501/**
36502Provided by **VK_EXT_shader_object**.*/
36503///
36504///# Extends
36505///- [`PhysicalDeviceFeatures2`]
36506///- [`DeviceCreateInfo`]
36507#[repr(C)]
36508#[derive(Copy, Clone, Debug)]
36509#[doc(alias = "VkPhysicalDeviceShaderObjectFeaturesEXT")]
36510pub struct PhysicalDeviceShaderObjectFeaturesEXT {
36511    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT`.
36512    pub s_type: StructureType,
36513    ///Optional, may be null.
36514    pub p_next: *mut core::ffi::c_void,
36515    pub shader_object: u32,
36516}
36517impl Default for PhysicalDeviceShaderObjectFeaturesEXT {
36518    #[inline]
36519    fn default() -> Self {
36520        Self {
36521            s_type: StructureType::from_raw(1000482000i32),
36522            p_next: core::ptr::null_mut(),
36523            shader_object: Default::default(),
36524        }
36525    }
36526}
36527///[`VkPhysicalDeviceShaderObjectPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderObjectPropertiesEXT.html)
36528/**
36529Provided by **VK_EXT_shader_object**.*/
36530/**
36531**Returned only**, filled by Vulkan, not constructed by the application.*/
36532///
36533///# Extends
36534///- [`PhysicalDeviceProperties2`]
36535#[repr(C)]
36536#[derive(Copy, Clone, Debug)]
36537#[doc(alias = "VkPhysicalDeviceShaderObjectPropertiesEXT")]
36538pub struct PhysicalDeviceShaderObjectPropertiesEXT {
36539    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT`.
36540    pub s_type: StructureType,
36541    ///Optional, may be null.
36542    pub p_next: *mut core::ffi::c_void,
36543    pub shader_binary_uuid: [u8; UUID_SIZE as usize],
36544    pub shader_binary_version: u32,
36545}
36546impl Default for PhysicalDeviceShaderObjectPropertiesEXT {
36547    #[inline]
36548    fn default() -> Self {
36549        Self {
36550            s_type: StructureType::from_raw(1000482001i32),
36551            p_next: core::ptr::null_mut(),
36552            shader_binary_uuid: unsafe { core::mem::zeroed() },
36553            shader_binary_version: Default::default(),
36554        }
36555    }
36556}
36557///[`VkShaderCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderCreateInfoEXT.html)
36558/**
36559Provided by **VK_EXT_shader_object**.*/
36560///
36561///# Extended By
36562///- [`CustomResolveCreateInfoEXT`]
36563///- [`PipelineShaderStageRequiredSubgroupSizeCreateInfo`]
36564///- [`ShaderDescriptorSetAndBindingMappingInfoEXT`]
36565///- [`ValidationFeaturesEXT`]
36566#[repr(C)]
36567#[derive(Copy, Clone, Debug)]
36568#[doc(alias = "VkShaderCreateInfoEXT")]
36569pub struct ShaderCreateInfoEXT {
36570    ///Must be `VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT`.
36571    pub s_type: StructureType,
36572    ///Optional, may be null.
36573    pub p_next: *const core::ffi::c_void,
36574    pub flags: ShaderCreateFlagsEXT,
36575    pub stage: ShaderStageFlagBits,
36576    pub next_stage: ShaderStageFlags,
36577    pub code_type: ShaderCodeTypeEXT,
36578    ///Length of `p_code`.
36579    pub code_size: usize,
36580    pub p_code: *const core::ffi::c_void,
36581    ///Optional, may be null.
36582    pub p_name: *const core::ffi::c_char,
36583    ///Length of `p_set_layouts`.
36584    pub set_layout_count: u32,
36585    ///Optional, may be null.
36586    pub p_set_layouts: *const DescriptorSetLayout,
36587    ///Length of `p_push_constant_ranges`.
36588    pub push_constant_range_count: u32,
36589    ///Optional, may be null.
36590    pub p_push_constant_ranges: *const PushConstantRange,
36591    ///Optional, may be null.
36592    pub p_specialization_info: *const SpecializationInfo,
36593}
36594impl Default for ShaderCreateInfoEXT {
36595    #[inline]
36596    fn default() -> Self {
36597        Self {
36598            s_type: StructureType::from_raw(1000482002i32),
36599            p_next: core::ptr::null(),
36600            flags: Default::default(),
36601            stage: Default::default(),
36602            next_stage: Default::default(),
36603            code_type: Default::default(),
36604            code_size: Default::default(),
36605            p_code: core::ptr::null(),
36606            p_name: core::ptr::null(),
36607            set_layout_count: Default::default(),
36608            p_set_layouts: core::ptr::null(),
36609            push_constant_range_count: Default::default(),
36610            p_push_constant_ranges: core::ptr::null(),
36611            p_specialization_info: core::ptr::null(),
36612        }
36613    }
36614}
36615///[`VkPhysicalDeviceShaderTileImageFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderTileImageFeaturesEXT.html)
36616/**
36617Provided by **VK_EXT_shader_tile_image**.*/
36618///
36619///# Extends
36620///- [`PhysicalDeviceFeatures2`]
36621///- [`DeviceCreateInfo`]
36622#[repr(C)]
36623#[derive(Copy, Clone, Debug)]
36624#[doc(alias = "VkPhysicalDeviceShaderTileImageFeaturesEXT")]
36625pub struct PhysicalDeviceShaderTileImageFeaturesEXT {
36626    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT`.
36627    pub s_type: StructureType,
36628    ///Optional, may be null.
36629    pub p_next: *mut core::ffi::c_void,
36630    pub shader_tile_image_color_read_access: u32,
36631    pub shader_tile_image_depth_read_access: u32,
36632    pub shader_tile_image_stencil_read_access: u32,
36633}
36634impl Default for PhysicalDeviceShaderTileImageFeaturesEXT {
36635    #[inline]
36636    fn default() -> Self {
36637        Self {
36638            s_type: StructureType::from_raw(1000395000i32),
36639            p_next: core::ptr::null_mut(),
36640            shader_tile_image_color_read_access: Default::default(),
36641            shader_tile_image_depth_read_access: Default::default(),
36642            shader_tile_image_stencil_read_access: Default::default(),
36643        }
36644    }
36645}
36646///[`VkPhysicalDeviceShaderTileImagePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderTileImagePropertiesEXT.html)
36647/**
36648Provided by **VK_EXT_shader_tile_image**.*/
36649/**
36650**Returned only**, filled by Vulkan, not constructed by the application.*/
36651///
36652///# Extends
36653///- [`PhysicalDeviceProperties2`]
36654#[repr(C)]
36655#[derive(Copy, Clone, Debug)]
36656#[doc(alias = "VkPhysicalDeviceShaderTileImagePropertiesEXT")]
36657pub struct PhysicalDeviceShaderTileImagePropertiesEXT {
36658    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT`.
36659    pub s_type: StructureType,
36660    ///Optional, may be null.
36661    pub p_next: *mut core::ffi::c_void,
36662    pub shader_tile_image_coherent_read_accelerated: u32,
36663    pub shader_tile_image_read_sample_from_pixel_rate_invocation: u32,
36664    pub shader_tile_image_read_from_helper_invocation: u32,
36665}
36666impl Default for PhysicalDeviceShaderTileImagePropertiesEXT {
36667    #[inline]
36668    fn default() -> Self {
36669        Self {
36670            s_type: StructureType::from_raw(1000395001i32),
36671            p_next: core::ptr::null_mut(),
36672            shader_tile_image_coherent_read_accelerated: Default::default(),
36673            shader_tile_image_read_sample_from_pixel_rate_invocation: Default::default(),
36674            shader_tile_image_read_from_helper_invocation: Default::default(),
36675        }
36676    }
36677}
36678///[`VkImportScreenBufferInfoQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportScreenBufferInfoQNX.html)
36679/**
36680Provided by **VK_QNX_external_memory_screen_buffer**.*/
36681///
36682///# Extends
36683///- [`MemoryAllocateInfo`]
36684#[repr(C)]
36685#[derive(Copy, Clone, Debug)]
36686#[doc(alias = "VkImportScreenBufferInfoQNX")]
36687pub struct ImportScreenBufferInfoQNX {
36688    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX`.
36689    pub s_type: StructureType,
36690    ///Optional, may be null.
36691    pub p_next: *const core::ffi::c_void,
36692    pub buffer: *mut core::ffi::c_void,
36693}
36694impl Default for ImportScreenBufferInfoQNX {
36695    #[inline]
36696    fn default() -> Self {
36697        Self {
36698            s_type: StructureType::from_raw(1000529002i32),
36699            p_next: core::ptr::null(),
36700            buffer: core::ptr::null_mut(),
36701        }
36702    }
36703}
36704///[`VkScreenBufferPropertiesQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkScreenBufferPropertiesQNX.html)
36705/**
36706Provided by **VK_QNX_external_memory_screen_buffer**.*/
36707/**
36708**Returned only**, filled by Vulkan, not constructed by the application.*/
36709///
36710///# Extended By
36711///- [`ScreenBufferFormatPropertiesQNX`]
36712#[repr(C)]
36713#[derive(Copy, Clone, Debug)]
36714#[doc(alias = "VkScreenBufferPropertiesQNX")]
36715pub struct ScreenBufferPropertiesQNX {
36716    ///Must be `VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX`.
36717    pub s_type: StructureType,
36718    ///Optional, may be null.
36719    pub p_next: *mut core::ffi::c_void,
36720    pub allocation_size: u64,
36721    pub memory_type_bits: u32,
36722}
36723impl Default for ScreenBufferPropertiesQNX {
36724    #[inline]
36725    fn default() -> Self {
36726        Self {
36727            s_type: StructureType::from_raw(1000529000i32),
36728            p_next: core::ptr::null_mut(),
36729            allocation_size: Default::default(),
36730            memory_type_bits: Default::default(),
36731        }
36732    }
36733}
36734///[`VkScreenBufferFormatPropertiesQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkScreenBufferFormatPropertiesQNX.html)
36735/**
36736Provided by **VK_QNX_external_memory_screen_buffer**.*/
36737/**
36738**Returned only**, filled by Vulkan, not constructed by the application.*/
36739///
36740///# Extends
36741///- [`ScreenBufferPropertiesQNX`]
36742#[repr(C)]
36743#[derive(Copy, Clone, Debug)]
36744#[doc(alias = "VkScreenBufferFormatPropertiesQNX")]
36745pub struct ScreenBufferFormatPropertiesQNX {
36746    ///Must be `VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX`.
36747    pub s_type: StructureType,
36748    ///Optional, may be null.
36749    pub p_next: *mut core::ffi::c_void,
36750    pub format: Format,
36751    pub external_format: u64,
36752    pub screen_usage: u64,
36753    pub format_features: FormatFeatureFlags,
36754    pub sampler_ycbcr_conversion_components: ComponentMapping,
36755    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
36756    pub suggested_ycbcr_range: SamplerYcbcrRange,
36757    pub suggested_x_chroma_offset: ChromaLocation,
36758    pub suggested_y_chroma_offset: ChromaLocation,
36759}
36760impl Default for ScreenBufferFormatPropertiesQNX {
36761    #[inline]
36762    fn default() -> Self {
36763        Self {
36764            s_type: StructureType::from_raw(1000529001i32),
36765            p_next: core::ptr::null_mut(),
36766            format: Default::default(),
36767            external_format: Default::default(),
36768            screen_usage: Default::default(),
36769            format_features: Default::default(),
36770            sampler_ycbcr_conversion_components: Default::default(),
36771            suggested_ycbcr_model: Default::default(),
36772            suggested_ycbcr_range: Default::default(),
36773            suggested_x_chroma_offset: Default::default(),
36774            suggested_y_chroma_offset: Default::default(),
36775        }
36776    }
36777}
36778///[`VkExternalFormatQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalFormatQNX.html)
36779/**
36780Provided by **VK_QNX_external_memory_screen_buffer**.*/
36781///
36782///# Extends
36783///- [`ImageCreateInfo`]
36784///- [`SamplerYcbcrConversionCreateInfo`]
36785#[repr(C)]
36786#[derive(Copy, Clone, Debug)]
36787#[doc(alias = "VkExternalFormatQNX")]
36788pub struct ExternalFormatQNX {
36789    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX`.
36790    pub s_type: StructureType,
36791    ///Optional, may be null.
36792    pub p_next: *mut core::ffi::c_void,
36793    pub external_format: u64,
36794}
36795impl Default for ExternalFormatQNX {
36796    #[inline]
36797    fn default() -> Self {
36798        Self {
36799            s_type: StructureType::from_raw(1000529003i32),
36800            p_next: core::ptr::null_mut(),
36801            external_format: Default::default(),
36802        }
36803    }
36804}
36805///[`VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX.html)
36806/**
36807Provided by **VK_QNX_external_memory_screen_buffer**.*/
36808///
36809///# Extends
36810///- [`PhysicalDeviceFeatures2`]
36811///- [`DeviceCreateInfo`]
36812#[repr(C)]
36813#[derive(Copy, Clone, Debug)]
36814#[doc(alias = "VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX")]
36815pub struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
36816    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX`.
36817    pub s_type: StructureType,
36818    ///Optional, may be null.
36819    pub p_next: *mut core::ffi::c_void,
36820    pub screen_buffer_import: u32,
36821}
36822impl Default for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
36823    #[inline]
36824    fn default() -> Self {
36825        Self {
36826            s_type: StructureType::from_raw(1000529004i32),
36827            p_next: core::ptr::null_mut(),
36828            screen_buffer_import: Default::default(),
36829        }
36830    }
36831}
36832///[`VkPhysicalDeviceCooperativeMatrixFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.html)
36833/**
36834Provided by **VK_KHR_cooperative_matrix**.*/
36835///
36836///# Extends
36837///- [`PhysicalDeviceFeatures2`]
36838///- [`DeviceCreateInfo`]
36839#[repr(C)]
36840#[derive(Copy, Clone, Debug)]
36841#[doc(alias = "VkPhysicalDeviceCooperativeMatrixFeaturesKHR")]
36842pub struct PhysicalDeviceCooperativeMatrixFeaturesKHR {
36843    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR`.
36844    pub s_type: StructureType,
36845    ///Optional, may be null.
36846    pub p_next: *mut core::ffi::c_void,
36847    pub cooperative_matrix: u32,
36848    pub cooperative_matrix_robust_buffer_access: u32,
36849}
36850impl Default for PhysicalDeviceCooperativeMatrixFeaturesKHR {
36851    #[inline]
36852    fn default() -> Self {
36853        Self {
36854            s_type: StructureType::from_raw(1000506000i32),
36855            p_next: core::ptr::null_mut(),
36856            cooperative_matrix: Default::default(),
36857            cooperative_matrix_robust_buffer_access: Default::default(),
36858        }
36859    }
36860}
36861///[`VkCooperativeMatrixPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeMatrixPropertiesKHR.html)
36862/**
36863Provided by **VK_KHR_cooperative_matrix**.*/
36864/**
36865**Returned only**, filled by Vulkan, not constructed by the application.*/
36866#[repr(C)]
36867#[derive(Copy, Clone, Debug)]
36868#[doc(alias = "VkCooperativeMatrixPropertiesKHR")]
36869pub struct CooperativeMatrixPropertiesKHR {
36870    ///Must be `VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR`.
36871    pub s_type: StructureType,
36872    ///Optional, may be null.
36873    pub p_next: *mut core::ffi::c_void,
36874    pub m_size: u32,
36875    pub n_size: u32,
36876    pub k_size: u32,
36877    pub a_type: ComponentTypeKHR,
36878    pub b_type: ComponentTypeKHR,
36879    pub c_type: ComponentTypeKHR,
36880    pub result_type: ComponentTypeKHR,
36881    pub saturating_accumulation: u32,
36882    pub scope: ScopeKHR,
36883}
36884impl Default for CooperativeMatrixPropertiesKHR {
36885    #[inline]
36886    fn default() -> Self {
36887        Self {
36888            s_type: StructureType::from_raw(1000506001i32),
36889            p_next: core::ptr::null_mut(),
36890            m_size: Default::default(),
36891            n_size: Default::default(),
36892            k_size: Default::default(),
36893            a_type: Default::default(),
36894            b_type: Default::default(),
36895            c_type: Default::default(),
36896            result_type: Default::default(),
36897            saturating_accumulation: Default::default(),
36898            scope: Default::default(),
36899        }
36900    }
36901}
36902///[`VkPhysicalDeviceCooperativeMatrixPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixPropertiesKHR.html)
36903/**
36904Provided by **VK_KHR_cooperative_matrix**.*/
36905/**
36906**Returned only**, filled by Vulkan, not constructed by the application.*/
36907///
36908///# Extends
36909///- [`PhysicalDeviceProperties2`]
36910#[repr(C)]
36911#[derive(Copy, Clone, Debug)]
36912#[doc(alias = "VkPhysicalDeviceCooperativeMatrixPropertiesKHR")]
36913pub struct PhysicalDeviceCooperativeMatrixPropertiesKHR {
36914    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR`.
36915    pub s_type: StructureType,
36916    ///Optional, may be null.
36917    pub p_next: *mut core::ffi::c_void,
36918    pub cooperative_matrix_supported_stages: ShaderStageFlags,
36919}
36920impl Default for PhysicalDeviceCooperativeMatrixPropertiesKHR {
36921    #[inline]
36922    fn default() -> Self {
36923        Self {
36924            s_type: StructureType::from_raw(1000506002i32),
36925            p_next: core::ptr::null_mut(),
36926            cooperative_matrix_supported_stages: Default::default(),
36927        }
36928    }
36929}
36930///[`VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM.html)
36931/**
36932Provided by **VK_QCOM_cooperative_matrix_conversion**.*/
36933///
36934///# Extends
36935///- [`PhysicalDeviceFeatures2`]
36936///- [`DeviceCreateInfo`]
36937#[repr(C)]
36938#[derive(Copy, Clone, Debug)]
36939#[doc(alias = "VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM")]
36940pub struct PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
36941    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_CONVERSION_FEATURES_QCOM`.
36942    pub s_type: StructureType,
36943    ///Optional, may be null.
36944    pub p_next: *mut core::ffi::c_void,
36945    pub cooperative_matrix_conversion: u32,
36946}
36947impl Default for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
36948    #[inline]
36949    fn default() -> Self {
36950        Self {
36951            s_type: StructureType::from_raw(1000172000i32),
36952            p_next: core::ptr::null_mut(),
36953            cooperative_matrix_conversion: Default::default(),
36954        }
36955    }
36956}
36957///[`VkPhysicalDeviceShaderEnqueuePropertiesAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderEnqueuePropertiesAMDX.html)
36958/**
36959Provided by **VK_AMDX_shader_enqueue**.*/
36960/**
36961**Returned only**, filled by Vulkan, not constructed by the application.*/
36962///
36963///# Extends
36964///- [`PhysicalDeviceProperties2`]
36965#[repr(C)]
36966#[derive(Copy, Clone, Debug)]
36967#[doc(alias = "VkPhysicalDeviceShaderEnqueuePropertiesAMDX")]
36968pub struct PhysicalDeviceShaderEnqueuePropertiesAMDX {
36969    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX`.
36970    pub s_type: StructureType,
36971    ///Optional, may be null.
36972    pub p_next: *mut core::ffi::c_void,
36973    pub max_execution_graph_depth: u32,
36974    pub max_execution_graph_shader_output_nodes: u32,
36975    pub max_execution_graph_shader_payload_size: u32,
36976    pub max_execution_graph_shader_payload_count: u32,
36977    pub execution_graph_dispatch_address_alignment: u32,
36978    pub max_execution_graph_workgroup_count: [u32; 3usize],
36979    pub max_execution_graph_workgroups: u32,
36980}
36981impl Default for PhysicalDeviceShaderEnqueuePropertiesAMDX {
36982    #[inline]
36983    fn default() -> Self {
36984        Self {
36985            s_type: StructureType::from_raw(1000134001i32),
36986            p_next: core::ptr::null_mut(),
36987            max_execution_graph_depth: Default::default(),
36988            max_execution_graph_shader_output_nodes: Default::default(),
36989            max_execution_graph_shader_payload_size: Default::default(),
36990            max_execution_graph_shader_payload_count: Default::default(),
36991            execution_graph_dispatch_address_alignment: Default::default(),
36992            max_execution_graph_workgroup_count: unsafe { core::mem::zeroed() },
36993            max_execution_graph_workgroups: Default::default(),
36994        }
36995    }
36996}
36997///[`VkPhysicalDeviceShaderEnqueueFeaturesAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.html)
36998/**
36999Provided by **VK_AMDX_shader_enqueue**.*/
37000///
37001///# Extends
37002///- [`PhysicalDeviceFeatures2`]
37003///- [`DeviceCreateInfo`]
37004#[repr(C)]
37005#[derive(Copy, Clone, Debug)]
37006#[doc(alias = "VkPhysicalDeviceShaderEnqueueFeaturesAMDX")]
37007pub struct PhysicalDeviceShaderEnqueueFeaturesAMDX {
37008    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX`.
37009    pub s_type: StructureType,
37010    ///Optional, may be null.
37011    pub p_next: *mut core::ffi::c_void,
37012    pub shader_enqueue: u32,
37013    pub shader_mesh_enqueue: u32,
37014}
37015impl Default for PhysicalDeviceShaderEnqueueFeaturesAMDX {
37016    #[inline]
37017    fn default() -> Self {
37018        Self {
37019            s_type: StructureType::from_raw(1000134000i32),
37020            p_next: core::ptr::null_mut(),
37021            shader_enqueue: Default::default(),
37022            shader_mesh_enqueue: Default::default(),
37023        }
37024    }
37025}
37026///[`VkExecutionGraphPipelineCreateInfoAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExecutionGraphPipelineCreateInfoAMDX.html)
37027/**
37028Provided by **VK_AMDX_shader_enqueue**.*/
37029///
37030///# Extended By
37031///- [`PipelineCompilerControlCreateInfoAMD`]
37032///- [`PipelineCreationFeedbackCreateInfo`]
37033#[repr(C)]
37034#[derive(Copy, Clone, Debug)]
37035#[doc(alias = "VkExecutionGraphPipelineCreateInfoAMDX")]
37036pub struct ExecutionGraphPipelineCreateInfoAMDX {
37037    ///Must be `VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX`.
37038    pub s_type: StructureType,
37039    ///Optional, may be null.
37040    pub p_next: *const core::ffi::c_void,
37041    pub flags: PipelineCreateFlags,
37042    ///Length of `p_stages`.
37043    pub stage_count: u32,
37044    ///Optional, may be null.
37045    pub p_stages: *const PipelineShaderStageCreateInfo,
37046    ///Optional, may be null.
37047    pub p_library_info: *const PipelineLibraryCreateInfoKHR,
37048    pub layout: PipelineLayout,
37049    pub base_pipeline_handle: Pipeline,
37050    pub base_pipeline_index: i32,
37051}
37052impl Default for ExecutionGraphPipelineCreateInfoAMDX {
37053    #[inline]
37054    fn default() -> Self {
37055        Self {
37056            s_type: StructureType::from_raw(1000134003i32),
37057            p_next: core::ptr::null(),
37058            flags: Default::default(),
37059            stage_count: Default::default(),
37060            p_stages: core::ptr::null(),
37061            p_library_info: core::ptr::null(),
37062            layout: Default::default(),
37063            base_pipeline_handle: Default::default(),
37064            base_pipeline_index: Default::default(),
37065        }
37066    }
37067}
37068///[`VkPipelineShaderStageNodeCreateInfoAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineShaderStageNodeCreateInfoAMDX.html)
37069/**
37070Provided by **VK_AMDX_shader_enqueue**.*/
37071///
37072///# Extends
37073///- [`PipelineShaderStageCreateInfo`]
37074#[repr(C)]
37075#[derive(Copy, Clone, Debug)]
37076#[doc(alias = "VkPipelineShaderStageNodeCreateInfoAMDX")]
37077pub struct PipelineShaderStageNodeCreateInfoAMDX {
37078    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX`.
37079    pub s_type: StructureType,
37080    ///Optional, may be null.
37081    pub p_next: *const core::ffi::c_void,
37082    ///Optional, may be null.
37083    pub p_name: *const core::ffi::c_char,
37084    pub index: u32,
37085}
37086impl Default for PipelineShaderStageNodeCreateInfoAMDX {
37087    #[inline]
37088    fn default() -> Self {
37089        Self {
37090            s_type: StructureType::from_raw(1000134004i32),
37091            p_next: core::ptr::null(),
37092            p_name: core::ptr::null(),
37093            index: Default::default(),
37094        }
37095    }
37096}
37097///[`VkExecutionGraphPipelineScratchSizeAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExecutionGraphPipelineScratchSizeAMDX.html)
37098/**
37099Provided by **VK_AMDX_shader_enqueue**.*/
37100#[repr(C)]
37101#[derive(Copy, Clone, Debug)]
37102#[doc(alias = "VkExecutionGraphPipelineScratchSizeAMDX")]
37103pub struct ExecutionGraphPipelineScratchSizeAMDX {
37104    ///Must be `VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX`.
37105    pub s_type: StructureType,
37106    ///Optional, may be null.
37107    pub p_next: *mut core::ffi::c_void,
37108    pub min_size: u64,
37109    pub max_size: u64,
37110    pub size_granularity: u64,
37111}
37112impl Default for ExecutionGraphPipelineScratchSizeAMDX {
37113    #[inline]
37114    fn default() -> Self {
37115        Self {
37116            s_type: StructureType::from_raw(1000134002i32),
37117            p_next: core::ptr::null_mut(),
37118            min_size: Default::default(),
37119            max_size: Default::default(),
37120            size_granularity: Default::default(),
37121        }
37122    }
37123}
37124///[`VkDispatchGraphInfoAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchGraphInfoAMDX.html)
37125/**
37126Provided by **VK_AMDX_shader_enqueue**.*/
37127#[repr(C)]
37128#[derive(Copy, Clone, Debug)]
37129#[doc(alias = "VkDispatchGraphInfoAMDX")]
37130pub struct DispatchGraphInfoAMDX {
37131    pub node_index: u32,
37132    pub payload_count: u32,
37133    pub payloads: DeviceOrHostAddressConstAMDX,
37134    pub payload_stride: u64,
37135}
37136impl Default for DispatchGraphInfoAMDX {
37137    #[inline]
37138    fn default() -> Self {
37139        unsafe { core::mem::zeroed() }
37140    }
37141}
37142///[`VkDispatchGraphCountInfoAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchGraphCountInfoAMDX.html)
37143/**
37144Provided by **VK_AMDX_shader_enqueue**.*/
37145#[repr(C)]
37146#[derive(Copy, Clone, Debug)]
37147#[doc(alias = "VkDispatchGraphCountInfoAMDX")]
37148pub struct DispatchGraphCountInfoAMDX {
37149    pub count: u32,
37150    pub infos: DeviceOrHostAddressConstAMDX,
37151    pub stride: u64,
37152}
37153impl Default for DispatchGraphCountInfoAMDX {
37154    #[inline]
37155    fn default() -> Self {
37156        unsafe { core::mem::zeroed() }
37157    }
37158}
37159///[`VkPhysicalDeviceAntiLagFeaturesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAntiLagFeaturesAMD.html)
37160/**
37161Provided by **VK_AMD_anti_lag**.*/
37162///
37163///# Extends
37164///- [`PhysicalDeviceFeatures2`]
37165///- [`DeviceCreateInfo`]
37166#[repr(C)]
37167#[derive(Copy, Clone, Debug)]
37168#[doc(alias = "VkPhysicalDeviceAntiLagFeaturesAMD")]
37169pub struct PhysicalDeviceAntiLagFeaturesAMD {
37170    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD`.
37171    pub s_type: StructureType,
37172    ///Optional, may be null.
37173    pub p_next: *mut core::ffi::c_void,
37174    pub anti_lag: u32,
37175}
37176impl Default for PhysicalDeviceAntiLagFeaturesAMD {
37177    #[inline]
37178    fn default() -> Self {
37179        Self {
37180            s_type: StructureType::from_raw(1000476000i32),
37181            p_next: core::ptr::null_mut(),
37182            anti_lag: Default::default(),
37183        }
37184    }
37185}
37186///[`VkAntiLagDataAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAntiLagDataAMD.html)
37187/**
37188Provided by **VK_AMD_anti_lag**.*/
37189#[repr(C)]
37190#[derive(Copy, Clone, Debug)]
37191#[doc(alias = "VkAntiLagDataAMD")]
37192pub struct AntiLagDataAMD {
37193    ///Must be `VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD`.
37194    pub s_type: StructureType,
37195    ///Optional, may be null.
37196    pub p_next: *const core::ffi::c_void,
37197    pub mode: AntiLagModeAMD,
37198    pub max_fps: u32,
37199    ///Optional, may be null.
37200    pub p_presentation_info: *const AntiLagPresentationInfoAMD,
37201}
37202impl Default for AntiLagDataAMD {
37203    #[inline]
37204    fn default() -> Self {
37205        Self {
37206            s_type: StructureType::from_raw(1000476001i32),
37207            p_next: core::ptr::null(),
37208            mode: Default::default(),
37209            max_fps: Default::default(),
37210            p_presentation_info: core::ptr::null(),
37211        }
37212    }
37213}
37214///[`VkAntiLagPresentationInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAntiLagPresentationInfoAMD.html)
37215/**
37216Provided by **VK_AMD_anti_lag**.*/
37217#[repr(C)]
37218#[derive(Copy, Clone, Debug)]
37219#[doc(alias = "VkAntiLagPresentationInfoAMD")]
37220pub struct AntiLagPresentationInfoAMD {
37221    ///Must be `VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD`.
37222    pub s_type: StructureType,
37223    ///Optional, may be null.
37224    pub p_next: *mut core::ffi::c_void,
37225    pub stage: AntiLagStageAMD,
37226    pub frame_index: u64,
37227}
37228impl Default for AntiLagPresentationInfoAMD {
37229    #[inline]
37230    fn default() -> Self {
37231        Self {
37232            s_type: StructureType::from_raw(1000476002i32),
37233            p_next: core::ptr::null_mut(),
37234            stage: Default::default(),
37235            frame_index: Default::default(),
37236        }
37237    }
37238}
37239///[`VkBindMemoryStatus`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindMemoryStatus.html)
37240/**
37241Provided by **VK_BASE_VERSION_1_4**.*/
37242///
37243///# Extends
37244///- [`BindBufferMemoryInfo`]
37245///- [`BindImageMemoryInfo`]
37246#[repr(C)]
37247#[derive(Copy, Clone, Debug)]
37248#[doc(alias = "VkBindMemoryStatus")]
37249pub struct BindMemoryStatus {
37250    ///Must be `VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS`.
37251    pub s_type: StructureType,
37252    ///Optional, may be null.
37253    pub p_next: *const core::ffi::c_void,
37254    pub p_result: *mut Result,
37255}
37256impl Default for BindMemoryStatus {
37257    #[inline]
37258    fn default() -> Self {
37259        Self {
37260            s_type: StructureType::from_raw(1000545002i32),
37261            p_next: core::ptr::null(),
37262            p_result: core::ptr::null_mut(),
37263        }
37264    }
37265}
37266///[`VkPhysicalDeviceTileMemoryHeapFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTileMemoryHeapFeaturesQCOM.html)
37267/**
37268Provided by **VK_QCOM_tile_memory_heap**.*/
37269///
37270///# Extends
37271///- [`PhysicalDeviceFeatures2`]
37272///- [`DeviceCreateInfo`]
37273#[repr(C)]
37274#[derive(Copy, Clone, Debug)]
37275#[doc(alias = "VkPhysicalDeviceTileMemoryHeapFeaturesQCOM")]
37276pub struct PhysicalDeviceTileMemoryHeapFeaturesQCOM {
37277    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM`.
37278    pub s_type: StructureType,
37279    ///Optional, may be null.
37280    pub p_next: *mut core::ffi::c_void,
37281    pub tile_memory_heap: u32,
37282}
37283impl Default for PhysicalDeviceTileMemoryHeapFeaturesQCOM {
37284    #[inline]
37285    fn default() -> Self {
37286        Self {
37287            s_type: StructureType::from_raw(1000547000i32),
37288            p_next: core::ptr::null_mut(),
37289            tile_memory_heap: Default::default(),
37290        }
37291    }
37292}
37293///[`VkPhysicalDeviceTileMemoryHeapPropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTileMemoryHeapPropertiesQCOM.html)
37294/**
37295Provided by **VK_QCOM_tile_memory_heap**.*/
37296///
37297///# Extends
37298///- [`PhysicalDeviceProperties2`]
37299#[repr(C)]
37300#[derive(Copy, Clone, Debug)]
37301#[doc(alias = "VkPhysicalDeviceTileMemoryHeapPropertiesQCOM")]
37302pub struct PhysicalDeviceTileMemoryHeapPropertiesQCOM {
37303    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM`.
37304    pub s_type: StructureType,
37305    ///Optional, may be null.
37306    pub p_next: *mut core::ffi::c_void,
37307    pub queue_submit_boundary: u32,
37308    pub tile_buffer_transfers: u32,
37309}
37310impl Default for PhysicalDeviceTileMemoryHeapPropertiesQCOM {
37311    #[inline]
37312    fn default() -> Self {
37313        Self {
37314            s_type: StructureType::from_raw(1000547001i32),
37315            p_next: core::ptr::null_mut(),
37316            queue_submit_boundary: Default::default(),
37317            tile_buffer_transfers: Default::default(),
37318        }
37319    }
37320}
37321///[`VkTileMemorySizeInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTileMemorySizeInfoQCOM.html)
37322/**
37323Provided by **VK_QCOM_tile_memory_heap**.*/
37324///
37325///# Extends
37326///- [`RenderPassCreateInfo`]
37327///- [`RenderPassCreateInfo2`]
37328///- [`RenderingInfo`]
37329#[repr(C)]
37330#[derive(Copy, Clone, Debug)]
37331#[doc(alias = "VkTileMemorySizeInfoQCOM")]
37332pub struct TileMemorySizeInfoQCOM {
37333    ///Must be `VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM`.
37334    pub s_type: StructureType,
37335    ///Optional, may be null.
37336    pub p_next: *const core::ffi::c_void,
37337    pub size: u64,
37338}
37339impl Default for TileMemorySizeInfoQCOM {
37340    #[inline]
37341    fn default() -> Self {
37342        Self {
37343            s_type: StructureType::from_raw(1000547004i32),
37344            p_next: core::ptr::null(),
37345            size: Default::default(),
37346        }
37347    }
37348}
37349///[`VkTileMemoryRequirementsQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTileMemoryRequirementsQCOM.html)
37350/**
37351Provided by **VK_QCOM_tile_memory_heap**.*/
37352///
37353///# Extends
37354///- [`MemoryRequirements2`]
37355#[repr(C)]
37356#[derive(Copy, Clone, Debug)]
37357#[doc(alias = "VkTileMemoryRequirementsQCOM")]
37358pub struct TileMemoryRequirementsQCOM {
37359    ///Must be `VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM`.
37360    pub s_type: StructureType,
37361    ///Optional, may be null.
37362    pub p_next: *mut core::ffi::c_void,
37363    pub size: u64,
37364    pub alignment: u64,
37365}
37366impl Default for TileMemoryRequirementsQCOM {
37367    #[inline]
37368    fn default() -> Self {
37369        Self {
37370            s_type: StructureType::from_raw(1000547002i32),
37371            p_next: core::ptr::null_mut(),
37372            size: Default::default(),
37373            alignment: Default::default(),
37374        }
37375    }
37376}
37377///[`VkBindDescriptorSetsInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindDescriptorSetsInfo.html)
37378/**
37379Provided by **VK_COMPUTE_VERSION_1_4**.*/
37380///
37381///# Extended By
37382///- [`PipelineLayoutCreateInfo`]
37383#[repr(C)]
37384#[derive(Copy, Clone, Debug)]
37385#[doc(alias = "VkBindDescriptorSetsInfo")]
37386pub struct BindDescriptorSetsInfo {
37387    ///Must be `VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO`.
37388    pub s_type: StructureType,
37389    ///Optional, may be null.
37390    pub p_next: *const core::ffi::c_void,
37391    pub stage_flags: ShaderStageFlags,
37392    pub layout: PipelineLayout,
37393    pub first_set: u32,
37394    ///Length of `p_descriptor_sets`.
37395    pub descriptor_set_count: u32,
37396    pub p_descriptor_sets: *const DescriptorSet,
37397    ///Length of `p_dynamic_offsets`.
37398    pub dynamic_offset_count: u32,
37399    ///Optional, may be null.
37400    pub p_dynamic_offsets: *const u32,
37401}
37402impl Default for BindDescriptorSetsInfo {
37403    #[inline]
37404    fn default() -> Self {
37405        Self {
37406            s_type: StructureType::from_raw(1000545003i32),
37407            p_next: core::ptr::null(),
37408            stage_flags: Default::default(),
37409            layout: Default::default(),
37410            first_set: Default::default(),
37411            descriptor_set_count: Default::default(),
37412            p_descriptor_sets: core::ptr::null(),
37413            dynamic_offset_count: Default::default(),
37414            p_dynamic_offsets: core::ptr::null(),
37415        }
37416    }
37417}
37418///[`VkPushConstantsInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushConstantsInfo.html)
37419/**
37420Provided by **VK_COMPUTE_VERSION_1_4**.*/
37421///
37422///# Extended By
37423///- [`PipelineLayoutCreateInfo`]
37424///- [`PushConstantBankInfoNV`]
37425#[repr(C)]
37426#[derive(Copy, Clone, Debug)]
37427#[doc(alias = "VkPushConstantsInfo")]
37428pub struct PushConstantsInfo {
37429    ///Must be `VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO`.
37430    pub s_type: StructureType,
37431    ///Optional, may be null.
37432    pub p_next: *const core::ffi::c_void,
37433    pub layout: PipelineLayout,
37434    pub stage_flags: ShaderStageFlags,
37435    pub offset: u32,
37436    ///Length of `p_values`.
37437    pub size: u32,
37438    pub p_values: *const core::ffi::c_void,
37439}
37440impl Default for PushConstantsInfo {
37441    #[inline]
37442    fn default() -> Self {
37443        Self {
37444            s_type: StructureType::from_raw(1000545004i32),
37445            p_next: core::ptr::null(),
37446            layout: Default::default(),
37447            stage_flags: Default::default(),
37448            offset: Default::default(),
37449            size: Default::default(),
37450            p_values: core::ptr::null(),
37451        }
37452    }
37453}
37454///[`VkPushDescriptorSetInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushDescriptorSetInfo.html)
37455/**
37456Provided by **VK_COMPUTE_VERSION_1_4**.*/
37457///
37458///# Extended By
37459///- [`PipelineLayoutCreateInfo`]
37460#[repr(C)]
37461#[derive(Copy, Clone, Debug)]
37462#[doc(alias = "VkPushDescriptorSetInfo")]
37463pub struct PushDescriptorSetInfo {
37464    ///Must be `VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO`.
37465    pub s_type: StructureType,
37466    ///Optional, may be null.
37467    pub p_next: *const core::ffi::c_void,
37468    pub stage_flags: ShaderStageFlags,
37469    pub layout: PipelineLayout,
37470    pub set: u32,
37471    ///Length of `p_descriptor_writes`.
37472    pub descriptor_write_count: u32,
37473    pub p_descriptor_writes: *const WriteDescriptorSet,
37474}
37475impl Default for PushDescriptorSetInfo {
37476    #[inline]
37477    fn default() -> Self {
37478        Self {
37479            s_type: StructureType::from_raw(1000545005i32),
37480            p_next: core::ptr::null(),
37481            stage_flags: Default::default(),
37482            layout: Default::default(),
37483            set: Default::default(),
37484            descriptor_write_count: Default::default(),
37485            p_descriptor_writes: core::ptr::null(),
37486        }
37487    }
37488}
37489///[`VkPushDescriptorSetWithTemplateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushDescriptorSetWithTemplateInfo.html)
37490/**
37491Provided by **VK_COMPUTE_VERSION_1_4**.*/
37492///
37493///# Extended By
37494///- [`PipelineLayoutCreateInfo`]
37495#[repr(C)]
37496#[derive(Copy, Clone, Debug)]
37497#[doc(alias = "VkPushDescriptorSetWithTemplateInfo")]
37498pub struct PushDescriptorSetWithTemplateInfo {
37499    ///Must be `VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO`.
37500    pub s_type: StructureType,
37501    ///Optional, may be null.
37502    pub p_next: *const core::ffi::c_void,
37503    pub descriptor_update_template: DescriptorUpdateTemplate,
37504    pub layout: PipelineLayout,
37505    pub set: u32,
37506    pub p_data: *const core::ffi::c_void,
37507}
37508impl Default for PushDescriptorSetWithTemplateInfo {
37509    #[inline]
37510    fn default() -> Self {
37511        Self {
37512            s_type: StructureType::from_raw(1000545006i32),
37513            p_next: core::ptr::null(),
37514            descriptor_update_template: Default::default(),
37515            layout: Default::default(),
37516            set: Default::default(),
37517            p_data: core::ptr::null(),
37518        }
37519    }
37520}
37521///[`VkSetDescriptorBufferOffsetsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSetDescriptorBufferOffsetsInfoEXT.html)
37522/**
37523Provided by **VK_KHR_maintenance6**.*/
37524///
37525///# Extended By
37526///- [`PipelineLayoutCreateInfo`]
37527#[repr(C)]
37528#[derive(Copy, Clone, Debug)]
37529#[doc(alias = "VkSetDescriptorBufferOffsetsInfoEXT")]
37530pub struct SetDescriptorBufferOffsetsInfoEXT {
37531    ///Must be `VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT`.
37532    pub s_type: StructureType,
37533    ///Optional, may be null.
37534    pub p_next: *const core::ffi::c_void,
37535    pub stage_flags: ShaderStageFlags,
37536    pub layout: PipelineLayout,
37537    pub first_set: u32,
37538    ///Length of `p_offsets`.
37539    pub set_count: u32,
37540    pub p_buffer_indices: *const u32,
37541    pub p_offsets: *const u64,
37542}
37543impl Default for SetDescriptorBufferOffsetsInfoEXT {
37544    #[inline]
37545    fn default() -> Self {
37546        Self {
37547            s_type: StructureType::from_raw(1000545007i32),
37548            p_next: core::ptr::null(),
37549            stage_flags: Default::default(),
37550            layout: Default::default(),
37551            first_set: Default::default(),
37552            set_count: Default::default(),
37553            p_buffer_indices: core::ptr::null(),
37554            p_offsets: core::ptr::null(),
37555        }
37556    }
37557}
37558///[`VkBindDescriptorBufferEmbeddedSamplersInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindDescriptorBufferEmbeddedSamplersInfoEXT.html)
37559/**
37560Provided by **VK_KHR_maintenance6**.*/
37561///
37562///# Extended By
37563///- [`PipelineLayoutCreateInfo`]
37564#[repr(C)]
37565#[derive(Copy, Clone, Debug)]
37566#[doc(alias = "VkBindDescriptorBufferEmbeddedSamplersInfoEXT")]
37567pub struct BindDescriptorBufferEmbeddedSamplersInfoEXT {
37568    ///Must be `VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT`.
37569    pub s_type: StructureType,
37570    ///Optional, may be null.
37571    pub p_next: *const core::ffi::c_void,
37572    pub stage_flags: ShaderStageFlags,
37573    pub layout: PipelineLayout,
37574    pub set: u32,
37575}
37576impl Default for BindDescriptorBufferEmbeddedSamplersInfoEXT {
37577    #[inline]
37578    fn default() -> Self {
37579        Self {
37580            s_type: StructureType::from_raw(1000545008i32),
37581            p_next: core::ptr::null(),
37582            stage_flags: Default::default(),
37583            layout: Default::default(),
37584            set: Default::default(),
37585        }
37586    }
37587}
37588///[`VkPhysicalDeviceCubicClampFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCubicClampFeaturesQCOM.html)
37589/**
37590Provided by **VK_QCOM_filter_cubic_clamp**.*/
37591///
37592///# Extends
37593///- [`PhysicalDeviceFeatures2`]
37594///- [`DeviceCreateInfo`]
37595#[repr(C)]
37596#[derive(Copy, Clone, Debug)]
37597#[doc(alias = "VkPhysicalDeviceCubicClampFeaturesQCOM")]
37598pub struct PhysicalDeviceCubicClampFeaturesQCOM {
37599    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM`.
37600    pub s_type: StructureType,
37601    ///Optional, may be null.
37602    pub p_next: *mut core::ffi::c_void,
37603    pub cubic_range_clamp: u32,
37604}
37605impl Default for PhysicalDeviceCubicClampFeaturesQCOM {
37606    #[inline]
37607    fn default() -> Self {
37608        Self {
37609            s_type: StructureType::from_raw(1000521000i32),
37610            p_next: core::ptr::null_mut(),
37611            cubic_range_clamp: Default::default(),
37612        }
37613    }
37614}
37615///[`VkPhysicalDeviceYcbcrDegammaFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceYcbcrDegammaFeaturesQCOM.html)
37616/**
37617Provided by **VK_QCOM_ycbcr_degamma**.*/
37618///
37619///# Extends
37620///- [`PhysicalDeviceFeatures2`]
37621///- [`DeviceCreateInfo`]
37622#[repr(C)]
37623#[derive(Copy, Clone, Debug)]
37624#[doc(alias = "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM")]
37625pub struct PhysicalDeviceYcbcrDegammaFeaturesQCOM {
37626    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM`.
37627    pub s_type: StructureType,
37628    ///Optional, may be null.
37629    pub p_next: *mut core::ffi::c_void,
37630    pub ycbcr_degamma: u32,
37631}
37632impl Default for PhysicalDeviceYcbcrDegammaFeaturesQCOM {
37633    #[inline]
37634    fn default() -> Self {
37635        Self {
37636            s_type: StructureType::from_raw(1000520000i32),
37637            p_next: core::ptr::null_mut(),
37638            ycbcr_degamma: Default::default(),
37639        }
37640    }
37641}
37642///[`VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.html)
37643/**
37644Provided by **VK_QCOM_ycbcr_degamma**.*/
37645///
37646///# Extends
37647///- [`SamplerYcbcrConversionCreateInfo`]
37648#[repr(C)]
37649#[derive(Copy, Clone, Debug)]
37650#[doc(alias = "VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM")]
37651pub struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
37652    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM`.
37653    pub s_type: StructureType,
37654    ///Optional, may be null.
37655    pub p_next: *mut core::ffi::c_void,
37656    pub enable_y_degamma: u32,
37657    pub enable_cb_cr_degamma: u32,
37658}
37659impl Default for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
37660    #[inline]
37661    fn default() -> Self {
37662        Self {
37663            s_type: StructureType::from_raw(1000520001i32),
37664            p_next: core::ptr::null_mut(),
37665            enable_y_degamma: Default::default(),
37666            enable_cb_cr_degamma: Default::default(),
37667        }
37668    }
37669}
37670///[`VkPhysicalDeviceCubicWeightsFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCubicWeightsFeaturesQCOM.html)
37671/**
37672Provided by **VK_QCOM_filter_cubic_weights**.*/
37673///
37674///# Extends
37675///- [`PhysicalDeviceFeatures2`]
37676///- [`DeviceCreateInfo`]
37677#[repr(C)]
37678#[derive(Copy, Clone, Debug)]
37679#[doc(alias = "VkPhysicalDeviceCubicWeightsFeaturesQCOM")]
37680pub struct PhysicalDeviceCubicWeightsFeaturesQCOM {
37681    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM`.
37682    pub s_type: StructureType,
37683    ///Optional, may be null.
37684    pub p_next: *mut core::ffi::c_void,
37685    pub selectable_cubic_weights: u32,
37686}
37687impl Default for PhysicalDeviceCubicWeightsFeaturesQCOM {
37688    #[inline]
37689    fn default() -> Self {
37690        Self {
37691            s_type: StructureType::from_raw(1000519001i32),
37692            p_next: core::ptr::null_mut(),
37693            selectable_cubic_weights: Default::default(),
37694        }
37695    }
37696}
37697///[`VkSamplerCubicWeightsCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCubicWeightsCreateInfoQCOM.html)
37698/**
37699Provided by **VK_QCOM_filter_cubic_weights**.*/
37700///
37701///# Extends
37702///- [`SamplerCreateInfo`]
37703#[repr(C)]
37704#[derive(Copy, Clone, Debug)]
37705#[doc(alias = "VkSamplerCubicWeightsCreateInfoQCOM")]
37706pub struct SamplerCubicWeightsCreateInfoQCOM {
37707    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM`.
37708    pub s_type: StructureType,
37709    ///Optional, may be null.
37710    pub p_next: *const core::ffi::c_void,
37711    pub cubic_weights: CubicFilterWeightsQCOM,
37712}
37713impl Default for SamplerCubicWeightsCreateInfoQCOM {
37714    #[inline]
37715    fn default() -> Self {
37716        Self {
37717            s_type: StructureType::from_raw(1000519000i32),
37718            p_next: core::ptr::null(),
37719            cubic_weights: Default::default(),
37720        }
37721    }
37722}
37723///[`VkBlitImageCubicWeightsInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBlitImageCubicWeightsInfoQCOM.html)
37724/**
37725Provided by **VK_QCOM_filter_cubic_weights**.*/
37726///
37727///# Extends
37728///- [`BlitImageInfo2`]
37729#[repr(C)]
37730#[derive(Copy, Clone, Debug)]
37731#[doc(alias = "VkBlitImageCubicWeightsInfoQCOM")]
37732pub struct BlitImageCubicWeightsInfoQCOM {
37733    ///Must be `VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM`.
37734    pub s_type: StructureType,
37735    ///Optional, may be null.
37736    pub p_next: *const core::ffi::c_void,
37737    pub cubic_weights: CubicFilterWeightsQCOM,
37738}
37739impl Default for BlitImageCubicWeightsInfoQCOM {
37740    #[inline]
37741    fn default() -> Self {
37742        Self {
37743            s_type: StructureType::from_raw(1000519002i32),
37744            p_next: core::ptr::null(),
37745            cubic_weights: Default::default(),
37746        }
37747    }
37748}
37749///[`VkPhysicalDeviceImageProcessing2FeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageProcessing2FeaturesQCOM.html)
37750/**
37751Provided by **VK_QCOM_image_processing2**.*/
37752///
37753///# Extends
37754///- [`PhysicalDeviceFeatures2`]
37755///- [`DeviceCreateInfo`]
37756#[repr(C)]
37757#[derive(Copy, Clone, Debug)]
37758#[doc(alias = "VkPhysicalDeviceImageProcessing2FeaturesQCOM")]
37759pub struct PhysicalDeviceImageProcessing2FeaturesQCOM {
37760    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM`.
37761    pub s_type: StructureType,
37762    ///Optional, may be null.
37763    pub p_next: *mut core::ffi::c_void,
37764    pub texture_block_match2: u32,
37765}
37766impl Default for PhysicalDeviceImageProcessing2FeaturesQCOM {
37767    #[inline]
37768    fn default() -> Self {
37769        Self {
37770            s_type: StructureType::from_raw(1000518000i32),
37771            p_next: core::ptr::null_mut(),
37772            texture_block_match2: Default::default(),
37773        }
37774    }
37775}
37776///[`VkPhysicalDeviceImageProcessing2PropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageProcessing2PropertiesQCOM.html)
37777/**
37778Provided by **VK_QCOM_image_processing2**.*/
37779/**
37780**Returned only**, filled by Vulkan, not constructed by the application.*/
37781///
37782///# Extends
37783///- [`PhysicalDeviceProperties2`]
37784#[repr(C)]
37785#[derive(Copy, Clone, Debug)]
37786#[doc(alias = "VkPhysicalDeviceImageProcessing2PropertiesQCOM")]
37787pub struct PhysicalDeviceImageProcessing2PropertiesQCOM {
37788    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM`.
37789    pub s_type: StructureType,
37790    ///Optional, may be null.
37791    pub p_next: *mut core::ffi::c_void,
37792    pub max_block_match_window: Extent2D,
37793}
37794impl Default for PhysicalDeviceImageProcessing2PropertiesQCOM {
37795    #[inline]
37796    fn default() -> Self {
37797        Self {
37798            s_type: StructureType::from_raw(1000518001i32),
37799            p_next: core::ptr::null_mut(),
37800            max_block_match_window: Default::default(),
37801        }
37802    }
37803}
37804///[`VkSamplerBlockMatchWindowCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerBlockMatchWindowCreateInfoQCOM.html)
37805/**
37806Provided by **VK_QCOM_image_processing2**.*/
37807///
37808///# Extends
37809///- [`SamplerCreateInfo`]
37810#[repr(C)]
37811#[derive(Copy, Clone, Debug)]
37812#[doc(alias = "VkSamplerBlockMatchWindowCreateInfoQCOM")]
37813pub struct SamplerBlockMatchWindowCreateInfoQCOM {
37814    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM`.
37815    pub s_type: StructureType,
37816    ///Optional, may be null.
37817    pub p_next: *const core::ffi::c_void,
37818    pub window_extent: Extent2D,
37819    pub window_compare_mode: BlockMatchWindowCompareModeQCOM,
37820}
37821impl Default for SamplerBlockMatchWindowCreateInfoQCOM {
37822    #[inline]
37823    fn default() -> Self {
37824        Self {
37825            s_type: StructureType::from_raw(1000518002i32),
37826            p_next: core::ptr::null(),
37827            window_extent: Default::default(),
37828            window_compare_mode: Default::default(),
37829        }
37830    }
37831}
37832///[`VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV.html)
37833/**
37834Provided by **VK_NV_descriptor_pool_overallocation**.*/
37835///
37836///# Extends
37837///- [`PhysicalDeviceFeatures2`]
37838///- [`DeviceCreateInfo`]
37839#[repr(C)]
37840#[derive(Copy, Clone, Debug)]
37841#[doc(alias = "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV")]
37842pub struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
37843    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV`.
37844    pub s_type: StructureType,
37845    ///Optional, may be null.
37846    pub p_next: *mut core::ffi::c_void,
37847    pub descriptor_pool_overallocation: u32,
37848}
37849impl Default for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
37850    #[inline]
37851    fn default() -> Self {
37852        Self {
37853            s_type: StructureType::from_raw(1000546000i32),
37854            p_next: core::ptr::null_mut(),
37855            descriptor_pool_overallocation: Default::default(),
37856        }
37857    }
37858}
37859///[`VkPhysicalDeviceLayeredDriverPropertiesMSFT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLayeredDriverPropertiesMSFT.html)
37860/**
37861Provided by **VK_MSFT_layered_driver**.*/
37862/**
37863**Returned only**, filled by Vulkan, not constructed by the application.*/
37864///
37865///# Extends
37866///- [`PhysicalDeviceProperties2`]
37867#[repr(C)]
37868#[derive(Copy, Clone, Debug)]
37869#[doc(alias = "VkPhysicalDeviceLayeredDriverPropertiesMSFT")]
37870pub struct PhysicalDeviceLayeredDriverPropertiesMSFT {
37871    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT`.
37872    pub s_type: StructureType,
37873    ///Optional, may be null.
37874    pub p_next: *mut core::ffi::c_void,
37875    pub underlying_api: LayeredDriverUnderlyingApiMSFT,
37876}
37877impl Default for PhysicalDeviceLayeredDriverPropertiesMSFT {
37878    #[inline]
37879    fn default() -> Self {
37880        Self {
37881            s_type: StructureType::from_raw(1000530000i32),
37882            p_next: core::ptr::null_mut(),
37883            underlying_api: Default::default(),
37884        }
37885    }
37886}
37887///[`VkPhysicalDevicePerStageDescriptorSetFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerStageDescriptorSetFeaturesNV.html)
37888/**
37889Provided by **VK_NV_per_stage_descriptor_set**.*/
37890///
37891///# Extends
37892///- [`PhysicalDeviceFeatures2`]
37893///- [`DeviceCreateInfo`]
37894#[repr(C)]
37895#[derive(Copy, Clone, Debug)]
37896#[doc(alias = "VkPhysicalDevicePerStageDescriptorSetFeaturesNV")]
37897pub struct PhysicalDevicePerStageDescriptorSetFeaturesNV {
37898    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV`.
37899    pub s_type: StructureType,
37900    ///Optional, may be null.
37901    pub p_next: *mut core::ffi::c_void,
37902    pub per_stage_descriptor_set: u32,
37903    pub dynamic_pipeline_layout: u32,
37904}
37905impl Default for PhysicalDevicePerStageDescriptorSetFeaturesNV {
37906    #[inline]
37907    fn default() -> Self {
37908        Self {
37909            s_type: StructureType::from_raw(1000516000i32),
37910            p_next: core::ptr::null_mut(),
37911            per_stage_descriptor_set: Default::default(),
37912            dynamic_pipeline_layout: Default::default(),
37913        }
37914    }
37915}
37916///[`VkPhysicalDeviceExternalFormatResolveFeaturesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalFormatResolveFeaturesANDROID.html)
37917/**
37918Provided by **VK_ANDROID_external_format_resolve**.*/
37919///
37920///# Extends
37921///- [`PhysicalDeviceFeatures2`]
37922///- [`DeviceCreateInfo`]
37923#[repr(C)]
37924#[derive(Copy, Clone, Debug)]
37925#[doc(alias = "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID")]
37926pub struct PhysicalDeviceExternalFormatResolveFeaturesANDROID {
37927    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID`.
37928    pub s_type: StructureType,
37929    ///Optional, may be null.
37930    pub p_next: *mut core::ffi::c_void,
37931    pub external_format_resolve: u32,
37932}
37933impl Default for PhysicalDeviceExternalFormatResolveFeaturesANDROID {
37934    #[inline]
37935    fn default() -> Self {
37936        Self {
37937            s_type: StructureType::from_raw(1000468000i32),
37938            p_next: core::ptr::null_mut(),
37939            external_format_resolve: Default::default(),
37940        }
37941    }
37942}
37943///[`VkPhysicalDeviceExternalFormatResolvePropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalFormatResolvePropertiesANDROID.html)
37944/**
37945Provided by **VK_ANDROID_external_format_resolve**.*/
37946/**
37947**Returned only**, filled by Vulkan, not constructed by the application.*/
37948///
37949///# Extends
37950///- [`PhysicalDeviceProperties2`]
37951#[repr(C)]
37952#[derive(Copy, Clone, Debug)]
37953#[doc(alias = "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID")]
37954pub struct PhysicalDeviceExternalFormatResolvePropertiesANDROID {
37955    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID`.
37956    pub s_type: StructureType,
37957    ///Optional, may be null.
37958    pub p_next: *mut core::ffi::c_void,
37959    pub null_color_attachment_with_external_format_resolve: u32,
37960    pub external_format_resolve_chroma_offset_x: ChromaLocation,
37961    pub external_format_resolve_chroma_offset_y: ChromaLocation,
37962}
37963impl Default for PhysicalDeviceExternalFormatResolvePropertiesANDROID {
37964    #[inline]
37965    fn default() -> Self {
37966        Self {
37967            s_type: StructureType::from_raw(1000468001i32),
37968            p_next: core::ptr::null_mut(),
37969            null_color_attachment_with_external_format_resolve: Default::default(),
37970            external_format_resolve_chroma_offset_x: Default::default(),
37971            external_format_resolve_chroma_offset_y: Default::default(),
37972        }
37973    }
37974}
37975///[`VkAndroidHardwareBufferFormatResolvePropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferFormatResolvePropertiesANDROID.html)
37976/**
37977Provided by **VK_ANDROID_external_format_resolve**.*/
37978/**
37979**Returned only**, filled by Vulkan, not constructed by the application.*/
37980///
37981///# Extends
37982///- [`AndroidHardwareBufferPropertiesANDROID`]
37983#[repr(C)]
37984#[derive(Copy, Clone, Debug)]
37985#[doc(alias = "VkAndroidHardwareBufferFormatResolvePropertiesANDROID")]
37986pub struct AndroidHardwareBufferFormatResolvePropertiesANDROID {
37987    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID`.
37988    pub s_type: StructureType,
37989    ///Optional, may be null.
37990    pub p_next: *mut core::ffi::c_void,
37991    pub color_attachment_format: Format,
37992}
37993impl Default for AndroidHardwareBufferFormatResolvePropertiesANDROID {
37994    #[inline]
37995    fn default() -> Self {
37996        Self {
37997            s_type: StructureType::from_raw(1000468002i32),
37998            p_next: core::ptr::null_mut(),
37999            color_attachment_format: Default::default(),
38000        }
38001    }
38002}
38003///[`VkLatencySleepModeInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencySleepModeInfoNV.html)
38004/**
38005Provided by **VK_NV_low_latency2**.*/
38006#[repr(C)]
38007#[derive(Copy, Clone, Debug)]
38008#[doc(alias = "VkLatencySleepModeInfoNV")]
38009pub struct LatencySleepModeInfoNV {
38010    ///Must be `VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV`.
38011    pub s_type: StructureType,
38012    ///Optional, may be null.
38013    pub p_next: *const core::ffi::c_void,
38014    pub low_latency_mode: u32,
38015    pub low_latency_boost: u32,
38016    pub minimum_interval_us: u32,
38017}
38018impl Default for LatencySleepModeInfoNV {
38019    #[inline]
38020    fn default() -> Self {
38021        Self {
38022            s_type: StructureType::from_raw(1000505000i32),
38023            p_next: core::ptr::null(),
38024            low_latency_mode: Default::default(),
38025            low_latency_boost: Default::default(),
38026            minimum_interval_us: Default::default(),
38027        }
38028    }
38029}
38030///[`VkLatencySleepInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencySleepInfoNV.html)
38031/**
38032Provided by **VK_NV_low_latency2**.*/
38033#[repr(C)]
38034#[derive(Copy, Clone, Debug)]
38035#[doc(alias = "VkLatencySleepInfoNV")]
38036pub struct LatencySleepInfoNV {
38037    ///Must be `VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV`.
38038    pub s_type: StructureType,
38039    ///Optional, may be null.
38040    pub p_next: *const core::ffi::c_void,
38041    pub signal_semaphore: Semaphore,
38042    pub value: u64,
38043}
38044impl Default for LatencySleepInfoNV {
38045    #[inline]
38046    fn default() -> Self {
38047        Self {
38048            s_type: StructureType::from_raw(1000505001i32),
38049            p_next: core::ptr::null(),
38050            signal_semaphore: Default::default(),
38051            value: Default::default(),
38052        }
38053    }
38054}
38055///[`VkSetLatencyMarkerInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSetLatencyMarkerInfoNV.html)
38056/**
38057Provided by **VK_NV_low_latency2**.*/
38058#[repr(C)]
38059#[derive(Copy, Clone, Debug)]
38060#[doc(alias = "VkSetLatencyMarkerInfoNV")]
38061pub struct SetLatencyMarkerInfoNV {
38062    ///Must be `VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV`.
38063    pub s_type: StructureType,
38064    ///Optional, may be null.
38065    pub p_next: *const core::ffi::c_void,
38066    pub present_id: u64,
38067    pub marker: LatencyMarkerNV,
38068}
38069impl Default for SetLatencyMarkerInfoNV {
38070    #[inline]
38071    fn default() -> Self {
38072        Self {
38073            s_type: StructureType::from_raw(1000505002i32),
38074            p_next: core::ptr::null(),
38075            present_id: Default::default(),
38076            marker: Default::default(),
38077        }
38078    }
38079}
38080///[`VkGetLatencyMarkerInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGetLatencyMarkerInfoNV.html)
38081/**
38082Provided by **VK_NV_low_latency2**.*/
38083#[repr(C)]
38084#[derive(Copy, Clone, Debug)]
38085#[doc(alias = "VkGetLatencyMarkerInfoNV")]
38086pub struct GetLatencyMarkerInfoNV {
38087    ///Must be `VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV`.
38088    pub s_type: StructureType,
38089    ///Optional, may be null.
38090    pub p_next: *const core::ffi::c_void,
38091    ///Length of `p_timings`.
38092    pub timing_count: u32,
38093    ///Optional, may be null.
38094    pub p_timings: *mut LatencyTimingsFrameReportNV,
38095}
38096impl Default for GetLatencyMarkerInfoNV {
38097    #[inline]
38098    fn default() -> Self {
38099        Self {
38100            s_type: StructureType::from_raw(1000505003i32),
38101            p_next: core::ptr::null(),
38102            timing_count: Default::default(),
38103            p_timings: core::ptr::null_mut(),
38104        }
38105    }
38106}
38107///[`VkLatencyTimingsFrameReportNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencyTimingsFrameReportNV.html)
38108/**
38109Provided by **VK_NV_low_latency2**.*/
38110/**
38111**Returned only**, filled by Vulkan, not constructed by the application.*/
38112#[repr(C)]
38113#[derive(Copy, Clone, Debug)]
38114#[doc(alias = "VkLatencyTimingsFrameReportNV")]
38115pub struct LatencyTimingsFrameReportNV {
38116    ///Must be `VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV`.
38117    pub s_type: StructureType,
38118    ///Optional, may be null.
38119    pub p_next: *mut core::ffi::c_void,
38120    pub present_id: u64,
38121    pub input_sample_time_us: u64,
38122    pub sim_start_time_us: u64,
38123    pub sim_end_time_us: u64,
38124    pub render_submit_start_time_us: u64,
38125    pub render_submit_end_time_us: u64,
38126    pub present_start_time_us: u64,
38127    pub present_end_time_us: u64,
38128    pub driver_start_time_us: u64,
38129    pub driver_end_time_us: u64,
38130    pub os_render_queue_start_time_us: u64,
38131    pub os_render_queue_end_time_us: u64,
38132    pub gpu_render_start_time_us: u64,
38133    pub gpu_render_end_time_us: u64,
38134}
38135impl Default for LatencyTimingsFrameReportNV {
38136    #[inline]
38137    fn default() -> Self {
38138        Self {
38139            s_type: StructureType::from_raw(1000505004i32),
38140            p_next: core::ptr::null_mut(),
38141            present_id: Default::default(),
38142            input_sample_time_us: Default::default(),
38143            sim_start_time_us: Default::default(),
38144            sim_end_time_us: Default::default(),
38145            render_submit_start_time_us: Default::default(),
38146            render_submit_end_time_us: Default::default(),
38147            present_start_time_us: Default::default(),
38148            present_end_time_us: Default::default(),
38149            driver_start_time_us: Default::default(),
38150            driver_end_time_us: Default::default(),
38151            os_render_queue_start_time_us: Default::default(),
38152            os_render_queue_end_time_us: Default::default(),
38153            gpu_render_start_time_us: Default::default(),
38154            gpu_render_end_time_us: Default::default(),
38155        }
38156    }
38157}
38158///[`VkOutOfBandQueueTypeInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOutOfBandQueueTypeInfoNV.html)
38159/**
38160Provided by **VK_NV_low_latency2**.*/
38161#[repr(C)]
38162#[derive(Copy, Clone, Debug)]
38163#[doc(alias = "VkOutOfBandQueueTypeInfoNV")]
38164pub struct OutOfBandQueueTypeInfoNV {
38165    ///Must be `VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV`.
38166    pub s_type: StructureType,
38167    ///Optional, may be null.
38168    pub p_next: *const core::ffi::c_void,
38169    pub queue_type: OutOfBandQueueTypeNV,
38170}
38171impl Default for OutOfBandQueueTypeInfoNV {
38172    #[inline]
38173    fn default() -> Self {
38174        Self {
38175            s_type: StructureType::from_raw(1000505006i32),
38176            p_next: core::ptr::null(),
38177            queue_type: Default::default(),
38178        }
38179    }
38180}
38181///[`VkLatencySubmissionPresentIdNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencySubmissionPresentIdNV.html)
38182/**
38183Provided by **VK_NV_low_latency2**.*/
38184///
38185///# Extends
38186///- [`SubmitInfo`]
38187///- [`SubmitInfo2`]
38188#[repr(C)]
38189#[derive(Copy, Clone, Debug)]
38190#[doc(alias = "VkLatencySubmissionPresentIdNV")]
38191pub struct LatencySubmissionPresentIdNV {
38192    ///Must be `VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV`.
38193    pub s_type: StructureType,
38194    ///Optional, may be null.
38195    pub p_next: *const core::ffi::c_void,
38196    pub present_id: u64,
38197}
38198impl Default for LatencySubmissionPresentIdNV {
38199    #[inline]
38200    fn default() -> Self {
38201        Self {
38202            s_type: StructureType::from_raw(1000505005i32),
38203            p_next: core::ptr::null(),
38204            present_id: Default::default(),
38205        }
38206    }
38207}
38208///[`VkSwapchainLatencyCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainLatencyCreateInfoNV.html)
38209/**
38210Provided by **VK_NV_low_latency2**.*/
38211///
38212///# Extends
38213///- [`SwapchainCreateInfoKHR`]
38214#[repr(C)]
38215#[derive(Copy, Clone, Debug)]
38216#[doc(alias = "VkSwapchainLatencyCreateInfoNV")]
38217pub struct SwapchainLatencyCreateInfoNV {
38218    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV`.
38219    pub s_type: StructureType,
38220    ///Optional, may be null.
38221    pub p_next: *const core::ffi::c_void,
38222    pub latency_mode_enable: u32,
38223}
38224impl Default for SwapchainLatencyCreateInfoNV {
38225    #[inline]
38226    fn default() -> Self {
38227        Self {
38228            s_type: StructureType::from_raw(1000505007i32),
38229            p_next: core::ptr::null(),
38230            latency_mode_enable: Default::default(),
38231        }
38232    }
38233}
38234///[`VkLatencySurfaceCapabilitiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencySurfaceCapabilitiesNV.html)
38235/**
38236Provided by **VK_NV_low_latency2**.*/
38237///
38238///# Extends
38239///- [`SurfaceCapabilities2KHR`]
38240#[repr(C)]
38241#[derive(Copy, Clone, Debug)]
38242#[doc(alias = "VkLatencySurfaceCapabilitiesNV")]
38243pub struct LatencySurfaceCapabilitiesNV {
38244    ///Must be `VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV`.
38245    pub s_type: StructureType,
38246    ///Optional, may be null.
38247    pub p_next: *const core::ffi::c_void,
38248    ///Length of `p_present_modes`.
38249    pub present_mode_count: u32,
38250    ///Optional, may be null.
38251    pub p_present_modes: *mut PresentModeKHR,
38252}
38253impl Default for LatencySurfaceCapabilitiesNV {
38254    #[inline]
38255    fn default() -> Self {
38256        Self {
38257            s_type: StructureType::from_raw(1000505008i32),
38258            p_next: core::ptr::null(),
38259            present_mode_count: Default::default(),
38260            p_present_modes: core::ptr::null_mut(),
38261        }
38262    }
38263}
38264///[`VkPhysicalDeviceCudaKernelLaunchFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCudaKernelLaunchFeaturesNV.html)
38265/**
38266Provided by **VK_NV_cuda_kernel_launch**.*/
38267///
38268///# Extends
38269///- [`PhysicalDeviceFeatures2`]
38270///- [`DeviceCreateInfo`]
38271#[repr(C)]
38272#[derive(Copy, Clone, Debug)]
38273#[doc(alias = "VkPhysicalDeviceCudaKernelLaunchFeaturesNV")]
38274pub struct PhysicalDeviceCudaKernelLaunchFeaturesNV {
38275    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV`.
38276    pub s_type: StructureType,
38277    ///Optional, may be null.
38278    pub p_next: *mut core::ffi::c_void,
38279    pub cuda_kernel_launch_features: u32,
38280}
38281impl Default for PhysicalDeviceCudaKernelLaunchFeaturesNV {
38282    #[inline]
38283    fn default() -> Self {
38284        Self {
38285            s_type: StructureType::from_raw(1000307003i32),
38286            p_next: core::ptr::null_mut(),
38287            cuda_kernel_launch_features: Default::default(),
38288        }
38289    }
38290}
38291///[`VkPhysicalDeviceCudaKernelLaunchPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCudaKernelLaunchPropertiesNV.html)
38292/**
38293Provided by **VK_NV_cuda_kernel_launch**.*/
38294/**
38295**Returned only**, filled by Vulkan, not constructed by the application.*/
38296///
38297///# Extends
38298///- [`PhysicalDeviceProperties2`]
38299#[repr(C)]
38300#[derive(Copy, Clone, Debug)]
38301#[doc(alias = "VkPhysicalDeviceCudaKernelLaunchPropertiesNV")]
38302pub struct PhysicalDeviceCudaKernelLaunchPropertiesNV {
38303    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV`.
38304    pub s_type: StructureType,
38305    ///Optional, may be null.
38306    pub p_next: *mut core::ffi::c_void,
38307    pub compute_capability_minor: u32,
38308    pub compute_capability_major: u32,
38309}
38310impl Default for PhysicalDeviceCudaKernelLaunchPropertiesNV {
38311    #[inline]
38312    fn default() -> Self {
38313        Self {
38314            s_type: StructureType::from_raw(1000307004i32),
38315            p_next: core::ptr::null_mut(),
38316            compute_capability_minor: Default::default(),
38317            compute_capability_major: Default::default(),
38318        }
38319    }
38320}
38321///[`VkDeviceQueueShaderCoreControlCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceQueueShaderCoreControlCreateInfoARM.html)
38322/**
38323Provided by **VK_ARM_scheduling_controls**.*/
38324///
38325///# Extends
38326///- [`DeviceQueueCreateInfo`]
38327///- [`DeviceCreateInfo`]
38328#[repr(C)]
38329#[derive(Copy, Clone, Debug)]
38330#[doc(alias = "VkDeviceQueueShaderCoreControlCreateInfoARM")]
38331pub struct DeviceQueueShaderCoreControlCreateInfoARM {
38332    ///Must be `VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM`.
38333    pub s_type: StructureType,
38334    ///Optional, may be null.
38335    pub p_next: *mut core::ffi::c_void,
38336    pub shader_core_count: u32,
38337}
38338impl Default for DeviceQueueShaderCoreControlCreateInfoARM {
38339    #[inline]
38340    fn default() -> Self {
38341        Self {
38342            s_type: StructureType::from_raw(1000417000i32),
38343            p_next: core::ptr::null_mut(),
38344            shader_core_count: Default::default(),
38345        }
38346    }
38347}
38348///[`VkPhysicalDeviceSchedulingControlsFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSchedulingControlsFeaturesARM.html)
38349/**
38350Provided by **VK_ARM_scheduling_controls**.*/
38351///
38352///# Extends
38353///- [`PhysicalDeviceFeatures2`]
38354///- [`DeviceCreateInfo`]
38355#[repr(C)]
38356#[derive(Copy, Clone, Debug)]
38357#[doc(alias = "VkPhysicalDeviceSchedulingControlsFeaturesARM")]
38358pub struct PhysicalDeviceSchedulingControlsFeaturesARM {
38359    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM`.
38360    pub s_type: StructureType,
38361    ///Optional, may be null.
38362    pub p_next: *mut core::ffi::c_void,
38363    pub scheduling_controls: u32,
38364}
38365impl Default for PhysicalDeviceSchedulingControlsFeaturesARM {
38366    #[inline]
38367    fn default() -> Self {
38368        Self {
38369            s_type: StructureType::from_raw(1000417001i32),
38370            p_next: core::ptr::null_mut(),
38371            scheduling_controls: Default::default(),
38372        }
38373    }
38374}
38375///[`VkPhysicalDeviceSchedulingControlsPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSchedulingControlsPropertiesARM.html)
38376/**
38377Provided by **VK_ARM_scheduling_controls**.*/
38378/**
38379**Returned only**, filled by Vulkan, not constructed by the application.*/
38380///
38381///# Extends
38382///- [`PhysicalDeviceProperties2`]
38383#[repr(C)]
38384#[derive(Copy, Clone, Debug)]
38385#[doc(alias = "VkPhysicalDeviceSchedulingControlsPropertiesARM")]
38386pub struct PhysicalDeviceSchedulingControlsPropertiesARM {
38387    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM`.
38388    pub s_type: StructureType,
38389    ///Optional, may be null.
38390    pub p_next: *mut core::ffi::c_void,
38391    pub scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM,
38392}
38393impl Default for PhysicalDeviceSchedulingControlsPropertiesARM {
38394    #[inline]
38395    fn default() -> Self {
38396        Self {
38397            s_type: StructureType::from_raw(1000417002i32),
38398            p_next: core::ptr::null_mut(),
38399            scheduling_controls_flags: Default::default(),
38400        }
38401    }
38402}
38403///[`VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG.html)
38404/**
38405Provided by **VK_IMG_relaxed_line_rasterization**.*/
38406///
38407///# Extends
38408///- [`PhysicalDeviceFeatures2`]
38409///- [`DeviceCreateInfo`]
38410#[repr(C)]
38411#[derive(Copy, Clone, Debug)]
38412#[doc(alias = "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG")]
38413pub struct PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
38414    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG`.
38415    pub s_type: StructureType,
38416    ///Optional, may be null.
38417    pub p_next: *mut core::ffi::c_void,
38418    pub relaxed_line_rasterization: u32,
38419}
38420impl Default for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
38421    #[inline]
38422    fn default() -> Self {
38423        Self {
38424            s_type: StructureType::from_raw(1000110000i32),
38425            p_next: core::ptr::null_mut(),
38426            relaxed_line_rasterization: Default::default(),
38427        }
38428    }
38429}
38430///[`VkPhysicalDeviceRenderPassStripedFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRenderPassStripedFeaturesARM.html)
38431/**
38432Provided by **VK_ARM_render_pass_striped**.*/
38433///
38434///# Extends
38435///- [`PhysicalDeviceFeatures2`]
38436///- [`DeviceCreateInfo`]
38437#[repr(C)]
38438#[derive(Copy, Clone, Debug)]
38439#[doc(alias = "VkPhysicalDeviceRenderPassStripedFeaturesARM")]
38440pub struct PhysicalDeviceRenderPassStripedFeaturesARM {
38441    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM`.
38442    pub s_type: StructureType,
38443    ///Optional, may be null.
38444    pub p_next: *mut core::ffi::c_void,
38445    pub render_pass_striped: u32,
38446}
38447impl Default for PhysicalDeviceRenderPassStripedFeaturesARM {
38448    #[inline]
38449    fn default() -> Self {
38450        Self {
38451            s_type: StructureType::from_raw(1000424000i32),
38452            p_next: core::ptr::null_mut(),
38453            render_pass_striped: Default::default(),
38454        }
38455    }
38456}
38457///[`VkPhysicalDeviceRenderPassStripedPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRenderPassStripedPropertiesARM.html)
38458/**
38459Provided by **VK_ARM_render_pass_striped**.*/
38460/**
38461**Returned only**, filled by Vulkan, not constructed by the application.*/
38462///
38463///# Extends
38464///- [`PhysicalDeviceProperties2`]
38465#[repr(C)]
38466#[derive(Copy, Clone, Debug)]
38467#[doc(alias = "VkPhysicalDeviceRenderPassStripedPropertiesARM")]
38468pub struct PhysicalDeviceRenderPassStripedPropertiesARM {
38469    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM`.
38470    pub s_type: StructureType,
38471    ///Optional, may be null.
38472    pub p_next: *mut core::ffi::c_void,
38473    pub render_pass_stripe_granularity: Extent2D,
38474    pub max_render_pass_stripes: u32,
38475}
38476impl Default for PhysicalDeviceRenderPassStripedPropertiesARM {
38477    #[inline]
38478    fn default() -> Self {
38479        Self {
38480            s_type: StructureType::from_raw(1000424001i32),
38481            p_next: core::ptr::null_mut(),
38482            render_pass_stripe_granularity: Default::default(),
38483            max_render_pass_stripes: Default::default(),
38484        }
38485    }
38486}
38487///[`VkRenderPassStripeInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassStripeInfoARM.html)
38488/**
38489Provided by **VK_ARM_render_pass_striped**.*/
38490#[repr(C)]
38491#[derive(Copy, Clone, Debug)]
38492#[doc(alias = "VkRenderPassStripeInfoARM")]
38493pub struct RenderPassStripeInfoARM {
38494    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM`.
38495    pub s_type: StructureType,
38496    ///Optional, may be null.
38497    pub p_next: *const core::ffi::c_void,
38498    pub stripe_area: Rect2D,
38499}
38500impl Default for RenderPassStripeInfoARM {
38501    #[inline]
38502    fn default() -> Self {
38503        Self {
38504            s_type: StructureType::from_raw(1000424003i32),
38505            p_next: core::ptr::null(),
38506            stripe_area: Default::default(),
38507        }
38508    }
38509}
38510///[`VkRenderPassStripeBeginInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassStripeBeginInfoARM.html)
38511/**
38512Provided by **VK_ARM_render_pass_striped**.*/
38513///
38514///# Extends
38515///- [`RenderingInfo`]
38516///- [`RenderPassBeginInfo`]
38517#[repr(C)]
38518#[derive(Copy, Clone, Debug)]
38519#[doc(alias = "VkRenderPassStripeBeginInfoARM")]
38520pub struct RenderPassStripeBeginInfoARM {
38521    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM`.
38522    pub s_type: StructureType,
38523    ///Optional, may be null.
38524    pub p_next: *const core::ffi::c_void,
38525    ///Length of `p_stripe_infos`.
38526    pub stripe_info_count: u32,
38527    pub p_stripe_infos: *const RenderPassStripeInfoARM,
38528}
38529impl Default for RenderPassStripeBeginInfoARM {
38530    #[inline]
38531    fn default() -> Self {
38532        Self {
38533            s_type: StructureType::from_raw(1000424002i32),
38534            p_next: core::ptr::null(),
38535            stripe_info_count: Default::default(),
38536            p_stripe_infos: core::ptr::null(),
38537        }
38538    }
38539}
38540///[`VkRenderPassStripeSubmitInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassStripeSubmitInfoARM.html)
38541/**
38542Provided by **VK_ARM_render_pass_striped**.*/
38543///
38544///# Extends
38545///- [`CommandBufferSubmitInfo`]
38546#[repr(C)]
38547#[derive(Copy, Clone, Debug)]
38548#[doc(alias = "VkRenderPassStripeSubmitInfoARM")]
38549pub struct RenderPassStripeSubmitInfoARM {
38550    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM`.
38551    pub s_type: StructureType,
38552    ///Optional, may be null.
38553    pub p_next: *const core::ffi::c_void,
38554    ///Length of `p_stripe_semaphore_infos`.
38555    pub stripe_semaphore_info_count: u32,
38556    pub p_stripe_semaphore_infos: *const SemaphoreSubmitInfo,
38557}
38558impl Default for RenderPassStripeSubmitInfoARM {
38559    #[inline]
38560    fn default() -> Self {
38561        Self {
38562            s_type: StructureType::from_raw(1000424004i32),
38563            p_next: core::ptr::null(),
38564            stripe_semaphore_info_count: Default::default(),
38565            p_stripe_semaphore_infos: core::ptr::null(),
38566        }
38567    }
38568}
38569///[`VkPhysicalDevicePipelineOpacityMicromapFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineOpacityMicromapFeaturesARM.html)
38570/**
38571Provided by **VK_ARM_pipeline_opacity_micromap**.*/
38572///
38573///# Extends
38574///- [`PhysicalDeviceFeatures2`]
38575///- [`DeviceCreateInfo`]
38576#[repr(C)]
38577#[derive(Copy, Clone, Debug)]
38578#[doc(alias = "VkPhysicalDevicePipelineOpacityMicromapFeaturesARM")]
38579pub struct PhysicalDevicePipelineOpacityMicromapFeaturesARM {
38580    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM`.
38581    pub s_type: StructureType,
38582    ///Optional, may be null.
38583    pub p_next: *mut core::ffi::c_void,
38584    pub pipeline_opacity_micromap: u32,
38585}
38586impl Default for PhysicalDevicePipelineOpacityMicromapFeaturesARM {
38587    #[inline]
38588    fn default() -> Self {
38589        Self {
38590            s_type: StructureType::from_raw(1000596000i32),
38591            p_next: core::ptr::null_mut(),
38592            pipeline_opacity_micromap: Default::default(),
38593        }
38594    }
38595}
38596///[`VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR.html)
38597/**
38598Provided by **VK_KHR_shader_maximal_reconvergence**.*/
38599///
38600///# Extends
38601///- [`PhysicalDeviceFeatures2`]
38602///- [`DeviceCreateInfo`]
38603#[repr(C)]
38604#[derive(Copy, Clone, Debug)]
38605#[doc(alias = "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR")]
38606pub struct PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
38607    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR`.
38608    pub s_type: StructureType,
38609    ///Optional, may be null.
38610    pub p_next: *mut core::ffi::c_void,
38611    pub shader_maximal_reconvergence: u32,
38612}
38613impl Default for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
38614    #[inline]
38615    fn default() -> Self {
38616        Self {
38617            s_type: StructureType::from_raw(1000434000i32),
38618            p_next: core::ptr::null_mut(),
38619            shader_maximal_reconvergence: Default::default(),
38620        }
38621    }
38622}
38623///[`VkPhysicalDeviceShaderSubgroupRotateFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSubgroupRotateFeatures.html)
38624/**
38625Provided by **VK_COMPUTE_VERSION_1_4**.*/
38626///
38627///# Extends
38628///- [`PhysicalDeviceFeatures2`]
38629///- [`DeviceCreateInfo`]
38630#[repr(C)]
38631#[derive(Copy, Clone, Debug)]
38632#[doc(alias = "VkPhysicalDeviceShaderSubgroupRotateFeatures")]
38633pub struct PhysicalDeviceShaderSubgroupRotateFeatures {
38634    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES`.
38635    pub s_type: StructureType,
38636    ///Optional, may be null.
38637    pub p_next: *mut core::ffi::c_void,
38638    pub shader_subgroup_rotate: u32,
38639    pub shader_subgroup_rotate_clustered: u32,
38640}
38641impl Default for PhysicalDeviceShaderSubgroupRotateFeatures {
38642    #[inline]
38643    fn default() -> Self {
38644        Self {
38645            s_type: StructureType::from_raw(1000416000i32),
38646            p_next: core::ptr::null_mut(),
38647            shader_subgroup_rotate: Default::default(),
38648            shader_subgroup_rotate_clustered: Default::default(),
38649        }
38650    }
38651}
38652///[`VkPhysicalDeviceShaderExpectAssumeFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderExpectAssumeFeatures.html)
38653/**
38654Provided by **VK_COMPUTE_VERSION_1_4**.*/
38655///
38656///# Extends
38657///- [`PhysicalDeviceFeatures2`]
38658///- [`DeviceCreateInfo`]
38659#[repr(C)]
38660#[derive(Copy, Clone, Debug)]
38661#[doc(alias = "VkPhysicalDeviceShaderExpectAssumeFeatures")]
38662pub struct PhysicalDeviceShaderExpectAssumeFeatures {
38663    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES`.
38664    pub s_type: StructureType,
38665    ///Optional, may be null.
38666    pub p_next: *mut core::ffi::c_void,
38667    pub shader_expect_assume: u32,
38668}
38669impl Default for PhysicalDeviceShaderExpectAssumeFeatures {
38670    #[inline]
38671    fn default() -> Self {
38672        Self {
38673            s_type: StructureType::from_raw(1000544000i32),
38674            p_next: core::ptr::null_mut(),
38675            shader_expect_assume: Default::default(),
38676        }
38677    }
38678}
38679///[`VkPhysicalDeviceShaderFloatControls2Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFloatControls2Features.html)
38680/**
38681Provided by **VK_COMPUTE_VERSION_1_4**.*/
38682///
38683///# Extends
38684///- [`PhysicalDeviceFeatures2`]
38685///- [`DeviceCreateInfo`]
38686#[repr(C)]
38687#[derive(Copy, Clone, Debug)]
38688#[doc(alias = "VkPhysicalDeviceShaderFloatControls2Features")]
38689pub struct PhysicalDeviceShaderFloatControls2Features {
38690    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES`.
38691    pub s_type: StructureType,
38692    ///Optional, may be null.
38693    pub p_next: *mut core::ffi::c_void,
38694    pub shader_float_controls2: u32,
38695}
38696impl Default for PhysicalDeviceShaderFloatControls2Features {
38697    #[inline]
38698    fn default() -> Self {
38699        Self {
38700            s_type: StructureType::from_raw(1000528000i32),
38701            p_next: core::ptr::null_mut(),
38702            shader_float_controls2: Default::default(),
38703        }
38704    }
38705}
38706///[`VkPhysicalDeviceDynamicRenderingLocalReadFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDynamicRenderingLocalReadFeatures.html)
38707/**
38708Provided by **VK_GRAPHICS_VERSION_1_4**.*/
38709///
38710///# Extends
38711///- [`PhysicalDeviceFeatures2`]
38712///- [`DeviceCreateInfo`]
38713#[repr(C)]
38714#[derive(Copy, Clone, Debug)]
38715#[doc(alias = "VkPhysicalDeviceDynamicRenderingLocalReadFeatures")]
38716pub struct PhysicalDeviceDynamicRenderingLocalReadFeatures {
38717    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES`.
38718    pub s_type: StructureType,
38719    ///Optional, may be null.
38720    pub p_next: *mut core::ffi::c_void,
38721    pub dynamic_rendering_local_read: u32,
38722}
38723impl Default for PhysicalDeviceDynamicRenderingLocalReadFeatures {
38724    #[inline]
38725    fn default() -> Self {
38726        Self {
38727            s_type: StructureType::from_raw(1000232000i32),
38728            p_next: core::ptr::null_mut(),
38729            dynamic_rendering_local_read: Default::default(),
38730        }
38731    }
38732}
38733///[`VkRenderingAttachmentLocationInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingAttachmentLocationInfo.html)
38734/**
38735Provided by **VK_GRAPHICS_VERSION_1_4**.*/
38736///
38737///# Extends
38738///- [`GraphicsPipelineCreateInfo`]
38739///- [`CommandBufferInheritanceInfo`]
38740#[repr(C)]
38741#[derive(Copy, Clone, Debug)]
38742#[doc(alias = "VkRenderingAttachmentLocationInfo")]
38743pub struct RenderingAttachmentLocationInfo {
38744    ///Must be `VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO`.
38745    pub s_type: StructureType,
38746    ///Optional, may be null.
38747    pub p_next: *const core::ffi::c_void,
38748    ///Length of `p_color_attachment_locations`.
38749    pub color_attachment_count: u32,
38750    pub p_color_attachment_locations: *const u32,
38751}
38752impl Default for RenderingAttachmentLocationInfo {
38753    #[inline]
38754    fn default() -> Self {
38755        Self {
38756            s_type: StructureType::from_raw(1000232001i32),
38757            p_next: core::ptr::null(),
38758            color_attachment_count: Default::default(),
38759            p_color_attachment_locations: core::ptr::null(),
38760        }
38761    }
38762}
38763///[`VkRenderingInputAttachmentIndexInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingInputAttachmentIndexInfo.html)
38764/**
38765Provided by **VK_GRAPHICS_VERSION_1_4**.*/
38766///
38767///# Extends
38768///- [`GraphicsPipelineCreateInfo`]
38769///- [`CommandBufferInheritanceInfo`]
38770#[repr(C)]
38771#[derive(Copy, Clone, Debug)]
38772#[doc(alias = "VkRenderingInputAttachmentIndexInfo")]
38773pub struct RenderingInputAttachmentIndexInfo {
38774    ///Must be `VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO`.
38775    pub s_type: StructureType,
38776    ///Optional, may be null.
38777    pub p_next: *const core::ffi::c_void,
38778    ///Length of `p_color_attachment_input_indices`.
38779    pub color_attachment_count: u32,
38780    ///Optional, may be null.
38781    pub p_color_attachment_input_indices: *const u32,
38782    ///Optional, may be null.
38783    pub p_depth_input_attachment_index: *const u32,
38784    ///Optional, may be null.
38785    pub p_stencil_input_attachment_index: *const u32,
38786}
38787impl Default for RenderingInputAttachmentIndexInfo {
38788    #[inline]
38789    fn default() -> Self {
38790        Self {
38791            s_type: StructureType::from_raw(1000232002i32),
38792            p_next: core::ptr::null(),
38793            color_attachment_count: Default::default(),
38794            p_color_attachment_input_indices: core::ptr::null(),
38795            p_depth_input_attachment_index: core::ptr::null(),
38796            p_stencil_input_attachment_index: core::ptr::null(),
38797        }
38798    }
38799}
38800///[`VkPhysicalDeviceShaderQuadControlFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderQuadControlFeaturesKHR.html)
38801/**
38802Provided by **VK_KHR_shader_quad_control**.*/
38803///
38804///# Extends
38805///- [`PhysicalDeviceFeatures2`]
38806///- [`DeviceCreateInfo`]
38807#[repr(C)]
38808#[derive(Copy, Clone, Debug)]
38809#[doc(alias = "VkPhysicalDeviceShaderQuadControlFeaturesKHR")]
38810pub struct PhysicalDeviceShaderQuadControlFeaturesKHR {
38811    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR`.
38812    pub s_type: StructureType,
38813    ///Optional, may be null.
38814    pub p_next: *mut core::ffi::c_void,
38815    pub shader_quad_control: u32,
38816}
38817impl Default for PhysicalDeviceShaderQuadControlFeaturesKHR {
38818    #[inline]
38819    fn default() -> Self {
38820        Self {
38821            s_type: StructureType::from_raw(1000235000i32),
38822            p_next: core::ptr::null_mut(),
38823            shader_quad_control: Default::default(),
38824        }
38825    }
38826}
38827///[`VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV.html)
38828/**
38829Provided by **VK_NV_shader_atomic_float16_vector**.*/
38830///
38831///# Extends
38832///- [`PhysicalDeviceFeatures2`]
38833///- [`DeviceCreateInfo`]
38834#[repr(C)]
38835#[derive(Copy, Clone, Debug)]
38836#[doc(alias = "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV")]
38837pub struct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
38838    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV`.
38839    pub s_type: StructureType,
38840    ///Optional, may be null.
38841    pub p_next: *mut core::ffi::c_void,
38842    pub shader_float16_vector_atomics: u32,
38843}
38844impl Default for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
38845    #[inline]
38846    fn default() -> Self {
38847        Self {
38848            s_type: StructureType::from_raw(1000563000i32),
38849            p_next: core::ptr::null_mut(),
38850            shader_float16_vector_atomics: Default::default(),
38851        }
38852    }
38853}
38854///[`VkPhysicalDeviceMapMemoryPlacedFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMapMemoryPlacedFeaturesEXT.html)
38855/**
38856Provided by **VK_EXT_map_memory_placed**.*/
38857///
38858///# Extends
38859///- [`PhysicalDeviceFeatures2`]
38860///- [`DeviceCreateInfo`]
38861#[repr(C)]
38862#[derive(Copy, Clone, Debug)]
38863#[doc(alias = "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT")]
38864pub struct PhysicalDeviceMapMemoryPlacedFeaturesEXT {
38865    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT`.
38866    pub s_type: StructureType,
38867    ///Optional, may be null.
38868    pub p_next: *mut core::ffi::c_void,
38869    pub memory_map_placed: u32,
38870    pub memory_map_range_placed: u32,
38871    pub memory_unmap_reserve: u32,
38872}
38873impl Default for PhysicalDeviceMapMemoryPlacedFeaturesEXT {
38874    #[inline]
38875    fn default() -> Self {
38876        Self {
38877            s_type: StructureType::from_raw(1000272000i32),
38878            p_next: core::ptr::null_mut(),
38879            memory_map_placed: Default::default(),
38880            memory_map_range_placed: Default::default(),
38881            memory_unmap_reserve: Default::default(),
38882        }
38883    }
38884}
38885///[`VkPhysicalDeviceMapMemoryPlacedPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMapMemoryPlacedPropertiesEXT.html)
38886/**
38887Provided by **VK_EXT_map_memory_placed**.*/
38888/**
38889**Returned only**, filled by Vulkan, not constructed by the application.*/
38890///
38891///# Extends
38892///- [`PhysicalDeviceProperties2`]
38893#[repr(C)]
38894#[derive(Copy, Clone, Debug)]
38895#[doc(alias = "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT")]
38896pub struct PhysicalDeviceMapMemoryPlacedPropertiesEXT {
38897    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT`.
38898    pub s_type: StructureType,
38899    ///Optional, may be null.
38900    pub p_next: *mut core::ffi::c_void,
38901    pub min_placed_memory_map_alignment: u64,
38902}
38903impl Default for PhysicalDeviceMapMemoryPlacedPropertiesEXT {
38904    #[inline]
38905    fn default() -> Self {
38906        Self {
38907            s_type: StructureType::from_raw(1000272001i32),
38908            p_next: core::ptr::null_mut(),
38909            min_placed_memory_map_alignment: Default::default(),
38910        }
38911    }
38912}
38913///[`VkMemoryMapPlacedInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryMapPlacedInfoEXT.html)
38914/**
38915Provided by **VK_EXT_map_memory_placed**.*/
38916///
38917///# Extends
38918///- [`MemoryMapInfo`]
38919#[repr(C)]
38920#[derive(Copy, Clone, Debug)]
38921#[doc(alias = "VkMemoryMapPlacedInfoEXT")]
38922pub struct MemoryMapPlacedInfoEXT {
38923    ///Must be `VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT`.
38924    pub s_type: StructureType,
38925    ///Optional, may be null.
38926    pub p_next: *const core::ffi::c_void,
38927    pub p_placed_address: *mut core::ffi::c_void,
38928}
38929impl Default for MemoryMapPlacedInfoEXT {
38930    #[inline]
38931    fn default() -> Self {
38932        Self {
38933            s_type: StructureType::from_raw(1000272002i32),
38934            p_next: core::ptr::null(),
38935            p_placed_address: core::ptr::null_mut(),
38936        }
38937    }
38938}
38939///[`VkPhysicalDeviceShaderBfloat16FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderBfloat16FeaturesKHR.html)
38940/**
38941Provided by **VK_KHR_shader_bfloat16**.*/
38942///
38943///# Extends
38944///- [`PhysicalDeviceFeatures2`]
38945///- [`DeviceCreateInfo`]
38946#[repr(C)]
38947#[derive(Copy, Clone, Debug)]
38948#[doc(alias = "VkPhysicalDeviceShaderBfloat16FeaturesKHR")]
38949pub struct PhysicalDeviceShaderBfloat16FeaturesKHR {
38950    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR`.
38951    pub s_type: StructureType,
38952    ///Optional, may be null.
38953    pub p_next: *mut core::ffi::c_void,
38954    pub shader_b_float16_type: u32,
38955    pub shader_b_float16_dot_product: u32,
38956    pub shader_b_float16_cooperative_matrix: u32,
38957}
38958impl Default for PhysicalDeviceShaderBfloat16FeaturesKHR {
38959    #[inline]
38960    fn default() -> Self {
38961        Self {
38962            s_type: StructureType::from_raw(1000141000i32),
38963            p_next: core::ptr::null_mut(),
38964            shader_b_float16_type: Default::default(),
38965            shader_b_float16_dot_product: Default::default(),
38966            shader_b_float16_cooperative_matrix: Default::default(),
38967        }
38968    }
38969}
38970///[`VkPhysicalDeviceRawAccessChainsFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRawAccessChainsFeaturesNV.html)
38971/**
38972Provided by **VK_NV_raw_access_chains**.*/
38973///
38974///# Extends
38975///- [`PhysicalDeviceFeatures2`]
38976///- [`DeviceCreateInfo`]
38977#[repr(C)]
38978#[derive(Copy, Clone, Debug)]
38979#[doc(alias = "VkPhysicalDeviceRawAccessChainsFeaturesNV")]
38980pub struct PhysicalDeviceRawAccessChainsFeaturesNV {
38981    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV`.
38982    pub s_type: StructureType,
38983    ///Optional, may be null.
38984    pub p_next: *mut core::ffi::c_void,
38985    pub shader_raw_access_chains: u32,
38986}
38987impl Default for PhysicalDeviceRawAccessChainsFeaturesNV {
38988    #[inline]
38989    fn default() -> Self {
38990        Self {
38991            s_type: StructureType::from_raw(1000555000i32),
38992            p_next: core::ptr::null_mut(),
38993            shader_raw_access_chains: Default::default(),
38994        }
38995    }
38996}
38997///[`VkPhysicalDeviceCommandBufferInheritanceFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCommandBufferInheritanceFeaturesNV.html)
38998/**
38999Provided by **VK_NV_command_buffer_inheritance**.*/
39000///
39001///# Extends
39002///- [`PhysicalDeviceFeatures2`]
39003///- [`DeviceCreateInfo`]
39004#[repr(C)]
39005#[derive(Copy, Clone, Debug)]
39006#[doc(alias = "VkPhysicalDeviceCommandBufferInheritanceFeaturesNV")]
39007pub struct PhysicalDeviceCommandBufferInheritanceFeaturesNV {
39008    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV`.
39009    pub s_type: StructureType,
39010    ///Optional, may be null.
39011    pub p_next: *mut core::ffi::c_void,
39012    pub command_buffer_inheritance: u32,
39013}
39014impl Default for PhysicalDeviceCommandBufferInheritanceFeaturesNV {
39015    #[inline]
39016    fn default() -> Self {
39017        Self {
39018            s_type: StructureType::from_raw(1000559000i32),
39019            p_next: core::ptr::null_mut(),
39020            command_buffer_inheritance: Default::default(),
39021        }
39022    }
39023}
39024///[`VkPhysicalDeviceImageAlignmentControlFeaturesMESA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageAlignmentControlFeaturesMESA.html)
39025/**
39026Provided by **VK_MESA_image_alignment_control**.*/
39027///
39028///# Extends
39029///- [`PhysicalDeviceFeatures2`]
39030///- [`DeviceCreateInfo`]
39031#[repr(C)]
39032#[derive(Copy, Clone, Debug)]
39033#[doc(alias = "VkPhysicalDeviceImageAlignmentControlFeaturesMESA")]
39034pub struct PhysicalDeviceImageAlignmentControlFeaturesMESA {
39035    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA`.
39036    pub s_type: StructureType,
39037    ///Optional, may be null.
39038    pub p_next: *mut core::ffi::c_void,
39039    pub image_alignment_control: u32,
39040}
39041impl Default for PhysicalDeviceImageAlignmentControlFeaturesMESA {
39042    #[inline]
39043    fn default() -> Self {
39044        Self {
39045            s_type: StructureType::from_raw(1000575000i32),
39046            p_next: core::ptr::null_mut(),
39047            image_alignment_control: Default::default(),
39048        }
39049    }
39050}
39051///[`VkPhysicalDeviceImageAlignmentControlPropertiesMESA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageAlignmentControlPropertiesMESA.html)
39052/**
39053Provided by **VK_MESA_image_alignment_control**.*/
39054/**
39055**Returned only**, filled by Vulkan, not constructed by the application.*/
39056///
39057///# Extends
39058///- [`PhysicalDeviceProperties2`]
39059#[repr(C)]
39060#[derive(Copy, Clone, Debug)]
39061#[doc(alias = "VkPhysicalDeviceImageAlignmentControlPropertiesMESA")]
39062pub struct PhysicalDeviceImageAlignmentControlPropertiesMESA {
39063    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA`.
39064    pub s_type: StructureType,
39065    ///Optional, may be null.
39066    pub p_next: *mut core::ffi::c_void,
39067    pub supported_image_alignment_mask: u32,
39068}
39069impl Default for PhysicalDeviceImageAlignmentControlPropertiesMESA {
39070    #[inline]
39071    fn default() -> Self {
39072        Self {
39073            s_type: StructureType::from_raw(1000575001i32),
39074            p_next: core::ptr::null_mut(),
39075            supported_image_alignment_mask: Default::default(),
39076        }
39077    }
39078}
39079///[`VkImageAlignmentControlCreateInfoMESA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageAlignmentControlCreateInfoMESA.html)
39080/**
39081Provided by **VK_MESA_image_alignment_control**.*/
39082///
39083///# Extends
39084///- [`ImageCreateInfo`]
39085#[repr(C)]
39086#[derive(Copy, Clone, Debug)]
39087#[doc(alias = "VkImageAlignmentControlCreateInfoMESA")]
39088pub struct ImageAlignmentControlCreateInfoMESA {
39089    ///Must be `VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA`.
39090    pub s_type: StructureType,
39091    ///Optional, may be null.
39092    pub p_next: *const core::ffi::c_void,
39093    pub maximum_requested_alignment: u32,
39094}
39095impl Default for ImageAlignmentControlCreateInfoMESA {
39096    #[inline]
39097    fn default() -> Self {
39098        Self {
39099            s_type: StructureType::from_raw(1000575002i32),
39100            p_next: core::ptr::null(),
39101            maximum_requested_alignment: Default::default(),
39102        }
39103    }
39104}
39105///[`VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT.html)
39106/**
39107Provided by **VK_EXT_shader_replicated_composites**.*/
39108///
39109///# Extends
39110///- [`PhysicalDeviceFeatures2`]
39111///- [`DeviceCreateInfo`]
39112#[repr(C)]
39113#[derive(Copy, Clone, Debug)]
39114#[doc(alias = "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT")]
39115pub struct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
39116    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT`.
39117    pub s_type: StructureType,
39118    ///Optional, may be null.
39119    pub p_next: *mut core::ffi::c_void,
39120    pub shader_replicated_composites: u32,
39121}
39122impl Default for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
39123    #[inline]
39124    fn default() -> Self {
39125        Self {
39126            s_type: StructureType::from_raw(1000564000i32),
39127            p_next: core::ptr::null_mut(),
39128            shader_replicated_composites: Default::default(),
39129        }
39130    }
39131}
39132///[`VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR.html)
39133/**
39134Provided by **VK_KHR_present_mode_fifo_latest_ready**.*/
39135///
39136///# Extends
39137///- [`PhysicalDeviceFeatures2`]
39138///- [`DeviceCreateInfo`]
39139#[repr(C)]
39140#[derive(Copy, Clone, Debug)]
39141#[doc(alias = "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR")]
39142pub struct PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
39143    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR`.
39144    pub s_type: StructureType,
39145    ///Optional, may be null.
39146    pub p_next: *mut core::ffi::c_void,
39147    pub present_mode_fifo_latest_ready: u32,
39148}
39149impl Default for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
39150    #[inline]
39151    fn default() -> Self {
39152        Self {
39153            s_type: StructureType::from_raw(1000361000i32),
39154            p_next: core::ptr::null_mut(),
39155            present_mode_fifo_latest_ready: Default::default(),
39156        }
39157    }
39158}
39159///[`VkDepthClampRangeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDepthClampRangeEXT.html)
39160/**
39161Provided by **VK_EXT_depth_clamp_control**.*/
39162#[repr(C)]
39163#[derive(Copy, Clone, Debug)]
39164#[doc(alias = "VkDepthClampRangeEXT")]
39165pub struct DepthClampRangeEXT {
39166    pub min_depth_clamp: f32,
39167    pub max_depth_clamp: f32,
39168}
39169impl Default for DepthClampRangeEXT {
39170    #[inline]
39171    fn default() -> Self {
39172        unsafe { core::mem::zeroed() }
39173    }
39174}
39175///[`VkPhysicalDeviceCooperativeMatrix2FeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.html)
39176/**
39177Provided by **VK_NV_cooperative_matrix2**.*/
39178///
39179///# Extends
39180///- [`PhysicalDeviceFeatures2`]
39181///- [`DeviceCreateInfo`]
39182#[repr(C)]
39183#[derive(Copy, Clone, Debug)]
39184#[doc(alias = "VkPhysicalDeviceCooperativeMatrix2FeaturesNV")]
39185pub struct PhysicalDeviceCooperativeMatrix2FeaturesNV {
39186    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV`.
39187    pub s_type: StructureType,
39188    ///Optional, may be null.
39189    pub p_next: *mut core::ffi::c_void,
39190    pub cooperative_matrix_workgroup_scope: u32,
39191    pub cooperative_matrix_flexible_dimensions: u32,
39192    pub cooperative_matrix_reductions: u32,
39193    pub cooperative_matrix_conversions: u32,
39194    pub cooperative_matrix_per_element_operations: u32,
39195    pub cooperative_matrix_tensor_addressing: u32,
39196    pub cooperative_matrix_block_loads: u32,
39197}
39198impl Default for PhysicalDeviceCooperativeMatrix2FeaturesNV {
39199    #[inline]
39200    fn default() -> Self {
39201        Self {
39202            s_type: StructureType::from_raw(1000593000i32),
39203            p_next: core::ptr::null_mut(),
39204            cooperative_matrix_workgroup_scope: Default::default(),
39205            cooperative_matrix_flexible_dimensions: Default::default(),
39206            cooperative_matrix_reductions: Default::default(),
39207            cooperative_matrix_conversions: Default::default(),
39208            cooperative_matrix_per_element_operations: Default::default(),
39209            cooperative_matrix_tensor_addressing: Default::default(),
39210            cooperative_matrix_block_loads: Default::default(),
39211        }
39212    }
39213}
39214///[`VkPhysicalDeviceCooperativeMatrix2PropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.html)
39215/**
39216Provided by **VK_NV_cooperative_matrix2**.*/
39217/**
39218**Returned only**, filled by Vulkan, not constructed by the application.*/
39219///
39220///# Extends
39221///- [`PhysicalDeviceProperties2`]
39222#[repr(C)]
39223#[derive(Copy, Clone, Debug)]
39224#[doc(alias = "VkPhysicalDeviceCooperativeMatrix2PropertiesNV")]
39225pub struct PhysicalDeviceCooperativeMatrix2PropertiesNV {
39226    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV`.
39227    pub s_type: StructureType,
39228    ///Optional, may be null.
39229    pub p_next: *mut core::ffi::c_void,
39230    pub cooperative_matrix_workgroup_scope_max_workgroup_size: u32,
39231    pub cooperative_matrix_flexible_dimensions_max_dimension: u32,
39232    pub cooperative_matrix_workgroup_scope_reserved_shared_memory: u32,
39233}
39234impl Default for PhysicalDeviceCooperativeMatrix2PropertiesNV {
39235    #[inline]
39236    fn default() -> Self {
39237        Self {
39238            s_type: StructureType::from_raw(1000593002i32),
39239            p_next: core::ptr::null_mut(),
39240            cooperative_matrix_workgroup_scope_max_workgroup_size: Default::default(),
39241            cooperative_matrix_flexible_dimensions_max_dimension: Default::default(),
39242            cooperative_matrix_workgroup_scope_reserved_shared_memory: Default::default(),
39243        }
39244    }
39245}
39246///[`VkCooperativeMatrixFlexibleDimensionsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.html)
39247/**
39248Provided by **VK_NV_cooperative_matrix2**.*/
39249/**
39250**Returned only**, filled by Vulkan, not constructed by the application.*/
39251#[repr(C)]
39252#[derive(Copy, Clone, Debug)]
39253#[doc(alias = "VkCooperativeMatrixFlexibleDimensionsPropertiesNV")]
39254pub struct CooperativeMatrixFlexibleDimensionsPropertiesNV {
39255    ///Must be `VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV`.
39256    pub s_type: StructureType,
39257    ///Optional, may be null.
39258    pub p_next: *mut core::ffi::c_void,
39259    pub m_granularity: u32,
39260    pub n_granularity: u32,
39261    pub k_granularity: u32,
39262    pub a_type: ComponentTypeKHR,
39263    pub b_type: ComponentTypeKHR,
39264    pub c_type: ComponentTypeKHR,
39265    pub result_type: ComponentTypeKHR,
39266    pub saturating_accumulation: u32,
39267    pub scope: ScopeKHR,
39268    pub workgroup_invocations: u32,
39269}
39270impl Default for CooperativeMatrixFlexibleDimensionsPropertiesNV {
39271    #[inline]
39272    fn default() -> Self {
39273        Self {
39274            s_type: StructureType::from_raw(1000593001i32),
39275            p_next: core::ptr::null_mut(),
39276            m_granularity: Default::default(),
39277            n_granularity: Default::default(),
39278            k_granularity: Default::default(),
39279            a_type: Default::default(),
39280            b_type: Default::default(),
39281            c_type: Default::default(),
39282            result_type: Default::default(),
39283            saturating_accumulation: Default::default(),
39284            scope: Default::default(),
39285            workgroup_invocations: Default::default(),
39286        }
39287    }
39288}
39289///[`VkPhysicalDeviceHdrVividFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceHdrVividFeaturesHUAWEI.html)
39290/**
39291Provided by **VK_HUAWEI_hdr_vivid**.*/
39292///
39293///# Extends
39294///- [`PhysicalDeviceFeatures2`]
39295///- [`DeviceCreateInfo`]
39296#[repr(C)]
39297#[derive(Copy, Clone, Debug)]
39298#[doc(alias = "VkPhysicalDeviceHdrVividFeaturesHUAWEI")]
39299pub struct PhysicalDeviceHdrVividFeaturesHUAWEI {
39300    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI`.
39301    pub s_type: StructureType,
39302    ///Optional, may be null.
39303    pub p_next: *mut core::ffi::c_void,
39304    pub hdr_vivid: u32,
39305}
39306impl Default for PhysicalDeviceHdrVividFeaturesHUAWEI {
39307    #[inline]
39308    fn default() -> Self {
39309        Self {
39310            s_type: StructureType::from_raw(1000590000i32),
39311            p_next: core::ptr::null_mut(),
39312            hdr_vivid: Default::default(),
39313        }
39314    }
39315}
39316///[`VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT.html)
39317/**
39318Provided by **VK_EXT_vertex_attribute_robustness**.*/
39319///
39320///# Extends
39321///- [`PhysicalDeviceFeatures2`]
39322///- [`DeviceCreateInfo`]
39323#[repr(C)]
39324#[derive(Copy, Clone, Debug)]
39325#[doc(alias = "VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT")]
39326pub struct PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
39327    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT`.
39328    pub s_type: StructureType,
39329    ///Optional, may be null.
39330    pub p_next: *mut core::ffi::c_void,
39331    pub vertex_attribute_robustness: u32,
39332}
39333impl Default for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
39334    #[inline]
39335    fn default() -> Self {
39336        Self {
39337            s_type: StructureType::from_raw(1000608000i32),
39338            p_next: core::ptr::null_mut(),
39339            vertex_attribute_robustness: Default::default(),
39340        }
39341    }
39342}
39343///[`VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX.html)
39344/**
39345Provided by **VK_AMDX_dense_geometry_format**.*/
39346///
39347///# Extends
39348///- [`PhysicalDeviceFeatures2`]
39349///- [`DeviceCreateInfo`]
39350#[repr(C)]
39351#[derive(Copy, Clone, Debug)]
39352#[doc(alias = "VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX")]
39353pub struct PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
39354    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX`.
39355    pub s_type: StructureType,
39356    ///Optional, may be null.
39357    pub p_next: *mut core::ffi::c_void,
39358    pub dense_geometry_format: u32,
39359}
39360impl Default for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
39361    #[inline]
39362    fn default() -> Self {
39363        Self {
39364            s_type: StructureType::from_raw(1000478000i32),
39365            p_next: core::ptr::null_mut(),
39366            dense_geometry_format: Default::default(),
39367        }
39368    }
39369}
39370///[`VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX.html)
39371/**
39372Provided by **VK_AMDX_dense_geometry_format**.*/
39373///
39374///# Extends
39375///- [`AccelerationStructureGeometryKHR`]
39376///
39377///# Extended By
39378///- [`AccelerationStructureTrianglesOpacityMicromapEXT`]
39379#[repr(C)]
39380#[derive(Copy, Clone, Debug)]
39381#[doc(alias = "VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX")]
39382pub struct AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {
39383    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX`.
39384    pub s_type: StructureType,
39385    ///Optional, may be null.
39386    pub p_next: *const core::ffi::c_void,
39387    pub compressed_data: DeviceOrHostAddressConstKHR,
39388    pub data_size: u64,
39389    pub num_triangles: u32,
39390    pub num_vertices: u32,
39391    pub max_primitive_index: u32,
39392    pub max_geometry_index: u32,
39393    pub format: CompressedTriangleFormatAMDX,
39394}
39395impl Default for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {
39396    #[inline]
39397    fn default() -> Self {
39398        Self {
39399            s_type: StructureType::from_raw(1000478001i32),
39400            p_next: core::ptr::null(),
39401            compressed_data: Default::default(),
39402            data_size: Default::default(),
39403            num_triangles: Default::default(),
39404            num_vertices: Default::default(),
39405            max_primitive_index: Default::default(),
39406            max_geometry_index: Default::default(),
39407            format: Default::default(),
39408        }
39409    }
39410}
39411///[`VkPhysicalDeviceDepthClampZeroOneFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthClampZeroOneFeaturesKHR.html)
39412/**
39413Provided by **VK_KHR_depth_clamp_zero_one**.*/
39414///
39415///# Extends
39416///- [`PhysicalDeviceFeatures2`]
39417///- [`DeviceCreateInfo`]
39418#[repr(C)]
39419#[derive(Copy, Clone, Debug)]
39420#[doc(alias = "VkPhysicalDeviceDepthClampZeroOneFeaturesKHR")]
39421pub struct PhysicalDeviceDepthClampZeroOneFeaturesKHR {
39422    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR`.
39423    pub s_type: StructureType,
39424    ///Optional, may be null.
39425    pub p_next: *mut core::ffi::c_void,
39426    pub depth_clamp_zero_one: u32,
39427}
39428impl Default for PhysicalDeviceDepthClampZeroOneFeaturesKHR {
39429    #[inline]
39430    fn default() -> Self {
39431        Self {
39432            s_type: StructureType::from_raw(1000421000i32),
39433            p_next: core::ptr::null_mut(),
39434            depth_clamp_zero_one: Default::default(),
39435        }
39436    }
39437}
39438///[`VkPhysicalDeviceCooperativeVectorFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeVectorFeaturesNV.html)
39439/**
39440Provided by **VK_NV_cooperative_vector**.*/
39441///
39442///# Extends
39443///- [`PhysicalDeviceFeatures2`]
39444///- [`DeviceCreateInfo`]
39445#[repr(C)]
39446#[derive(Copy, Clone, Debug)]
39447#[doc(alias = "VkPhysicalDeviceCooperativeVectorFeaturesNV")]
39448pub struct PhysicalDeviceCooperativeVectorFeaturesNV {
39449    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV`.
39450    pub s_type: StructureType,
39451    ///Optional, may be null.
39452    pub p_next: *mut core::ffi::c_void,
39453    pub cooperative_vector: u32,
39454    pub cooperative_vector_training: u32,
39455}
39456impl Default for PhysicalDeviceCooperativeVectorFeaturesNV {
39457    #[inline]
39458    fn default() -> Self {
39459        Self {
39460            s_type: StructureType::from_raw(1000491000i32),
39461            p_next: core::ptr::null_mut(),
39462            cooperative_vector: Default::default(),
39463            cooperative_vector_training: Default::default(),
39464        }
39465    }
39466}
39467///[`VkCooperativeVectorPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeVectorPropertiesNV.html)
39468/**
39469Provided by **VK_NV_cooperative_vector**.*/
39470#[repr(C)]
39471#[derive(Copy, Clone, Debug)]
39472#[doc(alias = "VkCooperativeVectorPropertiesNV")]
39473pub struct CooperativeVectorPropertiesNV {
39474    ///Must be `VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV`.
39475    pub s_type: StructureType,
39476    ///Optional, may be null.
39477    pub p_next: *mut core::ffi::c_void,
39478    pub input_type: ComponentTypeKHR,
39479    pub input_interpretation: ComponentTypeKHR,
39480    pub matrix_interpretation: ComponentTypeKHR,
39481    pub bias_interpretation: ComponentTypeKHR,
39482    pub result_type: ComponentTypeKHR,
39483    pub transpose: u32,
39484}
39485impl Default for CooperativeVectorPropertiesNV {
39486    #[inline]
39487    fn default() -> Self {
39488        Self {
39489            s_type: StructureType::from_raw(1000491002i32),
39490            p_next: core::ptr::null_mut(),
39491            input_type: Default::default(),
39492            input_interpretation: Default::default(),
39493            matrix_interpretation: Default::default(),
39494            bias_interpretation: Default::default(),
39495            result_type: Default::default(),
39496            transpose: Default::default(),
39497        }
39498    }
39499}
39500///[`VkPhysicalDeviceCooperativeVectorPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeVectorPropertiesNV.html)
39501/**
39502Provided by **VK_NV_cooperative_vector**.*/
39503/**
39504**Returned only**, filled by Vulkan, not constructed by the application.*/
39505///
39506///# Extends
39507///- [`PhysicalDeviceProperties2`]
39508#[repr(C)]
39509#[derive(Copy, Clone, Debug)]
39510#[doc(alias = "VkPhysicalDeviceCooperativeVectorPropertiesNV")]
39511pub struct PhysicalDeviceCooperativeVectorPropertiesNV {
39512    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV`.
39513    pub s_type: StructureType,
39514    ///Optional, may be null.
39515    pub p_next: *mut core::ffi::c_void,
39516    pub cooperative_vector_supported_stages: ShaderStageFlags,
39517    pub cooperative_vector_training_float16_accumulation: u32,
39518    pub cooperative_vector_training_float32_accumulation: u32,
39519    pub max_cooperative_vector_components: u32,
39520}
39521impl Default for PhysicalDeviceCooperativeVectorPropertiesNV {
39522    #[inline]
39523    fn default() -> Self {
39524        Self {
39525            s_type: StructureType::from_raw(1000491001i32),
39526            p_next: core::ptr::null_mut(),
39527            cooperative_vector_supported_stages: Default::default(),
39528            cooperative_vector_training_float16_accumulation: Default::default(),
39529            cooperative_vector_training_float32_accumulation: Default::default(),
39530            max_cooperative_vector_components: Default::default(),
39531        }
39532    }
39533}
39534///[`VkConvertCooperativeVectorMatrixInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkConvertCooperativeVectorMatrixInfoNV.html)
39535/**
39536Provided by **VK_NV_cooperative_vector**.*/
39537#[repr(C)]
39538#[derive(Copy, Clone, Debug)]
39539#[doc(alias = "VkConvertCooperativeVectorMatrixInfoNV")]
39540pub struct ConvertCooperativeVectorMatrixInfoNV {
39541    ///Must be `VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV`.
39542    pub s_type: StructureType,
39543    ///Optional, may be null.
39544    pub p_next: *const core::ffi::c_void,
39545    pub src_size: usize,
39546    pub src_data: DeviceOrHostAddressConstKHR,
39547    ///Optional, may be null.
39548    pub p_dst_size: *mut usize,
39549    pub dst_data: DeviceOrHostAddressKHR,
39550    pub src_component_type: ComponentTypeKHR,
39551    pub dst_component_type: ComponentTypeKHR,
39552    pub num_rows: u32,
39553    pub num_columns: u32,
39554    pub src_layout: CooperativeVectorMatrixLayoutNV,
39555    pub src_stride: usize,
39556    pub dst_layout: CooperativeVectorMatrixLayoutNV,
39557    pub dst_stride: usize,
39558}
39559impl Default for ConvertCooperativeVectorMatrixInfoNV {
39560    #[inline]
39561    fn default() -> Self {
39562        Self {
39563            s_type: StructureType::from_raw(1000491004i32),
39564            p_next: core::ptr::null(),
39565            src_size: Default::default(),
39566            src_data: Default::default(),
39567            p_dst_size: core::ptr::null_mut(),
39568            dst_data: Default::default(),
39569            src_component_type: Default::default(),
39570            dst_component_type: Default::default(),
39571            num_rows: Default::default(),
39572            num_columns: Default::default(),
39573            src_layout: Default::default(),
39574            src_stride: Default::default(),
39575            dst_layout: Default::default(),
39576            dst_stride: Default::default(),
39577        }
39578    }
39579}
39580///[`VkPhysicalDeviceTileShadingFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTileShadingFeaturesQCOM.html)
39581/**
39582Provided by **VK_QCOM_tile_shading**.*/
39583///
39584///# Extends
39585///- [`PhysicalDeviceFeatures2`]
39586///- [`DeviceCreateInfo`]
39587#[repr(C)]
39588#[derive(Copy, Clone, Debug)]
39589#[doc(alias = "VkPhysicalDeviceTileShadingFeaturesQCOM")]
39590pub struct PhysicalDeviceTileShadingFeaturesQCOM {
39591    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM`.
39592    pub s_type: StructureType,
39593    ///Optional, may be null.
39594    pub p_next: *mut core::ffi::c_void,
39595    pub tile_shading: u32,
39596    pub tile_shading_fragment_stage: u32,
39597    pub tile_shading_color_attachments: u32,
39598    pub tile_shading_depth_attachments: u32,
39599    pub tile_shading_stencil_attachments: u32,
39600    pub tile_shading_input_attachments: u32,
39601    pub tile_shading_sampled_attachments: u32,
39602    pub tile_shading_per_tile_draw: u32,
39603    pub tile_shading_per_tile_dispatch: u32,
39604    pub tile_shading_dispatch_tile: u32,
39605    pub tile_shading_apron: u32,
39606    pub tile_shading_anisotropic_apron: u32,
39607    pub tile_shading_atomic_ops: u32,
39608    pub tile_shading_image_processing: u32,
39609}
39610impl Default for PhysicalDeviceTileShadingFeaturesQCOM {
39611    #[inline]
39612    fn default() -> Self {
39613        Self {
39614            s_type: StructureType::from_raw(1000309000i32),
39615            p_next: core::ptr::null_mut(),
39616            tile_shading: Default::default(),
39617            tile_shading_fragment_stage: Default::default(),
39618            tile_shading_color_attachments: Default::default(),
39619            tile_shading_depth_attachments: Default::default(),
39620            tile_shading_stencil_attachments: Default::default(),
39621            tile_shading_input_attachments: Default::default(),
39622            tile_shading_sampled_attachments: Default::default(),
39623            tile_shading_per_tile_draw: Default::default(),
39624            tile_shading_per_tile_dispatch: Default::default(),
39625            tile_shading_dispatch_tile: Default::default(),
39626            tile_shading_apron: Default::default(),
39627            tile_shading_anisotropic_apron: Default::default(),
39628            tile_shading_atomic_ops: Default::default(),
39629            tile_shading_image_processing: Default::default(),
39630        }
39631    }
39632}
39633///[`VkPhysicalDeviceTileShadingPropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTileShadingPropertiesQCOM.html)
39634/**
39635Provided by **VK_QCOM_tile_shading**.*/
39636/**
39637**Returned only**, filled by Vulkan, not constructed by the application.*/
39638///
39639///# Extends
39640///- [`PhysicalDeviceProperties2`]
39641#[repr(C)]
39642#[derive(Copy, Clone, Debug)]
39643#[doc(alias = "VkPhysicalDeviceTileShadingPropertiesQCOM")]
39644pub struct PhysicalDeviceTileShadingPropertiesQCOM {
39645    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM`.
39646    pub s_type: StructureType,
39647    ///Optional, may be null.
39648    pub p_next: *mut core::ffi::c_void,
39649    pub max_apron_size: u32,
39650    pub prefer_non_coherent: u32,
39651    pub tile_granularity: Extent2D,
39652    pub max_tile_shading_rate: Extent2D,
39653}
39654impl Default for PhysicalDeviceTileShadingPropertiesQCOM {
39655    #[inline]
39656    fn default() -> Self {
39657        Self {
39658            s_type: StructureType::from_raw(1000309001i32),
39659            p_next: core::ptr::null_mut(),
39660            max_apron_size: Default::default(),
39661            prefer_non_coherent: Default::default(),
39662            tile_granularity: Default::default(),
39663            max_tile_shading_rate: Default::default(),
39664        }
39665    }
39666}
39667///[`VkRenderPassTileShadingCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassTileShadingCreateInfoQCOM.html)
39668/**
39669Provided by **VK_QCOM_tile_shading**.*/
39670///
39671///# Extends
39672///- [`RenderPassCreateInfo`]
39673///- [`RenderPassCreateInfo2`]
39674///- [`RenderingInfo`]
39675///- [`CommandBufferInheritanceInfo`]
39676#[repr(C)]
39677#[derive(Copy, Clone, Debug)]
39678#[doc(alias = "VkRenderPassTileShadingCreateInfoQCOM")]
39679pub struct RenderPassTileShadingCreateInfoQCOM {
39680    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM`.
39681    pub s_type: StructureType,
39682    ///Optional, may be null.
39683    pub p_next: *const core::ffi::c_void,
39684    pub flags: TileShadingRenderPassFlagsQCOM,
39685    pub tile_apron_size: Extent2D,
39686}
39687impl Default for RenderPassTileShadingCreateInfoQCOM {
39688    #[inline]
39689    fn default() -> Self {
39690        Self {
39691            s_type: StructureType::from_raw(1000309002i32),
39692            p_next: core::ptr::null(),
39693            flags: Default::default(),
39694            tile_apron_size: Default::default(),
39695        }
39696    }
39697}
39698///[`VkPerTileBeginInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerTileBeginInfoQCOM.html)
39699/**
39700Provided by **VK_QCOM_tile_shading**.*/
39701#[repr(C)]
39702#[derive(Copy, Clone, Debug)]
39703#[doc(alias = "VkPerTileBeginInfoQCOM")]
39704pub struct PerTileBeginInfoQCOM {
39705    ///Must be `VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM`.
39706    pub s_type: StructureType,
39707    ///Optional, may be null.
39708    pub p_next: *const core::ffi::c_void,
39709}
39710impl Default for PerTileBeginInfoQCOM {
39711    #[inline]
39712    fn default() -> Self {
39713        Self {
39714            s_type: StructureType::from_raw(1000309003i32),
39715            p_next: core::ptr::null(),
39716        }
39717    }
39718}
39719///[`VkPerTileEndInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerTileEndInfoQCOM.html)
39720/**
39721Provided by **VK_QCOM_tile_shading**.*/
39722#[repr(C)]
39723#[derive(Copy, Clone, Debug)]
39724#[doc(alias = "VkPerTileEndInfoQCOM")]
39725pub struct PerTileEndInfoQCOM {
39726    ///Must be `VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM`.
39727    pub s_type: StructureType,
39728    ///Optional, may be null.
39729    pub p_next: *const core::ffi::c_void,
39730}
39731impl Default for PerTileEndInfoQCOM {
39732    #[inline]
39733    fn default() -> Self {
39734        Self {
39735            s_type: StructureType::from_raw(1000309004i32),
39736            p_next: core::ptr::null(),
39737        }
39738    }
39739}
39740///[`VkDispatchTileInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchTileInfoQCOM.html)
39741/**
39742Provided by **VK_QCOM_tile_shading**.*/
39743#[repr(C)]
39744#[derive(Copy, Clone, Debug)]
39745#[doc(alias = "VkDispatchTileInfoQCOM")]
39746pub struct DispatchTileInfoQCOM {
39747    ///Must be `VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM`.
39748    pub s_type: StructureType,
39749    ///Optional, may be null.
39750    pub p_next: *const core::ffi::c_void,
39751}
39752impl Default for DispatchTileInfoQCOM {
39753    #[inline]
39754    fn default() -> Self {
39755        Self {
39756            s_type: StructureType::from_raw(1000309005i32),
39757            p_next: core::ptr::null(),
39758        }
39759    }
39760}
39761///[`VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE.html)
39762/**
39763Provided by **VK_VALVE_fragment_density_map_layered**.*/
39764/**
39765**Returned only**, filled by Vulkan, not constructed by the application.*/
39766///
39767///# Extends
39768///- [`PhysicalDeviceProperties2`]
39769#[repr(C)]
39770#[derive(Copy, Clone, Debug)]
39771#[doc(alias = "VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE")]
39772pub struct PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
39773    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE`.
39774    pub s_type: StructureType,
39775    ///Optional, may be null.
39776    pub p_next: *mut core::ffi::c_void,
39777    pub max_fragment_density_map_layers: u32,
39778}
39779impl Default for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
39780    #[inline]
39781    fn default() -> Self {
39782        Self {
39783            s_type: StructureType::from_raw(1000611001i32),
39784            p_next: core::ptr::null_mut(),
39785            max_fragment_density_map_layers: Default::default(),
39786        }
39787    }
39788}
39789///[`VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE.html)
39790/**
39791Provided by **VK_VALVE_fragment_density_map_layered**.*/
39792///
39793///# Extends
39794///- [`PhysicalDeviceFeatures2`]
39795///- [`DeviceCreateInfo`]
39796#[repr(C)]
39797#[derive(Copy, Clone, Debug)]
39798#[doc(alias = "VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE")]
39799pub struct PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
39800    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE`.
39801    pub s_type: StructureType,
39802    ///Optional, may be null.
39803    pub p_next: *mut core::ffi::c_void,
39804    pub fragment_density_map_layered: u32,
39805}
39806impl Default for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
39807    #[inline]
39808    fn default() -> Self {
39809        Self {
39810            s_type: StructureType::from_raw(1000611000i32),
39811            p_next: core::ptr::null_mut(),
39812            fragment_density_map_layered: Default::default(),
39813        }
39814    }
39815}
39816///[`VkPipelineFragmentDensityMapLayeredCreateInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineFragmentDensityMapLayeredCreateInfoVALVE.html)
39817/**
39818Provided by **VK_VALVE_fragment_density_map_layered**.*/
39819///
39820///# Extends
39821///- [`GraphicsPipelineCreateInfo`]
39822#[repr(C)]
39823#[derive(Copy, Clone, Debug)]
39824#[doc(alias = "VkPipelineFragmentDensityMapLayeredCreateInfoVALVE")]
39825pub struct PipelineFragmentDensityMapLayeredCreateInfoVALVE {
39826    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE`.
39827    pub s_type: StructureType,
39828    ///Optional, may be null.
39829    pub p_next: *const core::ffi::c_void,
39830    pub max_fragment_density_map_layers: u32,
39831}
39832impl Default for PipelineFragmentDensityMapLayeredCreateInfoVALVE {
39833    #[inline]
39834    fn default() -> Self {
39835        Self {
39836            s_type: StructureType::from_raw(1000611002i32),
39837            p_next: core::ptr::null(),
39838            max_fragment_density_map_layers: Default::default(),
39839        }
39840    }
39841}
39842///[`VkSetPresentConfigNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSetPresentConfigNV.html)
39843/**
39844Provided by **VK_NV_present_metering**.*/
39845///
39846///# Extends
39847///- [`PresentInfoKHR`]
39848#[repr(C)]
39849#[derive(Copy, Clone, Debug)]
39850#[doc(alias = "VkSetPresentConfigNV")]
39851pub struct SetPresentConfigNV {
39852    ///Must be `VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV`.
39853    pub s_type: StructureType,
39854    ///Optional, may be null.
39855    pub p_next: *const core::ffi::c_void,
39856    pub num_frames_per_batch: u32,
39857    pub present_config_feedback: u32,
39858}
39859impl Default for SetPresentConfigNV {
39860    #[inline]
39861    fn default() -> Self {
39862        Self {
39863            s_type: StructureType::from_raw(1000613000i32),
39864            p_next: core::ptr::null(),
39865            num_frames_per_batch: Default::default(),
39866            present_config_feedback: Default::default(),
39867        }
39868    }
39869}
39870///[`VkPhysicalDevicePresentMeteringFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentMeteringFeaturesNV.html)
39871/**
39872Provided by **VK_NV_present_metering**.*/
39873///
39874///# Extends
39875///- [`PhysicalDeviceFeatures2`]
39876///- [`DeviceCreateInfo`]
39877#[repr(C)]
39878#[derive(Copy, Clone, Debug)]
39879#[doc(alias = "VkPhysicalDevicePresentMeteringFeaturesNV")]
39880pub struct PhysicalDevicePresentMeteringFeaturesNV {
39881    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV`.
39882    pub s_type: StructureType,
39883    ///Optional, may be null.
39884    pub p_next: *mut core::ffi::c_void,
39885    pub present_metering: u32,
39886}
39887impl Default for PhysicalDevicePresentMeteringFeaturesNV {
39888    #[inline]
39889    fn default() -> Self {
39890        Self {
39891            s_type: StructureType::from_raw(1000613001i32),
39892            p_next: core::ptr::null_mut(),
39893            present_metering: Default::default(),
39894        }
39895    }
39896}
39897///[`VkExternalComputeQueueDeviceCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalComputeQueueDeviceCreateInfoNV.html)
39898/**
39899Provided by **VK_NV_external_compute_queue**.*/
39900///
39901///# Extends
39902///- [`DeviceCreateInfo`]
39903#[repr(C)]
39904#[derive(Copy, Clone, Debug)]
39905#[doc(alias = "VkExternalComputeQueueDeviceCreateInfoNV")]
39906pub struct ExternalComputeQueueDeviceCreateInfoNV {
39907    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV`.
39908    pub s_type: StructureType,
39909    ///Optional, may be null.
39910    pub p_next: *const core::ffi::c_void,
39911    pub reserved_external_queues: u32,
39912}
39913impl Default for ExternalComputeQueueDeviceCreateInfoNV {
39914    #[inline]
39915    fn default() -> Self {
39916        Self {
39917            s_type: StructureType::from_raw(1000556000i32),
39918            p_next: core::ptr::null(),
39919            reserved_external_queues: Default::default(),
39920        }
39921    }
39922}
39923///[`VkExternalComputeQueueCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalComputeQueueCreateInfoNV.html)
39924/**
39925Provided by **VK_NV_external_compute_queue**.*/
39926#[repr(C)]
39927#[derive(Copy, Clone, Debug)]
39928#[doc(alias = "VkExternalComputeQueueCreateInfoNV")]
39929pub struct ExternalComputeQueueCreateInfoNV {
39930    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV`.
39931    pub s_type: StructureType,
39932    ///Optional, may be null.
39933    pub p_next: *const core::ffi::c_void,
39934    pub preferred_queue: Queue,
39935}
39936impl Default for ExternalComputeQueueCreateInfoNV {
39937    #[inline]
39938    fn default() -> Self {
39939        Self {
39940            s_type: StructureType::from_raw(1000556001i32),
39941            p_next: core::ptr::null(),
39942            preferred_queue: Default::default(),
39943        }
39944    }
39945}
39946///[`VkExternalComputeQueueDataParamsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalComputeQueueDataParamsNV.html)
39947/**
39948Provided by **VK_NV_external_compute_queue**.*/
39949#[repr(C)]
39950#[derive(Copy, Clone, Debug)]
39951#[doc(alias = "VkExternalComputeQueueDataParamsNV")]
39952pub struct ExternalComputeQueueDataParamsNV {
39953    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV`.
39954    pub s_type: StructureType,
39955    ///Optional, may be null.
39956    pub p_next: *const core::ffi::c_void,
39957    pub device_index: u32,
39958}
39959impl Default for ExternalComputeQueueDataParamsNV {
39960    #[inline]
39961    fn default() -> Self {
39962        Self {
39963            s_type: StructureType::from_raw(1000556002i32),
39964            p_next: core::ptr::null(),
39965            device_index: Default::default(),
39966        }
39967    }
39968}
39969///[`VkPhysicalDeviceExternalComputeQueuePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalComputeQueuePropertiesNV.html)
39970/**
39971Provided by **VK_NV_external_compute_queue**.*/
39972/**
39973**Returned only**, filled by Vulkan, not constructed by the application.*/
39974///
39975///# Extends
39976///- [`PhysicalDeviceProperties2`]
39977#[repr(C)]
39978#[derive(Copy, Clone, Debug)]
39979#[doc(alias = "VkPhysicalDeviceExternalComputeQueuePropertiesNV")]
39980pub struct PhysicalDeviceExternalComputeQueuePropertiesNV {
39981    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV`.
39982    pub s_type: StructureType,
39983    ///Optional, may be null.
39984    pub p_next: *mut core::ffi::c_void,
39985    pub external_data_size: u32,
39986    pub max_external_queues: u32,
39987}
39988impl Default for PhysicalDeviceExternalComputeQueuePropertiesNV {
39989    #[inline]
39990    fn default() -> Self {
39991        Self {
39992            s_type: StructureType::from_raw(1000556003i32),
39993            p_next: core::ptr::null_mut(),
39994            external_data_size: Default::default(),
39995            max_external_queues: Default::default(),
39996        }
39997    }
39998}
39999///[`VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT.html)
40000/**
40001Provided by **VK_EXT_shader_uniform_buffer_unsized_array**.*/
40002///
40003///# Extends
40004///- [`PhysicalDeviceFeatures2`]
40005///- [`DeviceCreateInfo`]
40006#[repr(C)]
40007#[derive(Copy, Clone, Debug)]
40008#[doc(alias = "VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT")]
40009pub struct PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
40010    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT`.
40011    pub s_type: StructureType,
40012    ///Optional, may be null.
40013    pub p_next: *mut core::ffi::c_void,
40014    pub shader_uniform_buffer_unsized_array: u32,
40015}
40016impl Default for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
40017    #[inline]
40018    fn default() -> Self {
40019        Self {
40020            s_type: StructureType::from_raw(1000642000i32),
40021            p_next: core::ptr::null_mut(),
40022            shader_uniform_buffer_unsized_array: Default::default(),
40023        }
40024    }
40025}
40026///[`VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE.html)
40027/**
40028Provided by **VK_VALVE_shader_mixed_float_dot_product**.*/
40029///
40030///# Extends
40031///- [`PhysicalDeviceFeatures2`]
40032///- [`DeviceCreateInfo`]
40033#[repr(C)]
40034#[derive(Copy, Clone, Debug)]
40035#[doc(alias = "VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE")]
40036pub struct PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {
40037    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MIXED_FLOAT_DOT_PRODUCT_FEATURES_VALVE`.
40038    pub s_type: StructureType,
40039    ///Optional, may be null.
40040    pub p_next: *mut core::ffi::c_void,
40041    pub shader_mixed_float_dot_product_float16_acc_float32: u32,
40042    pub shader_mixed_float_dot_product_float16_acc_float16: u32,
40043    pub shader_mixed_float_dot_product_b_float16_acc: u32,
40044    pub shader_mixed_float_dot_product_float8_acc_float32: u32,
40045}
40046impl Default for PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {
40047    #[inline]
40048    fn default() -> Self {
40049        Self {
40050            s_type: StructureType::from_raw(1000673000i32),
40051            p_next: core::ptr::null_mut(),
40052            shader_mixed_float_dot_product_float16_acc_float32: Default::default(),
40053            shader_mixed_float_dot_product_float16_acc_float16: Default::default(),
40054            shader_mixed_float_dot_product_b_float16_acc: Default::default(),
40055            shader_mixed_float_dot_product_float8_acc_float32: Default::default(),
40056        }
40057    }
40058}
40059///[`VkPhysicalDeviceFormatPackFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFormatPackFeaturesARM.html)
40060/**
40061Provided by **VK_ARM_format_pack**.*/
40062///
40063///# Extends
40064///- [`PhysicalDeviceFeatures2`]
40065///- [`DeviceCreateInfo`]
40066#[repr(C)]
40067#[derive(Copy, Clone, Debug)]
40068#[doc(alias = "VkPhysicalDeviceFormatPackFeaturesARM")]
40069pub struct PhysicalDeviceFormatPackFeaturesARM {
40070    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM`.
40071    pub s_type: StructureType,
40072    ///Optional, may be null.
40073    pub p_next: *mut core::ffi::c_void,
40074    pub format_pack: u32,
40075}
40076impl Default for PhysicalDeviceFormatPackFeaturesARM {
40077    #[inline]
40078    fn default() -> Self {
40079        Self {
40080            s_type: StructureType::from_raw(1000609000i32),
40081            p_next: core::ptr::null_mut(),
40082            format_pack: Default::default(),
40083        }
40084    }
40085}
40086///[`VkTensorDescriptionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorDescriptionARM.html)
40087/**
40088Provided by **VK_ARM_tensors**.*/
40089///
40090///# Extends
40091///- [`DataGraphPipelineResourceInfoARM`]
40092///- [`DataGraphPipelineConstantARM`]
40093#[repr(C)]
40094#[derive(Copy, Clone, Debug)]
40095#[doc(alias = "VkTensorDescriptionARM")]
40096pub struct TensorDescriptionARM {
40097    ///Must be `VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM`.
40098    pub s_type: StructureType,
40099    ///Optional, may be null.
40100    pub p_next: *const core::ffi::c_void,
40101    pub tiling: TensorTilingARM,
40102    pub format: Format,
40103    ///Length of `p_strides`.
40104    pub dimension_count: u32,
40105    pub p_dimensions: *const i64,
40106    ///Optional, may be null.
40107    pub p_strides: *const i64,
40108    pub usage: TensorUsageFlagsARM,
40109}
40110impl Default for TensorDescriptionARM {
40111    #[inline]
40112    fn default() -> Self {
40113        Self {
40114            s_type: StructureType::from_raw(1000460006i32),
40115            p_next: core::ptr::null(),
40116            tiling: Default::default(),
40117            format: Default::default(),
40118            dimension_count: Default::default(),
40119            p_dimensions: core::ptr::null(),
40120            p_strides: core::ptr::null(),
40121            usage: Default::default(),
40122        }
40123    }
40124}
40125///[`VkTensorCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCreateInfoARM.html)
40126/**
40127Provided by **VK_ARM_tensors**.*/
40128///
40129///# Extended By
40130///- [`ExternalMemoryTensorCreateInfoARM`]
40131///- [`OpaqueCaptureDataCreateInfoEXT`]
40132///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
40133#[repr(C)]
40134#[derive(Copy, Clone, Debug)]
40135#[doc(alias = "VkTensorCreateInfoARM")]
40136pub struct TensorCreateInfoARM {
40137    ///Must be `VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM`.
40138    pub s_type: StructureType,
40139    ///Optional, may be null.
40140    pub p_next: *const core::ffi::c_void,
40141    pub flags: TensorCreateFlagsARM,
40142    pub p_description: *const TensorDescriptionARM,
40143    pub sharing_mode: SharingMode,
40144    ///Length of `p_queue_family_indices`.
40145    pub queue_family_index_count: u32,
40146    pub p_queue_family_indices: *const u32,
40147}
40148impl Default for TensorCreateInfoARM {
40149    #[inline]
40150    fn default() -> Self {
40151        Self {
40152            s_type: StructureType::from_raw(1000460000i32),
40153            p_next: core::ptr::null(),
40154            flags: Default::default(),
40155            p_description: core::ptr::null(),
40156            sharing_mode: Default::default(),
40157            queue_family_index_count: Default::default(),
40158            p_queue_family_indices: core::ptr::null(),
40159        }
40160    }
40161}
40162///[`VkTensorViewCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewCreateInfoARM.html)
40163/**
40164Provided by **VK_EXT_descriptor_heap**.*/
40165///
40166///# Extended By
40167///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
40168#[repr(C)]
40169#[derive(Copy, Clone, Debug)]
40170#[doc(alias = "VkTensorViewCreateInfoARM")]
40171pub struct TensorViewCreateInfoARM {
40172    ///Must be `VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM`.
40173    pub s_type: StructureType,
40174    ///Optional, may be null.
40175    pub p_next: *const core::ffi::c_void,
40176    pub flags: TensorViewCreateFlagsARM,
40177    pub tensor: TensorARM,
40178    pub format: Format,
40179}
40180impl Default for TensorViewCreateInfoARM {
40181    #[inline]
40182    fn default() -> Self {
40183        Self {
40184            s_type: StructureType::from_raw(1000460001i32),
40185            p_next: core::ptr::null(),
40186            flags: Default::default(),
40187            tensor: Default::default(),
40188            format: Default::default(),
40189        }
40190    }
40191}
40192///[`VkTensorMemoryRequirementsInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorMemoryRequirementsInfoARM.html)
40193/**
40194Provided by **VK_ARM_tensors**.*/
40195#[repr(C)]
40196#[derive(Copy, Clone, Debug)]
40197#[doc(alias = "VkTensorMemoryRequirementsInfoARM")]
40198pub struct TensorMemoryRequirementsInfoARM {
40199    ///Must be `VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM`.
40200    pub s_type: StructureType,
40201    ///Optional, may be null.
40202    pub p_next: *const core::ffi::c_void,
40203    pub tensor: TensorARM,
40204}
40205impl Default for TensorMemoryRequirementsInfoARM {
40206    #[inline]
40207    fn default() -> Self {
40208        Self {
40209            s_type: StructureType::from_raw(1000460007i32),
40210            p_next: core::ptr::null(),
40211            tensor: Default::default(),
40212        }
40213    }
40214}
40215///[`VkBindTensorMemoryInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindTensorMemoryInfoARM.html)
40216/**
40217Provided by **VK_ARM_tensors**.*/
40218#[repr(C)]
40219#[derive(Copy, Clone, Debug)]
40220#[doc(alias = "VkBindTensorMemoryInfoARM")]
40221pub struct BindTensorMemoryInfoARM {
40222    ///Must be `VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM`.
40223    pub s_type: StructureType,
40224    ///Optional, may be null.
40225    pub p_next: *const core::ffi::c_void,
40226    ///**Thread safety:** must be externally synchronized.
40227    pub tensor: TensorARM,
40228    pub memory: DeviceMemory,
40229    pub memory_offset: u64,
40230}
40231impl Default for BindTensorMemoryInfoARM {
40232    #[inline]
40233    fn default() -> Self {
40234        Self {
40235            s_type: StructureType::from_raw(1000460002i32),
40236            p_next: core::ptr::null(),
40237            tensor: Default::default(),
40238            memory: Default::default(),
40239            memory_offset: Default::default(),
40240        }
40241    }
40242}
40243///[`VkWriteDescriptorSetTensorARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetTensorARM.html)
40244/**
40245Provided by **VK_ARM_tensors**.*/
40246///
40247///# Extends
40248///- [`WriteDescriptorSet`]
40249#[repr(C)]
40250#[derive(Copy, Clone, Debug)]
40251#[doc(alias = "VkWriteDescriptorSetTensorARM")]
40252pub struct WriteDescriptorSetTensorARM {
40253    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM`.
40254    pub s_type: StructureType,
40255    ///Optional, may be null.
40256    pub p_next: *const core::ffi::c_void,
40257    ///Length of `p_tensor_views`.
40258    pub tensor_view_count: u32,
40259    ///Optional, may be null.
40260    pub p_tensor_views: *const TensorViewARM,
40261}
40262impl Default for WriteDescriptorSetTensorARM {
40263    #[inline]
40264    fn default() -> Self {
40265        Self {
40266            s_type: StructureType::from_raw(1000460003i32),
40267            p_next: core::ptr::null(),
40268            tensor_view_count: Default::default(),
40269            p_tensor_views: core::ptr::null(),
40270        }
40271    }
40272}
40273///[`VkTensorFormatPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorFormatPropertiesARM.html)
40274/**
40275Provided by **VK_ARM_tensors**.*/
40276/**
40277**Returned only**, filled by Vulkan, not constructed by the application.*/
40278///
40279///# Extends
40280///- [`FormatProperties2`]
40281#[repr(C)]
40282#[derive(Copy, Clone, Debug)]
40283#[doc(alias = "VkTensorFormatPropertiesARM")]
40284pub struct TensorFormatPropertiesARM {
40285    ///Must be `VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM`.
40286    pub s_type: StructureType,
40287    ///Optional, may be null.
40288    pub p_next: *mut core::ffi::c_void,
40289    pub optimal_tiling_tensor_features: FormatFeatureFlags2,
40290    pub linear_tiling_tensor_features: FormatFeatureFlags2,
40291}
40292impl Default for TensorFormatPropertiesARM {
40293    #[inline]
40294    fn default() -> Self {
40295        Self {
40296            s_type: StructureType::from_raw(1000460005i32),
40297            p_next: core::ptr::null_mut(),
40298            optimal_tiling_tensor_features: Default::default(),
40299            linear_tiling_tensor_features: Default::default(),
40300        }
40301    }
40302}
40303///[`VkPhysicalDeviceTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTensorPropertiesARM.html)
40304/**
40305Provided by **VK_ARM_tensors**.*/
40306/**
40307**Returned only**, filled by Vulkan, not constructed by the application.*/
40308///
40309///# Extends
40310///- [`PhysicalDeviceProperties2`]
40311#[repr(C)]
40312#[derive(Copy, Clone, Debug)]
40313#[doc(alias = "VkPhysicalDeviceTensorPropertiesARM")]
40314pub struct PhysicalDeviceTensorPropertiesARM {
40315    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM`.
40316    pub s_type: StructureType,
40317    ///Optional, may be null.
40318    pub p_next: *mut core::ffi::c_void,
40319    pub max_tensor_dimension_count: u32,
40320    pub max_tensor_elements: u64,
40321    pub max_per_dimension_tensor_elements: u64,
40322    pub max_tensor_stride: i64,
40323    pub max_tensor_size: u64,
40324    pub max_tensor_shader_access_array_length: u32,
40325    pub max_tensor_shader_access_size: u32,
40326    pub max_descriptor_set_storage_tensors: u32,
40327    pub max_per_stage_descriptor_set_storage_tensors: u32,
40328    pub max_descriptor_set_update_after_bind_storage_tensors: u32,
40329    pub max_per_stage_descriptor_update_after_bind_storage_tensors: u32,
40330    pub shader_storage_tensor_array_non_uniform_indexing_native: u32,
40331    pub shader_tensor_supported_stages: ShaderStageFlags,
40332}
40333impl Default for PhysicalDeviceTensorPropertiesARM {
40334    #[inline]
40335    fn default() -> Self {
40336        Self {
40337            s_type: StructureType::from_raw(1000460004i32),
40338            p_next: core::ptr::null_mut(),
40339            max_tensor_dimension_count: Default::default(),
40340            max_tensor_elements: Default::default(),
40341            max_per_dimension_tensor_elements: Default::default(),
40342            max_tensor_stride: Default::default(),
40343            max_tensor_size: Default::default(),
40344            max_tensor_shader_access_array_length: Default::default(),
40345            max_tensor_shader_access_size: Default::default(),
40346            max_descriptor_set_storage_tensors: Default::default(),
40347            max_per_stage_descriptor_set_storage_tensors: Default::default(),
40348            max_descriptor_set_update_after_bind_storage_tensors: Default::default(),
40349            max_per_stage_descriptor_update_after_bind_storage_tensors: Default::default(),
40350            shader_storage_tensor_array_non_uniform_indexing_native: Default::default(),
40351            shader_tensor_supported_stages: Default::default(),
40352        }
40353    }
40354}
40355///[`VkTensorMemoryBarrierARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorMemoryBarrierARM.html)
40356/**
40357Provided by **VK_ARM_tensors**.*/
40358///
40359///# Extends
40360///- [`DependencyInfo`]
40361#[repr(C)]
40362#[derive(Copy, Clone, Debug)]
40363#[doc(alias = "VkTensorMemoryBarrierARM")]
40364pub struct TensorMemoryBarrierARM {
40365    ///Must be `VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM`.
40366    pub s_type: StructureType,
40367    ///Optional, may be null.
40368    pub p_next: *const core::ffi::c_void,
40369    pub src_stage_mask: PipelineStageFlags2,
40370    pub src_access_mask: AccessFlags2,
40371    pub dst_stage_mask: PipelineStageFlags2,
40372    pub dst_access_mask: AccessFlags2,
40373    pub src_queue_family_index: u32,
40374    pub dst_queue_family_index: u32,
40375    pub tensor: TensorARM,
40376}
40377impl Default for TensorMemoryBarrierARM {
40378    #[inline]
40379    fn default() -> Self {
40380        Self {
40381            s_type: StructureType::from_raw(1000460008i32),
40382            p_next: core::ptr::null(),
40383            src_stage_mask: Default::default(),
40384            src_access_mask: Default::default(),
40385            dst_stage_mask: Default::default(),
40386            dst_access_mask: Default::default(),
40387            src_queue_family_index: Default::default(),
40388            dst_queue_family_index: Default::default(),
40389            tensor: Default::default(),
40390        }
40391    }
40392}
40393///[`VkTensorDependencyInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorDependencyInfoARM.html)
40394/**
40395Provided by **VK_ARM_tensors**.*/
40396///
40397///# Extends
40398///- [`DependencyInfo`]
40399#[repr(C)]
40400#[derive(Copy, Clone, Debug)]
40401#[doc(alias = "VkTensorDependencyInfoARM")]
40402pub struct TensorDependencyInfoARM {
40403    ///Must be `VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM`.
40404    pub s_type: StructureType,
40405    ///Optional, may be null.
40406    pub p_next: *const core::ffi::c_void,
40407    pub tensor_memory_barrier_count: u32,
40408    pub p_tensor_memory_barriers: *const TensorMemoryBarrierARM,
40409}
40410impl Default for TensorDependencyInfoARM {
40411    #[inline]
40412    fn default() -> Self {
40413        Self {
40414            s_type: StructureType::from_raw(1000460013i32),
40415            p_next: core::ptr::null(),
40416            tensor_memory_barrier_count: Default::default(),
40417            p_tensor_memory_barriers: core::ptr::null(),
40418        }
40419    }
40420}
40421///[`VkPhysicalDeviceTensorFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTensorFeaturesARM.html)
40422/**
40423Provided by **VK_ARM_tensors**.*/
40424///
40425///# Extends
40426///- [`PhysicalDeviceFeatures2`]
40427///- [`DeviceCreateInfo`]
40428#[repr(C)]
40429#[derive(Copy, Clone, Debug)]
40430#[doc(alias = "VkPhysicalDeviceTensorFeaturesARM")]
40431pub struct PhysicalDeviceTensorFeaturesARM {
40432    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM`.
40433    pub s_type: StructureType,
40434    ///Optional, may be null.
40435    pub p_next: *mut core::ffi::c_void,
40436    pub tensor_non_packed: u32,
40437    pub shader_tensor_access: u32,
40438    pub shader_storage_tensor_array_dynamic_indexing: u32,
40439    pub shader_storage_tensor_array_non_uniform_indexing: u32,
40440    pub descriptor_binding_storage_tensor_update_after_bind: u32,
40441    pub tensors: u32,
40442}
40443impl Default for PhysicalDeviceTensorFeaturesARM {
40444    #[inline]
40445    fn default() -> Self {
40446        Self {
40447            s_type: StructureType::from_raw(1000460009i32),
40448            p_next: core::ptr::null_mut(),
40449            tensor_non_packed: Default::default(),
40450            shader_tensor_access: Default::default(),
40451            shader_storage_tensor_array_dynamic_indexing: Default::default(),
40452            shader_storage_tensor_array_non_uniform_indexing: Default::default(),
40453            descriptor_binding_storage_tensor_update_after_bind: Default::default(),
40454            tensors: Default::default(),
40455        }
40456    }
40457}
40458///[`VkDeviceTensorMemoryRequirementsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceTensorMemoryRequirementsARM.html)
40459/**
40460Provided by **VK_ARM_tensors**.*/
40461#[repr(C)]
40462#[derive(Copy, Clone, Debug)]
40463#[doc(alias = "VkDeviceTensorMemoryRequirementsARM")]
40464pub struct DeviceTensorMemoryRequirementsARM {
40465    ///Must be `VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM`.
40466    pub s_type: StructureType,
40467    ///Optional, may be null.
40468    pub p_next: *const core::ffi::c_void,
40469    pub p_create_info: *const TensorCreateInfoARM,
40470}
40471impl Default for DeviceTensorMemoryRequirementsARM {
40472    #[inline]
40473    fn default() -> Self {
40474        Self {
40475            s_type: StructureType::from_raw(1000460010i32),
40476            p_next: core::ptr::null(),
40477            p_create_info: core::ptr::null(),
40478        }
40479    }
40480}
40481///[`VkCopyTensorInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyTensorInfoARM.html)
40482/**
40483Provided by **VK_ARM_tensors**.*/
40484#[repr(C)]
40485#[derive(Copy, Clone, Debug)]
40486#[doc(alias = "VkCopyTensorInfoARM")]
40487pub struct CopyTensorInfoARM {
40488    ///Must be `VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM`.
40489    pub s_type: StructureType,
40490    ///Optional, may be null.
40491    pub p_next: *const core::ffi::c_void,
40492    pub src_tensor: TensorARM,
40493    pub dst_tensor: TensorARM,
40494    ///Length of `p_regions`.
40495    pub region_count: u32,
40496    pub p_regions: *const TensorCopyARM,
40497}
40498impl Default for CopyTensorInfoARM {
40499    #[inline]
40500    fn default() -> Self {
40501        Self {
40502            s_type: StructureType::from_raw(1000460011i32),
40503            p_next: core::ptr::null(),
40504            src_tensor: Default::default(),
40505            dst_tensor: Default::default(),
40506            region_count: Default::default(),
40507            p_regions: core::ptr::null(),
40508        }
40509    }
40510}
40511///[`VkTensorCopyARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCopyARM.html)
40512/**
40513Provided by **VK_ARM_tensors**.*/
40514#[repr(C)]
40515#[derive(Copy, Clone, Debug)]
40516#[doc(alias = "VkTensorCopyARM")]
40517pub struct TensorCopyARM {
40518    ///Must be `VK_STRUCTURE_TYPE_TENSOR_COPY_ARM`.
40519    pub s_type: StructureType,
40520    ///Optional, may be null.
40521    pub p_next: *const core::ffi::c_void,
40522    ///Length of `p_extent`.
40523    pub dimension_count: u32,
40524    ///Optional, may be null.
40525    pub p_src_offset: *const u64,
40526    ///Optional, may be null.
40527    pub p_dst_offset: *const u64,
40528    ///Optional, may be null.
40529    pub p_extent: *const u64,
40530}
40531impl Default for TensorCopyARM {
40532    #[inline]
40533    fn default() -> Self {
40534        Self {
40535            s_type: StructureType::from_raw(1000460012i32),
40536            p_next: core::ptr::null(),
40537            dimension_count: Default::default(),
40538            p_src_offset: core::ptr::null(),
40539            p_dst_offset: core::ptr::null(),
40540            p_extent: core::ptr::null(),
40541        }
40542    }
40543}
40544///[`VkMemoryDedicatedAllocateInfoTensorARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryDedicatedAllocateInfoTensorARM.html)
40545/**
40546Provided by **VK_ARM_tensors**.*/
40547///
40548///# Extends
40549///- [`MemoryAllocateInfo`]
40550#[repr(C)]
40551#[derive(Copy, Clone, Debug)]
40552#[doc(alias = "VkMemoryDedicatedAllocateInfoTensorARM")]
40553pub struct MemoryDedicatedAllocateInfoTensorARM {
40554    ///Must be `VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM`.
40555    pub s_type: StructureType,
40556    ///Optional, may be null.
40557    pub p_next: *const core::ffi::c_void,
40558    pub tensor: TensorARM,
40559}
40560impl Default for MemoryDedicatedAllocateInfoTensorARM {
40561    #[inline]
40562    fn default() -> Self {
40563        Self {
40564            s_type: StructureType::from_raw(1000460014i32),
40565            p_next: core::ptr::null(),
40566            tensor: Default::default(),
40567        }
40568    }
40569}
40570///[`VkPhysicalDeviceDescriptorBufferTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferTensorPropertiesARM.html)
40571/**
40572Provided by **VK_ARM_tensors**.*/
40573///
40574///# Extends
40575///- [`PhysicalDeviceProperties2`]
40576#[repr(C)]
40577#[derive(Copy, Clone, Debug)]
40578#[doc(alias = "VkPhysicalDeviceDescriptorBufferTensorPropertiesARM")]
40579pub struct PhysicalDeviceDescriptorBufferTensorPropertiesARM {
40580    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM`.
40581    pub s_type: StructureType,
40582    ///Optional, may be null.
40583    pub p_next: *mut core::ffi::c_void,
40584    pub tensor_capture_replay_descriptor_data_size: usize,
40585    pub tensor_view_capture_replay_descriptor_data_size: usize,
40586    pub tensor_descriptor_size: usize,
40587}
40588impl Default for PhysicalDeviceDescriptorBufferTensorPropertiesARM {
40589    #[inline]
40590    fn default() -> Self {
40591        Self {
40592            s_type: StructureType::from_raw(1000460019i32),
40593            p_next: core::ptr::null_mut(),
40594            tensor_capture_replay_descriptor_data_size: Default::default(),
40595            tensor_view_capture_replay_descriptor_data_size: Default::default(),
40596            tensor_descriptor_size: Default::default(),
40597        }
40598    }
40599}
40600///[`VkPhysicalDeviceDescriptorBufferTensorFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferTensorFeaturesARM.html)
40601/**
40602Provided by **VK_ARM_tensors**.*/
40603///
40604///# Extends
40605///- [`PhysicalDeviceFeatures2`]
40606///- [`DeviceCreateInfo`]
40607#[repr(C)]
40608#[derive(Copy, Clone, Debug)]
40609#[doc(alias = "VkPhysicalDeviceDescriptorBufferTensorFeaturesARM")]
40610pub struct PhysicalDeviceDescriptorBufferTensorFeaturesARM {
40611    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM`.
40612    pub s_type: StructureType,
40613    ///Optional, may be null.
40614    pub p_next: *mut core::ffi::c_void,
40615    pub descriptor_buffer_tensor_descriptors: u32,
40616}
40617impl Default for PhysicalDeviceDescriptorBufferTensorFeaturesARM {
40618    #[inline]
40619    fn default() -> Self {
40620        Self {
40621            s_type: StructureType::from_raw(1000460018i32),
40622            p_next: core::ptr::null_mut(),
40623            descriptor_buffer_tensor_descriptors: Default::default(),
40624        }
40625    }
40626}
40627///[`VkTensorCaptureDescriptorDataInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCaptureDescriptorDataInfoARM.html)
40628/**
40629Provided by **VK_ARM_tensors**.*/
40630#[repr(C)]
40631#[derive(Copy, Clone, Debug)]
40632#[doc(alias = "VkTensorCaptureDescriptorDataInfoARM")]
40633pub struct TensorCaptureDescriptorDataInfoARM {
40634    ///Must be `VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM`.
40635    pub s_type: StructureType,
40636    ///Optional, may be null.
40637    pub p_next: *const core::ffi::c_void,
40638    pub tensor: TensorARM,
40639}
40640impl Default for TensorCaptureDescriptorDataInfoARM {
40641    #[inline]
40642    fn default() -> Self {
40643        Self {
40644            s_type: StructureType::from_raw(1000460021i32),
40645            p_next: core::ptr::null(),
40646            tensor: Default::default(),
40647        }
40648    }
40649}
40650///[`VkTensorViewCaptureDescriptorDataInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewCaptureDescriptorDataInfoARM.html)
40651/**
40652Provided by **VK_ARM_tensors**.*/
40653#[repr(C)]
40654#[derive(Copy, Clone, Debug)]
40655#[doc(alias = "VkTensorViewCaptureDescriptorDataInfoARM")]
40656pub struct TensorViewCaptureDescriptorDataInfoARM {
40657    ///Must be `VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM`.
40658    pub s_type: StructureType,
40659    ///Optional, may be null.
40660    pub p_next: *const core::ffi::c_void,
40661    pub tensor_view: TensorViewARM,
40662}
40663impl Default for TensorViewCaptureDescriptorDataInfoARM {
40664    #[inline]
40665    fn default() -> Self {
40666        Self {
40667            s_type: StructureType::from_raw(1000460022i32),
40668            p_next: core::ptr::null(),
40669            tensor_view: Default::default(),
40670        }
40671    }
40672}
40673///[`VkDescriptorGetTensorInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorGetTensorInfoARM.html)
40674/**
40675Provided by **VK_ARM_tensors**.*/
40676///
40677///# Extends
40678///- [`DescriptorGetInfoEXT`]
40679#[repr(C)]
40680#[derive(Copy, Clone, Debug)]
40681#[doc(alias = "VkDescriptorGetTensorInfoARM")]
40682pub struct DescriptorGetTensorInfoARM {
40683    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM`.
40684    pub s_type: StructureType,
40685    ///Optional, may be null.
40686    pub p_next: *const core::ffi::c_void,
40687    pub tensor_view: TensorViewARM,
40688}
40689impl Default for DescriptorGetTensorInfoARM {
40690    #[inline]
40691    fn default() -> Self {
40692        Self {
40693            s_type: StructureType::from_raw(1000460020i32),
40694            p_next: core::ptr::null(),
40695            tensor_view: Default::default(),
40696        }
40697    }
40698}
40699///[`VkFrameBoundaryTensorsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFrameBoundaryTensorsARM.html)
40700/**
40701Provided by **VK_ARM_tensors**.*/
40702///
40703///# Extends
40704///- [`SubmitInfo`]
40705///- [`SubmitInfo2`]
40706///- [`PresentInfoKHR`]
40707///- [`BindSparseInfo`]
40708#[repr(C)]
40709#[derive(Copy, Clone, Debug)]
40710#[doc(alias = "VkFrameBoundaryTensorsARM")]
40711pub struct FrameBoundaryTensorsARM {
40712    ///Must be `VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM`.
40713    pub s_type: StructureType,
40714    ///Optional, may be null.
40715    pub p_next: *const core::ffi::c_void,
40716    ///Length of `p_tensors`.
40717    pub tensor_count: u32,
40718    pub p_tensors: *const TensorARM,
40719}
40720impl Default for FrameBoundaryTensorsARM {
40721    #[inline]
40722    fn default() -> Self {
40723        Self {
40724            s_type: StructureType::from_raw(1000460023i32),
40725            p_next: core::ptr::null(),
40726            tensor_count: Default::default(),
40727            p_tensors: core::ptr::null(),
40728        }
40729    }
40730}
40731///[`VkPhysicalDeviceExternalTensorInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalTensorInfoARM.html)
40732/**
40733Provided by **VK_ARM_tensors**.*/
40734#[repr(C)]
40735#[derive(Copy, Clone, Debug)]
40736#[doc(alias = "VkPhysicalDeviceExternalTensorInfoARM")]
40737pub struct PhysicalDeviceExternalTensorInfoARM {
40738    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM`.
40739    pub s_type: StructureType,
40740    ///Optional, may be null.
40741    pub p_next: *const core::ffi::c_void,
40742    pub flags: TensorCreateFlagsARM,
40743    pub p_description: *const TensorDescriptionARM,
40744    pub handle_type: ExternalMemoryHandleTypeFlagBits,
40745}
40746impl Default for PhysicalDeviceExternalTensorInfoARM {
40747    #[inline]
40748    fn default() -> Self {
40749        Self {
40750            s_type: StructureType::from_raw(1000460015i32),
40751            p_next: core::ptr::null(),
40752            flags: Default::default(),
40753            p_description: core::ptr::null(),
40754            handle_type: Default::default(),
40755        }
40756    }
40757}
40758///[`VkExternalTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalTensorPropertiesARM.html)
40759/**
40760Provided by **VK_ARM_tensors**.*/
40761#[repr(C)]
40762#[derive(Copy, Clone, Debug)]
40763#[doc(alias = "VkExternalTensorPropertiesARM")]
40764pub struct ExternalTensorPropertiesARM {
40765    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM`.
40766    pub s_type: StructureType,
40767    ///Optional, may be null.
40768    pub p_next: *const core::ffi::c_void,
40769    pub external_memory_properties: ExternalMemoryProperties,
40770}
40771impl Default for ExternalTensorPropertiesARM {
40772    #[inline]
40773    fn default() -> Self {
40774        Self {
40775            s_type: StructureType::from_raw(1000460016i32),
40776            p_next: core::ptr::null(),
40777            external_memory_properties: Default::default(),
40778        }
40779    }
40780}
40781///[`VkExternalMemoryTensorCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryTensorCreateInfoARM.html)
40782/**
40783Provided by **VK_ARM_tensors**.*/
40784///
40785///# Extends
40786///- [`TensorCreateInfoARM`]
40787#[repr(C)]
40788#[derive(Copy, Clone, Debug)]
40789#[doc(alias = "VkExternalMemoryTensorCreateInfoARM")]
40790pub struct ExternalMemoryTensorCreateInfoARM {
40791    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM`.
40792    pub s_type: StructureType,
40793    ///Optional, may be null.
40794    pub p_next: *const core::ffi::c_void,
40795    pub handle_types: ExternalMemoryHandleTypeFlags,
40796}
40797impl Default for ExternalMemoryTensorCreateInfoARM {
40798    #[inline]
40799    fn default() -> Self {
40800        Self {
40801            s_type: StructureType::from_raw(1000460017i32),
40802            p_next: core::ptr::null(),
40803            handle_types: Default::default(),
40804        }
40805    }
40806}
40807///[`VkPhysicalDeviceShaderFloat8FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFloat8FeaturesEXT.html)
40808/**
40809Provided by **VK_EXT_shader_float8**.*/
40810///
40811///# Extends
40812///- [`PhysicalDeviceFeatures2`]
40813///- [`DeviceCreateInfo`]
40814#[repr(C)]
40815#[derive(Copy, Clone, Debug)]
40816#[doc(alias = "VkPhysicalDeviceShaderFloat8FeaturesEXT")]
40817pub struct PhysicalDeviceShaderFloat8FeaturesEXT {
40818    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT`.
40819    pub s_type: StructureType,
40820    ///Optional, may be null.
40821    pub p_next: *mut core::ffi::c_void,
40822    pub shader_float8: u32,
40823    pub shader_float8_cooperative_matrix: u32,
40824}
40825impl Default for PhysicalDeviceShaderFloat8FeaturesEXT {
40826    #[inline]
40827    fn default() -> Self {
40828        Self {
40829            s_type: StructureType::from_raw(1000567000i32),
40830            p_next: core::ptr::null_mut(),
40831            shader_float8: Default::default(),
40832            shader_float8_cooperative_matrix: Default::default(),
40833        }
40834    }
40835}
40836///[`VkSurfaceCreateInfoOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCreateInfoOHOS.html)
40837/**
40838Provided by **VK_OHOS_surface**.*/
40839#[repr(C)]
40840#[derive(Copy, Clone, Debug)]
40841#[doc(alias = "VkSurfaceCreateInfoOHOS")]
40842pub struct SurfaceCreateInfoOHOS {
40843    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS`.
40844    pub s_type: StructureType,
40845    ///Optional, may be null.
40846    pub p_next: *const core::ffi::c_void,
40847    pub flags: SurfaceCreateFlagsOHOS,
40848    pub window: *mut core::ffi::c_void,
40849}
40850impl Default for SurfaceCreateInfoOHOS {
40851    #[inline]
40852    fn default() -> Self {
40853        Self {
40854            s_type: StructureType::from_raw(1000685000i32),
40855            p_next: core::ptr::null(),
40856            flags: Default::default(),
40857            window: core::ptr::null_mut(),
40858        }
40859    }
40860}
40861///[`VkPhysicalDeviceDataGraphFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDataGraphFeaturesARM.html)
40862/**
40863Provided by **VK_ARM_data_graph**.*/
40864///
40865///# Extends
40866///- [`PhysicalDeviceFeatures2`]
40867///- [`DeviceCreateInfo`]
40868#[repr(C)]
40869#[derive(Copy, Clone, Debug)]
40870#[doc(alias = "VkPhysicalDeviceDataGraphFeaturesARM")]
40871pub struct PhysicalDeviceDataGraphFeaturesARM {
40872    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM`.
40873    pub s_type: StructureType,
40874    ///Optional, may be null.
40875    pub p_next: *mut core::ffi::c_void,
40876    pub data_graph: u32,
40877    pub data_graph_update_after_bind: u32,
40878    pub data_graph_specialization_constants: u32,
40879    pub data_graph_descriptor_buffer: u32,
40880    pub data_graph_shader_module: u32,
40881}
40882impl Default for PhysicalDeviceDataGraphFeaturesARM {
40883    #[inline]
40884    fn default() -> Self {
40885        Self {
40886            s_type: StructureType::from_raw(1000507006i32),
40887            p_next: core::ptr::null_mut(),
40888            data_graph: Default::default(),
40889            data_graph_update_after_bind: Default::default(),
40890            data_graph_specialization_constants: Default::default(),
40891            data_graph_descriptor_buffer: Default::default(),
40892            data_graph_shader_module: Default::default(),
40893        }
40894    }
40895}
40896///[`VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM.html)
40897/**
40898Provided by **VK_ARM_data_graph**.*/
40899///
40900///# Extends
40901///- [`DataGraphPipelineConstantARM`]
40902#[repr(C)]
40903#[derive(Copy, Clone, Debug)]
40904#[doc(alias = "VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM")]
40905pub struct DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
40906    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM`.
40907    pub s_type: StructureType,
40908    ///Optional, may be null.
40909    pub p_next: *const core::ffi::c_void,
40910    pub dimension: u32,
40911    pub zero_count: u32,
40912    pub group_size: u32,
40913}
40914impl Default for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
40915    #[inline]
40916    fn default() -> Self {
40917        Self {
40918            s_type: StructureType::from_raw(1000507015i32),
40919            p_next: core::ptr::null(),
40920            dimension: Default::default(),
40921            zero_count: Default::default(),
40922            group_size: Default::default(),
40923        }
40924    }
40925}
40926///[`VkDataGraphPipelineConstantARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineConstantARM.html)
40927/**
40928Provided by **VK_ARM_data_graph**.*/
40929///
40930///# Extended By
40931///- [`DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM`]
40932///- [`TensorDescriptionARM`]
40933#[repr(C)]
40934#[derive(Copy, Clone, Debug)]
40935#[doc(alias = "VkDataGraphPipelineConstantARM")]
40936pub struct DataGraphPipelineConstantARM {
40937    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM`.
40938    pub s_type: StructureType,
40939    ///Optional, may be null.
40940    pub p_next: *const core::ffi::c_void,
40941    pub id: u32,
40942    pub p_constant_data: *const core::ffi::c_void,
40943}
40944impl Default for DataGraphPipelineConstantARM {
40945    #[inline]
40946    fn default() -> Self {
40947        Self {
40948            s_type: StructureType::from_raw(1000507003i32),
40949            p_next: core::ptr::null(),
40950            id: Default::default(),
40951            p_constant_data: core::ptr::null(),
40952        }
40953    }
40954}
40955///[`VkDataGraphPipelineResourceInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineResourceInfoARM.html)
40956/**
40957Provided by **VK_ARM_data_graph**.*/
40958///
40959///# Extended By
40960///- [`TensorDescriptionARM`]
40961#[repr(C)]
40962#[derive(Copy, Clone, Debug)]
40963#[doc(alias = "VkDataGraphPipelineResourceInfoARM")]
40964pub struct DataGraphPipelineResourceInfoARM {
40965    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM`.
40966    pub s_type: StructureType,
40967    ///Optional, may be null.
40968    pub p_next: *const core::ffi::c_void,
40969    pub descriptor_set: u32,
40970    pub binding: u32,
40971    pub array_element: u32,
40972}
40973impl Default for DataGraphPipelineResourceInfoARM {
40974    #[inline]
40975    fn default() -> Self {
40976        Self {
40977            s_type: StructureType::from_raw(1000507002i32),
40978            p_next: core::ptr::null(),
40979            descriptor_set: Default::default(),
40980            binding: Default::default(),
40981            array_element: Default::default(),
40982        }
40983    }
40984}
40985///[`VkDataGraphPipelineCompilerControlCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineCompilerControlCreateInfoARM.html)
40986/**
40987Provided by **VK_ARM_data_graph**.*/
40988///
40989///# Extends
40990///- [`DataGraphPipelineCreateInfoARM`]
40991#[repr(C)]
40992#[derive(Copy, Clone, Debug)]
40993#[doc(alias = "VkDataGraphPipelineCompilerControlCreateInfoARM")]
40994pub struct DataGraphPipelineCompilerControlCreateInfoARM {
40995    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM`.
40996    pub s_type: StructureType,
40997    ///Optional, may be null.
40998    pub p_next: *const core::ffi::c_void,
40999    pub p_vendor_options: *const core::ffi::c_char,
41000}
41001impl Default for DataGraphPipelineCompilerControlCreateInfoARM {
41002    #[inline]
41003    fn default() -> Self {
41004        Self {
41005            s_type: StructureType::from_raw(1000507010i32),
41006            p_next: core::ptr::null(),
41007            p_vendor_options: core::ptr::null(),
41008        }
41009    }
41010}
41011///[`VkDataGraphPipelineCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineCreateInfoARM.html)
41012/**
41013Provided by **VK_ARM_data_graph**.*/
41014///
41015///# Extended By
41016///- [`DataGraphPipelineBuiltinModelCreateInfoQCOM`]
41017///- [`DataGraphPipelineCompilerControlCreateInfoARM`]
41018///- [`DataGraphPipelineIdentifierCreateInfoARM`]
41019///- [`DataGraphPipelineShaderModuleCreateInfoARM`]
41020///- [`DataGraphProcessingEngineCreateInfoARM`]
41021///- [`PipelineCreationFeedbackCreateInfo`]
41022///- [`ShaderModuleCreateInfo`]
41023#[repr(C)]
41024#[derive(Copy, Clone, Debug)]
41025#[doc(alias = "VkDataGraphPipelineCreateInfoARM")]
41026pub struct DataGraphPipelineCreateInfoARM {
41027    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM`.
41028    pub s_type: StructureType,
41029    ///Optional, may be null.
41030    pub p_next: *const core::ffi::c_void,
41031    pub flags: PipelineCreateFlags2KHR,
41032    pub layout: PipelineLayout,
41033    ///Length of `p_resource_infos`.
41034    pub resource_info_count: u32,
41035    pub p_resource_infos: *const DataGraphPipelineResourceInfoARM,
41036}
41037impl Default for DataGraphPipelineCreateInfoARM {
41038    #[inline]
41039    fn default() -> Self {
41040        Self {
41041            s_type: StructureType::from_raw(1000507000i32),
41042            p_next: core::ptr::null(),
41043            flags: Default::default(),
41044            layout: Default::default(),
41045            resource_info_count: Default::default(),
41046            p_resource_infos: core::ptr::null(),
41047        }
41048    }
41049}
41050///[`VkDataGraphPipelineShaderModuleCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineShaderModuleCreateInfoARM.html)
41051/**
41052Provided by **VK_ARM_data_graph**.*/
41053///
41054///# Extends
41055///- [`DataGraphPipelineCreateInfoARM`]
41056#[repr(C)]
41057#[derive(Copy, Clone, Debug)]
41058#[doc(alias = "VkDataGraphPipelineShaderModuleCreateInfoARM")]
41059pub struct DataGraphPipelineShaderModuleCreateInfoARM {
41060    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM`.
41061    pub s_type: StructureType,
41062    ///Optional, may be null.
41063    pub p_next: *const core::ffi::c_void,
41064    pub module: ShaderModule,
41065    pub p_name: *const core::ffi::c_char,
41066    ///Optional, may be null.
41067    pub p_specialization_info: *const SpecializationInfo,
41068    ///Length of `p_constants`.
41069    pub constant_count: u32,
41070    ///Optional, may be null.
41071    pub p_constants: *const DataGraphPipelineConstantARM,
41072}
41073impl Default for DataGraphPipelineShaderModuleCreateInfoARM {
41074    #[inline]
41075    fn default() -> Self {
41076        Self {
41077            s_type: StructureType::from_raw(1000507007i32),
41078            p_next: core::ptr::null(),
41079            module: Default::default(),
41080            p_name: core::ptr::null(),
41081            p_specialization_info: core::ptr::null(),
41082            constant_count: Default::default(),
41083            p_constants: core::ptr::null(),
41084        }
41085    }
41086}
41087///[`VkDataGraphPipelineSessionCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionCreateInfoARM.html)
41088/**
41089Provided by **VK_ARM_data_graph**.*/
41090#[repr(C)]
41091#[derive(Copy, Clone, Debug)]
41092#[doc(alias = "VkDataGraphPipelineSessionCreateInfoARM")]
41093pub struct DataGraphPipelineSessionCreateInfoARM {
41094    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM`.
41095    pub s_type: StructureType,
41096    ///Optional, may be null.
41097    pub p_next: *const core::ffi::c_void,
41098    pub flags: DataGraphPipelineSessionCreateFlagsARM,
41099    pub data_graph_pipeline: Pipeline,
41100}
41101impl Default for DataGraphPipelineSessionCreateInfoARM {
41102    #[inline]
41103    fn default() -> Self {
41104        Self {
41105            s_type: StructureType::from_raw(1000507001i32),
41106            p_next: core::ptr::null(),
41107            flags: Default::default(),
41108            data_graph_pipeline: Default::default(),
41109        }
41110    }
41111}
41112///[`VkDataGraphPipelineSessionBindPointRequirementsInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionBindPointRequirementsInfoARM.html)
41113/**
41114Provided by **VK_ARM_data_graph**.*/
41115#[repr(C)]
41116#[derive(Copy, Clone, Debug)]
41117#[doc(alias = "VkDataGraphPipelineSessionBindPointRequirementsInfoARM")]
41118pub struct DataGraphPipelineSessionBindPointRequirementsInfoARM {
41119    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM`.
41120    pub s_type: StructureType,
41121    ///Optional, may be null.
41122    pub p_next: *const core::ffi::c_void,
41123    pub session: DataGraphPipelineSessionARM,
41124}
41125impl Default for DataGraphPipelineSessionBindPointRequirementsInfoARM {
41126    #[inline]
41127    fn default() -> Self {
41128        Self {
41129            s_type: StructureType::from_raw(1000507011i32),
41130            p_next: core::ptr::null(),
41131            session: Default::default(),
41132        }
41133    }
41134}
41135///[`VkDataGraphPipelineSessionBindPointRequirementARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionBindPointRequirementARM.html)
41136/**
41137Provided by **VK_ARM_data_graph**.*/
41138/**
41139**Returned only**, filled by Vulkan, not constructed by the application.*/
41140#[repr(C)]
41141#[derive(Copy, Clone, Debug)]
41142#[doc(alias = "VkDataGraphPipelineSessionBindPointRequirementARM")]
41143pub struct DataGraphPipelineSessionBindPointRequirementARM {
41144    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM`.
41145    pub s_type: StructureType,
41146    ///Optional, may be null.
41147    pub p_next: *mut core::ffi::c_void,
41148    pub bind_point: DataGraphPipelineSessionBindPointARM,
41149    pub bind_point_type: DataGraphPipelineSessionBindPointTypeARM,
41150    pub num_objects: u32,
41151}
41152impl Default for DataGraphPipelineSessionBindPointRequirementARM {
41153    #[inline]
41154    fn default() -> Self {
41155        Self {
41156            s_type: StructureType::from_raw(1000507012i32),
41157            p_next: core::ptr::null_mut(),
41158            bind_point: Default::default(),
41159            bind_point_type: Default::default(),
41160            num_objects: Default::default(),
41161        }
41162    }
41163}
41164///[`VkDataGraphPipelineSessionMemoryRequirementsInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionMemoryRequirementsInfoARM.html)
41165/**
41166Provided by **VK_ARM_data_graph**.*/
41167#[repr(C)]
41168#[derive(Copy, Clone, Debug)]
41169#[doc(alias = "VkDataGraphPipelineSessionMemoryRequirementsInfoARM")]
41170pub struct DataGraphPipelineSessionMemoryRequirementsInfoARM {
41171    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM`.
41172    pub s_type: StructureType,
41173    ///Optional, may be null.
41174    pub p_next: *const core::ffi::c_void,
41175    pub session: DataGraphPipelineSessionARM,
41176    pub bind_point: DataGraphPipelineSessionBindPointARM,
41177    pub object_index: u32,
41178}
41179impl Default for DataGraphPipelineSessionMemoryRequirementsInfoARM {
41180    #[inline]
41181    fn default() -> Self {
41182        Self {
41183            s_type: StructureType::from_raw(1000507004i32),
41184            p_next: core::ptr::null(),
41185            session: Default::default(),
41186            bind_point: Default::default(),
41187            object_index: Default::default(),
41188        }
41189    }
41190}
41191///[`VkBindDataGraphPipelineSessionMemoryInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindDataGraphPipelineSessionMemoryInfoARM.html)
41192/**
41193Provided by **VK_ARM_data_graph**.*/
41194#[repr(C)]
41195#[derive(Copy, Clone, Debug)]
41196#[doc(alias = "VkBindDataGraphPipelineSessionMemoryInfoARM")]
41197pub struct BindDataGraphPipelineSessionMemoryInfoARM {
41198    ///Must be `VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM`.
41199    pub s_type: StructureType,
41200    ///Optional, may be null.
41201    pub p_next: *const core::ffi::c_void,
41202    pub session: DataGraphPipelineSessionARM,
41203    pub bind_point: DataGraphPipelineSessionBindPointARM,
41204    pub object_index: u32,
41205    pub memory: DeviceMemory,
41206    pub memory_offset: u64,
41207}
41208impl Default for BindDataGraphPipelineSessionMemoryInfoARM {
41209    #[inline]
41210    fn default() -> Self {
41211        Self {
41212            s_type: StructureType::from_raw(1000507005i32),
41213            p_next: core::ptr::null(),
41214            session: Default::default(),
41215            bind_point: Default::default(),
41216            object_index: Default::default(),
41217            memory: Default::default(),
41218            memory_offset: Default::default(),
41219        }
41220    }
41221}
41222///[`VkDataGraphPipelineInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineInfoARM.html)
41223/**
41224Provided by **VK_ARM_data_graph**.*/
41225#[repr(C)]
41226#[derive(Copy, Clone, Debug)]
41227#[doc(alias = "VkDataGraphPipelineInfoARM")]
41228pub struct DataGraphPipelineInfoARM {
41229    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM`.
41230    pub s_type: StructureType,
41231    ///Optional, may be null.
41232    pub p_next: *const core::ffi::c_void,
41233    pub data_graph_pipeline: Pipeline,
41234}
41235impl Default for DataGraphPipelineInfoARM {
41236    #[inline]
41237    fn default() -> Self {
41238        Self {
41239            s_type: StructureType::from_raw(1000507009i32),
41240            p_next: core::ptr::null(),
41241            data_graph_pipeline: Default::default(),
41242        }
41243    }
41244}
41245///[`VkDataGraphPipelinePropertyQueryResultARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelinePropertyQueryResultARM.html)
41246/**
41247Provided by **VK_ARM_data_graph**.*/
41248#[repr(C)]
41249#[derive(Copy, Clone, Debug)]
41250#[doc(alias = "VkDataGraphPipelinePropertyQueryResultARM")]
41251pub struct DataGraphPipelinePropertyQueryResultARM {
41252    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM`.
41253    pub s_type: StructureType,
41254    ///Optional, may be null.
41255    pub p_next: *mut core::ffi::c_void,
41256    pub property: DataGraphPipelinePropertyARM,
41257    pub is_text: u32,
41258    ///Length of `p_data`.
41259    pub data_size: usize,
41260    ///Optional, may be null.
41261    pub p_data: *mut core::ffi::c_void,
41262}
41263impl Default for DataGraphPipelinePropertyQueryResultARM {
41264    #[inline]
41265    fn default() -> Self {
41266        Self {
41267            s_type: StructureType::from_raw(1000507008i32),
41268            p_next: core::ptr::null_mut(),
41269            property: Default::default(),
41270            is_text: Default::default(),
41271            data_size: Default::default(),
41272            p_data: core::ptr::null_mut(),
41273        }
41274    }
41275}
41276///[`VkDataGraphPipelineIdentifierCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineIdentifierCreateInfoARM.html)
41277/**
41278Provided by **VK_ARM_data_graph**.*/
41279///
41280///# Extends
41281///- [`DataGraphPipelineCreateInfoARM`]
41282#[repr(C)]
41283#[derive(Copy, Clone, Debug)]
41284#[doc(alias = "VkDataGraphPipelineIdentifierCreateInfoARM")]
41285pub struct DataGraphPipelineIdentifierCreateInfoARM {
41286    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM`.
41287    pub s_type: StructureType,
41288    ///Optional, may be null.
41289    pub p_next: *const core::ffi::c_void,
41290    ///Length of `p_identifier`.
41291    pub identifier_size: u32,
41292    pub p_identifier: *const u8,
41293}
41294impl Default for DataGraphPipelineIdentifierCreateInfoARM {
41295    #[inline]
41296    fn default() -> Self {
41297        Self {
41298            s_type: StructureType::from_raw(1000507013i32),
41299            p_next: core::ptr::null(),
41300            identifier_size: Default::default(),
41301            p_identifier: core::ptr::null(),
41302        }
41303    }
41304}
41305///[`VkDataGraphPipelineDispatchInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineDispatchInfoARM.html)
41306/**
41307Provided by **VK_ARM_data_graph**.*/
41308#[repr(C)]
41309#[derive(Copy, Clone, Debug)]
41310#[doc(alias = "VkDataGraphPipelineDispatchInfoARM")]
41311pub struct DataGraphPipelineDispatchInfoARM {
41312    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM`.
41313    pub s_type: StructureType,
41314    ///Optional, may be null.
41315    pub p_next: *mut core::ffi::c_void,
41316    pub flags: DataGraphPipelineDispatchFlagsARM,
41317}
41318impl Default for DataGraphPipelineDispatchInfoARM {
41319    #[inline]
41320    fn default() -> Self {
41321        Self {
41322            s_type: StructureType::from_raw(1000507014i32),
41323            p_next: core::ptr::null_mut(),
41324            flags: Default::default(),
41325        }
41326    }
41327}
41328///[`VkPhysicalDeviceDataGraphProcessingEngineARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDataGraphProcessingEngineARM.html)
41329/**
41330Provided by **VK_ARM_data_graph**.*/
41331#[repr(C)]
41332#[derive(Copy, Clone, Debug)]
41333#[doc(alias = "VkPhysicalDeviceDataGraphProcessingEngineARM")]
41334pub struct PhysicalDeviceDataGraphProcessingEngineARM {
41335    pub r#type: PhysicalDeviceDataGraphProcessingEngineTypeARM,
41336    pub is_foreign: u32,
41337}
41338impl Default for PhysicalDeviceDataGraphProcessingEngineARM {
41339    #[inline]
41340    fn default() -> Self {
41341        unsafe { core::mem::zeroed() }
41342    }
41343}
41344///[`VkPhysicalDeviceDataGraphOperationSupportARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDataGraphOperationSupportARM.html)
41345/**
41346Provided by **VK_ARM_data_graph**.*/
41347#[repr(C)]
41348#[derive(Copy, Clone, Debug)]
41349#[doc(alias = "VkPhysicalDeviceDataGraphOperationSupportARM")]
41350pub struct PhysicalDeviceDataGraphOperationSupportARM {
41351    pub operation_type: PhysicalDeviceDataGraphOperationTypeARM,
41352    pub name: crate::StringArray<
41353        { MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM as usize },
41354    >,
41355    pub version: u32,
41356}
41357impl Default for PhysicalDeviceDataGraphOperationSupportARM {
41358    #[inline]
41359    fn default() -> Self {
41360        unsafe { core::mem::zeroed() }
41361    }
41362}
41363///[`VkQueueFamilyDataGraphPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyDataGraphPropertiesARM.html)
41364/**
41365Provided by **VK_ARM_data_graph**.*/
41366/**
41367**Returned only**, filled by Vulkan, not constructed by the application.*/
41368#[repr(C)]
41369#[derive(Copy, Clone, Debug)]
41370#[doc(alias = "VkQueueFamilyDataGraphPropertiesARM")]
41371pub struct QueueFamilyDataGraphPropertiesARM {
41372    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM`.
41373    pub s_type: StructureType,
41374    ///Optional, may be null.
41375    pub p_next: *mut core::ffi::c_void,
41376    pub engine: PhysicalDeviceDataGraphProcessingEngineARM,
41377    pub operation: PhysicalDeviceDataGraphOperationSupportARM,
41378}
41379impl Default for QueueFamilyDataGraphPropertiesARM {
41380    #[inline]
41381    fn default() -> Self {
41382        Self {
41383            s_type: StructureType::from_raw(1000507018i32),
41384            p_next: core::ptr::null_mut(),
41385            engine: Default::default(),
41386            operation: Default::default(),
41387        }
41388    }
41389}
41390///[`VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM.html)
41391/**
41392Provided by **VK_ARM_data_graph**.*/
41393#[repr(C)]
41394#[derive(Copy, Clone, Debug)]
41395#[doc(alias = "VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM")]
41396pub struct PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
41397    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM`.
41398    pub s_type: StructureType,
41399    ///Optional, may be null.
41400    pub p_next: *const core::ffi::c_void,
41401    pub queue_family_index: u32,
41402    pub engine_type: PhysicalDeviceDataGraphProcessingEngineTypeARM,
41403}
41404impl Default for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
41405    #[inline]
41406    fn default() -> Self {
41407        Self {
41408            s_type: StructureType::from_raw(1000507019i32),
41409            p_next: core::ptr::null(),
41410            queue_family_index: Default::default(),
41411            engine_type: Default::default(),
41412        }
41413    }
41414}
41415///[`VkQueueFamilyDataGraphProcessingEnginePropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyDataGraphProcessingEnginePropertiesARM.html)
41416/**
41417Provided by **VK_ARM_data_graph**.*/
41418/**
41419**Returned only**, filled by Vulkan, not constructed by the application.*/
41420#[repr(C)]
41421#[derive(Copy, Clone, Debug)]
41422#[doc(alias = "VkQueueFamilyDataGraphProcessingEnginePropertiesARM")]
41423pub struct QueueFamilyDataGraphProcessingEnginePropertiesARM {
41424    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM`.
41425    pub s_type: StructureType,
41426    ///Optional, may be null.
41427    pub p_next: *mut core::ffi::c_void,
41428    pub foreign_semaphore_handle_types: ExternalSemaphoreHandleTypeFlags,
41429    pub foreign_memory_handle_types: ExternalMemoryHandleTypeFlags,
41430}
41431impl Default for QueueFamilyDataGraphProcessingEnginePropertiesARM {
41432    #[inline]
41433    fn default() -> Self {
41434        Self {
41435            s_type: StructureType::from_raw(1000507017i32),
41436            p_next: core::ptr::null_mut(),
41437            foreign_semaphore_handle_types: Default::default(),
41438            foreign_memory_handle_types: Default::default(),
41439        }
41440    }
41441}
41442///[`VkDataGraphProcessingEngineCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphProcessingEngineCreateInfoARM.html)
41443/**
41444Provided by **VK_ARM_data_graph**.*/
41445///
41446///# Extends
41447///- [`DataGraphPipelineCreateInfoARM`]
41448///- [`DescriptorPoolCreateInfo`]
41449///- [`CommandPoolCreateInfo`]
41450#[repr(C)]
41451#[derive(Copy, Clone, Debug)]
41452#[doc(alias = "VkDataGraphProcessingEngineCreateInfoARM")]
41453pub struct DataGraphProcessingEngineCreateInfoARM {
41454    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM`.
41455    pub s_type: StructureType,
41456    ///Optional, may be null.
41457    pub p_next: *const core::ffi::c_void,
41458    ///Length of `p_processing_engines`.
41459    pub processing_engine_count: u32,
41460    pub p_processing_engines: *mut PhysicalDeviceDataGraphProcessingEngineARM,
41461}
41462impl Default for DataGraphProcessingEngineCreateInfoARM {
41463    #[inline]
41464    fn default() -> Self {
41465        Self {
41466            s_type: StructureType::from_raw(1000507016i32),
41467            p_next: core::ptr::null(),
41468            processing_engine_count: Default::default(),
41469            p_processing_engines: core::ptr::null_mut(),
41470        }
41471    }
41472}
41473///[`VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC.html)
41474/**
41475Provided by **VK_SEC_pipeline_cache_incremental_mode**.*/
41476///
41477///# Extends
41478///- [`PhysicalDeviceFeatures2`]
41479///- [`DeviceCreateInfo`]
41480#[repr(C)]
41481#[derive(Copy, Clone, Debug)]
41482#[doc(alias = "VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC")]
41483pub struct PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
41484    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC`.
41485    pub s_type: StructureType,
41486    ///Optional, may be null.
41487    pub p_next: *mut core::ffi::c_void,
41488    pub pipeline_cache_incremental_mode: u32,
41489}
41490impl Default for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
41491    #[inline]
41492    fn default() -> Self {
41493        Self {
41494            s_type: StructureType::from_raw(1000637000i32),
41495            p_next: core::ptr::null_mut(),
41496            pipeline_cache_incremental_mode: Default::default(),
41497        }
41498    }
41499}
41500///[`VkDataGraphPipelineBuiltinModelCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineBuiltinModelCreateInfoQCOM.html)
41501/**
41502Provided by **VK_QCOM_data_graph_model**.*/
41503///
41504///# Extends
41505///- [`DataGraphPipelineCreateInfoARM`]
41506#[repr(C)]
41507#[derive(Copy, Clone, Debug)]
41508#[doc(alias = "VkDataGraphPipelineBuiltinModelCreateInfoQCOM")]
41509pub struct DataGraphPipelineBuiltinModelCreateInfoQCOM {
41510    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM`.
41511    pub s_type: StructureType,
41512    ///Optional, may be null.
41513    pub p_next: *const core::ffi::c_void,
41514    pub p_operation: *const PhysicalDeviceDataGraphOperationSupportARM,
41515}
41516impl Default for DataGraphPipelineBuiltinModelCreateInfoQCOM {
41517    #[inline]
41518    fn default() -> Self {
41519        Self {
41520            s_type: StructureType::from_raw(1000629001i32),
41521            p_next: core::ptr::null(),
41522            p_operation: core::ptr::null(),
41523        }
41524    }
41525}
41526///[`VkPhysicalDeviceDataGraphModelFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDataGraphModelFeaturesQCOM.html)
41527/**
41528Provided by **VK_QCOM_data_graph_model**.*/
41529///
41530///# Extends
41531///- [`PhysicalDeviceFeatures2`]
41532///- [`DeviceCreateInfo`]
41533#[repr(C)]
41534#[derive(Copy, Clone, Debug)]
41535#[doc(alias = "VkPhysicalDeviceDataGraphModelFeaturesQCOM")]
41536pub struct PhysicalDeviceDataGraphModelFeaturesQCOM {
41537    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM`.
41538    pub s_type: StructureType,
41539    ///Optional, may be null.
41540    pub p_next: *mut core::ffi::c_void,
41541    pub data_graph_model: u32,
41542}
41543impl Default for PhysicalDeviceDataGraphModelFeaturesQCOM {
41544    #[inline]
41545    fn default() -> Self {
41546        Self {
41547            s_type: StructureType::from_raw(1000629000i32),
41548            p_next: core::ptr::null_mut(),
41549            data_graph_model: Default::default(),
41550        }
41551    }
41552}
41553///[`VkPhysicalDeviceShaderUntypedPointersFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderUntypedPointersFeaturesKHR.html)
41554/**
41555Provided by **VK_KHR_shader_untyped_pointers**.*/
41556///
41557///# Extends
41558///- [`PhysicalDeviceFeatures2`]
41559///- [`DeviceCreateInfo`]
41560#[repr(C)]
41561#[derive(Copy, Clone, Debug)]
41562#[doc(alias = "VkPhysicalDeviceShaderUntypedPointersFeaturesKHR")]
41563pub struct PhysicalDeviceShaderUntypedPointersFeaturesKHR {
41564    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR`.
41565    pub s_type: StructureType,
41566    ///Optional, may be null.
41567    pub p_next: *mut core::ffi::c_void,
41568    pub shader_untyped_pointers: u32,
41569}
41570impl Default for PhysicalDeviceShaderUntypedPointersFeaturesKHR {
41571    #[inline]
41572    fn default() -> Self {
41573        Self {
41574            s_type: StructureType::from_raw(1000387000i32),
41575            p_next: core::ptr::null_mut(),
41576            shader_untyped_pointers: Default::default(),
41577        }
41578    }
41579}
41580///[`VkNativeBufferOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferOHOS.html)
41581///
41582///# Extends
41583///- [`ImageCreateInfo`]
41584///- [`BindImageMemoryInfo`]
41585#[repr(C)]
41586#[derive(Copy, Clone, Debug)]
41587#[doc(alias = "VkNativeBufferOHOS")]
41588pub struct NativeBufferOHOS {
41589    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS`.
41590    pub s_type: StructureType,
41591    ///Optional, may be null.
41592    pub p_next: *const core::ffi::c_void,
41593    pub handle: *mut core::ffi::c_void,
41594}
41595impl Default for NativeBufferOHOS {
41596    #[inline]
41597    fn default() -> Self {
41598        Self {
41599            s_type: Default::default(),
41600            p_next: core::ptr::null(),
41601            handle: core::ptr::null_mut(),
41602        }
41603    }
41604}
41605///[`VkSwapchainImageCreateInfoOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainImageCreateInfoOHOS.html)
41606///
41607///# Extends
41608///- [`ImageCreateInfo`]
41609#[repr(C)]
41610#[derive(Copy, Clone, Debug)]
41611#[doc(alias = "VkSwapchainImageCreateInfoOHOS")]
41612pub struct SwapchainImageCreateInfoOHOS {
41613    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS`.
41614    pub s_type: StructureType,
41615    ///Optional, may be null.
41616    pub p_next: *const core::ffi::c_void,
41617    pub usage: SwapchainImageUsageFlagsOHOS,
41618}
41619impl Default for SwapchainImageCreateInfoOHOS {
41620    #[inline]
41621    fn default() -> Self {
41622        Self {
41623            s_type: Default::default(),
41624            p_next: core::ptr::null(),
41625            usage: Default::default(),
41626        }
41627    }
41628}
41629///[`VkPhysicalDevicePresentationPropertiesOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentationPropertiesOHOS.html)
41630/**
41631**Returned only**, filled by Vulkan, not constructed by the application.*/
41632///
41633///# Extends
41634///- [`PhysicalDeviceProperties2`]
41635#[repr(C)]
41636#[derive(Copy, Clone, Debug)]
41637#[doc(alias = "VkPhysicalDevicePresentationPropertiesOHOS")]
41638pub struct PhysicalDevicePresentationPropertiesOHOS {
41639    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS`.
41640    pub s_type: StructureType,
41641    ///Optional, may be null.
41642    pub p_next: *mut core::ffi::c_void,
41643    pub shared_image: u32,
41644}
41645impl Default for PhysicalDevicePresentationPropertiesOHOS {
41646    #[inline]
41647    fn default() -> Self {
41648        Self {
41649            s_type: Default::default(),
41650            p_next: core::ptr::null_mut(),
41651            shared_image: Default::default(),
41652        }
41653    }
41654}
41655///[`VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE.html)
41656/**
41657Provided by **VK_VALVE_video_encode_rgb_conversion**.*/
41658///
41659///# Extends
41660///- [`PhysicalDeviceFeatures2`]
41661///- [`DeviceCreateInfo`]
41662#[repr(C)]
41663#[derive(Copy, Clone, Debug)]
41664#[doc(alias = "VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE")]
41665pub struct PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
41666    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE`.
41667    pub s_type: StructureType,
41668    ///Optional, may be null.
41669    pub p_next: *mut core::ffi::c_void,
41670    pub video_encode_rgb_conversion: u32,
41671}
41672impl Default for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
41673    #[inline]
41674    fn default() -> Self {
41675        Self {
41676            s_type: StructureType::from_raw(1000390000i32),
41677            p_next: core::ptr::null_mut(),
41678            video_encode_rgb_conversion: Default::default(),
41679        }
41680    }
41681}
41682///[`VkVideoEncodeRgbConversionCapabilitiesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeRgbConversionCapabilitiesVALVE.html)
41683/**
41684Provided by **VK_VALVE_video_encode_rgb_conversion**.*/
41685/**
41686**Returned only**, filled by Vulkan, not constructed by the application.*/
41687///
41688///# Extends
41689///- [`VideoCapabilitiesKHR`]
41690#[repr(C)]
41691#[derive(Copy, Clone, Debug)]
41692#[doc(alias = "VkVideoEncodeRgbConversionCapabilitiesVALVE")]
41693pub struct VideoEncodeRgbConversionCapabilitiesVALVE {
41694    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE`.
41695    pub s_type: StructureType,
41696    ///Optional, may be null.
41697    pub p_next: *mut core::ffi::c_void,
41698    pub rgb_models: VideoEncodeRgbModelConversionFlagsVALVE,
41699    pub rgb_ranges: VideoEncodeRgbRangeCompressionFlagsVALVE,
41700    pub x_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE,
41701    pub y_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE,
41702}
41703impl Default for VideoEncodeRgbConversionCapabilitiesVALVE {
41704    #[inline]
41705    fn default() -> Self {
41706        Self {
41707            s_type: StructureType::from_raw(1000390001i32),
41708            p_next: core::ptr::null_mut(),
41709            rgb_models: Default::default(),
41710            rgb_ranges: Default::default(),
41711            x_chroma_offsets: Default::default(),
41712            y_chroma_offsets: Default::default(),
41713        }
41714    }
41715}
41716///[`VkVideoEncodeProfileRgbConversionInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeProfileRgbConversionInfoVALVE.html)
41717/**
41718Provided by **VK_VALVE_video_encode_rgb_conversion**.*/
41719///
41720///# Extends
41721///- [`VideoProfileInfoKHR`]
41722#[repr(C)]
41723#[derive(Copy, Clone, Debug)]
41724#[doc(alias = "VkVideoEncodeProfileRgbConversionInfoVALVE")]
41725pub struct VideoEncodeProfileRgbConversionInfoVALVE {
41726    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE`.
41727    pub s_type: StructureType,
41728    ///Optional, may be null.
41729    pub p_next: *const core::ffi::c_void,
41730    pub perform_encode_rgb_conversion: u32,
41731}
41732impl Default for VideoEncodeProfileRgbConversionInfoVALVE {
41733    #[inline]
41734    fn default() -> Self {
41735        Self {
41736            s_type: StructureType::from_raw(1000390002i32),
41737            p_next: core::ptr::null(),
41738            perform_encode_rgb_conversion: Default::default(),
41739        }
41740    }
41741}
41742///[`VkVideoEncodeSessionRgbConversionCreateInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeSessionRgbConversionCreateInfoVALVE.html)
41743/**
41744Provided by **VK_VALVE_video_encode_rgb_conversion**.*/
41745///
41746///# Extends
41747///- [`VideoSessionCreateInfoKHR`]
41748#[repr(C)]
41749#[derive(Copy, Clone, Debug)]
41750#[doc(alias = "VkVideoEncodeSessionRgbConversionCreateInfoVALVE")]
41751pub struct VideoEncodeSessionRgbConversionCreateInfoVALVE {
41752    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE`.
41753    pub s_type: StructureType,
41754    ///Optional, may be null.
41755    pub p_next: *const core::ffi::c_void,
41756    pub rgb_model: VideoEncodeRgbModelConversionFlagBitsVALVE,
41757    pub rgb_range: VideoEncodeRgbRangeCompressionFlagBitsVALVE,
41758    pub x_chroma_offset: VideoEncodeRgbChromaOffsetFlagBitsVALVE,
41759    pub y_chroma_offset: VideoEncodeRgbChromaOffsetFlagBitsVALVE,
41760}
41761impl Default for VideoEncodeSessionRgbConversionCreateInfoVALVE {
41762    #[inline]
41763    fn default() -> Self {
41764        Self {
41765            s_type: StructureType::from_raw(1000390003i32),
41766            p_next: core::ptr::null(),
41767            rgb_model: Default::default(),
41768            rgb_range: Default::default(),
41769            x_chroma_offset: Default::default(),
41770            y_chroma_offset: Default::default(),
41771        }
41772    }
41773}
41774///[`VkPhysicalDeviceShader64BitIndexingFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShader64BitIndexingFeaturesEXT.html)
41775/**
41776Provided by **VK_EXT_shader_64bit_indexing**.*/
41777///
41778///# Extends
41779///- [`PhysicalDeviceFeatures2`]
41780///- [`DeviceCreateInfo`]
41781#[repr(C)]
41782#[derive(Copy, Clone, Debug)]
41783#[doc(alias = "VkPhysicalDeviceShader64BitIndexingFeaturesEXT")]
41784pub struct PhysicalDeviceShader64BitIndexingFeaturesEXT {
41785    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT`.
41786    pub s_type: StructureType,
41787    ///Optional, may be null.
41788    pub p_next: *mut core::ffi::c_void,
41789    pub shader64_bit_indexing: u32,
41790}
41791impl Default for PhysicalDeviceShader64BitIndexingFeaturesEXT {
41792    #[inline]
41793    fn default() -> Self {
41794        Self {
41795            s_type: StructureType::from_raw(1000627000i32),
41796            p_next: core::ptr::null_mut(),
41797            shader64_bit_indexing: Default::default(),
41798        }
41799    }
41800}
41801///[`VkNativeBufferUsageOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferUsageOHOS.html)
41802/**
41803Provided by **VK_OHOS_external_memory**.*/
41804/**
41805**Returned only**, filled by Vulkan, not constructed by the application.*/
41806///
41807///# Extends
41808///- [`ImageFormatProperties2`]
41809#[repr(C)]
41810#[derive(Copy, Clone, Debug)]
41811#[doc(alias = "VkNativeBufferUsageOHOS")]
41812pub struct NativeBufferUsageOHOS {
41813    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS`.
41814    pub s_type: StructureType,
41815    ///Optional, may be null.
41816    pub p_next: *mut core::ffi::c_void,
41817    pub ohos_native_buffer_usage: u64,
41818}
41819impl Default for NativeBufferUsageOHOS {
41820    #[inline]
41821    fn default() -> Self {
41822        Self {
41823            s_type: StructureType::from_raw(1000452000i32),
41824            p_next: core::ptr::null_mut(),
41825            ohos_native_buffer_usage: Default::default(),
41826        }
41827    }
41828}
41829///[`VkNativeBufferPropertiesOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferPropertiesOHOS.html)
41830/**
41831Provided by **VK_OHOS_external_memory**.*/
41832/**
41833**Returned only**, filled by Vulkan, not constructed by the application.*/
41834///
41835///# Extended By
41836///- [`NativeBufferFormatPropertiesOHOS`]
41837#[repr(C)]
41838#[derive(Copy, Clone, Debug)]
41839#[doc(alias = "VkNativeBufferPropertiesOHOS")]
41840pub struct NativeBufferPropertiesOHOS {
41841    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS`.
41842    pub s_type: StructureType,
41843    ///Optional, may be null.
41844    pub p_next: *mut core::ffi::c_void,
41845    pub allocation_size: u64,
41846    pub memory_type_bits: u32,
41847}
41848impl Default for NativeBufferPropertiesOHOS {
41849    #[inline]
41850    fn default() -> Self {
41851        Self {
41852            s_type: StructureType::from_raw(1000452001i32),
41853            p_next: core::ptr::null_mut(),
41854            allocation_size: Default::default(),
41855            memory_type_bits: Default::default(),
41856        }
41857    }
41858}
41859///[`VkNativeBufferFormatPropertiesOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferFormatPropertiesOHOS.html)
41860/**
41861Provided by **VK_OHOS_external_memory**.*/
41862/**
41863**Returned only**, filled by Vulkan, not constructed by the application.*/
41864///
41865///# Extends
41866///- [`NativeBufferPropertiesOHOS`]
41867#[repr(C)]
41868#[derive(Copy, Clone, Debug)]
41869#[doc(alias = "VkNativeBufferFormatPropertiesOHOS")]
41870pub struct NativeBufferFormatPropertiesOHOS {
41871    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS`.
41872    pub s_type: StructureType,
41873    ///Optional, may be null.
41874    pub p_next: *mut core::ffi::c_void,
41875    pub format: Format,
41876    pub external_format: u64,
41877    pub format_features: FormatFeatureFlags,
41878    pub sampler_ycbcr_conversion_components: ComponentMapping,
41879    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
41880    pub suggested_ycbcr_range: SamplerYcbcrRange,
41881    pub suggested_x_chroma_offset: ChromaLocation,
41882    pub suggested_y_chroma_offset: ChromaLocation,
41883}
41884impl Default for NativeBufferFormatPropertiesOHOS {
41885    #[inline]
41886    fn default() -> Self {
41887        Self {
41888            s_type: StructureType::from_raw(1000452002i32),
41889            p_next: core::ptr::null_mut(),
41890            format: Default::default(),
41891            external_format: Default::default(),
41892            format_features: Default::default(),
41893            sampler_ycbcr_conversion_components: Default::default(),
41894            suggested_ycbcr_model: Default::default(),
41895            suggested_ycbcr_range: Default::default(),
41896            suggested_x_chroma_offset: Default::default(),
41897            suggested_y_chroma_offset: Default::default(),
41898        }
41899    }
41900}
41901///[`VkImportNativeBufferInfoOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportNativeBufferInfoOHOS.html)
41902/**
41903Provided by **VK_OHOS_external_memory**.*/
41904///
41905///# Extends
41906///- [`MemoryAllocateInfo`]
41907#[repr(C)]
41908#[derive(Copy, Clone, Debug)]
41909#[doc(alias = "VkImportNativeBufferInfoOHOS")]
41910pub struct ImportNativeBufferInfoOHOS {
41911    ///Must be `VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS`.
41912    pub s_type: StructureType,
41913    ///Optional, may be null.
41914    pub p_next: *const core::ffi::c_void,
41915    pub buffer: *mut core::ffi::c_void,
41916}
41917impl Default for ImportNativeBufferInfoOHOS {
41918    #[inline]
41919    fn default() -> Self {
41920        Self {
41921            s_type: StructureType::from_raw(1000452003i32),
41922            p_next: core::ptr::null(),
41923            buffer: core::ptr::null_mut(),
41924        }
41925    }
41926}
41927///[`VkMemoryGetNativeBufferInfoOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetNativeBufferInfoOHOS.html)
41928/**
41929Provided by **VK_OHOS_external_memory**.*/
41930#[repr(C)]
41931#[derive(Copy, Clone, Debug)]
41932#[doc(alias = "VkMemoryGetNativeBufferInfoOHOS")]
41933pub struct MemoryGetNativeBufferInfoOHOS {
41934    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS`.
41935    pub s_type: StructureType,
41936    ///Optional, may be null.
41937    pub p_next: *const core::ffi::c_void,
41938    pub memory: DeviceMemory,
41939}
41940impl Default for MemoryGetNativeBufferInfoOHOS {
41941    #[inline]
41942    fn default() -> Self {
41943        Self {
41944            s_type: StructureType::from_raw(1000452004i32),
41945            p_next: core::ptr::null(),
41946            memory: Default::default(),
41947        }
41948    }
41949}
41950///[`VkExternalFormatOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalFormatOHOS.html)
41951/**
41952Provided by **VK_OHOS_external_memory**.*/
41953///
41954///# Extends
41955///- [`ImageCreateInfo`]
41956///- [`SamplerYcbcrConversionCreateInfo`]
41957///- [`AttachmentDescription2`]
41958///- [`GraphicsPipelineCreateInfo`]
41959///- [`CommandBufferInheritanceInfo`]
41960#[repr(C)]
41961#[derive(Copy, Clone, Debug)]
41962#[doc(alias = "VkExternalFormatOHOS")]
41963pub struct ExternalFormatOHOS {
41964    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS`.
41965    pub s_type: StructureType,
41966    ///Optional, may be null.
41967    pub p_next: *mut core::ffi::c_void,
41968    pub external_format: u64,
41969}
41970impl Default for ExternalFormatOHOS {
41971    #[inline]
41972    fn default() -> Self {
41973        Self {
41974            s_type: StructureType::from_raw(1000452005i32),
41975            p_next: core::ptr::null_mut(),
41976            external_format: Default::default(),
41977        }
41978    }
41979}
41980///[`VkPhysicalDevicePerformanceCountersByRegionFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerformanceCountersByRegionFeaturesARM.html)
41981/**
41982Provided by **VK_ARM_performance_counters_by_region**.*/
41983///
41984///# Extends
41985///- [`PhysicalDeviceFeatures2`]
41986///- [`DeviceCreateInfo`]
41987#[repr(C)]
41988#[derive(Copy, Clone, Debug)]
41989#[doc(alias = "VkPhysicalDevicePerformanceCountersByRegionFeaturesARM")]
41990pub struct PhysicalDevicePerformanceCountersByRegionFeaturesARM {
41991    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM`.
41992    pub s_type: StructureType,
41993    ///Optional, may be null.
41994    pub p_next: *mut core::ffi::c_void,
41995    pub performance_counters_by_region: u32,
41996}
41997impl Default for PhysicalDevicePerformanceCountersByRegionFeaturesARM {
41998    #[inline]
41999    fn default() -> Self {
42000        Self {
42001            s_type: StructureType::from_raw(1000605000i32),
42002            p_next: core::ptr::null_mut(),
42003            performance_counters_by_region: Default::default(),
42004        }
42005    }
42006}
42007///[`VkPhysicalDevicePerformanceCountersByRegionPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerformanceCountersByRegionPropertiesARM.html)
42008/**
42009Provided by **VK_ARM_performance_counters_by_region**.*/
42010/**
42011**Returned only**, filled by Vulkan, not constructed by the application.*/
42012///
42013///# Extends
42014///- [`PhysicalDeviceProperties2`]
42015#[repr(C)]
42016#[derive(Copy, Clone, Debug)]
42017#[doc(alias = "VkPhysicalDevicePerformanceCountersByRegionPropertiesARM")]
42018pub struct PhysicalDevicePerformanceCountersByRegionPropertiesARM {
42019    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM`.
42020    pub s_type: StructureType,
42021    ///Optional, may be null.
42022    pub p_next: *mut core::ffi::c_void,
42023    pub max_per_region_performance_counters: u32,
42024    pub performance_counter_region_size: Extent2D,
42025    pub row_stride_alignment: u32,
42026    pub region_alignment: u32,
42027    pub identity_transform_order: u32,
42028}
42029impl Default for PhysicalDevicePerformanceCountersByRegionPropertiesARM {
42030    #[inline]
42031    fn default() -> Self {
42032        Self {
42033            s_type: StructureType::from_raw(1000605001i32),
42034            p_next: core::ptr::null_mut(),
42035            max_per_region_performance_counters: Default::default(),
42036            performance_counter_region_size: Default::default(),
42037            row_stride_alignment: Default::default(),
42038            region_alignment: Default::default(),
42039            identity_transform_order: Default::default(),
42040        }
42041    }
42042}
42043///[`VkPerformanceCounterARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterARM.html)
42044/**
42045Provided by **VK_ARM_performance_counters_by_region**.*/
42046/**
42047**Returned only**, filled by Vulkan, not constructed by the application.*/
42048#[repr(C)]
42049#[derive(Copy, Clone, Debug)]
42050#[doc(alias = "VkPerformanceCounterARM")]
42051pub struct PerformanceCounterARM {
42052    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM`.
42053    pub s_type: StructureType,
42054    ///Optional, may be null.
42055    pub p_next: *mut core::ffi::c_void,
42056    pub counter_id: u32,
42057}
42058impl Default for PerformanceCounterARM {
42059    #[inline]
42060    fn default() -> Self {
42061        Self {
42062            s_type: StructureType::from_raw(1000605002i32),
42063            p_next: core::ptr::null_mut(),
42064            counter_id: Default::default(),
42065        }
42066    }
42067}
42068///[`VkPerformanceCounterDescriptionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterDescriptionARM.html)
42069/**
42070Provided by **VK_ARM_performance_counters_by_region**.*/
42071/**
42072**Returned only**, filled by Vulkan, not constructed by the application.*/
42073#[repr(C)]
42074#[derive(Copy, Clone, Debug)]
42075#[doc(alias = "VkPerformanceCounterDescriptionARM")]
42076pub struct PerformanceCounterDescriptionARM {
42077    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM`.
42078    pub s_type: StructureType,
42079    ///Optional, may be null.
42080    pub p_next: *mut core::ffi::c_void,
42081    pub flags: PerformanceCounterDescriptionFlagsARM,
42082    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
42083}
42084impl Default for PerformanceCounterDescriptionARM {
42085    #[inline]
42086    fn default() -> Self {
42087        Self {
42088            s_type: StructureType::from_raw(1000605003i32),
42089            p_next: core::ptr::null_mut(),
42090            flags: Default::default(),
42091            name: unsafe { core::mem::zeroed() },
42092        }
42093    }
42094}
42095///[`VkRenderPassPerformanceCountersByRegionBeginInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassPerformanceCountersByRegionBeginInfoARM.html)
42096/**
42097Provided by **VK_ARM_performance_counters_by_region**.*/
42098///
42099///# Extends
42100///- [`RenderPassBeginInfo`]
42101///- [`RenderingInfo`]
42102#[repr(C)]
42103#[derive(Copy, Clone, Debug)]
42104#[doc(alias = "VkRenderPassPerformanceCountersByRegionBeginInfoARM")]
42105pub struct RenderPassPerformanceCountersByRegionBeginInfoARM {
42106    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM`.
42107    pub s_type: StructureType,
42108    ///Optional, may be null.
42109    pub p_next: *mut core::ffi::c_void,
42110    ///Length of `p_counter_addresses`.
42111    pub counter_address_count: u32,
42112    pub p_counter_addresses: *const u64,
42113    pub serialize_regions: u32,
42114    ///Length of `p_counter_indices`.
42115    pub counter_index_count: u32,
42116    pub p_counter_indices: *mut u32,
42117}
42118impl Default for RenderPassPerformanceCountersByRegionBeginInfoARM {
42119    #[inline]
42120    fn default() -> Self {
42121        Self {
42122            s_type: StructureType::from_raw(1000605004i32),
42123            p_next: core::ptr::null_mut(),
42124            counter_address_count: Default::default(),
42125            p_counter_addresses: core::ptr::null(),
42126            serialize_regions: Default::default(),
42127            counter_index_count: Default::default(),
42128            p_counter_indices: core::ptr::null_mut(),
42129        }
42130    }
42131}
42132///[`VkComputeOccupancyPriorityParametersNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkComputeOccupancyPriorityParametersNV.html)
42133/**
42134Provided by **VK_NV_compute_occupancy_priority**.*/
42135#[repr(C)]
42136#[derive(Copy, Clone, Debug)]
42137#[doc(alias = "VkComputeOccupancyPriorityParametersNV")]
42138pub struct ComputeOccupancyPriorityParametersNV {
42139    ///Must be `VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV`.
42140    pub s_type: StructureType,
42141    ///Optional, may be null.
42142    pub p_next: *const core::ffi::c_void,
42143    pub occupancy_priority: f32,
42144    pub occupancy_throttling: f32,
42145}
42146impl Default for ComputeOccupancyPriorityParametersNV {
42147    #[inline]
42148    fn default() -> Self {
42149        Self {
42150            s_type: StructureType::from_raw(1000645000i32),
42151            p_next: core::ptr::null(),
42152            occupancy_priority: Default::default(),
42153            occupancy_throttling: Default::default(),
42154        }
42155    }
42156}
42157///[`VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV.html)
42158/**
42159Provided by **VK_NV_compute_occupancy_priority**.*/
42160///
42161///# Extends
42162///- [`PhysicalDeviceFeatures2`]
42163///- [`DeviceCreateInfo`]
42164#[repr(C)]
42165#[derive(Copy, Clone, Debug)]
42166#[doc(alias = "VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV")]
42167pub struct PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
42168    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV`.
42169    pub s_type: StructureType,
42170    ///Optional, may be null.
42171    pub p_next: *mut core::ffi::c_void,
42172    pub compute_occupancy_priority: u32,
42173}
42174impl Default for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
42175    #[inline]
42176    fn default() -> Self {
42177        Self {
42178            s_type: StructureType::from_raw(1000645001i32),
42179            p_next: core::ptr::null_mut(),
42180            compute_occupancy_priority: Default::default(),
42181        }
42182    }
42183}
42184///[`VkPhysicalDeviceShaderLongVectorFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderLongVectorFeaturesEXT.html)
42185/**
42186Provided by **VK_EXT_shader_long_vector**.*/
42187///
42188///# Extends
42189///- [`PhysicalDeviceFeatures2`]
42190///- [`DeviceCreateInfo`]
42191#[repr(C)]
42192#[derive(Copy, Clone, Debug)]
42193#[doc(alias = "VkPhysicalDeviceShaderLongVectorFeaturesEXT")]
42194pub struct PhysicalDeviceShaderLongVectorFeaturesEXT {
42195    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT`.
42196    pub s_type: StructureType,
42197    ///Optional, may be null.
42198    pub p_next: *mut core::ffi::c_void,
42199    pub long_vector: u32,
42200}
42201impl Default for PhysicalDeviceShaderLongVectorFeaturesEXT {
42202    #[inline]
42203    fn default() -> Self {
42204        Self {
42205            s_type: StructureType::from_raw(1000635000i32),
42206            p_next: core::ptr::null_mut(),
42207            long_vector: Default::default(),
42208        }
42209    }
42210}
42211///[`VkPhysicalDeviceShaderLongVectorPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderLongVectorPropertiesEXT.html)
42212/**
42213Provided by **VK_EXT_shader_long_vector**.*/
42214/**
42215**Returned only**, filled by Vulkan, not constructed by the application.*/
42216///
42217///# Extends
42218///- [`PhysicalDeviceProperties2`]
42219#[repr(C)]
42220#[derive(Copy, Clone, Debug)]
42221#[doc(alias = "VkPhysicalDeviceShaderLongVectorPropertiesEXT")]
42222pub struct PhysicalDeviceShaderLongVectorPropertiesEXT {
42223    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT`.
42224    pub s_type: StructureType,
42225    ///Optional, may be null.
42226    pub p_next: *mut core::ffi::c_void,
42227    pub max_vector_components: u32,
42228}
42229impl Default for PhysicalDeviceShaderLongVectorPropertiesEXT {
42230    #[inline]
42231    fn default() -> Self {
42232        Self {
42233            s_type: StructureType::from_raw(1000635001i32),
42234            p_next: core::ptr::null_mut(),
42235            max_vector_components: Default::default(),
42236        }
42237    }
42238}
42239///[`VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT.html)
42240/**
42241Provided by **VK_EXT_texture_compression_astc_3d**.*/
42242///
42243///# Extends
42244///- [`PhysicalDeviceFeatures2`]
42245///- [`DeviceCreateInfo`]
42246#[repr(C)]
42247#[derive(Copy, Clone, Debug)]
42248#[doc(alias = "VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT")]
42249pub struct PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
42250    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT`.
42251    pub s_type: StructureType,
42252    ///Optional, may be null.
42253    pub p_next: *mut core::ffi::c_void,
42254    pub texture_compression_astc_3d: u32,
42255}
42256impl Default for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
42257    #[inline]
42258    fn default() -> Self {
42259        Self {
42260            s_type: StructureType::from_raw(1000288000i32),
42261            p_next: core::ptr::null_mut(),
42262            texture_compression_astc_3d: Default::default(),
42263        }
42264    }
42265}
42266///[`VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT.html)
42267/**
42268Provided by **VK_EXT_shader_subgroup_partitioned**.*/
42269///
42270///# Extends
42271///- [`PhysicalDeviceFeatures2`]
42272///- [`DeviceCreateInfo`]
42273#[repr(C)]
42274#[derive(Copy, Clone, Debug)]
42275#[doc(alias = "VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT")]
42276pub struct PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
42277    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT`.
42278    pub s_type: StructureType,
42279    ///Optional, may be null.
42280    pub p_next: *mut core::ffi::c_void,
42281    pub shader_subgroup_partitioned: u32,
42282}
42283impl Default for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
42284    #[inline]
42285    fn default() -> Self {
42286        Self {
42287            s_type: StructureType::from_raw(1000662000i32),
42288            p_next: core::ptr::null_mut(),
42289            shader_subgroup_partitioned: Default::default(),
42290        }
42291    }
42292}
42293///[`VkHostAddressRangeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostAddressRangeEXT.html)
42294/**
42295Provided by **VK_EXT_descriptor_heap**.*/
42296#[repr(C)]
42297#[derive(Copy, Clone, Debug)]
42298#[doc(alias = "VkHostAddressRangeEXT")]
42299pub struct HostAddressRangeEXT {
42300    pub address: *mut core::ffi::c_void,
42301    ///Length of `address`.
42302    pub size: usize,
42303}
42304impl Default for HostAddressRangeEXT {
42305    #[inline]
42306    fn default() -> Self {
42307        unsafe { core::mem::zeroed() }
42308    }
42309}
42310///[`VkHostAddressRangeConstEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostAddressRangeConstEXT.html)
42311/**
42312Provided by **VK_EXT_descriptor_heap**.*/
42313#[repr(C)]
42314#[derive(Copy, Clone, Debug)]
42315#[doc(alias = "VkHostAddressRangeConstEXT")]
42316pub struct HostAddressRangeConstEXT {
42317    pub address: *const core::ffi::c_void,
42318    ///Length of `address`.
42319    pub size: usize,
42320}
42321impl Default for HostAddressRangeConstEXT {
42322    #[inline]
42323    fn default() -> Self {
42324        unsafe { core::mem::zeroed() }
42325    }
42326}
42327///[`VkTexelBufferDescriptorInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTexelBufferDescriptorInfoEXT.html)
42328/**
42329Provided by **VK_EXT_descriptor_heap**.*/
42330#[repr(C)]
42331#[derive(Copy, Clone, Debug)]
42332#[doc(alias = "VkTexelBufferDescriptorInfoEXT")]
42333pub struct TexelBufferDescriptorInfoEXT {
42334    ///Must be `VK_STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT`.
42335    pub s_type: StructureType,
42336    ///Optional, may be null.
42337    pub p_next: *const core::ffi::c_void,
42338    pub format: Format,
42339    pub address_range: DeviceAddressRangeEXT,
42340}
42341impl Default for TexelBufferDescriptorInfoEXT {
42342    #[inline]
42343    fn default() -> Self {
42344        Self {
42345            s_type: StructureType::from_raw(1000135000i32),
42346            p_next: core::ptr::null(),
42347            format: Default::default(),
42348            address_range: Default::default(),
42349        }
42350    }
42351}
42352///[`VkImageDescriptorInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageDescriptorInfoEXT.html)
42353/**
42354Provided by **VK_EXT_descriptor_heap**.*/
42355#[repr(C)]
42356#[derive(Copy, Clone, Debug)]
42357#[doc(alias = "VkImageDescriptorInfoEXT")]
42358pub struct ImageDescriptorInfoEXT {
42359    ///Must be `VK_STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT`.
42360    pub s_type: StructureType,
42361    ///Optional, may be null.
42362    pub p_next: *const core::ffi::c_void,
42363    pub p_view: *const ImageViewCreateInfo,
42364    pub layout: ImageLayout,
42365}
42366impl Default for ImageDescriptorInfoEXT {
42367    #[inline]
42368    fn default() -> Self {
42369        Self {
42370            s_type: StructureType::from_raw(1000135001i32),
42371            p_next: core::ptr::null(),
42372            p_view: core::ptr::null(),
42373            layout: Default::default(),
42374        }
42375    }
42376}
42377///[`VkResourceDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkResourceDescriptorDataEXT.html)
42378/**
42379Provided by **VK_EXT_descriptor_heap**.*/
42380#[repr(C)]
42381#[derive(Copy, Clone)]
42382#[doc(alias = "VkResourceDescriptorDataEXT")]
42383pub union ResourceDescriptorDataEXT {
42384    pub p_image: *const ImageDescriptorInfoEXT,
42385    pub p_texel_buffer: *const TexelBufferDescriptorInfoEXT,
42386    pub p_address_range: *const DeviceAddressRangeEXT,
42387    pub p_tensor_arm: *const TensorViewCreateInfoARM,
42388}
42389impl Default for ResourceDescriptorDataEXT {
42390    #[inline]
42391    fn default() -> Self {
42392        unsafe { core::mem::zeroed() }
42393    }
42394}
42395impl core::fmt::Debug for ResourceDescriptorDataEXT {
42396    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
42397        f.write_str(stringify!(ResourceDescriptorDataEXT))
42398    }
42399}
42400///[`VkResourceDescriptorInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkResourceDescriptorInfoEXT.html)
42401/**
42402Provided by **VK_EXT_descriptor_heap**.*/
42403///
42404///# Extended By
42405///- [`DebugUtilsObjectNameInfoEXT`]
42406#[repr(C)]
42407#[derive(Copy, Clone, Debug)]
42408#[doc(alias = "VkResourceDescriptorInfoEXT")]
42409pub struct ResourceDescriptorInfoEXT {
42410    ///Must be `VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT`.
42411    pub s_type: StructureType,
42412    ///Optional, may be null.
42413    pub p_next: *const core::ffi::c_void,
42414    pub r#type: DescriptorType,
42415    pub data: ResourceDescriptorDataEXT,
42416}
42417impl Default for ResourceDescriptorInfoEXT {
42418    #[inline]
42419    fn default() -> Self {
42420        Self {
42421            s_type: StructureType::from_raw(1000135002i32),
42422            p_next: core::ptr::null(),
42423            r#type: Default::default(),
42424            data: Default::default(),
42425        }
42426    }
42427}
42428///[`VkBindHeapInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindHeapInfoEXT.html)
42429/**
42430Provided by **VK_EXT_descriptor_heap**.*/
42431#[repr(C)]
42432#[derive(Copy, Clone, Debug)]
42433#[doc(alias = "VkBindHeapInfoEXT")]
42434pub struct BindHeapInfoEXT {
42435    ///Must be `VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT`.
42436    pub s_type: StructureType,
42437    ///Optional, may be null.
42438    pub p_next: *const core::ffi::c_void,
42439    pub heap_range: DeviceAddressRangeEXT,
42440    pub reserved_range_offset: u64,
42441    pub reserved_range_size: u64,
42442}
42443impl Default for BindHeapInfoEXT {
42444    #[inline]
42445    fn default() -> Self {
42446        Self {
42447            s_type: StructureType::from_raw(1000135003i32),
42448            p_next: core::ptr::null(),
42449            heap_range: Default::default(),
42450            reserved_range_offset: Default::default(),
42451            reserved_range_size: Default::default(),
42452        }
42453    }
42454}
42455///[`VkPushDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushDataInfoEXT.html)
42456/**
42457Provided by **VK_EXT_descriptor_heap**.*/
42458///
42459///# Extended By
42460///- [`PushConstantBankInfoNV`]
42461#[repr(C)]
42462#[derive(Copy, Clone, Debug)]
42463#[doc(alias = "VkPushDataInfoEXT")]
42464pub struct PushDataInfoEXT {
42465    ///Must be `VK_STRUCTURE_TYPE_PUSH_DATA_INFO_EXT`.
42466    pub s_type: StructureType,
42467    ///Optional, may be null.
42468    pub p_next: *const core::ffi::c_void,
42469    pub offset: u32,
42470    pub data: HostAddressRangeConstEXT,
42471}
42472impl Default for PushDataInfoEXT {
42473    #[inline]
42474    fn default() -> Self {
42475        Self {
42476            s_type: StructureType::from_raw(1000135004i32),
42477            p_next: core::ptr::null(),
42478            offset: Default::default(),
42479            data: Default::default(),
42480        }
42481    }
42482}
42483///[`VkDescriptorMappingSourceConstantOffsetEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceConstantOffsetEXT.html)
42484/**
42485Provided by **VK_EXT_descriptor_heap**.*/
42486#[repr(C)]
42487#[derive(Copy, Clone, Debug)]
42488#[doc(alias = "VkDescriptorMappingSourceConstantOffsetEXT")]
42489pub struct DescriptorMappingSourceConstantOffsetEXT {
42490    pub heap_offset: u32,
42491    pub heap_array_stride: u32,
42492    ///Optional, may be null.
42493    pub p_embedded_sampler: *const SamplerCreateInfo,
42494    pub sampler_heap_offset: u32,
42495    pub sampler_heap_array_stride: u32,
42496}
42497impl Default for DescriptorMappingSourceConstantOffsetEXT {
42498    #[inline]
42499    fn default() -> Self {
42500        unsafe { core::mem::zeroed() }
42501    }
42502}
42503///[`VkDescriptorMappingSourcePushIndexEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourcePushIndexEXT.html)
42504/**
42505Provided by **VK_EXT_descriptor_heap**.*/
42506#[repr(C)]
42507#[derive(Copy, Clone, Debug)]
42508#[doc(alias = "VkDescriptorMappingSourcePushIndexEXT")]
42509pub struct DescriptorMappingSourcePushIndexEXT {
42510    pub heap_offset: u32,
42511    pub push_offset: u32,
42512    pub heap_index_stride: u32,
42513    pub heap_array_stride: u32,
42514    ///Optional, may be null.
42515    pub p_embedded_sampler: *const SamplerCreateInfo,
42516    pub use_combined_image_sampler_index: u32,
42517    pub sampler_heap_offset: u32,
42518    pub sampler_push_offset: u32,
42519    pub sampler_heap_index_stride: u32,
42520    pub sampler_heap_array_stride: u32,
42521}
42522impl Default for DescriptorMappingSourcePushIndexEXT {
42523    #[inline]
42524    fn default() -> Self {
42525        unsafe { core::mem::zeroed() }
42526    }
42527}
42528///[`VkDescriptorMappingSourceIndirectIndexEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceIndirectIndexEXT.html)
42529/**
42530Provided by **VK_EXT_descriptor_heap**.*/
42531#[repr(C)]
42532#[derive(Copy, Clone, Debug)]
42533#[doc(alias = "VkDescriptorMappingSourceIndirectIndexEXT")]
42534pub struct DescriptorMappingSourceIndirectIndexEXT {
42535    pub heap_offset: u32,
42536    pub push_offset: u32,
42537    pub address_offset: u32,
42538    pub heap_index_stride: u32,
42539    pub heap_array_stride: u32,
42540    ///Optional, may be null.
42541    pub p_embedded_sampler: *const SamplerCreateInfo,
42542    pub use_combined_image_sampler_index: u32,
42543    pub sampler_heap_offset: u32,
42544    pub sampler_push_offset: u32,
42545    pub sampler_address_offset: u32,
42546    pub sampler_heap_index_stride: u32,
42547    pub sampler_heap_array_stride: u32,
42548}
42549impl Default for DescriptorMappingSourceIndirectIndexEXT {
42550    #[inline]
42551    fn default() -> Self {
42552        unsafe { core::mem::zeroed() }
42553    }
42554}
42555///[`VkDescriptorMappingSourceIndirectIndexArrayEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceIndirectIndexArrayEXT.html)
42556/**
42557Provided by **VK_EXT_descriptor_heap**.*/
42558#[repr(C)]
42559#[derive(Copy, Clone, Debug)]
42560#[doc(alias = "VkDescriptorMappingSourceIndirectIndexArrayEXT")]
42561pub struct DescriptorMappingSourceIndirectIndexArrayEXT {
42562    pub heap_offset: u32,
42563    pub push_offset: u32,
42564    pub address_offset: u32,
42565    pub heap_index_stride: u32,
42566    ///Optional, may be null.
42567    pub p_embedded_sampler: *const SamplerCreateInfo,
42568    pub use_combined_image_sampler_index: u32,
42569    pub sampler_heap_offset: u32,
42570    pub sampler_push_offset: u32,
42571    pub sampler_address_offset: u32,
42572    pub sampler_heap_index_stride: u32,
42573}
42574impl Default for DescriptorMappingSourceIndirectIndexArrayEXT {
42575    #[inline]
42576    fn default() -> Self {
42577        unsafe { core::mem::zeroed() }
42578    }
42579}
42580///[`VkDescriptorMappingSourceHeapDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceHeapDataEXT.html)
42581/**
42582Provided by **VK_EXT_descriptor_heap**.*/
42583#[repr(C)]
42584#[derive(Copy, Clone, Debug)]
42585#[doc(alias = "VkDescriptorMappingSourceHeapDataEXT")]
42586pub struct DescriptorMappingSourceHeapDataEXT {
42587    pub heap_offset: u32,
42588    pub push_offset: u32,
42589}
42590impl Default for DescriptorMappingSourceHeapDataEXT {
42591    #[inline]
42592    fn default() -> Self {
42593        unsafe { core::mem::zeroed() }
42594    }
42595}
42596///[`VkDescriptorMappingSourceShaderRecordIndexEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceShaderRecordIndexEXT.html)
42597/**
42598Provided by **VK_EXT_descriptor_heap**.*/
42599#[repr(C)]
42600#[derive(Copy, Clone, Debug)]
42601#[doc(alias = "VkDescriptorMappingSourceShaderRecordIndexEXT")]
42602pub struct DescriptorMappingSourceShaderRecordIndexEXT {
42603    pub heap_offset: u32,
42604    pub shader_record_offset: u32,
42605    pub heap_index_stride: u32,
42606    pub heap_array_stride: u32,
42607    ///Optional, may be null.
42608    pub p_embedded_sampler: *const SamplerCreateInfo,
42609    pub use_combined_image_sampler_index: u32,
42610    pub sampler_heap_offset: u32,
42611    pub sampler_shader_record_offset: u32,
42612    pub sampler_heap_index_stride: u32,
42613    pub sampler_heap_array_stride: u32,
42614}
42615impl Default for DescriptorMappingSourceShaderRecordIndexEXT {
42616    #[inline]
42617    fn default() -> Self {
42618        unsafe { core::mem::zeroed() }
42619    }
42620}
42621///[`VkDescriptorMappingSourceIndirectAddressEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceIndirectAddressEXT.html)
42622/**
42623Provided by **VK_EXT_descriptor_heap**.*/
42624#[repr(C)]
42625#[derive(Copy, Clone, Debug)]
42626#[doc(alias = "VkDescriptorMappingSourceIndirectAddressEXT")]
42627pub struct DescriptorMappingSourceIndirectAddressEXT {
42628    pub push_offset: u32,
42629    pub address_offset: u32,
42630}
42631impl Default for DescriptorMappingSourceIndirectAddressEXT {
42632    #[inline]
42633    fn default() -> Self {
42634        unsafe { core::mem::zeroed() }
42635    }
42636}
42637///[`VkDescriptorMappingSourceDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceDataEXT.html)
42638/**
42639Provided by **VK_EXT_descriptor_heap**.*/
42640#[repr(C)]
42641#[derive(Copy, Clone)]
42642#[doc(alias = "VkDescriptorMappingSourceDataEXT")]
42643pub union DescriptorMappingSourceDataEXT {
42644    pub constant_offset: DescriptorMappingSourceConstantOffsetEXT,
42645    pub push_index: DescriptorMappingSourcePushIndexEXT,
42646    pub indirect_index: DescriptorMappingSourceIndirectIndexEXT,
42647    pub indirect_index_array: DescriptorMappingSourceIndirectIndexArrayEXT,
42648    pub heap_data: DescriptorMappingSourceHeapDataEXT,
42649    pub push_data_offset: u32,
42650    pub push_address_offset: u32,
42651    pub indirect_address: DescriptorMappingSourceIndirectAddressEXT,
42652    pub shader_record_index: DescriptorMappingSourceShaderRecordIndexEXT,
42653    pub shader_record_data_offset: u32,
42654    pub shader_record_address_offset: u32,
42655}
42656impl Default for DescriptorMappingSourceDataEXT {
42657    #[inline]
42658    fn default() -> Self {
42659        unsafe { core::mem::zeroed() }
42660    }
42661}
42662impl core::fmt::Debug for DescriptorMappingSourceDataEXT {
42663    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
42664        f.write_str(stringify!(DescriptorMappingSourceDataEXT))
42665    }
42666}
42667///[`VkDescriptorSetAndBindingMappingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetAndBindingMappingEXT.html)
42668/**
42669Provided by **VK_EXT_descriptor_heap**.*/
42670///
42671///# Extended By
42672///- [`PushConstantBankInfoNV`]
42673#[repr(C)]
42674#[derive(Copy, Clone, Debug)]
42675#[doc(alias = "VkDescriptorSetAndBindingMappingEXT")]
42676pub struct DescriptorSetAndBindingMappingEXT {
42677    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT`.
42678    pub s_type: StructureType,
42679    ///Optional, may be null.
42680    pub p_next: *const core::ffi::c_void,
42681    pub descriptor_set: u32,
42682    pub first_binding: u32,
42683    pub binding_count: u32,
42684    pub resource_mask: SpirvResourceTypeFlagsEXT,
42685    pub source: DescriptorMappingSourceEXT,
42686    pub source_data: DescriptorMappingSourceDataEXT,
42687}
42688impl Default for DescriptorSetAndBindingMappingEXT {
42689    #[inline]
42690    fn default() -> Self {
42691        Self {
42692            s_type: StructureType::from_raw(1000135005i32),
42693            p_next: core::ptr::null(),
42694            descriptor_set: Default::default(),
42695            first_binding: Default::default(),
42696            binding_count: Default::default(),
42697            resource_mask: Default::default(),
42698            source: Default::default(),
42699            source_data: Default::default(),
42700        }
42701    }
42702}
42703///[`VkShaderDescriptorSetAndBindingMappingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderDescriptorSetAndBindingMappingInfoEXT.html)
42704/**
42705Provided by **VK_EXT_descriptor_heap**.*/
42706///
42707///# Extends
42708///- [`PipelineShaderStageCreateInfo`]
42709///- [`ShaderCreateInfoEXT`]
42710#[repr(C)]
42711#[derive(Copy, Clone, Debug)]
42712#[doc(alias = "VkShaderDescriptorSetAndBindingMappingInfoEXT")]
42713pub struct ShaderDescriptorSetAndBindingMappingInfoEXT {
42714    ///Must be `VK_STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT`.
42715    pub s_type: StructureType,
42716    ///Optional, may be null.
42717    pub p_next: *const core::ffi::c_void,
42718    ///Length of `p_mappings`.
42719    pub mapping_count: u32,
42720    pub p_mappings: *const DescriptorSetAndBindingMappingEXT,
42721}
42722impl Default for ShaderDescriptorSetAndBindingMappingInfoEXT {
42723    #[inline]
42724    fn default() -> Self {
42725        Self {
42726            s_type: StructureType::from_raw(1000135006i32),
42727            p_next: core::ptr::null(),
42728            mapping_count: Default::default(),
42729            p_mappings: core::ptr::null(),
42730        }
42731    }
42732}
42733///[`VkSamplerCustomBorderColorIndexCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCustomBorderColorIndexCreateInfoEXT.html)
42734/**
42735Provided by **VK_EXT_descriptor_heap**.*/
42736///
42737///# Extends
42738///- [`SamplerCreateInfo`]
42739#[repr(C)]
42740#[derive(Copy, Clone, Debug)]
42741#[doc(alias = "VkSamplerCustomBorderColorIndexCreateInfoEXT")]
42742pub struct SamplerCustomBorderColorIndexCreateInfoEXT {
42743    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT`.
42744    pub s_type: StructureType,
42745    ///Optional, may be null.
42746    pub p_next: *const core::ffi::c_void,
42747    pub index: u32,
42748}
42749impl Default for SamplerCustomBorderColorIndexCreateInfoEXT {
42750    #[inline]
42751    fn default() -> Self {
42752        Self {
42753            s_type: StructureType::from_raw(1000135011i32),
42754            p_next: core::ptr::null(),
42755            index: Default::default(),
42756        }
42757    }
42758}
42759///[`VkOpaqueCaptureDataCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpaqueCaptureDataCreateInfoEXT.html)
42760/**
42761Provided by **VK_EXT_descriptor_heap**.*/
42762///
42763///# Extends
42764///- [`ImageCreateInfo`]
42765///- [`TensorCreateInfoARM`]
42766#[repr(C)]
42767#[derive(Copy, Clone, Debug)]
42768#[doc(alias = "VkOpaqueCaptureDataCreateInfoEXT")]
42769pub struct OpaqueCaptureDataCreateInfoEXT {
42770    ///Must be `VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT`.
42771    pub s_type: StructureType,
42772    ///Optional, may be null.
42773    pub p_next: *const core::ffi::c_void,
42774    ///Optional, may be null.
42775    pub p_data: *const HostAddressRangeConstEXT,
42776}
42777impl Default for OpaqueCaptureDataCreateInfoEXT {
42778    #[inline]
42779    fn default() -> Self {
42780        Self {
42781            s_type: StructureType::from_raw(1000135007i32),
42782            p_next: core::ptr::null(),
42783            p_data: core::ptr::null(),
42784        }
42785    }
42786}
42787///[`VkIndirectCommandsLayoutPushDataTokenNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutPushDataTokenNV.html)
42788/**
42789Provided by **VK_EXT_descriptor_heap**.*/
42790///
42791///# Extends
42792///- [`IndirectCommandsLayoutTokenNV`]
42793#[repr(C)]
42794#[derive(Copy, Clone, Debug)]
42795#[doc(alias = "VkIndirectCommandsLayoutPushDataTokenNV")]
42796pub struct IndirectCommandsLayoutPushDataTokenNV {
42797    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV`.
42798    pub s_type: StructureType,
42799    ///Optional, may be null.
42800    pub p_next: *const core::ffi::c_void,
42801    pub push_data_offset: u32,
42802    pub push_data_size: u32,
42803}
42804impl Default for IndirectCommandsLayoutPushDataTokenNV {
42805    #[inline]
42806    fn default() -> Self {
42807        Self {
42808            s_type: StructureType::from_raw(1000135012i32),
42809            p_next: core::ptr::null(),
42810            push_data_offset: Default::default(),
42811            push_data_size: Default::default(),
42812        }
42813    }
42814}
42815///[`VkSubsampledImageFormatPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubsampledImageFormatPropertiesEXT.html)
42816/**
42817Provided by **VK_EXT_descriptor_heap**.*/
42818///
42819///# Extends
42820///- [`ImageFormatProperties2`]
42821#[repr(C)]
42822#[derive(Copy, Clone, Debug)]
42823#[doc(alias = "VkSubsampledImageFormatPropertiesEXT")]
42824pub struct SubsampledImageFormatPropertiesEXT {
42825    ///Must be `VK_STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT`.
42826    pub s_type: StructureType,
42827    ///Optional, may be null.
42828    pub p_next: *const core::ffi::c_void,
42829    pub subsampled_image_descriptor_count: u32,
42830}
42831impl Default for SubsampledImageFormatPropertiesEXT {
42832    #[inline]
42833    fn default() -> Self {
42834        Self {
42835            s_type: StructureType::from_raw(1000135013i32),
42836            p_next: core::ptr::null(),
42837            subsampled_image_descriptor_count: Default::default(),
42838        }
42839    }
42840}
42841///[`VkPhysicalDeviceDescriptorHeapFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorHeapFeaturesEXT.html)
42842/**
42843Provided by **VK_EXT_descriptor_heap**.*/
42844///
42845///# Extends
42846///- [`PhysicalDeviceFeatures2`]
42847///- [`DeviceCreateInfo`]
42848#[repr(C)]
42849#[derive(Copy, Clone, Debug)]
42850#[doc(alias = "VkPhysicalDeviceDescriptorHeapFeaturesEXT")]
42851pub struct PhysicalDeviceDescriptorHeapFeaturesEXT {
42852    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT`.
42853    pub s_type: StructureType,
42854    ///Optional, may be null.
42855    pub p_next: *mut core::ffi::c_void,
42856    pub descriptor_heap: u32,
42857    pub descriptor_heap_capture_replay: u32,
42858}
42859impl Default for PhysicalDeviceDescriptorHeapFeaturesEXT {
42860    #[inline]
42861    fn default() -> Self {
42862        Self {
42863            s_type: StructureType::from_raw(1000135009i32),
42864            p_next: core::ptr::null_mut(),
42865            descriptor_heap: Default::default(),
42866            descriptor_heap_capture_replay: Default::default(),
42867        }
42868    }
42869}
42870///[`VkPhysicalDeviceDescriptorHeapPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorHeapPropertiesEXT.html)
42871/**
42872Provided by **VK_EXT_descriptor_heap**.*/
42873/**
42874**Returned only**, filled by Vulkan, not constructed by the application.*/
42875///
42876///# Extends
42877///- [`PhysicalDeviceProperties2`]
42878#[repr(C)]
42879#[derive(Copy, Clone, Debug)]
42880#[doc(alias = "VkPhysicalDeviceDescriptorHeapPropertiesEXT")]
42881pub struct PhysicalDeviceDescriptorHeapPropertiesEXT {
42882    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT`.
42883    pub s_type: StructureType,
42884    ///Optional, may be null.
42885    pub p_next: *mut core::ffi::c_void,
42886    pub sampler_heap_alignment: u64,
42887    pub resource_heap_alignment: u64,
42888    pub max_sampler_heap_size: u64,
42889    pub max_resource_heap_size: u64,
42890    pub min_sampler_heap_reserved_range: u64,
42891    pub min_sampler_heap_reserved_range_with_embedded: u64,
42892    pub min_resource_heap_reserved_range: u64,
42893    pub sampler_descriptor_size: u64,
42894    pub image_descriptor_size: u64,
42895    pub buffer_descriptor_size: u64,
42896    pub sampler_descriptor_alignment: u64,
42897    pub image_descriptor_alignment: u64,
42898    pub buffer_descriptor_alignment: u64,
42899    pub max_push_data_size: u64,
42900    pub image_capture_replay_opaque_data_size: usize,
42901    pub max_descriptor_heap_embedded_samplers: u32,
42902    pub sampler_ycbcr_conversion_count: u32,
42903    pub sparse_descriptor_heaps: u32,
42904    pub protected_descriptor_heaps: u32,
42905}
42906impl Default for PhysicalDeviceDescriptorHeapPropertiesEXT {
42907    #[inline]
42908    fn default() -> Self {
42909        Self {
42910            s_type: StructureType::from_raw(1000135008i32),
42911            p_next: core::ptr::null_mut(),
42912            sampler_heap_alignment: Default::default(),
42913            resource_heap_alignment: Default::default(),
42914            max_sampler_heap_size: Default::default(),
42915            max_resource_heap_size: Default::default(),
42916            min_sampler_heap_reserved_range: Default::default(),
42917            min_sampler_heap_reserved_range_with_embedded: Default::default(),
42918            min_resource_heap_reserved_range: Default::default(),
42919            sampler_descriptor_size: Default::default(),
42920            image_descriptor_size: Default::default(),
42921            buffer_descriptor_size: Default::default(),
42922            sampler_descriptor_alignment: Default::default(),
42923            image_descriptor_alignment: Default::default(),
42924            buffer_descriptor_alignment: Default::default(),
42925            max_push_data_size: Default::default(),
42926            image_capture_replay_opaque_data_size: Default::default(),
42927            max_descriptor_heap_embedded_samplers: Default::default(),
42928            sampler_ycbcr_conversion_count: Default::default(),
42929            sparse_descriptor_heaps: Default::default(),
42930            protected_descriptor_heaps: Default::default(),
42931        }
42932    }
42933}
42934///[`VkCommandBufferInheritanceDescriptorHeapInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceDescriptorHeapInfoEXT.html)
42935/**
42936Provided by **VK_EXT_descriptor_heap**.*/
42937///
42938///# Extends
42939///- [`CommandBufferInheritanceInfo`]
42940#[repr(C)]
42941#[derive(Copy, Clone, Debug)]
42942#[doc(alias = "VkCommandBufferInheritanceDescriptorHeapInfoEXT")]
42943pub struct CommandBufferInheritanceDescriptorHeapInfoEXT {
42944    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT`.
42945    pub s_type: StructureType,
42946    ///Optional, may be null.
42947    pub p_next: *const core::ffi::c_void,
42948    ///Optional, may be null.
42949    pub p_sampler_heap_bind_info: *const BindHeapInfoEXT,
42950    ///Optional, may be null.
42951    pub p_resource_heap_bind_info: *const BindHeapInfoEXT,
42952}
42953impl Default for CommandBufferInheritanceDescriptorHeapInfoEXT {
42954    #[inline]
42955    fn default() -> Self {
42956        Self {
42957            s_type: StructureType::from_raw(1000135010i32),
42958            p_next: core::ptr::null(),
42959            p_sampler_heap_bind_info: core::ptr::null(),
42960            p_resource_heap_bind_info: core::ptr::null(),
42961        }
42962    }
42963}
42964///[`VkPhysicalDeviceDescriptorHeapTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorHeapTensorPropertiesARM.html)
42965/**
42966Provided by **VK_EXT_descriptor_heap**.*/
42967/**
42968**Returned only**, filled by Vulkan, not constructed by the application.*/
42969///
42970///# Extends
42971///- [`PhysicalDeviceProperties2`]
42972#[repr(C)]
42973#[derive(Copy, Clone, Debug)]
42974#[doc(alias = "VkPhysicalDeviceDescriptorHeapTensorPropertiesARM")]
42975pub struct PhysicalDeviceDescriptorHeapTensorPropertiesARM {
42976    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM`.
42977    pub s_type: StructureType,
42978    ///Optional, may be null.
42979    pub p_next: *mut core::ffi::c_void,
42980    pub tensor_descriptor_size: u64,
42981    pub tensor_descriptor_alignment: u64,
42982    pub tensor_capture_replay_opaque_data_size: usize,
42983}
42984impl Default for PhysicalDeviceDescriptorHeapTensorPropertiesARM {
42985    #[inline]
42986    fn default() -> Self {
42987        Self {
42988            s_type: StructureType::from_raw(1000135014i32),
42989            p_next: core::ptr::null_mut(),
42990            tensor_descriptor_size: Default::default(),
42991            tensor_descriptor_alignment: Default::default(),
42992            tensor_capture_replay_opaque_data_size: Default::default(),
42993        }
42994    }
42995}
42996///[`VkPhysicalDeviceShaderInstrumentationFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderInstrumentationFeaturesARM.html)
42997/**
42998Provided by **VK_ARM_shader_instrumentation**.*/
42999///
43000///# Extends
43001///- [`PhysicalDeviceFeatures2`]
43002///- [`DeviceCreateInfo`]
43003#[repr(C)]
43004#[derive(Copy, Clone, Debug)]
43005#[doc(alias = "VkPhysicalDeviceShaderInstrumentationFeaturesARM")]
43006pub struct PhysicalDeviceShaderInstrumentationFeaturesARM {
43007    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM`.
43008    pub s_type: StructureType,
43009    ///Optional, may be null.
43010    pub p_next: *mut core::ffi::c_void,
43011    pub shader_instrumentation: u32,
43012}
43013impl Default for PhysicalDeviceShaderInstrumentationFeaturesARM {
43014    #[inline]
43015    fn default() -> Self {
43016        Self {
43017            s_type: StructureType::from_raw(1000607000i32),
43018            p_next: core::ptr::null_mut(),
43019            shader_instrumentation: Default::default(),
43020        }
43021    }
43022}
43023///[`VkPhysicalDeviceShaderInstrumentationPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderInstrumentationPropertiesARM.html)
43024/**
43025Provided by **VK_ARM_shader_instrumentation**.*/
43026/**
43027**Returned only**, filled by Vulkan, not constructed by the application.*/
43028///
43029///# Extends
43030///- [`PhysicalDeviceProperties2`]
43031#[repr(C)]
43032#[derive(Copy, Clone, Debug)]
43033#[doc(alias = "VkPhysicalDeviceShaderInstrumentationPropertiesARM")]
43034pub struct PhysicalDeviceShaderInstrumentationPropertiesARM {
43035    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM`.
43036    pub s_type: StructureType,
43037    ///Optional, may be null.
43038    pub p_next: *mut core::ffi::c_void,
43039    pub num_metrics: u32,
43040    pub per_basic_block_granularity: u32,
43041}
43042impl Default for PhysicalDeviceShaderInstrumentationPropertiesARM {
43043    #[inline]
43044    fn default() -> Self {
43045        Self {
43046            s_type: StructureType::from_raw(1000607001i32),
43047            p_next: core::ptr::null_mut(),
43048            num_metrics: Default::default(),
43049            per_basic_block_granularity: Default::default(),
43050        }
43051    }
43052}
43053///[`VkShaderInstrumentationCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderInstrumentationCreateInfoARM.html)
43054/**
43055Provided by **VK_ARM_shader_instrumentation**.*/
43056#[repr(C)]
43057#[derive(Copy, Clone, Debug)]
43058#[doc(alias = "VkShaderInstrumentationCreateInfoARM")]
43059pub struct ShaderInstrumentationCreateInfoARM {
43060    ///Must be `VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_CREATE_INFO_ARM`.
43061    pub s_type: StructureType,
43062    ///Optional, may be null.
43063    pub p_next: *mut core::ffi::c_void,
43064}
43065impl Default for ShaderInstrumentationCreateInfoARM {
43066    #[inline]
43067    fn default() -> Self {
43068        Self {
43069            s_type: StructureType::from_raw(1000607002i32),
43070            p_next: core::ptr::null_mut(),
43071        }
43072    }
43073}
43074///[`VkShaderInstrumentationMetricDescriptionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderInstrumentationMetricDescriptionARM.html)
43075/**
43076Provided by **VK_ARM_shader_instrumentation**.*/
43077#[repr(C)]
43078#[derive(Copy, Clone, Debug)]
43079#[doc(alias = "VkShaderInstrumentationMetricDescriptionARM")]
43080pub struct ShaderInstrumentationMetricDescriptionARM {
43081    ///Must be `VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM`.
43082    pub s_type: StructureType,
43083    ///Optional, may be null.
43084    pub p_next: *mut core::ffi::c_void,
43085    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
43086    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
43087}
43088impl Default for ShaderInstrumentationMetricDescriptionARM {
43089    #[inline]
43090    fn default() -> Self {
43091        Self {
43092            s_type: StructureType::from_raw(1000607003i32),
43093            p_next: core::ptr::null_mut(),
43094            name: unsafe { core::mem::zeroed() },
43095            description: unsafe { core::mem::zeroed() },
43096        }
43097    }
43098}
43099///[`VkShaderInstrumentationMetricDataHeaderARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderInstrumentationMetricDataHeaderARM.html)
43100/**
43101Provided by **VK_ARM_shader_instrumentation**.*/
43102#[repr(C)]
43103#[derive(Copy, Clone, Debug)]
43104#[doc(alias = "VkShaderInstrumentationMetricDataHeaderARM")]
43105pub struct ShaderInstrumentationMetricDataHeaderARM {
43106    pub result_index: u32,
43107    pub result_sub_index: u32,
43108    pub stages: ShaderStageFlags,
43109    pub basic_block_index: u32,
43110}
43111impl Default for ShaderInstrumentationMetricDataHeaderARM {
43112    #[inline]
43113    fn default() -> Self {
43114        unsafe { core::mem::zeroed() }
43115    }
43116}
43117///[`VkDeviceAddressRangeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceAddressRangeKHR.html)
43118/**
43119Provided by **VK_KHR_device_address_commands**.*/
43120#[repr(C)]
43121#[derive(Copy, Clone, Debug)]
43122#[doc(alias = "VkDeviceAddressRangeKHR")]
43123pub struct DeviceAddressRangeKHR {
43124    pub address: u64,
43125    pub size: u64,
43126}
43127impl Default for DeviceAddressRangeKHR {
43128    #[inline]
43129    fn default() -> Self {
43130        unsafe { core::mem::zeroed() }
43131    }
43132}
43133///[`VkDeviceMemoryCopyKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryCopyKHR.html)
43134/**
43135Provided by **VK_KHR_device_address_commands**.*/
43136#[repr(C)]
43137#[derive(Copy, Clone, Debug)]
43138#[doc(alias = "VkDeviceMemoryCopyKHR")]
43139pub struct DeviceMemoryCopyKHR {
43140    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_COPY_KHR`.
43141    pub s_type: StructureType,
43142    ///Optional, may be null.
43143    pub p_next: *const core::ffi::c_void,
43144    pub src_range: DeviceAddressRangeKHR,
43145    pub src_flags: AddressCommandFlagsKHR,
43146    pub dst_range: DeviceAddressRangeKHR,
43147    pub dst_flags: AddressCommandFlagsKHR,
43148}
43149impl Default for DeviceMemoryCopyKHR {
43150    #[inline]
43151    fn default() -> Self {
43152        Self {
43153            s_type: StructureType::from_raw(1000318000i32),
43154            p_next: core::ptr::null(),
43155            src_range: Default::default(),
43156            src_flags: Default::default(),
43157            dst_range: Default::default(),
43158            dst_flags: Default::default(),
43159        }
43160    }
43161}
43162///[`VkCopyDeviceMemoryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyDeviceMemoryInfoKHR.html)
43163/**
43164Provided by **VK_KHR_device_address_commands**.*/
43165#[repr(C)]
43166#[derive(Copy, Clone, Debug)]
43167#[doc(alias = "VkCopyDeviceMemoryInfoKHR")]
43168pub struct CopyDeviceMemoryInfoKHR {
43169    ///Must be `VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_INFO_KHR`.
43170    pub s_type: StructureType,
43171    ///Optional, may be null.
43172    pub p_next: *const core::ffi::c_void,
43173    ///Length of `p_regions`.
43174    pub region_count: u32,
43175    pub p_regions: *const DeviceMemoryCopyKHR,
43176}
43177impl Default for CopyDeviceMemoryInfoKHR {
43178    #[inline]
43179    fn default() -> Self {
43180        Self {
43181            s_type: StructureType::from_raw(1000318001i32),
43182            p_next: core::ptr::null(),
43183            region_count: Default::default(),
43184            p_regions: core::ptr::null(),
43185        }
43186    }
43187}
43188///[`VkDeviceMemoryImageCopyKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryImageCopyKHR.html)
43189/**
43190Provided by **VK_KHR_device_address_commands**.*/
43191///
43192///# Extended By
43193///- [`CopyCommandTransformInfoQCOM`]
43194#[repr(C)]
43195#[derive(Copy, Clone, Debug)]
43196#[doc(alias = "VkDeviceMemoryImageCopyKHR")]
43197pub struct DeviceMemoryImageCopyKHR {
43198    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_IMAGE_COPY_KHR`.
43199    pub s_type: StructureType,
43200    ///Optional, may be null.
43201    pub p_next: *const core::ffi::c_void,
43202    pub address_range: DeviceAddressRangeKHR,
43203    pub address_flags: AddressCommandFlagsKHR,
43204    pub address_row_length: u32,
43205    pub address_image_height: u32,
43206    pub image_subresource: ImageSubresourceLayers,
43207    pub image_layout: ImageLayout,
43208    pub image_offset: Offset3D,
43209    pub image_extent: Extent3D,
43210}
43211impl Default for DeviceMemoryImageCopyKHR {
43212    #[inline]
43213    fn default() -> Self {
43214        Self {
43215            s_type: StructureType::from_raw(1000318002i32),
43216            p_next: core::ptr::null(),
43217            address_range: Default::default(),
43218            address_flags: Default::default(),
43219            address_row_length: Default::default(),
43220            address_image_height: Default::default(),
43221            image_subresource: Default::default(),
43222            image_layout: Default::default(),
43223            image_offset: Default::default(),
43224            image_extent: Default::default(),
43225        }
43226    }
43227}
43228///[`VkCopyDeviceMemoryImageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyDeviceMemoryImageInfoKHR.html)
43229/**
43230Provided by **VK_KHR_device_address_commands**.*/
43231#[repr(C)]
43232#[derive(Copy, Clone, Debug)]
43233#[doc(alias = "VkCopyDeviceMemoryImageInfoKHR")]
43234pub struct CopyDeviceMemoryImageInfoKHR {
43235    ///Must be `VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_IMAGE_INFO_KHR`.
43236    pub s_type: StructureType,
43237    ///Optional, may be null.
43238    pub p_next: *const core::ffi::c_void,
43239    pub image: Image,
43240    ///Length of `p_regions`.
43241    pub region_count: u32,
43242    pub p_regions: *const DeviceMemoryImageCopyKHR,
43243}
43244impl Default for CopyDeviceMemoryImageInfoKHR {
43245    #[inline]
43246    fn default() -> Self {
43247        Self {
43248            s_type: StructureType::from_raw(1000318003i32),
43249            p_next: core::ptr::null(),
43250            image: Default::default(),
43251            region_count: Default::default(),
43252            p_regions: core::ptr::null(),
43253        }
43254    }
43255}
43256///[`VkMemoryRangeBarriersInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryRangeBarriersInfoKHR.html)
43257/**
43258Provided by **VK_KHR_device_address_commands**.*/
43259///
43260///# Extends
43261///- [`DependencyInfo`]
43262#[repr(C)]
43263#[derive(Copy, Clone, Debug)]
43264#[doc(alias = "VkMemoryRangeBarriersInfoKHR")]
43265pub struct MemoryRangeBarriersInfoKHR {
43266    ///Must be `VK_STRUCTURE_TYPE_MEMORY_RANGE_BARRIERS_INFO_KHR`.
43267    pub s_type: StructureType,
43268    ///Optional, may be null.
43269    pub p_next: *const core::ffi::c_void,
43270    ///Length of `p_memory_range_barriers`.
43271    pub memory_range_barrier_count: u32,
43272    pub p_memory_range_barriers: *const MemoryRangeBarrierKHR,
43273}
43274impl Default for MemoryRangeBarriersInfoKHR {
43275    #[inline]
43276    fn default() -> Self {
43277        Self {
43278            s_type: StructureType::from_raw(1000318004i32),
43279            p_next: core::ptr::null(),
43280            memory_range_barrier_count: Default::default(),
43281            p_memory_range_barriers: core::ptr::null(),
43282        }
43283    }
43284}
43285///[`VkMemoryRangeBarrierKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryRangeBarrierKHR.html)
43286/**
43287Provided by **VK_KHR_device_address_commands**.*/
43288#[repr(C)]
43289#[derive(Copy, Clone, Debug)]
43290#[doc(alias = "VkMemoryRangeBarrierKHR")]
43291pub struct MemoryRangeBarrierKHR {
43292    ///Must be `VK_STRUCTURE_TYPE_MEMORY_RANGE_BARRIER_KHR`.
43293    pub s_type: StructureType,
43294    ///Optional, may be null.
43295    pub p_next: *const core::ffi::c_void,
43296    pub src_stage_mask: PipelineStageFlags2,
43297    pub src_access_mask: AccessFlags2,
43298    pub dst_stage_mask: PipelineStageFlags2,
43299    pub dst_access_mask: AccessFlags2,
43300    pub src_queue_family_index: u32,
43301    pub dst_queue_family_index: u32,
43302    pub address_range: DeviceAddressRangeKHR,
43303    pub address_flags: AddressCommandFlagsKHR,
43304}
43305impl Default for MemoryRangeBarrierKHR {
43306    #[inline]
43307    fn default() -> Self {
43308        Self {
43309            s_type: StructureType::from_raw(1000318005i32),
43310            p_next: core::ptr::null(),
43311            src_stage_mask: Default::default(),
43312            src_access_mask: Default::default(),
43313            dst_stage_mask: Default::default(),
43314            dst_access_mask: Default::default(),
43315            src_queue_family_index: Default::default(),
43316            dst_queue_family_index: Default::default(),
43317            address_range: Default::default(),
43318            address_flags: Default::default(),
43319        }
43320    }
43321}
43322///[`VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR.html)
43323/**
43324Provided by **VK_KHR_device_address_commands**.*/
43325///
43326///# Extends
43327///- [`PhysicalDeviceFeatures2`]
43328///- [`DeviceCreateInfo`]
43329#[repr(C)]
43330#[derive(Copy, Clone, Debug)]
43331#[doc(alias = "VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR")]
43332pub struct PhysicalDeviceDeviceAddressCommandsFeaturesKHR {
43333    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR`.
43334    pub s_type: StructureType,
43335    ///Optional, may be null.
43336    pub p_next: *mut core::ffi::c_void,
43337    pub device_address_commands: u32,
43338}
43339impl Default for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {
43340    #[inline]
43341    fn default() -> Self {
43342        Self {
43343            s_type: StructureType::from_raw(1000318006i32),
43344            p_next: core::ptr::null_mut(),
43345            device_address_commands: Default::default(),
43346        }
43347    }
43348}
43349///[`VkConditionalRenderingBeginInfo2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkConditionalRenderingBeginInfo2EXT.html)
43350/**
43351Provided by **VK_KHR_device_address_commands**.*/
43352#[repr(C)]
43353#[derive(Copy, Clone, Debug)]
43354#[doc(alias = "VkConditionalRenderingBeginInfo2EXT")]
43355pub struct ConditionalRenderingBeginInfo2EXT {
43356    ///Must be `VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT`.
43357    pub s_type: StructureType,
43358    ///Optional, may be null.
43359    pub p_next: *const core::ffi::c_void,
43360    pub address_range: DeviceAddressRangeKHR,
43361    pub address_flags: AddressCommandFlagsKHR,
43362    pub flags: ConditionalRenderingFlagsEXT,
43363}
43364impl Default for ConditionalRenderingBeginInfo2EXT {
43365    #[inline]
43366    fn default() -> Self {
43367        Self {
43368            s_type: StructureType::from_raw(1000318012i32),
43369            p_next: core::ptr::null(),
43370            address_range: Default::default(),
43371            address_flags: Default::default(),
43372            flags: Default::default(),
43373        }
43374    }
43375}
43376///[`VkAccelerationStructureCreateInfo2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureCreateInfo2KHR.html)
43377/**
43378Provided by **VK_KHR_device_address_commands**.*/
43379///
43380///# Extended By
43381///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
43382#[repr(C)]
43383#[derive(Copy, Clone, Debug)]
43384#[doc(alias = "VkAccelerationStructureCreateInfo2KHR")]
43385pub struct AccelerationStructureCreateInfo2KHR {
43386    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR`.
43387    pub s_type: StructureType,
43388    ///Optional, may be null.
43389    pub p_next: *const core::ffi::c_void,
43390    pub create_flags: AccelerationStructureCreateFlagsKHR,
43391    pub address_range: DeviceAddressRangeKHR,
43392    pub address_flags: AddressCommandFlagsKHR,
43393    pub r#type: AccelerationStructureTypeKHR,
43394}
43395impl Default for AccelerationStructureCreateInfo2KHR {
43396    #[inline]
43397    fn default() -> Self {
43398        Self {
43399            s_type: StructureType::from_raw(1000318015i32),
43400            p_next: core::ptr::null(),
43401            create_flags: Default::default(),
43402            address_range: Default::default(),
43403            address_flags: Default::default(),
43404            r#type: Default::default(),
43405        }
43406    }
43407}
43408///[`VkBindIndexBuffer3InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindIndexBuffer3InfoKHR.html)
43409/**
43410Provided by **VK_KHR_device_address_commands**.*/
43411#[repr(C)]
43412#[derive(Copy, Clone, Debug)]
43413#[doc(alias = "VkBindIndexBuffer3InfoKHR")]
43414pub struct BindIndexBuffer3InfoKHR {
43415    ///Must be `VK_STRUCTURE_TYPE_BIND_INDEX_BUFFER_3_INFO_KHR`.
43416    pub s_type: StructureType,
43417    ///Optional, may be null.
43418    pub p_next: *const core::ffi::c_void,
43419    pub address_range: DeviceAddressRangeKHR,
43420    pub address_flags: AddressCommandFlagsKHR,
43421    pub index_type: IndexType,
43422}
43423impl Default for BindIndexBuffer3InfoKHR {
43424    #[inline]
43425    fn default() -> Self {
43426        Self {
43427            s_type: StructureType::from_raw(1000318007i32),
43428            p_next: core::ptr::null(),
43429            address_range: Default::default(),
43430            address_flags: Default::default(),
43431            index_type: Default::default(),
43432        }
43433    }
43434}
43435///[`VkBindVertexBuffer3InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVertexBuffer3InfoKHR.html)
43436/**
43437Provided by **VK_KHR_device_address_commands**.*/
43438#[repr(C)]
43439#[derive(Copy, Clone, Debug)]
43440#[doc(alias = "VkBindVertexBuffer3InfoKHR")]
43441pub struct BindVertexBuffer3InfoKHR {
43442    ///Must be `VK_STRUCTURE_TYPE_BIND_VERTEX_BUFFER_3_INFO_KHR`.
43443    pub s_type: StructureType,
43444    ///Optional, may be null.
43445    pub p_next: *const core::ffi::c_void,
43446    pub set_stride: u32,
43447    pub address_range: StridedDeviceAddressRangeKHR,
43448    pub address_flags: AddressCommandFlagsKHR,
43449}
43450impl Default for BindVertexBuffer3InfoKHR {
43451    #[inline]
43452    fn default() -> Self {
43453        Self {
43454            s_type: StructureType::from_raw(1000318008i32),
43455            p_next: core::ptr::null(),
43456            set_stride: Default::default(),
43457            address_range: Default::default(),
43458            address_flags: Default::default(),
43459        }
43460    }
43461}
43462///[`VkDrawIndirect2InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndirect2InfoKHR.html)
43463/**
43464Provided by **VK_KHR_device_address_commands**.*/
43465#[repr(C)]
43466#[derive(Copy, Clone, Debug)]
43467#[doc(alias = "VkDrawIndirect2InfoKHR")]
43468pub struct DrawIndirect2InfoKHR {
43469    ///Must be `VK_STRUCTURE_TYPE_DRAW_INDIRECT_2_INFO_KHR`.
43470    pub s_type: StructureType,
43471    ///Optional, may be null.
43472    pub p_next: *const core::ffi::c_void,
43473    pub address_range: StridedDeviceAddressRangeKHR,
43474    pub address_flags: AddressCommandFlagsKHR,
43475    pub draw_count: u32,
43476}
43477impl Default for DrawIndirect2InfoKHR {
43478    #[inline]
43479    fn default() -> Self {
43480        Self {
43481            s_type: StructureType::from_raw(1000318009i32),
43482            p_next: core::ptr::null(),
43483            address_range: Default::default(),
43484            address_flags: Default::default(),
43485            draw_count: Default::default(),
43486        }
43487    }
43488}
43489///[`VkDrawIndirectCount2InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndirectCount2InfoKHR.html)
43490/**
43491Provided by **VK_KHR_device_address_commands**.*/
43492#[repr(C)]
43493#[derive(Copy, Clone, Debug)]
43494#[doc(alias = "VkDrawIndirectCount2InfoKHR")]
43495pub struct DrawIndirectCount2InfoKHR {
43496    ///Must be `VK_STRUCTURE_TYPE_DRAW_INDIRECT_COUNT_2_INFO_KHR`.
43497    pub s_type: StructureType,
43498    ///Optional, may be null.
43499    pub p_next: *const core::ffi::c_void,
43500    pub address_range: StridedDeviceAddressRangeKHR,
43501    pub address_flags: AddressCommandFlagsKHR,
43502    pub count_address_range: DeviceAddressRangeKHR,
43503    pub count_address_flags: AddressCommandFlagsKHR,
43504    pub max_draw_count: u32,
43505}
43506impl Default for DrawIndirectCount2InfoKHR {
43507    #[inline]
43508    fn default() -> Self {
43509        Self {
43510            s_type: StructureType::from_raw(1000318010i32),
43511            p_next: core::ptr::null(),
43512            address_range: Default::default(),
43513            address_flags: Default::default(),
43514            count_address_range: Default::default(),
43515            count_address_flags: Default::default(),
43516            max_draw_count: Default::default(),
43517        }
43518    }
43519}
43520///[`VkDispatchIndirect2InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchIndirect2InfoKHR.html)
43521/**
43522Provided by **VK_KHR_device_address_commands**.*/
43523#[repr(C)]
43524#[derive(Copy, Clone, Debug)]
43525#[doc(alias = "VkDispatchIndirect2InfoKHR")]
43526pub struct DispatchIndirect2InfoKHR {
43527    ///Must be `VK_STRUCTURE_TYPE_DISPATCH_INDIRECT_2_INFO_KHR`.
43528    pub s_type: StructureType,
43529    ///Optional, may be null.
43530    pub p_next: *const core::ffi::c_void,
43531    pub address_range: DeviceAddressRangeKHR,
43532    pub address_flags: AddressCommandFlagsKHR,
43533}
43534impl Default for DispatchIndirect2InfoKHR {
43535    #[inline]
43536    fn default() -> Self {
43537        Self {
43538            s_type: StructureType::from_raw(1000318011i32),
43539            p_next: core::ptr::null(),
43540            address_range: Default::default(),
43541            address_flags: Default::default(),
43542        }
43543    }
43544}
43545///[`VkBindTransformFeedbackBuffer2InfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindTransformFeedbackBuffer2InfoEXT.html)
43546/**
43547Provided by **VK_KHR_device_address_commands**.*/
43548#[repr(C)]
43549#[derive(Copy, Clone, Debug)]
43550#[doc(alias = "VkBindTransformFeedbackBuffer2InfoEXT")]
43551pub struct BindTransformFeedbackBuffer2InfoEXT {
43552    ///Must be `VK_STRUCTURE_TYPE_BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT`.
43553    pub s_type: StructureType,
43554    ///Optional, may be null.
43555    pub p_next: *const core::ffi::c_void,
43556    pub address_range: DeviceAddressRangeKHR,
43557    pub address_flags: AddressCommandFlagsKHR,
43558}
43559impl Default for BindTransformFeedbackBuffer2InfoEXT {
43560    #[inline]
43561    fn default() -> Self {
43562        Self {
43563            s_type: StructureType::from_raw(1000318013i32),
43564            p_next: core::ptr::null(),
43565            address_range: Default::default(),
43566            address_flags: Default::default(),
43567        }
43568    }
43569}
43570///[`VkMemoryMarkerInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryMarkerInfoAMD.html)
43571/**
43572Provided by **VK_KHR_device_address_commands**.*/
43573#[repr(C)]
43574#[derive(Copy, Clone, Debug)]
43575#[doc(alias = "VkMemoryMarkerInfoAMD")]
43576pub struct MemoryMarkerInfoAMD {
43577    ///Must be `VK_STRUCTURE_TYPE_MEMORY_MARKER_INFO_AMD`.
43578    pub s_type: StructureType,
43579    ///Optional, may be null.
43580    pub p_next: *const core::ffi::c_void,
43581    pub stage: PipelineStageFlags2KHR,
43582    pub dst_range: DeviceAddressRangeKHR,
43583    pub dst_flags: AddressCommandFlagsKHR,
43584    pub marker: u32,
43585}
43586impl Default for MemoryMarkerInfoAMD {
43587    #[inline]
43588    fn default() -> Self {
43589        Self {
43590            s_type: StructureType::from_raw(1000318014i32),
43591            p_next: core::ptr::null(),
43592            stage: Default::default(),
43593            dst_range: Default::default(),
43594            dst_flags: Default::default(),
43595            marker: Default::default(),
43596        }
43597    }
43598}
43599///[`VkPhysicalDeviceShaderConstantDataFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderConstantDataFeaturesKHR.html)
43600/**
43601Provided by **VK_KHR_shader_constant_data**.*/
43602///
43603///# Extends
43604///- [`PhysicalDeviceFeatures2`]
43605///- [`DeviceCreateInfo`]
43606#[repr(C)]
43607#[derive(Copy, Clone, Debug)]
43608#[doc(alias = "VkPhysicalDeviceShaderConstantDataFeaturesKHR")]
43609pub struct PhysicalDeviceShaderConstantDataFeaturesKHR {
43610    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR`.
43611    pub s_type: StructureType,
43612    ///Optional, may be null.
43613    pub p_next: *mut core::ffi::c_void,
43614    pub shader_constant_data: u32,
43615}
43616impl Default for PhysicalDeviceShaderConstantDataFeaturesKHR {
43617    #[inline]
43618    fn default() -> Self {
43619        Self {
43620            s_type: StructureType::from_raw(1000231000i32),
43621            p_next: core::ptr::null_mut(),
43622            shader_constant_data: Default::default(),
43623        }
43624    }
43625}
43626///[`VkPhysicalDeviceShaderAbortFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAbortFeaturesKHR.html)
43627/**
43628Provided by **VK_KHR_shader_abort**.*/
43629///
43630///# Extends
43631///- [`PhysicalDeviceFeatures2`]
43632///- [`DeviceCreateInfo`]
43633#[repr(C)]
43634#[derive(Copy, Clone, Debug)]
43635#[doc(alias = "VkPhysicalDeviceShaderAbortFeaturesKHR")]
43636pub struct PhysicalDeviceShaderAbortFeaturesKHR {
43637    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR`.
43638    pub s_type: StructureType,
43639    ///Optional, may be null.
43640    pub p_next: *mut core::ffi::c_void,
43641    pub shader_abort: u32,
43642}
43643impl Default for PhysicalDeviceShaderAbortFeaturesKHR {
43644    #[inline]
43645    fn default() -> Self {
43646        Self {
43647            s_type: StructureType::from_raw(1000233000i32),
43648            p_next: core::ptr::null_mut(),
43649            shader_abort: Default::default(),
43650        }
43651    }
43652}
43653///[`VkPhysicalDeviceShaderAbortPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAbortPropertiesKHR.html)
43654/**
43655Provided by **VK_KHR_shader_abort**.*/
43656///
43657///# Extends
43658///- [`PhysicalDeviceProperties2`]
43659#[repr(C)]
43660#[derive(Copy, Clone, Debug)]
43661#[doc(alias = "VkPhysicalDeviceShaderAbortPropertiesKHR")]
43662pub struct PhysicalDeviceShaderAbortPropertiesKHR {
43663    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR`.
43664    pub s_type: StructureType,
43665    ///Optional, may be null.
43666    pub p_next: *mut core::ffi::c_void,
43667    pub max_shader_abort_message_size: u64,
43668}
43669impl Default for PhysicalDeviceShaderAbortPropertiesKHR {
43670    #[inline]
43671    fn default() -> Self {
43672        Self {
43673            s_type: StructureType::from_raw(1000233002i32),
43674            p_next: core::ptr::null_mut(),
43675            max_shader_abort_message_size: Default::default(),
43676        }
43677    }
43678}
43679///[`VkDeviceFaultShaderAbortMessageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultShaderAbortMessageInfoKHR.html)
43680/**
43681Provided by **VK_KHR_shader_abort**.*/
43682/**
43683**Returned only**, filled by Vulkan, not constructed by the application.*/
43684///
43685///# Extends
43686///- [`DeviceFaultDebugInfoKHR`]
43687#[repr(C)]
43688#[derive(Copy, Clone, Debug)]
43689#[doc(alias = "VkDeviceFaultShaderAbortMessageInfoKHR")]
43690pub struct DeviceFaultShaderAbortMessageInfoKHR {
43691    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR`.
43692    pub s_type: StructureType,
43693    ///Optional, may be null.
43694    pub p_next: *mut core::ffi::c_void,
43695    pub message_data_size: u64,
43696    ///Optional, may be null.
43697    pub p_message_data: *mut core::ffi::c_void,
43698}
43699impl Default for DeviceFaultShaderAbortMessageInfoKHR {
43700    #[inline]
43701    fn default() -> Self {
43702        Self {
43703            s_type: StructureType::from_raw(1000233001i32),
43704            p_next: core::ptr::null_mut(),
43705            message_data_size: Default::default(),
43706            p_message_data: core::ptr::null_mut(),
43707        }
43708    }
43709}
43710/// Marker trait for structs that can appear in the pNext chain of
43711#[doc = concat!("[`", "AccelerationStructureBuildGeometryInfoKHR", "`].")]
43712///
43713/// # Safety
43714/// Implementors must be valid pNext chain members for the target struct.
43715pub unsafe trait ExtendsAccelerationStructureBuildGeometryInfoKHR {}
43716/// Marker trait for structs that can appear in the pNext chain of
43717#[doc = concat!("[`", "AccelerationStructureCaptureDescriptorDataInfoEXT", "`].")]
43718///
43719/// # Safety
43720/// Implementors must be valid pNext chain members for the target struct.
43721pub unsafe trait ExtendsAccelerationStructureCaptureDescriptorDataInfoEXT {}
43722/// Marker trait for structs that can appear in the pNext chain of
43723#[doc = concat!("[`", "AccelerationStructureCreateInfo2KHR", "`].")]
43724///
43725/// # Safety
43726/// Implementors must be valid pNext chain members for the target struct.
43727pub unsafe trait ExtendsAccelerationStructureCreateInfo2KHR {}
43728/// Marker trait for structs that can appear in the pNext chain of
43729#[doc = concat!("[`", "AccelerationStructureCreateInfoKHR", "`].")]
43730///
43731/// # Safety
43732/// Implementors must be valid pNext chain members for the target struct.
43733pub unsafe trait ExtendsAccelerationStructureCreateInfoKHR {}
43734/// Marker trait for structs that can appear in the pNext chain of
43735#[doc = concat!("[`", "AccelerationStructureCreateInfoNV", "`].")]
43736///
43737/// # Safety
43738/// Implementors must be valid pNext chain members for the target struct.
43739pub unsafe trait ExtendsAccelerationStructureCreateInfoNV {}
43740/// Marker trait for structs that can appear in the pNext chain of
43741#[doc = concat!(
43742    "[`", "AccelerationStructureDenseGeometryFormatTrianglesDataAMDX", "`]."
43743)]
43744///
43745/// # Safety
43746/// Implementors must be valid pNext chain members for the target struct.
43747pub unsafe trait ExtendsAccelerationStructureDenseGeometryFormatTrianglesDataAMDX {}
43748/// Marker trait for structs that can appear in the pNext chain of
43749#[doc = concat!("[`", "AccelerationStructureDeviceAddressInfoKHR", "`].")]
43750///
43751/// # Safety
43752/// Implementors must be valid pNext chain members for the target struct.
43753pub unsafe trait ExtendsAccelerationStructureDeviceAddressInfoKHR {}
43754/// Marker trait for structs that can appear in the pNext chain of
43755#[doc = concat!("[`", "AccelerationStructureGeometryAabbsDataKHR", "`].")]
43756///
43757/// # Safety
43758/// Implementors must be valid pNext chain members for the target struct.
43759pub unsafe trait ExtendsAccelerationStructureGeometryAabbsDataKHR {}
43760/// Marker trait for structs that can appear in the pNext chain of
43761#[doc = concat!("[`", "AccelerationStructureGeometryInstancesDataKHR", "`].")]
43762///
43763/// # Safety
43764/// Implementors must be valid pNext chain members for the target struct.
43765pub unsafe trait ExtendsAccelerationStructureGeometryInstancesDataKHR {}
43766/// Marker trait for structs that can appear in the pNext chain of
43767#[doc = concat!("[`", "AccelerationStructureGeometryKHR", "`].")]
43768///
43769/// # Safety
43770/// Implementors must be valid pNext chain members for the target struct.
43771pub unsafe trait ExtendsAccelerationStructureGeometryKHR {}
43772/// Marker trait for structs that can appear in the pNext chain of
43773#[doc = concat!("[`", "AccelerationStructureGeometryLinearSweptSpheresDataNV", "`].")]
43774///
43775/// # Safety
43776/// Implementors must be valid pNext chain members for the target struct.
43777pub unsafe trait ExtendsAccelerationStructureGeometryLinearSweptSpheresDataNV {}
43778/// Marker trait for structs that can appear in the pNext chain of
43779#[doc = concat!("[`", "AccelerationStructureGeometryMotionTrianglesDataNV", "`].")]
43780///
43781/// # Safety
43782/// Implementors must be valid pNext chain members for the target struct.
43783pub unsafe trait ExtendsAccelerationStructureGeometryMotionTrianglesDataNV {}
43784/// Marker trait for structs that can appear in the pNext chain of
43785#[doc = concat!("[`", "AccelerationStructureGeometrySpheresDataNV", "`].")]
43786///
43787/// # Safety
43788/// Implementors must be valid pNext chain members for the target struct.
43789pub unsafe trait ExtendsAccelerationStructureGeometrySpheresDataNV {}
43790/// Marker trait for structs that can appear in the pNext chain of
43791#[doc = concat!("[`", "AccelerationStructureGeometryTrianglesDataKHR", "`].")]
43792///
43793/// # Safety
43794/// Implementors must be valid pNext chain members for the target struct.
43795pub unsafe trait ExtendsAccelerationStructureGeometryTrianglesDataKHR {}
43796/// Marker trait for structs that can appear in the pNext chain of
43797#[doc = concat!("[`", "AccelerationStructureInfoNV", "`].")]
43798///
43799/// # Safety
43800/// Implementors must be valid pNext chain members for the target struct.
43801pub unsafe trait ExtendsAccelerationStructureInfoNV {}
43802/// Marker trait for structs that can appear in the pNext chain of
43803#[doc = concat!("[`", "AccelerationStructureMemoryRequirementsInfoNV", "`].")]
43804///
43805/// # Safety
43806/// Implementors must be valid pNext chain members for the target struct.
43807pub unsafe trait ExtendsAccelerationStructureMemoryRequirementsInfoNV {}
43808/// Marker trait for structs that can appear in the pNext chain of
43809#[doc = concat!("[`", "AccelerationStructureMotionInfoNV", "`].")]
43810///
43811/// # Safety
43812/// Implementors must be valid pNext chain members for the target struct.
43813pub unsafe trait ExtendsAccelerationStructureMotionInfoNV {}
43814/// Marker trait for structs that can appear in the pNext chain of
43815#[doc = concat!("[`", "AccelerationStructureTrianglesDisplacementMicromapNV", "`].")]
43816///
43817/// # Safety
43818/// Implementors must be valid pNext chain members for the target struct.
43819pub unsafe trait ExtendsAccelerationStructureTrianglesDisplacementMicromapNV {}
43820/// Marker trait for structs that can appear in the pNext chain of
43821#[doc = concat!("[`", "AccelerationStructureTrianglesOpacityMicromapEXT", "`].")]
43822///
43823/// # Safety
43824/// Implementors must be valid pNext chain members for the target struct.
43825pub unsafe trait ExtendsAccelerationStructureTrianglesOpacityMicromapEXT {}
43826/// Marker trait for structs that can appear in the pNext chain of
43827#[doc = concat!("[`", "AccelerationStructureVersionInfoKHR", "`].")]
43828///
43829/// # Safety
43830/// Implementors must be valid pNext chain members for the target struct.
43831pub unsafe trait ExtendsAccelerationStructureVersionInfoKHR {}
43832/// Marker trait for structs that can appear in the pNext chain of
43833#[doc = concat!("[`", "AcquireNextImageInfoKHR", "`].")]
43834///
43835/// # Safety
43836/// Implementors must be valid pNext chain members for the target struct.
43837pub unsafe trait ExtendsAcquireNextImageInfoKHR {}
43838/// Marker trait for structs that can appear in the pNext chain of
43839#[doc = concat!("[`", "AcquireProfilingLockInfoKHR", "`].")]
43840///
43841/// # Safety
43842/// Implementors must be valid pNext chain members for the target struct.
43843pub unsafe trait ExtendsAcquireProfilingLockInfoKHR {}
43844/// Marker trait for structs that can appear in the pNext chain of
43845#[doc = concat!("[`", "AmigoProfilingSubmitInfoSEC", "`].")]
43846///
43847/// # Safety
43848/// Implementors must be valid pNext chain members for the target struct.
43849pub unsafe trait ExtendsAmigoProfilingSubmitInfoSEC {}
43850/// Marker trait for structs that can appear in the pNext chain of
43851#[doc = concat!("[`", "AndroidHardwareBufferPropertiesANDROID", "`].")]
43852///
43853/// # Safety
43854/// Implementors must be valid pNext chain members for the target struct.
43855pub unsafe trait ExtendsAndroidHardwareBufferPropertiesANDROID {}
43856/// Marker trait for structs that can appear in the pNext chain of
43857#[doc = concat!("[`", "AndroidSurfaceCreateInfoKHR", "`].")]
43858///
43859/// # Safety
43860/// Implementors must be valid pNext chain members for the target struct.
43861pub unsafe trait ExtendsAndroidSurfaceCreateInfoKHR {}
43862/// Marker trait for structs that can appear in the pNext chain of
43863#[doc = concat!("[`", "AntiLagDataAMD", "`].")]
43864///
43865/// # Safety
43866/// Implementors must be valid pNext chain members for the target struct.
43867pub unsafe trait ExtendsAntiLagDataAMD {}
43868/// Marker trait for structs that can appear in the pNext chain of
43869#[doc = concat!("[`", "AntiLagPresentationInfoAMD", "`].")]
43870///
43871/// # Safety
43872/// Implementors must be valid pNext chain members for the target struct.
43873pub unsafe trait ExtendsAntiLagPresentationInfoAMD {}
43874/// Marker trait for structs that can appear in the pNext chain of
43875#[doc = concat!("[`", "ApplicationInfo", "`].")]
43876///
43877/// # Safety
43878/// Implementors must be valid pNext chain members for the target struct.
43879pub unsafe trait ExtendsApplicationInfo {}
43880/// Marker trait for structs that can appear in the pNext chain of
43881#[doc = concat!("[`", "ApplicationParametersEXT", "`].")]
43882///
43883/// # Safety
43884/// Implementors must be valid pNext chain members for the target struct.
43885pub unsafe trait ExtendsApplicationParametersEXT {}
43886/// Marker trait for structs that can appear in the pNext chain of
43887#[doc = concat!("[`", "AttachmentDescription2", "`].")]
43888///
43889/// # Safety
43890/// Implementors must be valid pNext chain members for the target struct.
43891pub unsafe trait ExtendsAttachmentDescription2 {}
43892/// Marker trait for structs that can appear in the pNext chain of
43893#[doc = concat!("[`", "AttachmentDescriptionStencilLayout", "`].")]
43894///
43895/// # Safety
43896/// Implementors must be valid pNext chain members for the target struct.
43897pub unsafe trait ExtendsAttachmentDescriptionStencilLayout {}
43898/// Marker trait for structs that can appear in the pNext chain of
43899#[doc = concat!("[`", "AttachmentFeedbackLoopInfoEXT", "`].")]
43900///
43901/// # Safety
43902/// Implementors must be valid pNext chain members for the target struct.
43903pub unsafe trait ExtendsAttachmentFeedbackLoopInfoEXT {}
43904/// Marker trait for structs that can appear in the pNext chain of
43905#[doc = concat!("[`", "AttachmentReference2", "`].")]
43906///
43907/// # Safety
43908/// Implementors must be valid pNext chain members for the target struct.
43909pub unsafe trait ExtendsAttachmentReference2 {}
43910/// Marker trait for structs that can appear in the pNext chain of
43911#[doc = concat!("[`", "AttachmentReferenceStencilLayout", "`].")]
43912///
43913/// # Safety
43914/// Implementors must be valid pNext chain members for the target struct.
43915pub unsafe trait ExtendsAttachmentReferenceStencilLayout {}
43916/// Marker trait for structs that can appear in the pNext chain of
43917#[doc = concat!("[`", "AttachmentSampleCountInfoAMD", "`].")]
43918///
43919/// # Safety
43920/// Implementors must be valid pNext chain members for the target struct.
43921pub unsafe trait ExtendsAttachmentSampleCountInfoAMD {}
43922/// Marker trait for structs that can appear in the pNext chain of
43923#[doc = concat!("[`", "BaseInStructure", "`].")]
43924///
43925/// # Safety
43926/// Implementors must be valid pNext chain members for the target struct.
43927pub unsafe trait ExtendsBaseInStructure {}
43928/// Marker trait for structs that can appear in the pNext chain of
43929#[doc = concat!("[`", "BaseOutStructure", "`].")]
43930///
43931/// # Safety
43932/// Implementors must be valid pNext chain members for the target struct.
43933pub unsafe trait ExtendsBaseOutStructure {}
43934/// Marker trait for structs that can appear in the pNext chain of
43935#[doc = concat!("[`", "BeginCustomResolveInfoEXT", "`].")]
43936///
43937/// # Safety
43938/// Implementors must be valid pNext chain members for the target struct.
43939pub unsafe trait ExtendsBeginCustomResolveInfoEXT {}
43940/// Marker trait for structs that can appear in the pNext chain of
43941#[doc = concat!("[`", "BindAccelerationStructureMemoryInfoNV", "`].")]
43942///
43943/// # Safety
43944/// Implementors must be valid pNext chain members for the target struct.
43945pub unsafe trait ExtendsBindAccelerationStructureMemoryInfoNV {}
43946/// Marker trait for structs that can appear in the pNext chain of
43947#[doc = concat!("[`", "BindBufferMemoryDeviceGroupInfo", "`].")]
43948///
43949/// # Safety
43950/// Implementors must be valid pNext chain members for the target struct.
43951pub unsafe trait ExtendsBindBufferMemoryDeviceGroupInfo {}
43952/// Marker trait for structs that can appear in the pNext chain of
43953#[doc = concat!("[`", "BindBufferMemoryInfo", "`].")]
43954///
43955/// # Safety
43956/// Implementors must be valid pNext chain members for the target struct.
43957pub unsafe trait ExtendsBindBufferMemoryInfo {}
43958/// Marker trait for structs that can appear in the pNext chain of
43959#[doc = concat!("[`", "BindDataGraphPipelineSessionMemoryInfoARM", "`].")]
43960///
43961/// # Safety
43962/// Implementors must be valid pNext chain members for the target struct.
43963pub unsafe trait ExtendsBindDataGraphPipelineSessionMemoryInfoARM {}
43964/// Marker trait for structs that can appear in the pNext chain of
43965#[doc = concat!("[`", "BindDescriptorBufferEmbeddedSamplersInfoEXT", "`].")]
43966///
43967/// # Safety
43968/// Implementors must be valid pNext chain members for the target struct.
43969pub unsafe trait ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT {}
43970/// Marker trait for structs that can appear in the pNext chain of
43971#[doc = concat!("[`", "BindDescriptorSetsInfo", "`].")]
43972///
43973/// # Safety
43974/// Implementors must be valid pNext chain members for the target struct.
43975pub unsafe trait ExtendsBindDescriptorSetsInfo {}
43976/// Marker trait for structs that can appear in the pNext chain of
43977#[doc = concat!("[`", "BindHeapInfoEXT", "`].")]
43978///
43979/// # Safety
43980/// Implementors must be valid pNext chain members for the target struct.
43981pub unsafe trait ExtendsBindHeapInfoEXT {}
43982/// Marker trait for structs that can appear in the pNext chain of
43983#[doc = concat!("[`", "BindImageMemoryDeviceGroupInfo", "`].")]
43984///
43985/// # Safety
43986/// Implementors must be valid pNext chain members for the target struct.
43987pub unsafe trait ExtendsBindImageMemoryDeviceGroupInfo {}
43988/// Marker trait for structs that can appear in the pNext chain of
43989#[doc = concat!("[`", "BindImageMemoryInfo", "`].")]
43990///
43991/// # Safety
43992/// Implementors must be valid pNext chain members for the target struct.
43993pub unsafe trait ExtendsBindImageMemoryInfo {}
43994/// Marker trait for structs that can appear in the pNext chain of
43995#[doc = concat!("[`", "BindImageMemorySwapchainInfoKHR", "`].")]
43996///
43997/// # Safety
43998/// Implementors must be valid pNext chain members for the target struct.
43999pub unsafe trait ExtendsBindImageMemorySwapchainInfoKHR {}
44000/// Marker trait for structs that can appear in the pNext chain of
44001#[doc = concat!("[`", "BindImagePlaneMemoryInfo", "`].")]
44002///
44003/// # Safety
44004/// Implementors must be valid pNext chain members for the target struct.
44005pub unsafe trait ExtendsBindImagePlaneMemoryInfo {}
44006/// Marker trait for structs that can appear in the pNext chain of
44007#[doc = concat!("[`", "BindIndexBuffer3InfoKHR", "`].")]
44008///
44009/// # Safety
44010/// Implementors must be valid pNext chain members for the target struct.
44011pub unsafe trait ExtendsBindIndexBuffer3InfoKHR {}
44012/// Marker trait for structs that can appear in the pNext chain of
44013#[doc = concat!("[`", "BindMemoryStatus", "`].")]
44014///
44015/// # Safety
44016/// Implementors must be valid pNext chain members for the target struct.
44017pub unsafe trait ExtendsBindMemoryStatus {}
44018/// Marker trait for structs that can appear in the pNext chain of
44019#[doc = concat!("[`", "BindSparseInfo", "`].")]
44020///
44021/// # Safety
44022/// Implementors must be valid pNext chain members for the target struct.
44023pub unsafe trait ExtendsBindSparseInfo {}
44024/// Marker trait for structs that can appear in the pNext chain of
44025#[doc = concat!("[`", "BindTensorMemoryInfoARM", "`].")]
44026///
44027/// # Safety
44028/// Implementors must be valid pNext chain members for the target struct.
44029pub unsafe trait ExtendsBindTensorMemoryInfoARM {}
44030/// Marker trait for structs that can appear in the pNext chain of
44031#[doc = concat!("[`", "BindTransformFeedbackBuffer2InfoEXT", "`].")]
44032///
44033/// # Safety
44034/// Implementors must be valid pNext chain members for the target struct.
44035pub unsafe trait ExtendsBindTransformFeedbackBuffer2InfoEXT {}
44036/// Marker trait for structs that can appear in the pNext chain of
44037#[doc = concat!("[`", "BindVertexBuffer3InfoKHR", "`].")]
44038///
44039/// # Safety
44040/// Implementors must be valid pNext chain members for the target struct.
44041pub unsafe trait ExtendsBindVertexBuffer3InfoKHR {}
44042/// Marker trait for structs that can appear in the pNext chain of
44043#[doc = concat!("[`", "BindVideoSessionMemoryInfoKHR", "`].")]
44044///
44045/// # Safety
44046/// Implementors must be valid pNext chain members for the target struct.
44047pub unsafe trait ExtendsBindVideoSessionMemoryInfoKHR {}
44048/// Marker trait for structs that can appear in the pNext chain of
44049#[doc = concat!("[`", "BlitImageCubicWeightsInfoQCOM", "`].")]
44050///
44051/// # Safety
44052/// Implementors must be valid pNext chain members for the target struct.
44053pub unsafe trait ExtendsBlitImageCubicWeightsInfoQCOM {}
44054/// Marker trait for structs that can appear in the pNext chain of
44055#[doc = concat!("[`", "BlitImageInfo2", "`].")]
44056///
44057/// # Safety
44058/// Implementors must be valid pNext chain members for the target struct.
44059pub unsafe trait ExtendsBlitImageInfo2 {}
44060/// Marker trait for structs that can appear in the pNext chain of
44061#[doc = concat!("[`", "BufferCaptureDescriptorDataInfoEXT", "`].")]
44062///
44063/// # Safety
44064/// Implementors must be valid pNext chain members for the target struct.
44065pub unsafe trait ExtendsBufferCaptureDescriptorDataInfoEXT {}
44066/// Marker trait for structs that can appear in the pNext chain of
44067#[doc = concat!("[`", "BufferCollectionBufferCreateInfoFUCHSIA", "`].")]
44068///
44069/// # Safety
44070/// Implementors must be valid pNext chain members for the target struct.
44071pub unsafe trait ExtendsBufferCollectionBufferCreateInfoFUCHSIA {}
44072/// Marker trait for structs that can appear in the pNext chain of
44073#[doc = concat!("[`", "BufferCollectionConstraintsInfoFUCHSIA", "`].")]
44074///
44075/// # Safety
44076/// Implementors must be valid pNext chain members for the target struct.
44077pub unsafe trait ExtendsBufferCollectionConstraintsInfoFUCHSIA {}
44078/// Marker trait for structs that can appear in the pNext chain of
44079#[doc = concat!("[`", "BufferCollectionCreateInfoFUCHSIA", "`].")]
44080///
44081/// # Safety
44082/// Implementors must be valid pNext chain members for the target struct.
44083pub unsafe trait ExtendsBufferCollectionCreateInfoFUCHSIA {}
44084/// Marker trait for structs that can appear in the pNext chain of
44085#[doc = concat!("[`", "BufferCollectionImageCreateInfoFUCHSIA", "`].")]
44086///
44087/// # Safety
44088/// Implementors must be valid pNext chain members for the target struct.
44089pub unsafe trait ExtendsBufferCollectionImageCreateInfoFUCHSIA {}
44090/// Marker trait for structs that can appear in the pNext chain of
44091#[doc = concat!("[`", "BufferConstraintsInfoFUCHSIA", "`].")]
44092///
44093/// # Safety
44094/// Implementors must be valid pNext chain members for the target struct.
44095pub unsafe trait ExtendsBufferConstraintsInfoFUCHSIA {}
44096/// Marker trait for structs that can appear in the pNext chain of
44097#[doc = concat!("[`", "BufferCopy2", "`].")]
44098///
44099/// # Safety
44100/// Implementors must be valid pNext chain members for the target struct.
44101pub unsafe trait ExtendsBufferCopy2 {}
44102/// Marker trait for structs that can appear in the pNext chain of
44103#[doc = concat!("[`", "BufferCreateInfo", "`].")]
44104///
44105/// # Safety
44106/// Implementors must be valid pNext chain members for the target struct.
44107pub unsafe trait ExtendsBufferCreateInfo {}
44108/// Marker trait for structs that can appear in the pNext chain of
44109#[doc = concat!("[`", "BufferDeviceAddressCreateInfoEXT", "`].")]
44110///
44111/// # Safety
44112/// Implementors must be valid pNext chain members for the target struct.
44113pub unsafe trait ExtendsBufferDeviceAddressCreateInfoEXT {}
44114/// Marker trait for structs that can appear in the pNext chain of
44115#[doc = concat!("[`", "BufferDeviceAddressInfo", "`].")]
44116///
44117/// # Safety
44118/// Implementors must be valid pNext chain members for the target struct.
44119pub unsafe trait ExtendsBufferDeviceAddressInfo {}
44120/// Marker trait for structs that can appear in the pNext chain of
44121#[doc = concat!("[`", "BufferImageCopy2", "`].")]
44122///
44123/// # Safety
44124/// Implementors must be valid pNext chain members for the target struct.
44125pub unsafe trait ExtendsBufferImageCopy2 {}
44126/// Marker trait for structs that can appear in the pNext chain of
44127#[doc = concat!("[`", "BufferMemoryBarrier", "`].")]
44128///
44129/// # Safety
44130/// Implementors must be valid pNext chain members for the target struct.
44131pub unsafe trait ExtendsBufferMemoryBarrier {}
44132/// Marker trait for structs that can appear in the pNext chain of
44133#[doc = concat!("[`", "BufferMemoryBarrier2", "`].")]
44134///
44135/// # Safety
44136/// Implementors must be valid pNext chain members for the target struct.
44137pub unsafe trait ExtendsBufferMemoryBarrier2 {}
44138/// Marker trait for structs that can appear in the pNext chain of
44139#[doc = concat!("[`", "BufferMemoryRequirementsInfo2", "`].")]
44140///
44141/// # Safety
44142/// Implementors must be valid pNext chain members for the target struct.
44143pub unsafe trait ExtendsBufferMemoryRequirementsInfo2 {}
44144/// Marker trait for structs that can appear in the pNext chain of
44145#[doc = concat!("[`", "BufferOpaqueCaptureAddressCreateInfo", "`].")]
44146///
44147/// # Safety
44148/// Implementors must be valid pNext chain members for the target struct.
44149pub unsafe trait ExtendsBufferOpaqueCaptureAddressCreateInfo {}
44150/// Marker trait for structs that can appear in the pNext chain of
44151#[doc = concat!("[`", "BufferUsageFlags2CreateInfo", "`].")]
44152///
44153/// # Safety
44154/// Implementors must be valid pNext chain members for the target struct.
44155pub unsafe trait ExtendsBufferUsageFlags2CreateInfo {}
44156/// Marker trait for structs that can appear in the pNext chain of
44157#[doc = concat!("[`", "BufferViewCreateInfo", "`].")]
44158///
44159/// # Safety
44160/// Implementors must be valid pNext chain members for the target struct.
44161pub unsafe trait ExtendsBufferViewCreateInfo {}
44162/// Marker trait for structs that can appear in the pNext chain of
44163#[doc = concat!("[`", "BuildPartitionedAccelerationStructureInfoNV", "`].")]
44164///
44165/// # Safety
44166/// Implementors must be valid pNext chain members for the target struct.
44167pub unsafe trait ExtendsBuildPartitionedAccelerationStructureInfoNV {}
44168/// Marker trait for structs that can appear in the pNext chain of
44169#[doc = concat!("[`", "CalibratedTimestampInfoKHR", "`].")]
44170///
44171/// # Safety
44172/// Implementors must be valid pNext chain members for the target struct.
44173pub unsafe trait ExtendsCalibratedTimestampInfoKHR {}
44174/// Marker trait for structs that can appear in the pNext chain of
44175#[doc = concat!("[`", "ClusterAccelerationStructureClustersBottomLevelInputNV", "`].")]
44176///
44177/// # Safety
44178/// Implementors must be valid pNext chain members for the target struct.
44179pub unsafe trait ExtendsClusterAccelerationStructureClustersBottomLevelInputNV {}
44180/// Marker trait for structs that can appear in the pNext chain of
44181#[doc = concat!("[`", "ClusterAccelerationStructureCommandsInfoNV", "`].")]
44182///
44183/// # Safety
44184/// Implementors must be valid pNext chain members for the target struct.
44185pub unsafe trait ExtendsClusterAccelerationStructureCommandsInfoNV {}
44186/// Marker trait for structs that can appear in the pNext chain of
44187#[doc = concat!("[`", "ClusterAccelerationStructureInputInfoNV", "`].")]
44188///
44189/// # Safety
44190/// Implementors must be valid pNext chain members for the target struct.
44191pub unsafe trait ExtendsClusterAccelerationStructureInputInfoNV {}
44192/// Marker trait for structs that can appear in the pNext chain of
44193#[doc = concat!("[`", "ClusterAccelerationStructureMoveObjectsInputNV", "`].")]
44194///
44195/// # Safety
44196/// Implementors must be valid pNext chain members for the target struct.
44197pub unsafe trait ExtendsClusterAccelerationStructureMoveObjectsInputNV {}
44198/// Marker trait for structs that can appear in the pNext chain of
44199#[doc = concat!("[`", "ClusterAccelerationStructureTriangleClusterInputNV", "`].")]
44200///
44201/// # Safety
44202/// Implementors must be valid pNext chain members for the target struct.
44203pub unsafe trait ExtendsClusterAccelerationStructureTriangleClusterInputNV {}
44204/// Marker trait for structs that can appear in the pNext chain of
44205#[doc = concat!("[`", "CommandBufferAllocateInfo", "`].")]
44206///
44207/// # Safety
44208/// Implementors must be valid pNext chain members for the target struct.
44209pub unsafe trait ExtendsCommandBufferAllocateInfo {}
44210/// Marker trait for structs that can appear in the pNext chain of
44211#[doc = concat!("[`", "CommandBufferBeginInfo", "`].")]
44212///
44213/// # Safety
44214/// Implementors must be valid pNext chain members for the target struct.
44215pub unsafe trait ExtendsCommandBufferBeginInfo {}
44216/// Marker trait for structs that can appear in the pNext chain of
44217#[doc = concat!("[`", "CommandBufferInheritanceConditionalRenderingInfoEXT", "`].")]
44218///
44219/// # Safety
44220/// Implementors must be valid pNext chain members for the target struct.
44221pub unsafe trait ExtendsCommandBufferInheritanceConditionalRenderingInfoEXT {}
44222/// Marker trait for structs that can appear in the pNext chain of
44223#[doc = concat!("[`", "CommandBufferInheritanceDescriptorHeapInfoEXT", "`].")]
44224///
44225/// # Safety
44226/// Implementors must be valid pNext chain members for the target struct.
44227pub unsafe trait ExtendsCommandBufferInheritanceDescriptorHeapInfoEXT {}
44228/// Marker trait for structs that can appear in the pNext chain of
44229#[doc = concat!("[`", "CommandBufferInheritanceInfo", "`].")]
44230///
44231/// # Safety
44232/// Implementors must be valid pNext chain members for the target struct.
44233pub unsafe trait ExtendsCommandBufferInheritanceInfo {}
44234/// Marker trait for structs that can appear in the pNext chain of
44235#[doc = concat!("[`", "CommandBufferInheritanceRenderPassTransformInfoQCOM", "`].")]
44236///
44237/// # Safety
44238/// Implementors must be valid pNext chain members for the target struct.
44239pub unsafe trait ExtendsCommandBufferInheritanceRenderPassTransformInfoQCOM {}
44240/// Marker trait for structs that can appear in the pNext chain of
44241#[doc = concat!("[`", "CommandBufferInheritanceRenderingInfo", "`].")]
44242///
44243/// # Safety
44244/// Implementors must be valid pNext chain members for the target struct.
44245pub unsafe trait ExtendsCommandBufferInheritanceRenderingInfo {}
44246/// Marker trait for structs that can appear in the pNext chain of
44247#[doc = concat!("[`", "CommandBufferInheritanceViewportScissorInfoNV", "`].")]
44248///
44249/// # Safety
44250/// Implementors must be valid pNext chain members for the target struct.
44251pub unsafe trait ExtendsCommandBufferInheritanceViewportScissorInfoNV {}
44252/// Marker trait for structs that can appear in the pNext chain of
44253#[doc = concat!("[`", "CommandBufferSubmitInfo", "`].")]
44254///
44255/// # Safety
44256/// Implementors must be valid pNext chain members for the target struct.
44257pub unsafe trait ExtendsCommandBufferSubmitInfo {}
44258/// Marker trait for structs that can appear in the pNext chain of
44259#[doc = concat!("[`", "CommandPoolCreateInfo", "`].")]
44260///
44261/// # Safety
44262/// Implementors must be valid pNext chain members for the target struct.
44263pub unsafe trait ExtendsCommandPoolCreateInfo {}
44264/// Marker trait for structs that can appear in the pNext chain of
44265#[doc = concat!("[`", "CommandPoolMemoryReservationCreateInfo", "`].")]
44266///
44267/// # Safety
44268/// Implementors must be valid pNext chain members for the target struct.
44269pub unsafe trait ExtendsCommandPoolMemoryReservationCreateInfo {}
44270/// Marker trait for structs that can appear in the pNext chain of
44271#[doc = concat!("[`", "ComputeOccupancyPriorityParametersNV", "`].")]
44272///
44273/// # Safety
44274/// Implementors must be valid pNext chain members for the target struct.
44275pub unsafe trait ExtendsComputeOccupancyPriorityParametersNV {}
44276/// Marker trait for structs that can appear in the pNext chain of
44277#[doc = concat!("[`", "ComputePipelineCreateInfo", "`].")]
44278///
44279/// # Safety
44280/// Implementors must be valid pNext chain members for the target struct.
44281pub unsafe trait ExtendsComputePipelineCreateInfo {}
44282/// Marker trait for structs that can appear in the pNext chain of
44283#[doc = concat!("[`", "ComputePipelineIndirectBufferInfoNV", "`].")]
44284///
44285/// # Safety
44286/// Implementors must be valid pNext chain members for the target struct.
44287pub unsafe trait ExtendsComputePipelineIndirectBufferInfoNV {}
44288/// Marker trait for structs that can appear in the pNext chain of
44289#[doc = concat!("[`", "ConditionalRenderingBeginInfo2EXT", "`].")]
44290///
44291/// # Safety
44292/// Implementors must be valid pNext chain members for the target struct.
44293pub unsafe trait ExtendsConditionalRenderingBeginInfo2EXT {}
44294/// Marker trait for structs that can appear in the pNext chain of
44295#[doc = concat!("[`", "ConditionalRenderingBeginInfoEXT", "`].")]
44296///
44297/// # Safety
44298/// Implementors must be valid pNext chain members for the target struct.
44299pub unsafe trait ExtendsConditionalRenderingBeginInfoEXT {}
44300/// Marker trait for structs that can appear in the pNext chain of
44301#[doc = concat!("[`", "ConvertCooperativeVectorMatrixInfoNV", "`].")]
44302///
44303/// # Safety
44304/// Implementors must be valid pNext chain members for the target struct.
44305pub unsafe trait ExtendsConvertCooperativeVectorMatrixInfoNV {}
44306/// Marker trait for structs that can appear in the pNext chain of
44307#[doc = concat!("[`", "CooperativeVectorPropertiesNV", "`].")]
44308///
44309/// # Safety
44310/// Implementors must be valid pNext chain members for the target struct.
44311pub unsafe trait ExtendsCooperativeVectorPropertiesNV {}
44312/// Marker trait for structs that can appear in the pNext chain of
44313#[doc = concat!("[`", "CopyAccelerationStructureInfoKHR", "`].")]
44314///
44315/// # Safety
44316/// Implementors must be valid pNext chain members for the target struct.
44317pub unsafe trait ExtendsCopyAccelerationStructureInfoKHR {}
44318/// Marker trait for structs that can appear in the pNext chain of
44319#[doc = concat!("[`", "CopyAccelerationStructureToMemoryInfoKHR", "`].")]
44320///
44321/// # Safety
44322/// Implementors must be valid pNext chain members for the target struct.
44323pub unsafe trait ExtendsCopyAccelerationStructureToMemoryInfoKHR {}
44324/// Marker trait for structs that can appear in the pNext chain of
44325#[doc = concat!("[`", "CopyBufferInfo2", "`].")]
44326///
44327/// # Safety
44328/// Implementors must be valid pNext chain members for the target struct.
44329pub unsafe trait ExtendsCopyBufferInfo2 {}
44330/// Marker trait for structs that can appear in the pNext chain of
44331#[doc = concat!("[`", "CopyBufferToImageInfo2", "`].")]
44332///
44333/// # Safety
44334/// Implementors must be valid pNext chain members for the target struct.
44335pub unsafe trait ExtendsCopyBufferToImageInfo2 {}
44336/// Marker trait for structs that can appear in the pNext chain of
44337#[doc = concat!("[`", "CopyCommandTransformInfoQCOM", "`].")]
44338///
44339/// # Safety
44340/// Implementors must be valid pNext chain members for the target struct.
44341pub unsafe trait ExtendsCopyCommandTransformInfoQCOM {}
44342/// Marker trait for structs that can appear in the pNext chain of
44343#[doc = concat!("[`", "CopyDescriptorSet", "`].")]
44344///
44345/// # Safety
44346/// Implementors must be valid pNext chain members for the target struct.
44347pub unsafe trait ExtendsCopyDescriptorSet {}
44348/// Marker trait for structs that can appear in the pNext chain of
44349#[doc = concat!("[`", "CopyDeviceMemoryImageInfoKHR", "`].")]
44350///
44351/// # Safety
44352/// Implementors must be valid pNext chain members for the target struct.
44353pub unsafe trait ExtendsCopyDeviceMemoryImageInfoKHR {}
44354/// Marker trait for structs that can appear in the pNext chain of
44355#[doc = concat!("[`", "CopyDeviceMemoryInfoKHR", "`].")]
44356///
44357/// # Safety
44358/// Implementors must be valid pNext chain members for the target struct.
44359pub unsafe trait ExtendsCopyDeviceMemoryInfoKHR {}
44360/// Marker trait for structs that can appear in the pNext chain of
44361#[doc = concat!("[`", "CopyImageInfo2", "`].")]
44362///
44363/// # Safety
44364/// Implementors must be valid pNext chain members for the target struct.
44365pub unsafe trait ExtendsCopyImageInfo2 {}
44366/// Marker trait for structs that can appear in the pNext chain of
44367#[doc = concat!("[`", "CopyImageToBufferInfo2", "`].")]
44368///
44369/// # Safety
44370/// Implementors must be valid pNext chain members for the target struct.
44371pub unsafe trait ExtendsCopyImageToBufferInfo2 {}
44372/// Marker trait for structs that can appear in the pNext chain of
44373#[doc = concat!("[`", "CopyImageToImageInfo", "`].")]
44374///
44375/// # Safety
44376/// Implementors must be valid pNext chain members for the target struct.
44377pub unsafe trait ExtendsCopyImageToImageInfo {}
44378/// Marker trait for structs that can appear in the pNext chain of
44379#[doc = concat!("[`", "CopyImageToMemoryInfo", "`].")]
44380///
44381/// # Safety
44382/// Implementors must be valid pNext chain members for the target struct.
44383pub unsafe trait ExtendsCopyImageToMemoryInfo {}
44384/// Marker trait for structs that can appear in the pNext chain of
44385#[doc = concat!("[`", "CopyMemoryIndirectInfoKHR", "`].")]
44386///
44387/// # Safety
44388/// Implementors must be valid pNext chain members for the target struct.
44389pub unsafe trait ExtendsCopyMemoryIndirectInfoKHR {}
44390/// Marker trait for structs that can appear in the pNext chain of
44391#[doc = concat!("[`", "CopyMemoryToAccelerationStructureInfoKHR", "`].")]
44392///
44393/// # Safety
44394/// Implementors must be valid pNext chain members for the target struct.
44395pub unsafe trait ExtendsCopyMemoryToAccelerationStructureInfoKHR {}
44396/// Marker trait for structs that can appear in the pNext chain of
44397#[doc = concat!("[`", "CopyMemoryToImageIndirectInfoKHR", "`].")]
44398///
44399/// # Safety
44400/// Implementors must be valid pNext chain members for the target struct.
44401pub unsafe trait ExtendsCopyMemoryToImageIndirectInfoKHR {}
44402/// Marker trait for structs that can appear in the pNext chain of
44403#[doc = concat!("[`", "CopyMemoryToImageInfo", "`].")]
44404///
44405/// # Safety
44406/// Implementors must be valid pNext chain members for the target struct.
44407pub unsafe trait ExtendsCopyMemoryToImageInfo {}
44408/// Marker trait for structs that can appear in the pNext chain of
44409#[doc = concat!("[`", "CopyMemoryToMicromapInfoEXT", "`].")]
44410///
44411/// # Safety
44412/// Implementors must be valid pNext chain members for the target struct.
44413pub unsafe trait ExtendsCopyMemoryToMicromapInfoEXT {}
44414/// Marker trait for structs that can appear in the pNext chain of
44415#[doc = concat!("[`", "CopyMicromapInfoEXT", "`].")]
44416///
44417/// # Safety
44418/// Implementors must be valid pNext chain members for the target struct.
44419pub unsafe trait ExtendsCopyMicromapInfoEXT {}
44420/// Marker trait for structs that can appear in the pNext chain of
44421#[doc = concat!("[`", "CopyMicromapToMemoryInfoEXT", "`].")]
44422///
44423/// # Safety
44424/// Implementors must be valid pNext chain members for the target struct.
44425pub unsafe trait ExtendsCopyMicromapToMemoryInfoEXT {}
44426/// Marker trait for structs that can appear in the pNext chain of
44427#[doc = concat!("[`", "CopyTensorInfoARM", "`].")]
44428///
44429/// # Safety
44430/// Implementors must be valid pNext chain members for the target struct.
44431pub unsafe trait ExtendsCopyTensorInfoARM {}
44432/// Marker trait for structs that can appear in the pNext chain of
44433#[doc = concat!("[`", "CuFunctionCreateInfoNVX", "`].")]
44434///
44435/// # Safety
44436/// Implementors must be valid pNext chain members for the target struct.
44437pub unsafe trait ExtendsCuFunctionCreateInfoNVX {}
44438/// Marker trait for structs that can appear in the pNext chain of
44439#[doc = concat!("[`", "CuLaunchInfoNVX", "`].")]
44440///
44441/// # Safety
44442/// Implementors must be valid pNext chain members for the target struct.
44443pub unsafe trait ExtendsCuLaunchInfoNVX {}
44444/// Marker trait for structs that can appear in the pNext chain of
44445#[doc = concat!("[`", "CuModuleCreateInfoNVX", "`].")]
44446///
44447/// # Safety
44448/// Implementors must be valid pNext chain members for the target struct.
44449pub unsafe trait ExtendsCuModuleCreateInfoNVX {}
44450/// Marker trait for structs that can appear in the pNext chain of
44451#[doc = concat!("[`", "CuModuleTexturingModeCreateInfoNVX", "`].")]
44452///
44453/// # Safety
44454/// Implementors must be valid pNext chain members for the target struct.
44455pub unsafe trait ExtendsCuModuleTexturingModeCreateInfoNVX {}
44456/// Marker trait for structs that can appear in the pNext chain of
44457#[doc = concat!("[`", "CudaFunctionCreateInfoNV", "`].")]
44458///
44459/// # Safety
44460/// Implementors must be valid pNext chain members for the target struct.
44461pub unsafe trait ExtendsCudaFunctionCreateInfoNV {}
44462/// Marker trait for structs that can appear in the pNext chain of
44463#[doc = concat!("[`", "CudaLaunchInfoNV", "`].")]
44464///
44465/// # Safety
44466/// Implementors must be valid pNext chain members for the target struct.
44467pub unsafe trait ExtendsCudaLaunchInfoNV {}
44468/// Marker trait for structs that can appear in the pNext chain of
44469#[doc = concat!("[`", "CudaModuleCreateInfoNV", "`].")]
44470///
44471/// # Safety
44472/// Implementors must be valid pNext chain members for the target struct.
44473pub unsafe trait ExtendsCudaModuleCreateInfoNV {}
44474/// Marker trait for structs that can appear in the pNext chain of
44475#[doc = concat!("[`", "CustomResolveCreateInfoEXT", "`].")]
44476///
44477/// # Safety
44478/// Implementors must be valid pNext chain members for the target struct.
44479pub unsafe trait ExtendsCustomResolveCreateInfoEXT {}
44480/// Marker trait for structs that can appear in the pNext chain of
44481#[doc = concat!("[`", "D3D12FenceSubmitInfoKHR", "`].")]
44482///
44483/// # Safety
44484/// Implementors must be valid pNext chain members for the target struct.
44485pub unsafe trait ExtendsD3D12FenceSubmitInfoKHR {}
44486/// Marker trait for structs that can appear in the pNext chain of
44487#[doc = concat!("[`", "DataGraphPipelineBuiltinModelCreateInfoQCOM", "`].")]
44488///
44489/// # Safety
44490/// Implementors must be valid pNext chain members for the target struct.
44491pub unsafe trait ExtendsDataGraphPipelineBuiltinModelCreateInfoQCOM {}
44492/// Marker trait for structs that can appear in the pNext chain of
44493#[doc = concat!("[`", "DataGraphPipelineCompilerControlCreateInfoARM", "`].")]
44494///
44495/// # Safety
44496/// Implementors must be valid pNext chain members for the target struct.
44497pub unsafe trait ExtendsDataGraphPipelineCompilerControlCreateInfoARM {}
44498/// Marker trait for structs that can appear in the pNext chain of
44499#[doc = concat!("[`", "DataGraphPipelineConstantARM", "`].")]
44500///
44501/// # Safety
44502/// Implementors must be valid pNext chain members for the target struct.
44503pub unsafe trait ExtendsDataGraphPipelineConstantARM {}
44504/// Marker trait for structs that can appear in the pNext chain of
44505#[doc = concat!(
44506    "[`", "DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM", "`]."
44507)]
44508///
44509/// # Safety
44510/// Implementors must be valid pNext chain members for the target struct.
44511pub unsafe trait ExtendsDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {}
44512/// Marker trait for structs that can appear in the pNext chain of
44513#[doc = concat!("[`", "DataGraphPipelineCreateInfoARM", "`].")]
44514///
44515/// # Safety
44516/// Implementors must be valid pNext chain members for the target struct.
44517pub unsafe trait ExtendsDataGraphPipelineCreateInfoARM {}
44518/// Marker trait for structs that can appear in the pNext chain of
44519#[doc = concat!("[`", "DataGraphPipelineDispatchInfoARM", "`].")]
44520///
44521/// # Safety
44522/// Implementors must be valid pNext chain members for the target struct.
44523pub unsafe trait ExtendsDataGraphPipelineDispatchInfoARM {}
44524/// Marker trait for structs that can appear in the pNext chain of
44525#[doc = concat!("[`", "DataGraphPipelineIdentifierCreateInfoARM", "`].")]
44526///
44527/// # Safety
44528/// Implementors must be valid pNext chain members for the target struct.
44529pub unsafe trait ExtendsDataGraphPipelineIdentifierCreateInfoARM {}
44530/// Marker trait for structs that can appear in the pNext chain of
44531#[doc = concat!("[`", "DataGraphPipelineInfoARM", "`].")]
44532///
44533/// # Safety
44534/// Implementors must be valid pNext chain members for the target struct.
44535pub unsafe trait ExtendsDataGraphPipelineInfoARM {}
44536/// Marker trait for structs that can appear in the pNext chain of
44537#[doc = concat!("[`", "DataGraphPipelinePropertyQueryResultARM", "`].")]
44538///
44539/// # Safety
44540/// Implementors must be valid pNext chain members for the target struct.
44541pub unsafe trait ExtendsDataGraphPipelinePropertyQueryResultARM {}
44542/// Marker trait for structs that can appear in the pNext chain of
44543#[doc = concat!("[`", "DataGraphPipelineResourceInfoARM", "`].")]
44544///
44545/// # Safety
44546/// Implementors must be valid pNext chain members for the target struct.
44547pub unsafe trait ExtendsDataGraphPipelineResourceInfoARM {}
44548/// Marker trait for structs that can appear in the pNext chain of
44549#[doc = concat!("[`", "DataGraphPipelineSessionBindPointRequirementsInfoARM", "`].")]
44550///
44551/// # Safety
44552/// Implementors must be valid pNext chain members for the target struct.
44553pub unsafe trait ExtendsDataGraphPipelineSessionBindPointRequirementsInfoARM {}
44554/// Marker trait for structs that can appear in the pNext chain of
44555#[doc = concat!("[`", "DataGraphPipelineSessionCreateInfoARM", "`].")]
44556///
44557/// # Safety
44558/// Implementors must be valid pNext chain members for the target struct.
44559pub unsafe trait ExtendsDataGraphPipelineSessionCreateInfoARM {}
44560/// Marker trait for structs that can appear in the pNext chain of
44561#[doc = concat!("[`", "DataGraphPipelineSessionMemoryRequirementsInfoARM", "`].")]
44562///
44563/// # Safety
44564/// Implementors must be valid pNext chain members for the target struct.
44565pub unsafe trait ExtendsDataGraphPipelineSessionMemoryRequirementsInfoARM {}
44566/// Marker trait for structs that can appear in the pNext chain of
44567#[doc = concat!("[`", "DataGraphPipelineShaderModuleCreateInfoARM", "`].")]
44568///
44569/// # Safety
44570/// Implementors must be valid pNext chain members for the target struct.
44571pub unsafe trait ExtendsDataGraphPipelineShaderModuleCreateInfoARM {}
44572/// Marker trait for structs that can appear in the pNext chain of
44573#[doc = concat!("[`", "DataGraphProcessingEngineCreateInfoARM", "`].")]
44574///
44575/// # Safety
44576/// Implementors must be valid pNext chain members for the target struct.
44577pub unsafe trait ExtendsDataGraphProcessingEngineCreateInfoARM {}
44578/// Marker trait for structs that can appear in the pNext chain of
44579#[doc = concat!("[`", "DebugMarkerMarkerInfoEXT", "`].")]
44580///
44581/// # Safety
44582/// Implementors must be valid pNext chain members for the target struct.
44583pub unsafe trait ExtendsDebugMarkerMarkerInfoEXT {}
44584/// Marker trait for structs that can appear in the pNext chain of
44585#[doc = concat!("[`", "DebugMarkerObjectNameInfoEXT", "`].")]
44586///
44587/// # Safety
44588/// Implementors must be valid pNext chain members for the target struct.
44589pub unsafe trait ExtendsDebugMarkerObjectNameInfoEXT {}
44590/// Marker trait for structs that can appear in the pNext chain of
44591#[doc = concat!("[`", "DebugMarkerObjectTagInfoEXT", "`].")]
44592///
44593/// # Safety
44594/// Implementors must be valid pNext chain members for the target struct.
44595pub unsafe trait ExtendsDebugMarkerObjectTagInfoEXT {}
44596/// Marker trait for structs that can appear in the pNext chain of
44597#[doc = concat!("[`", "DebugReportCallbackCreateInfoEXT", "`].")]
44598///
44599/// # Safety
44600/// Implementors must be valid pNext chain members for the target struct.
44601pub unsafe trait ExtendsDebugReportCallbackCreateInfoEXT {}
44602/// Marker trait for structs that can appear in the pNext chain of
44603#[doc = concat!("[`", "DebugUtilsLabelEXT", "`].")]
44604///
44605/// # Safety
44606/// Implementors must be valid pNext chain members for the target struct.
44607pub unsafe trait ExtendsDebugUtilsLabelEXT {}
44608/// Marker trait for structs that can appear in the pNext chain of
44609#[doc = concat!("[`", "DebugUtilsMessengerCallbackDataEXT", "`].")]
44610///
44611/// # Safety
44612/// Implementors must be valid pNext chain members for the target struct.
44613pub unsafe trait ExtendsDebugUtilsMessengerCallbackDataEXT {}
44614/// Marker trait for structs that can appear in the pNext chain of
44615#[doc = concat!("[`", "DebugUtilsMessengerCreateInfoEXT", "`].")]
44616///
44617/// # Safety
44618/// Implementors must be valid pNext chain members for the target struct.
44619pub unsafe trait ExtendsDebugUtilsMessengerCreateInfoEXT {}
44620/// Marker trait for structs that can appear in the pNext chain of
44621#[doc = concat!("[`", "DebugUtilsObjectNameInfoEXT", "`].")]
44622///
44623/// # Safety
44624/// Implementors must be valid pNext chain members for the target struct.
44625pub unsafe trait ExtendsDebugUtilsObjectNameInfoEXT {}
44626/// Marker trait for structs that can appear in the pNext chain of
44627#[doc = concat!("[`", "DebugUtilsObjectTagInfoEXT", "`].")]
44628///
44629/// # Safety
44630/// Implementors must be valid pNext chain members for the target struct.
44631pub unsafe trait ExtendsDebugUtilsObjectTagInfoEXT {}
44632/// Marker trait for structs that can appear in the pNext chain of
44633#[doc = concat!("[`", "DecompressMemoryInfoEXT", "`].")]
44634///
44635/// # Safety
44636/// Implementors must be valid pNext chain members for the target struct.
44637pub unsafe trait ExtendsDecompressMemoryInfoEXT {}
44638/// Marker trait for structs that can appear in the pNext chain of
44639#[doc = concat!("[`", "DedicatedAllocationBufferCreateInfoNV", "`].")]
44640///
44641/// # Safety
44642/// Implementors must be valid pNext chain members for the target struct.
44643pub unsafe trait ExtendsDedicatedAllocationBufferCreateInfoNV {}
44644/// Marker trait for structs that can appear in the pNext chain of
44645#[doc = concat!("[`", "DedicatedAllocationImageCreateInfoNV", "`].")]
44646///
44647/// # Safety
44648/// Implementors must be valid pNext chain members for the target struct.
44649pub unsafe trait ExtendsDedicatedAllocationImageCreateInfoNV {}
44650/// Marker trait for structs that can appear in the pNext chain of
44651#[doc = concat!("[`", "DedicatedAllocationMemoryAllocateInfoNV", "`].")]
44652///
44653/// # Safety
44654/// Implementors must be valid pNext chain members for the target struct.
44655pub unsafe trait ExtendsDedicatedAllocationMemoryAllocateInfoNV {}
44656/// Marker trait for structs that can appear in the pNext chain of
44657#[doc = concat!("[`", "DependencyInfo", "`].")]
44658///
44659/// # Safety
44660/// Implementors must be valid pNext chain members for the target struct.
44661pub unsafe trait ExtendsDependencyInfo {}
44662/// Marker trait for structs that can appear in the pNext chain of
44663#[doc = concat!("[`", "DepthBiasInfoEXT", "`].")]
44664///
44665/// # Safety
44666/// Implementors must be valid pNext chain members for the target struct.
44667pub unsafe trait ExtendsDepthBiasInfoEXT {}
44668/// Marker trait for structs that can appear in the pNext chain of
44669#[doc = concat!("[`", "DepthBiasRepresentationInfoEXT", "`].")]
44670///
44671/// # Safety
44672/// Implementors must be valid pNext chain members for the target struct.
44673pub unsafe trait ExtendsDepthBiasRepresentationInfoEXT {}
44674/// Marker trait for structs that can appear in the pNext chain of
44675#[doc = concat!("[`", "DescriptorAddressInfoEXT", "`].")]
44676///
44677/// # Safety
44678/// Implementors must be valid pNext chain members for the target struct.
44679pub unsafe trait ExtendsDescriptorAddressInfoEXT {}
44680/// Marker trait for structs that can appear in the pNext chain of
44681#[doc = concat!("[`", "DescriptorBufferBindingInfoEXT", "`].")]
44682///
44683/// # Safety
44684/// Implementors must be valid pNext chain members for the target struct.
44685pub unsafe trait ExtendsDescriptorBufferBindingInfoEXT {}
44686/// Marker trait for structs that can appear in the pNext chain of
44687#[doc = concat!("[`", "DescriptorBufferBindingPushDescriptorBufferHandleEXT", "`].")]
44688///
44689/// # Safety
44690/// Implementors must be valid pNext chain members for the target struct.
44691pub unsafe trait ExtendsDescriptorBufferBindingPushDescriptorBufferHandleEXT {}
44692/// Marker trait for structs that can appear in the pNext chain of
44693#[doc = concat!("[`", "DescriptorGetInfoEXT", "`].")]
44694///
44695/// # Safety
44696/// Implementors must be valid pNext chain members for the target struct.
44697pub unsafe trait ExtendsDescriptorGetInfoEXT {}
44698/// Marker trait for structs that can appear in the pNext chain of
44699#[doc = concat!("[`", "DescriptorGetTensorInfoARM", "`].")]
44700///
44701/// # Safety
44702/// Implementors must be valid pNext chain members for the target struct.
44703pub unsafe trait ExtendsDescriptorGetTensorInfoARM {}
44704/// Marker trait for structs that can appear in the pNext chain of
44705#[doc = concat!("[`", "DescriptorPoolCreateInfo", "`].")]
44706///
44707/// # Safety
44708/// Implementors must be valid pNext chain members for the target struct.
44709pub unsafe trait ExtendsDescriptorPoolCreateInfo {}
44710/// Marker trait for structs that can appear in the pNext chain of
44711#[doc = concat!("[`", "DescriptorPoolInlineUniformBlockCreateInfo", "`].")]
44712///
44713/// # Safety
44714/// Implementors must be valid pNext chain members for the target struct.
44715pub unsafe trait ExtendsDescriptorPoolInlineUniformBlockCreateInfo {}
44716/// Marker trait for structs that can appear in the pNext chain of
44717#[doc = concat!("[`", "DescriptorSetAllocateInfo", "`].")]
44718///
44719/// # Safety
44720/// Implementors must be valid pNext chain members for the target struct.
44721pub unsafe trait ExtendsDescriptorSetAllocateInfo {}
44722/// Marker trait for structs that can appear in the pNext chain of
44723#[doc = concat!("[`", "DescriptorSetAndBindingMappingEXT", "`].")]
44724///
44725/// # Safety
44726/// Implementors must be valid pNext chain members for the target struct.
44727pub unsafe trait ExtendsDescriptorSetAndBindingMappingEXT {}
44728/// Marker trait for structs that can appear in the pNext chain of
44729#[doc = concat!("[`", "DescriptorSetBindingReferenceVALVE", "`].")]
44730///
44731/// # Safety
44732/// Implementors must be valid pNext chain members for the target struct.
44733pub unsafe trait ExtendsDescriptorSetBindingReferenceVALVE {}
44734/// Marker trait for structs that can appear in the pNext chain of
44735#[doc = concat!("[`", "DescriptorSetLayoutBindingFlagsCreateInfo", "`].")]
44736///
44737/// # Safety
44738/// Implementors must be valid pNext chain members for the target struct.
44739pub unsafe trait ExtendsDescriptorSetLayoutBindingFlagsCreateInfo {}
44740/// Marker trait for structs that can appear in the pNext chain of
44741#[doc = concat!("[`", "DescriptorSetLayoutCreateInfo", "`].")]
44742///
44743/// # Safety
44744/// Implementors must be valid pNext chain members for the target struct.
44745pub unsafe trait ExtendsDescriptorSetLayoutCreateInfo {}
44746/// Marker trait for structs that can appear in the pNext chain of
44747#[doc = concat!("[`", "DescriptorSetLayoutHostMappingInfoVALVE", "`].")]
44748///
44749/// # Safety
44750/// Implementors must be valid pNext chain members for the target struct.
44751pub unsafe trait ExtendsDescriptorSetLayoutHostMappingInfoVALVE {}
44752/// Marker trait for structs that can appear in the pNext chain of
44753#[doc = concat!("[`", "DescriptorSetLayoutSupport", "`].")]
44754///
44755/// # Safety
44756/// Implementors must be valid pNext chain members for the target struct.
44757pub unsafe trait ExtendsDescriptorSetLayoutSupport {}
44758/// Marker trait for structs that can appear in the pNext chain of
44759#[doc = concat!("[`", "DescriptorSetVariableDescriptorCountAllocateInfo", "`].")]
44760///
44761/// # Safety
44762/// Implementors must be valid pNext chain members for the target struct.
44763pub unsafe trait ExtendsDescriptorSetVariableDescriptorCountAllocateInfo {}
44764/// Marker trait for structs that can appear in the pNext chain of
44765#[doc = concat!("[`", "DescriptorUpdateTemplateCreateInfo", "`].")]
44766///
44767/// # Safety
44768/// Implementors must be valid pNext chain members for the target struct.
44769pub unsafe trait ExtendsDescriptorUpdateTemplateCreateInfo {}
44770/// Marker trait for structs that can appear in the pNext chain of
44771#[doc = concat!("[`", "DeviceAddressBindingCallbackDataEXT", "`].")]
44772///
44773/// # Safety
44774/// Implementors must be valid pNext chain members for the target struct.
44775pub unsafe trait ExtendsDeviceAddressBindingCallbackDataEXT {}
44776/// Marker trait for structs that can appear in the pNext chain of
44777#[doc = concat!("[`", "DeviceBufferMemoryRequirements", "`].")]
44778///
44779/// # Safety
44780/// Implementors must be valid pNext chain members for the target struct.
44781pub unsafe trait ExtendsDeviceBufferMemoryRequirements {}
44782/// Marker trait for structs that can appear in the pNext chain of
44783#[doc = concat!("[`", "DeviceCreateInfo", "`].")]
44784///
44785/// # Safety
44786/// Implementors must be valid pNext chain members for the target struct.
44787pub unsafe trait ExtendsDeviceCreateInfo {}
44788/// Marker trait for structs that can appear in the pNext chain of
44789#[doc = concat!("[`", "DeviceDeviceMemoryReportCreateInfoEXT", "`].")]
44790///
44791/// # Safety
44792/// Implementors must be valid pNext chain members for the target struct.
44793pub unsafe trait ExtendsDeviceDeviceMemoryReportCreateInfoEXT {}
44794/// Marker trait for structs that can appear in the pNext chain of
44795#[doc = concat!("[`", "DeviceDiagnosticsConfigCreateInfoNV", "`].")]
44796///
44797/// # Safety
44798/// Implementors must be valid pNext chain members for the target struct.
44799pub unsafe trait ExtendsDeviceDiagnosticsConfigCreateInfoNV {}
44800/// Marker trait for structs that can appear in the pNext chain of
44801#[doc = concat!("[`", "DeviceEventInfoEXT", "`].")]
44802///
44803/// # Safety
44804/// Implementors must be valid pNext chain members for the target struct.
44805pub unsafe trait ExtendsDeviceEventInfoEXT {}
44806/// Marker trait for structs that can appear in the pNext chain of
44807#[doc = concat!("[`", "DeviceFaultCountsEXT", "`].")]
44808///
44809/// # Safety
44810/// Implementors must be valid pNext chain members for the target struct.
44811pub unsafe trait ExtendsDeviceFaultCountsEXT {}
44812/// Marker trait for structs that can appear in the pNext chain of
44813#[doc = concat!("[`", "DeviceFaultDebugInfoKHR", "`].")]
44814///
44815/// # Safety
44816/// Implementors must be valid pNext chain members for the target struct.
44817pub unsafe trait ExtendsDeviceFaultDebugInfoKHR {}
44818/// Marker trait for structs that can appear in the pNext chain of
44819#[doc = concat!("[`", "DeviceGroupBindSparseInfo", "`].")]
44820///
44821/// # Safety
44822/// Implementors must be valid pNext chain members for the target struct.
44823pub unsafe trait ExtendsDeviceGroupBindSparseInfo {}
44824/// Marker trait for structs that can appear in the pNext chain of
44825#[doc = concat!("[`", "DeviceGroupCommandBufferBeginInfo", "`].")]
44826///
44827/// # Safety
44828/// Implementors must be valid pNext chain members for the target struct.
44829pub unsafe trait ExtendsDeviceGroupCommandBufferBeginInfo {}
44830/// Marker trait for structs that can appear in the pNext chain of
44831#[doc = concat!("[`", "DeviceGroupDeviceCreateInfo", "`].")]
44832///
44833/// # Safety
44834/// Implementors must be valid pNext chain members for the target struct.
44835pub unsafe trait ExtendsDeviceGroupDeviceCreateInfo {}
44836/// Marker trait for structs that can appear in the pNext chain of
44837#[doc = concat!("[`", "DeviceGroupPresentInfoKHR", "`].")]
44838///
44839/// # Safety
44840/// Implementors must be valid pNext chain members for the target struct.
44841pub unsafe trait ExtendsDeviceGroupPresentInfoKHR {}
44842/// Marker trait for structs that can appear in the pNext chain of
44843#[doc = concat!("[`", "DeviceGroupRenderPassBeginInfo", "`].")]
44844///
44845/// # Safety
44846/// Implementors must be valid pNext chain members for the target struct.
44847pub unsafe trait ExtendsDeviceGroupRenderPassBeginInfo {}
44848/// Marker trait for structs that can appear in the pNext chain of
44849#[doc = concat!("[`", "DeviceGroupSubmitInfo", "`].")]
44850///
44851/// # Safety
44852/// Implementors must be valid pNext chain members for the target struct.
44853pub unsafe trait ExtendsDeviceGroupSubmitInfo {}
44854/// Marker trait for structs that can appear in the pNext chain of
44855#[doc = concat!("[`", "DeviceGroupSwapchainCreateInfoKHR", "`].")]
44856///
44857/// # Safety
44858/// Implementors must be valid pNext chain members for the target struct.
44859pub unsafe trait ExtendsDeviceGroupSwapchainCreateInfoKHR {}
44860/// Marker trait for structs that can appear in the pNext chain of
44861#[doc = concat!("[`", "DeviceImageMemoryRequirements", "`].")]
44862///
44863/// # Safety
44864/// Implementors must be valid pNext chain members for the target struct.
44865pub unsafe trait ExtendsDeviceImageMemoryRequirements {}
44866/// Marker trait for structs that can appear in the pNext chain of
44867#[doc = concat!("[`", "DeviceImageSubresourceInfo", "`].")]
44868///
44869/// # Safety
44870/// Implementors must be valid pNext chain members for the target struct.
44871pub unsafe trait ExtendsDeviceImageSubresourceInfo {}
44872/// Marker trait for structs that can appear in the pNext chain of
44873#[doc = concat!("[`", "DeviceMemoryCopyKHR", "`].")]
44874///
44875/// # Safety
44876/// Implementors must be valid pNext chain members for the target struct.
44877pub unsafe trait ExtendsDeviceMemoryCopyKHR {}
44878/// Marker trait for structs that can appear in the pNext chain of
44879#[doc = concat!("[`", "DeviceMemoryImageCopyKHR", "`].")]
44880///
44881/// # Safety
44882/// Implementors must be valid pNext chain members for the target struct.
44883pub unsafe trait ExtendsDeviceMemoryImageCopyKHR {}
44884/// Marker trait for structs that can appear in the pNext chain of
44885#[doc = concat!("[`", "DeviceMemoryOpaqueCaptureAddressInfo", "`].")]
44886///
44887/// # Safety
44888/// Implementors must be valid pNext chain members for the target struct.
44889pub unsafe trait ExtendsDeviceMemoryOpaqueCaptureAddressInfo {}
44890/// Marker trait for structs that can appear in the pNext chain of
44891#[doc = concat!("[`", "DeviceMemoryOverallocationCreateInfoAMD", "`].")]
44892///
44893/// # Safety
44894/// Implementors must be valid pNext chain members for the target struct.
44895pub unsafe trait ExtendsDeviceMemoryOverallocationCreateInfoAMD {}
44896/// Marker trait for structs that can appear in the pNext chain of
44897#[doc = concat!("[`", "DeviceObjectReservationCreateInfo", "`].")]
44898///
44899/// # Safety
44900/// Implementors must be valid pNext chain members for the target struct.
44901pub unsafe trait ExtendsDeviceObjectReservationCreateInfo {}
44902/// Marker trait for structs that can appear in the pNext chain of
44903#[doc = concat!("[`", "DevicePipelineBinaryInternalCacheControlKHR", "`].")]
44904///
44905/// # Safety
44906/// Implementors must be valid pNext chain members for the target struct.
44907pub unsafe trait ExtendsDevicePipelineBinaryInternalCacheControlKHR {}
44908/// Marker trait for structs that can appear in the pNext chain of
44909#[doc = concat!("[`", "DevicePrivateDataCreateInfo", "`].")]
44910///
44911/// # Safety
44912/// Implementors must be valid pNext chain members for the target struct.
44913pub unsafe trait ExtendsDevicePrivateDataCreateInfo {}
44914/// Marker trait for structs that can appear in the pNext chain of
44915#[doc = concat!("[`", "DeviceQueueCreateInfo", "`].")]
44916///
44917/// # Safety
44918/// Implementors must be valid pNext chain members for the target struct.
44919pub unsafe trait ExtendsDeviceQueueCreateInfo {}
44920/// Marker trait for structs that can appear in the pNext chain of
44921#[doc = concat!("[`", "DeviceQueueGlobalPriorityCreateInfo", "`].")]
44922///
44923/// # Safety
44924/// Implementors must be valid pNext chain members for the target struct.
44925pub unsafe trait ExtendsDeviceQueueGlobalPriorityCreateInfo {}
44926/// Marker trait for structs that can appear in the pNext chain of
44927#[doc = concat!("[`", "DeviceQueueInfo2", "`].")]
44928///
44929/// # Safety
44930/// Implementors must be valid pNext chain members for the target struct.
44931pub unsafe trait ExtendsDeviceQueueInfo2 {}
44932/// Marker trait for structs that can appear in the pNext chain of
44933#[doc = concat!("[`", "DeviceQueueShaderCoreControlCreateInfoARM", "`].")]
44934///
44935/// # Safety
44936/// Implementors must be valid pNext chain members for the target struct.
44937pub unsafe trait ExtendsDeviceQueueShaderCoreControlCreateInfoARM {}
44938/// Marker trait for structs that can appear in the pNext chain of
44939#[doc = concat!("[`", "DeviceSemaphoreSciSyncPoolReservationCreateInfoNV", "`].")]
44940///
44941/// # Safety
44942/// Implementors must be valid pNext chain members for the target struct.
44943pub unsafe trait ExtendsDeviceSemaphoreSciSyncPoolReservationCreateInfoNV {}
44944/// Marker trait for structs that can appear in the pNext chain of
44945#[doc = concat!("[`", "DeviceTensorMemoryRequirementsARM", "`].")]
44946///
44947/// # Safety
44948/// Implementors must be valid pNext chain members for the target struct.
44949pub unsafe trait ExtendsDeviceTensorMemoryRequirementsARM {}
44950/// Marker trait for structs that can appear in the pNext chain of
44951#[doc = concat!("[`", "DirectDriverLoadingInfoLUNARG", "`].")]
44952///
44953/// # Safety
44954/// Implementors must be valid pNext chain members for the target struct.
44955pub unsafe trait ExtendsDirectDriverLoadingInfoLUNARG {}
44956/// Marker trait for structs that can appear in the pNext chain of
44957#[doc = concat!("[`", "DirectDriverLoadingListLUNARG", "`].")]
44958///
44959/// # Safety
44960/// Implementors must be valid pNext chain members for the target struct.
44961pub unsafe trait ExtendsDirectDriverLoadingListLUNARG {}
44962/// Marker trait for structs that can appear in the pNext chain of
44963#[doc = concat!("[`", "DirectFBSurfaceCreateInfoEXT", "`].")]
44964///
44965/// # Safety
44966/// Implementors must be valid pNext chain members for the target struct.
44967pub unsafe trait ExtendsDirectFBSurfaceCreateInfoEXT {}
44968/// Marker trait for structs that can appear in the pNext chain of
44969#[doc = concat!("[`", "DispatchIndirect2InfoKHR", "`].")]
44970///
44971/// # Safety
44972/// Implementors must be valid pNext chain members for the target struct.
44973pub unsafe trait ExtendsDispatchIndirect2InfoKHR {}
44974/// Marker trait for structs that can appear in the pNext chain of
44975#[doc = concat!("[`", "DispatchTileInfoQCOM", "`].")]
44976///
44977/// # Safety
44978/// Implementors must be valid pNext chain members for the target struct.
44979pub unsafe trait ExtendsDispatchTileInfoQCOM {}
44980/// Marker trait for structs that can appear in the pNext chain of
44981#[doc = concat!("[`", "DisplayEventInfoEXT", "`].")]
44982///
44983/// # Safety
44984/// Implementors must be valid pNext chain members for the target struct.
44985pub unsafe trait ExtendsDisplayEventInfoEXT {}
44986/// Marker trait for structs that can appear in the pNext chain of
44987#[doc = concat!("[`", "DisplayModeCreateInfoKHR", "`].")]
44988///
44989/// # Safety
44990/// Implementors must be valid pNext chain members for the target struct.
44991pub unsafe trait ExtendsDisplayModeCreateInfoKHR {}
44992/// Marker trait for structs that can appear in the pNext chain of
44993#[doc = concat!("[`", "DisplayModeProperties2KHR", "`].")]
44994///
44995/// # Safety
44996/// Implementors must be valid pNext chain members for the target struct.
44997pub unsafe trait ExtendsDisplayModeProperties2KHR {}
44998/// Marker trait for structs that can appear in the pNext chain of
44999#[doc = concat!("[`", "DisplayPlaneInfo2KHR", "`].")]
45000///
45001/// # Safety
45002/// Implementors must be valid pNext chain members for the target struct.
45003pub unsafe trait ExtendsDisplayPlaneInfo2KHR {}
45004/// Marker trait for structs that can appear in the pNext chain of
45005#[doc = concat!("[`", "DisplayPowerInfoEXT", "`].")]
45006///
45007/// # Safety
45008/// Implementors must be valid pNext chain members for the target struct.
45009pub unsafe trait ExtendsDisplayPowerInfoEXT {}
45010/// Marker trait for structs that can appear in the pNext chain of
45011#[doc = concat!("[`", "DisplayPresentInfoKHR", "`].")]
45012///
45013/// # Safety
45014/// Implementors must be valid pNext chain members for the target struct.
45015pub unsafe trait ExtendsDisplayPresentInfoKHR {}
45016/// Marker trait for structs that can appear in the pNext chain of
45017#[doc = concat!("[`", "DisplaySurfaceCreateInfoKHR", "`].")]
45018///
45019/// # Safety
45020/// Implementors must be valid pNext chain members for the target struct.
45021pub unsafe trait ExtendsDisplaySurfaceCreateInfoKHR {}
45022/// Marker trait for structs that can appear in the pNext chain of
45023#[doc = concat!("[`", "DisplaySurfaceStereoCreateInfoNV", "`].")]
45024///
45025/// # Safety
45026/// Implementors must be valid pNext chain members for the target struct.
45027pub unsafe trait ExtendsDisplaySurfaceStereoCreateInfoNV {}
45028/// Marker trait for structs that can appear in the pNext chain of
45029#[doc = concat!("[`", "DrawIndirect2InfoKHR", "`].")]
45030///
45031/// # Safety
45032/// Implementors must be valid pNext chain members for the target struct.
45033pub unsafe trait ExtendsDrawIndirect2InfoKHR {}
45034/// Marker trait for structs that can appear in the pNext chain of
45035#[doc = concat!("[`", "DrawIndirectCount2InfoKHR", "`].")]
45036///
45037/// # Safety
45038/// Implementors must be valid pNext chain members for the target struct.
45039pub unsafe trait ExtendsDrawIndirectCount2InfoKHR {}
45040/// Marker trait for structs that can appear in the pNext chain of
45041#[doc = concat!("[`", "EventCreateInfo", "`].")]
45042///
45043/// # Safety
45044/// Implementors must be valid pNext chain members for the target struct.
45045pub unsafe trait ExtendsEventCreateInfo {}
45046/// Marker trait for structs that can appear in the pNext chain of
45047#[doc = concat!("[`", "ExecutionGraphPipelineCreateInfoAMDX", "`].")]
45048///
45049/// # Safety
45050/// Implementors must be valid pNext chain members for the target struct.
45051pub unsafe trait ExtendsExecutionGraphPipelineCreateInfoAMDX {}
45052/// Marker trait for structs that can appear in the pNext chain of
45053#[doc = concat!("[`", "ExecutionGraphPipelineScratchSizeAMDX", "`].")]
45054///
45055/// # Safety
45056/// Implementors must be valid pNext chain members for the target struct.
45057pub unsafe trait ExtendsExecutionGraphPipelineScratchSizeAMDX {}
45058/// Marker trait for structs that can appear in the pNext chain of
45059#[doc = concat!("[`", "ExportFenceCreateInfo", "`].")]
45060///
45061/// # Safety
45062/// Implementors must be valid pNext chain members for the target struct.
45063pub unsafe trait ExtendsExportFenceCreateInfo {}
45064/// Marker trait for structs that can appear in the pNext chain of
45065#[doc = concat!("[`", "ExportFenceSciSyncInfoNV", "`].")]
45066///
45067/// # Safety
45068/// Implementors must be valid pNext chain members for the target struct.
45069pub unsafe trait ExtendsExportFenceSciSyncInfoNV {}
45070/// Marker trait for structs that can appear in the pNext chain of
45071#[doc = concat!("[`", "ExportFenceWin32HandleInfoKHR", "`].")]
45072///
45073/// # Safety
45074/// Implementors must be valid pNext chain members for the target struct.
45075pub unsafe trait ExtendsExportFenceWin32HandleInfoKHR {}
45076/// Marker trait for structs that can appear in the pNext chain of
45077#[doc = concat!("[`", "ExportMemoryAllocateInfo", "`].")]
45078///
45079/// # Safety
45080/// Implementors must be valid pNext chain members for the target struct.
45081pub unsafe trait ExtendsExportMemoryAllocateInfo {}
45082/// Marker trait for structs that can appear in the pNext chain of
45083#[doc = concat!("[`", "ExportMemoryAllocateInfoNV", "`].")]
45084///
45085/// # Safety
45086/// Implementors must be valid pNext chain members for the target struct.
45087pub unsafe trait ExtendsExportMemoryAllocateInfoNV {}
45088/// Marker trait for structs that can appear in the pNext chain of
45089#[doc = concat!("[`", "ExportMemorySciBufInfoNV", "`].")]
45090///
45091/// # Safety
45092/// Implementors must be valid pNext chain members for the target struct.
45093pub unsafe trait ExtendsExportMemorySciBufInfoNV {}
45094/// Marker trait for structs that can appear in the pNext chain of
45095#[doc = concat!("[`", "ExportMemoryWin32HandleInfoKHR", "`].")]
45096///
45097/// # Safety
45098/// Implementors must be valid pNext chain members for the target struct.
45099pub unsafe trait ExtendsExportMemoryWin32HandleInfoKHR {}
45100/// Marker trait for structs that can appear in the pNext chain of
45101#[doc = concat!("[`", "ExportMemoryWin32HandleInfoNV", "`].")]
45102///
45103/// # Safety
45104/// Implementors must be valid pNext chain members for the target struct.
45105pub unsafe trait ExtendsExportMemoryWin32HandleInfoNV {}
45106/// Marker trait for structs that can appear in the pNext chain of
45107#[doc = concat!("[`", "ExportMetalBufferInfoEXT", "`].")]
45108///
45109/// # Safety
45110/// Implementors must be valid pNext chain members for the target struct.
45111pub unsafe trait ExtendsExportMetalBufferInfoEXT {}
45112/// Marker trait for structs that can appear in the pNext chain of
45113#[doc = concat!("[`", "ExportMetalCommandQueueInfoEXT", "`].")]
45114///
45115/// # Safety
45116/// Implementors must be valid pNext chain members for the target struct.
45117pub unsafe trait ExtendsExportMetalCommandQueueInfoEXT {}
45118/// Marker trait for structs that can appear in the pNext chain of
45119#[doc = concat!("[`", "ExportMetalDeviceInfoEXT", "`].")]
45120///
45121/// # Safety
45122/// Implementors must be valid pNext chain members for the target struct.
45123pub unsafe trait ExtendsExportMetalDeviceInfoEXT {}
45124/// Marker trait for structs that can appear in the pNext chain of
45125#[doc = concat!("[`", "ExportMetalIOSurfaceInfoEXT", "`].")]
45126///
45127/// # Safety
45128/// Implementors must be valid pNext chain members for the target struct.
45129pub unsafe trait ExtendsExportMetalIOSurfaceInfoEXT {}
45130/// Marker trait for structs that can appear in the pNext chain of
45131#[doc = concat!("[`", "ExportMetalObjectCreateInfoEXT", "`].")]
45132///
45133/// # Safety
45134/// Implementors must be valid pNext chain members for the target struct.
45135pub unsafe trait ExtendsExportMetalObjectCreateInfoEXT {}
45136/// Marker trait for structs that can appear in the pNext chain of
45137#[doc = concat!("[`", "ExportMetalObjectsInfoEXT", "`].")]
45138///
45139/// # Safety
45140/// Implementors must be valid pNext chain members for the target struct.
45141pub unsafe trait ExtendsExportMetalObjectsInfoEXT {}
45142/// Marker trait for structs that can appear in the pNext chain of
45143#[doc = concat!("[`", "ExportMetalSharedEventInfoEXT", "`].")]
45144///
45145/// # Safety
45146/// Implementors must be valid pNext chain members for the target struct.
45147pub unsafe trait ExtendsExportMetalSharedEventInfoEXT {}
45148/// Marker trait for structs that can appear in the pNext chain of
45149#[doc = concat!("[`", "ExportMetalTextureInfoEXT", "`].")]
45150///
45151/// # Safety
45152/// Implementors must be valid pNext chain members for the target struct.
45153pub unsafe trait ExtendsExportMetalTextureInfoEXT {}
45154/// Marker trait for structs that can appear in the pNext chain of
45155#[doc = concat!("[`", "ExportSemaphoreCreateInfo", "`].")]
45156///
45157/// # Safety
45158/// Implementors must be valid pNext chain members for the target struct.
45159pub unsafe trait ExtendsExportSemaphoreCreateInfo {}
45160/// Marker trait for structs that can appear in the pNext chain of
45161#[doc = concat!("[`", "ExportSemaphoreSciSyncInfoNV", "`].")]
45162///
45163/// # Safety
45164/// Implementors must be valid pNext chain members for the target struct.
45165pub unsafe trait ExtendsExportSemaphoreSciSyncInfoNV {}
45166/// Marker trait for structs that can appear in the pNext chain of
45167#[doc = concat!("[`", "ExportSemaphoreWin32HandleInfoKHR", "`].")]
45168///
45169/// # Safety
45170/// Implementors must be valid pNext chain members for the target struct.
45171pub unsafe trait ExtendsExportSemaphoreWin32HandleInfoKHR {}
45172/// Marker trait for structs that can appear in the pNext chain of
45173#[doc = concat!("[`", "ExternalComputeQueueCreateInfoNV", "`].")]
45174///
45175/// # Safety
45176/// Implementors must be valid pNext chain members for the target struct.
45177pub unsafe trait ExtendsExternalComputeQueueCreateInfoNV {}
45178/// Marker trait for structs that can appear in the pNext chain of
45179#[doc = concat!("[`", "ExternalComputeQueueDataParamsNV", "`].")]
45180///
45181/// # Safety
45182/// Implementors must be valid pNext chain members for the target struct.
45183pub unsafe trait ExtendsExternalComputeQueueDataParamsNV {}
45184/// Marker trait for structs that can appear in the pNext chain of
45185#[doc = concat!("[`", "ExternalComputeQueueDeviceCreateInfoNV", "`].")]
45186///
45187/// # Safety
45188/// Implementors must be valid pNext chain members for the target struct.
45189pub unsafe trait ExtendsExternalComputeQueueDeviceCreateInfoNV {}
45190/// Marker trait for structs that can appear in the pNext chain of
45191#[doc = concat!("[`", "ExternalFormatANDROID", "`].")]
45192///
45193/// # Safety
45194/// Implementors must be valid pNext chain members for the target struct.
45195pub unsafe trait ExtendsExternalFormatANDROID {}
45196/// Marker trait for structs that can appear in the pNext chain of
45197#[doc = concat!("[`", "ExternalFormatOHOS", "`].")]
45198///
45199/// # Safety
45200/// Implementors must be valid pNext chain members for the target struct.
45201pub unsafe trait ExtendsExternalFormatOHOS {}
45202/// Marker trait for structs that can appear in the pNext chain of
45203#[doc = concat!("[`", "ExternalFormatQNX", "`].")]
45204///
45205/// # Safety
45206/// Implementors must be valid pNext chain members for the target struct.
45207pub unsafe trait ExtendsExternalFormatQNX {}
45208/// Marker trait for structs that can appear in the pNext chain of
45209#[doc = concat!("[`", "ExternalMemoryAcquireUnmodifiedEXT", "`].")]
45210///
45211/// # Safety
45212/// Implementors must be valid pNext chain members for the target struct.
45213pub unsafe trait ExtendsExternalMemoryAcquireUnmodifiedEXT {}
45214/// Marker trait for structs that can appear in the pNext chain of
45215#[doc = concat!("[`", "ExternalMemoryBufferCreateInfo", "`].")]
45216///
45217/// # Safety
45218/// Implementors must be valid pNext chain members for the target struct.
45219pub unsafe trait ExtendsExternalMemoryBufferCreateInfo {}
45220/// Marker trait for structs that can appear in the pNext chain of
45221#[doc = concat!("[`", "ExternalMemoryImageCreateInfo", "`].")]
45222///
45223/// # Safety
45224/// Implementors must be valid pNext chain members for the target struct.
45225pub unsafe trait ExtendsExternalMemoryImageCreateInfo {}
45226/// Marker trait for structs that can appear in the pNext chain of
45227#[doc = concat!("[`", "ExternalMemoryImageCreateInfoNV", "`].")]
45228///
45229/// # Safety
45230/// Implementors must be valid pNext chain members for the target struct.
45231pub unsafe trait ExtendsExternalMemoryImageCreateInfoNV {}
45232/// Marker trait for structs that can appear in the pNext chain of
45233#[doc = concat!("[`", "ExternalMemoryTensorCreateInfoARM", "`].")]
45234///
45235/// # Safety
45236/// Implementors must be valid pNext chain members for the target struct.
45237pub unsafe trait ExtendsExternalMemoryTensorCreateInfoARM {}
45238/// Marker trait for structs that can appear in the pNext chain of
45239#[doc = concat!("[`", "ExternalTensorPropertiesARM", "`].")]
45240///
45241/// # Safety
45242/// Implementors must be valid pNext chain members for the target struct.
45243pub unsafe trait ExtendsExternalTensorPropertiesARM {}
45244/// Marker trait for structs that can appear in the pNext chain of
45245#[doc = concat!("[`", "FaultCallbackInfo", "`].")]
45246///
45247/// # Safety
45248/// Implementors must be valid pNext chain members for the target struct.
45249pub unsafe trait ExtendsFaultCallbackInfo {}
45250/// Marker trait for structs that can appear in the pNext chain of
45251#[doc = concat!("[`", "FenceCreateInfo", "`].")]
45252///
45253/// # Safety
45254/// Implementors must be valid pNext chain members for the target struct.
45255pub unsafe trait ExtendsFenceCreateInfo {}
45256/// Marker trait for structs that can appear in the pNext chain of
45257#[doc = concat!("[`", "FenceGetFdInfoKHR", "`].")]
45258///
45259/// # Safety
45260/// Implementors must be valid pNext chain members for the target struct.
45261pub unsafe trait ExtendsFenceGetFdInfoKHR {}
45262/// Marker trait for structs that can appear in the pNext chain of
45263#[doc = concat!("[`", "FenceGetSciSyncInfoNV", "`].")]
45264///
45265/// # Safety
45266/// Implementors must be valid pNext chain members for the target struct.
45267pub unsafe trait ExtendsFenceGetSciSyncInfoNV {}
45268/// Marker trait for structs that can appear in the pNext chain of
45269#[doc = concat!("[`", "FenceGetWin32HandleInfoKHR", "`].")]
45270///
45271/// # Safety
45272/// Implementors must be valid pNext chain members for the target struct.
45273pub unsafe trait ExtendsFenceGetWin32HandleInfoKHR {}
45274/// Marker trait for structs that can appear in the pNext chain of
45275#[doc = concat!("[`", "FormatProperties2", "`].")]
45276///
45277/// # Safety
45278/// Implementors must be valid pNext chain members for the target struct.
45279pub unsafe trait ExtendsFormatProperties2 {}
45280/// Marker trait for structs that can appear in the pNext chain of
45281#[doc = concat!("[`", "FragmentShadingRateAttachmentInfoKHR", "`].")]
45282///
45283/// # Safety
45284/// Implementors must be valid pNext chain members for the target struct.
45285pub unsafe trait ExtendsFragmentShadingRateAttachmentInfoKHR {}
45286/// Marker trait for structs that can appear in the pNext chain of
45287#[doc = concat!("[`", "FrameBoundaryEXT", "`].")]
45288///
45289/// # Safety
45290/// Implementors must be valid pNext chain members for the target struct.
45291pub unsafe trait ExtendsFrameBoundaryEXT {}
45292/// Marker trait for structs that can appear in the pNext chain of
45293#[doc = concat!("[`", "FrameBoundaryTensorsARM", "`].")]
45294///
45295/// # Safety
45296/// Implementors must be valid pNext chain members for the target struct.
45297pub unsafe trait ExtendsFrameBoundaryTensorsARM {}
45298/// Marker trait for structs that can appear in the pNext chain of
45299#[doc = concat!("[`", "FramebufferAttachmentImageInfo", "`].")]
45300///
45301/// # Safety
45302/// Implementors must be valid pNext chain members for the target struct.
45303pub unsafe trait ExtendsFramebufferAttachmentImageInfo {}
45304/// Marker trait for structs that can appear in the pNext chain of
45305#[doc = concat!("[`", "FramebufferAttachmentsCreateInfo", "`].")]
45306///
45307/// # Safety
45308/// Implementors must be valid pNext chain members for the target struct.
45309pub unsafe trait ExtendsFramebufferAttachmentsCreateInfo {}
45310/// Marker trait for structs that can appear in the pNext chain of
45311#[doc = concat!("[`", "FramebufferCreateInfo", "`].")]
45312///
45313/// # Safety
45314/// Implementors must be valid pNext chain members for the target struct.
45315pub unsafe trait ExtendsFramebufferCreateInfo {}
45316/// Marker trait for structs that can appear in the pNext chain of
45317#[doc = concat!("[`", "GeneratedCommandsInfoEXT", "`].")]
45318///
45319/// # Safety
45320/// Implementors must be valid pNext chain members for the target struct.
45321pub unsafe trait ExtendsGeneratedCommandsInfoEXT {}
45322/// Marker trait for structs that can appear in the pNext chain of
45323#[doc = concat!("[`", "GeneratedCommandsInfoNV", "`].")]
45324///
45325/// # Safety
45326/// Implementors must be valid pNext chain members for the target struct.
45327pub unsafe trait ExtendsGeneratedCommandsInfoNV {}
45328/// Marker trait for structs that can appear in the pNext chain of
45329#[doc = concat!("[`", "GeneratedCommandsMemoryRequirementsInfoEXT", "`].")]
45330///
45331/// # Safety
45332/// Implementors must be valid pNext chain members for the target struct.
45333pub unsafe trait ExtendsGeneratedCommandsMemoryRequirementsInfoEXT {}
45334/// Marker trait for structs that can appear in the pNext chain of
45335#[doc = concat!("[`", "GeneratedCommandsMemoryRequirementsInfoNV", "`].")]
45336///
45337/// # Safety
45338/// Implementors must be valid pNext chain members for the target struct.
45339pub unsafe trait ExtendsGeneratedCommandsMemoryRequirementsInfoNV {}
45340/// Marker trait for structs that can appear in the pNext chain of
45341#[doc = concat!("[`", "GeneratedCommandsPipelineInfoEXT", "`].")]
45342///
45343/// # Safety
45344/// Implementors must be valid pNext chain members for the target struct.
45345pub unsafe trait ExtendsGeneratedCommandsPipelineInfoEXT {}
45346/// Marker trait for structs that can appear in the pNext chain of
45347#[doc = concat!("[`", "GeneratedCommandsShaderInfoEXT", "`].")]
45348///
45349/// # Safety
45350/// Implementors must be valid pNext chain members for the target struct.
45351pub unsafe trait ExtendsGeneratedCommandsShaderInfoEXT {}
45352/// Marker trait for structs that can appear in the pNext chain of
45353#[doc = concat!("[`", "GeometryAABBNV", "`].")]
45354///
45355/// # Safety
45356/// Implementors must be valid pNext chain members for the target struct.
45357pub unsafe trait ExtendsGeometryAABBNV {}
45358/// Marker trait for structs that can appear in the pNext chain of
45359#[doc = concat!("[`", "GeometryNV", "`].")]
45360///
45361/// # Safety
45362/// Implementors must be valid pNext chain members for the target struct.
45363pub unsafe trait ExtendsGeometryNV {}
45364/// Marker trait for structs that can appear in the pNext chain of
45365#[doc = concat!("[`", "GeometryTrianglesNV", "`].")]
45366///
45367/// # Safety
45368/// Implementors must be valid pNext chain members for the target struct.
45369pub unsafe trait ExtendsGeometryTrianglesNV {}
45370/// Marker trait for structs that can appear in the pNext chain of
45371#[doc = concat!("[`", "GetLatencyMarkerInfoNV", "`].")]
45372///
45373/// # Safety
45374/// Implementors must be valid pNext chain members for the target struct.
45375pub unsafe trait ExtendsGetLatencyMarkerInfoNV {}
45376/// Marker trait for structs that can appear in the pNext chain of
45377#[doc = concat!("[`", "GraphicsPipelineCreateInfo", "`].")]
45378///
45379/// # Safety
45380/// Implementors must be valid pNext chain members for the target struct.
45381pub unsafe trait ExtendsGraphicsPipelineCreateInfo {}
45382/// Marker trait for structs that can appear in the pNext chain of
45383#[doc = concat!("[`", "GraphicsPipelineLibraryCreateInfoEXT", "`].")]
45384///
45385/// # Safety
45386/// Implementors must be valid pNext chain members for the target struct.
45387pub unsafe trait ExtendsGraphicsPipelineLibraryCreateInfoEXT {}
45388/// Marker trait for structs that can appear in the pNext chain of
45389#[doc = concat!("[`", "GraphicsPipelineShaderGroupsCreateInfoNV", "`].")]
45390///
45391/// # Safety
45392/// Implementors must be valid pNext chain members for the target struct.
45393pub unsafe trait ExtendsGraphicsPipelineShaderGroupsCreateInfoNV {}
45394/// Marker trait for structs that can appear in the pNext chain of
45395#[doc = concat!("[`", "GraphicsShaderGroupCreateInfoNV", "`].")]
45396///
45397/// # Safety
45398/// Implementors must be valid pNext chain members for the target struct.
45399pub unsafe trait ExtendsGraphicsShaderGroupCreateInfoNV {}
45400/// Marker trait for structs that can appear in the pNext chain of
45401#[doc = concat!("[`", "HdrMetadataEXT", "`].")]
45402///
45403/// # Safety
45404/// Implementors must be valid pNext chain members for the target struct.
45405pub unsafe trait ExtendsHdrMetadataEXT {}
45406/// Marker trait for structs that can appear in the pNext chain of
45407#[doc = concat!("[`", "HdrVividDynamicMetadataHUAWEI", "`].")]
45408///
45409/// # Safety
45410/// Implementors must be valid pNext chain members for the target struct.
45411pub unsafe trait ExtendsHdrVividDynamicMetadataHUAWEI {}
45412/// Marker trait for structs that can appear in the pNext chain of
45413#[doc = concat!("[`", "HeadlessSurfaceCreateInfoEXT", "`].")]
45414///
45415/// # Safety
45416/// Implementors must be valid pNext chain members for the target struct.
45417pub unsafe trait ExtendsHeadlessSurfaceCreateInfoEXT {}
45418/// Marker trait for structs that can appear in the pNext chain of
45419#[doc = concat!("[`", "HostImageLayoutTransitionInfo", "`].")]
45420///
45421/// # Safety
45422/// Implementors must be valid pNext chain members for the target struct.
45423pub unsafe trait ExtendsHostImageLayoutTransitionInfo {}
45424/// Marker trait for structs that can appear in the pNext chain of
45425#[doc = concat!("[`", "IOSSurfaceCreateInfoMVK", "`].")]
45426///
45427/// # Safety
45428/// Implementors must be valid pNext chain members for the target struct.
45429pub unsafe trait ExtendsIOSSurfaceCreateInfoMVK {}
45430/// Marker trait for structs that can appear in the pNext chain of
45431#[doc = concat!("[`", "ImageAlignmentControlCreateInfoMESA", "`].")]
45432///
45433/// # Safety
45434/// Implementors must be valid pNext chain members for the target struct.
45435pub unsafe trait ExtendsImageAlignmentControlCreateInfoMESA {}
45436/// Marker trait for structs that can appear in the pNext chain of
45437#[doc = concat!("[`", "ImageBlit2", "`].")]
45438///
45439/// # Safety
45440/// Implementors must be valid pNext chain members for the target struct.
45441pub unsafe trait ExtendsImageBlit2 {}
45442/// Marker trait for structs that can appear in the pNext chain of
45443#[doc = concat!("[`", "ImageCaptureDescriptorDataInfoEXT", "`].")]
45444///
45445/// # Safety
45446/// Implementors must be valid pNext chain members for the target struct.
45447pub unsafe trait ExtendsImageCaptureDescriptorDataInfoEXT {}
45448/// Marker trait for structs that can appear in the pNext chain of
45449#[doc = concat!("[`", "ImageCompressionControlEXT", "`].")]
45450///
45451/// # Safety
45452/// Implementors must be valid pNext chain members for the target struct.
45453pub unsafe trait ExtendsImageCompressionControlEXT {}
45454/// Marker trait for structs that can appear in the pNext chain of
45455#[doc = concat!("[`", "ImageConstraintsInfoFUCHSIA", "`].")]
45456///
45457/// # Safety
45458/// Implementors must be valid pNext chain members for the target struct.
45459pub unsafe trait ExtendsImageConstraintsInfoFUCHSIA {}
45460/// Marker trait for structs that can appear in the pNext chain of
45461#[doc = concat!("[`", "ImageCopy2", "`].")]
45462///
45463/// # Safety
45464/// Implementors must be valid pNext chain members for the target struct.
45465pub unsafe trait ExtendsImageCopy2 {}
45466/// Marker trait for structs that can appear in the pNext chain of
45467#[doc = concat!("[`", "ImageCreateInfo", "`].")]
45468///
45469/// # Safety
45470/// Implementors must be valid pNext chain members for the target struct.
45471pub unsafe trait ExtendsImageCreateInfo {}
45472/// Marker trait for structs that can appear in the pNext chain of
45473#[doc = concat!("[`", "ImageDescriptorInfoEXT", "`].")]
45474///
45475/// # Safety
45476/// Implementors must be valid pNext chain members for the target struct.
45477pub unsafe trait ExtendsImageDescriptorInfoEXT {}
45478/// Marker trait for structs that can appear in the pNext chain of
45479#[doc = concat!("[`", "ImageDrmFormatModifierExplicitCreateInfoEXT", "`].")]
45480///
45481/// # Safety
45482/// Implementors must be valid pNext chain members for the target struct.
45483pub unsafe trait ExtendsImageDrmFormatModifierExplicitCreateInfoEXT {}
45484/// Marker trait for structs that can appear in the pNext chain of
45485#[doc = concat!("[`", "ImageDrmFormatModifierListCreateInfoEXT", "`].")]
45486///
45487/// # Safety
45488/// Implementors must be valid pNext chain members for the target struct.
45489pub unsafe trait ExtendsImageDrmFormatModifierListCreateInfoEXT {}
45490/// Marker trait for structs that can appear in the pNext chain of
45491#[doc = concat!("[`", "ImageFormatConstraintsInfoFUCHSIA", "`].")]
45492///
45493/// # Safety
45494/// Implementors must be valid pNext chain members for the target struct.
45495pub unsafe trait ExtendsImageFormatConstraintsInfoFUCHSIA {}
45496/// Marker trait for structs that can appear in the pNext chain of
45497#[doc = concat!("[`", "ImageFormatListCreateInfo", "`].")]
45498///
45499/// # Safety
45500/// Implementors must be valid pNext chain members for the target struct.
45501pub unsafe trait ExtendsImageFormatListCreateInfo {}
45502/// Marker trait for structs that can appear in the pNext chain of
45503#[doc = concat!("[`", "ImageFormatProperties2", "`].")]
45504///
45505/// # Safety
45506/// Implementors must be valid pNext chain members for the target struct.
45507pub unsafe trait ExtendsImageFormatProperties2 {}
45508/// Marker trait for structs that can appear in the pNext chain of
45509#[doc = concat!("[`", "ImageMemoryBarrier", "`].")]
45510///
45511/// # Safety
45512/// Implementors must be valid pNext chain members for the target struct.
45513pub unsafe trait ExtendsImageMemoryBarrier {}
45514/// Marker trait for structs that can appear in the pNext chain of
45515#[doc = concat!("[`", "ImageMemoryBarrier2", "`].")]
45516///
45517/// # Safety
45518/// Implementors must be valid pNext chain members for the target struct.
45519pub unsafe trait ExtendsImageMemoryBarrier2 {}
45520/// Marker trait for structs that can appear in the pNext chain of
45521#[doc = concat!("[`", "ImageMemoryRequirementsInfo2", "`].")]
45522///
45523/// # Safety
45524/// Implementors must be valid pNext chain members for the target struct.
45525pub unsafe trait ExtendsImageMemoryRequirementsInfo2 {}
45526/// Marker trait for structs that can appear in the pNext chain of
45527#[doc = concat!("[`", "ImagePipeSurfaceCreateInfoFUCHSIA", "`].")]
45528///
45529/// # Safety
45530/// Implementors must be valid pNext chain members for the target struct.
45531pub unsafe trait ExtendsImagePipeSurfaceCreateInfoFUCHSIA {}
45532/// Marker trait for structs that can appear in the pNext chain of
45533#[doc = concat!("[`", "ImagePlaneMemoryRequirementsInfo", "`].")]
45534///
45535/// # Safety
45536/// Implementors must be valid pNext chain members for the target struct.
45537pub unsafe trait ExtendsImagePlaneMemoryRequirementsInfo {}
45538/// Marker trait for structs that can appear in the pNext chain of
45539#[doc = concat!("[`", "ImageResolve2", "`].")]
45540///
45541/// # Safety
45542/// Implementors must be valid pNext chain members for the target struct.
45543pub unsafe trait ExtendsImageResolve2 {}
45544/// Marker trait for structs that can appear in the pNext chain of
45545#[doc = concat!("[`", "ImageSparseMemoryRequirementsInfo2", "`].")]
45546///
45547/// # Safety
45548/// Implementors must be valid pNext chain members for the target struct.
45549pub unsafe trait ExtendsImageSparseMemoryRequirementsInfo2 {}
45550/// Marker trait for structs that can appear in the pNext chain of
45551#[doc = concat!("[`", "ImageStencilUsageCreateInfo", "`].")]
45552///
45553/// # Safety
45554/// Implementors must be valid pNext chain members for the target struct.
45555pub unsafe trait ExtendsImageStencilUsageCreateInfo {}
45556/// Marker trait for structs that can appear in the pNext chain of
45557#[doc = concat!("[`", "ImageSubresource2", "`].")]
45558///
45559/// # Safety
45560/// Implementors must be valid pNext chain members for the target struct.
45561pub unsafe trait ExtendsImageSubresource2 {}
45562/// Marker trait for structs that can appear in the pNext chain of
45563#[doc = concat!("[`", "ImageSwapchainCreateInfoKHR", "`].")]
45564///
45565/// # Safety
45566/// Implementors must be valid pNext chain members for the target struct.
45567pub unsafe trait ExtendsImageSwapchainCreateInfoKHR {}
45568/// Marker trait for structs that can appear in the pNext chain of
45569#[doc = concat!("[`", "ImageToMemoryCopy", "`].")]
45570///
45571/// # Safety
45572/// Implementors must be valid pNext chain members for the target struct.
45573pub unsafe trait ExtendsImageToMemoryCopy {}
45574/// Marker trait for structs that can appear in the pNext chain of
45575#[doc = concat!("[`", "ImageViewASTCDecodeModeEXT", "`].")]
45576///
45577/// # Safety
45578/// Implementors must be valid pNext chain members for the target struct.
45579pub unsafe trait ExtendsImageViewASTCDecodeModeEXT {}
45580/// Marker trait for structs that can appear in the pNext chain of
45581#[doc = concat!("[`", "ImageViewCaptureDescriptorDataInfoEXT", "`].")]
45582///
45583/// # Safety
45584/// Implementors must be valid pNext chain members for the target struct.
45585pub unsafe trait ExtendsImageViewCaptureDescriptorDataInfoEXT {}
45586/// Marker trait for structs that can appear in the pNext chain of
45587#[doc = concat!("[`", "ImageViewCreateInfo", "`].")]
45588///
45589/// # Safety
45590/// Implementors must be valid pNext chain members for the target struct.
45591pub unsafe trait ExtendsImageViewCreateInfo {}
45592/// Marker trait for structs that can appear in the pNext chain of
45593#[doc = concat!("[`", "ImageViewHandleInfoNVX", "`].")]
45594///
45595/// # Safety
45596/// Implementors must be valid pNext chain members for the target struct.
45597pub unsafe trait ExtendsImageViewHandleInfoNVX {}
45598/// Marker trait for structs that can appear in the pNext chain of
45599#[doc = concat!("[`", "ImageViewMinLodCreateInfoEXT", "`].")]
45600///
45601/// # Safety
45602/// Implementors must be valid pNext chain members for the target struct.
45603pub unsafe trait ExtendsImageViewMinLodCreateInfoEXT {}
45604/// Marker trait for structs that can appear in the pNext chain of
45605#[doc = concat!("[`", "ImageViewSampleWeightCreateInfoQCOM", "`].")]
45606///
45607/// # Safety
45608/// Implementors must be valid pNext chain members for the target struct.
45609pub unsafe trait ExtendsImageViewSampleWeightCreateInfoQCOM {}
45610/// Marker trait for structs that can appear in the pNext chain of
45611#[doc = concat!("[`", "ImageViewSlicedCreateInfoEXT", "`].")]
45612///
45613/// # Safety
45614/// Implementors must be valid pNext chain members for the target struct.
45615pub unsafe trait ExtendsImageViewSlicedCreateInfoEXT {}
45616/// Marker trait for structs that can appear in the pNext chain of
45617#[doc = concat!("[`", "ImageViewUsageCreateInfo", "`].")]
45618///
45619/// # Safety
45620/// Implementors must be valid pNext chain members for the target struct.
45621pub unsafe trait ExtendsImageViewUsageCreateInfo {}
45622/// Marker trait for structs that can appear in the pNext chain of
45623#[doc = concat!("[`", "ImportAndroidHardwareBufferInfoANDROID", "`].")]
45624///
45625/// # Safety
45626/// Implementors must be valid pNext chain members for the target struct.
45627pub unsafe trait ExtendsImportAndroidHardwareBufferInfoANDROID {}
45628/// Marker trait for structs that can appear in the pNext chain of
45629#[doc = concat!("[`", "ImportFenceFdInfoKHR", "`].")]
45630///
45631/// # Safety
45632/// Implementors must be valid pNext chain members for the target struct.
45633pub unsafe trait ExtendsImportFenceFdInfoKHR {}
45634/// Marker trait for structs that can appear in the pNext chain of
45635#[doc = concat!("[`", "ImportFenceSciSyncInfoNV", "`].")]
45636///
45637/// # Safety
45638/// Implementors must be valid pNext chain members for the target struct.
45639pub unsafe trait ExtendsImportFenceSciSyncInfoNV {}
45640/// Marker trait for structs that can appear in the pNext chain of
45641#[doc = concat!("[`", "ImportFenceWin32HandleInfoKHR", "`].")]
45642///
45643/// # Safety
45644/// Implementors must be valid pNext chain members for the target struct.
45645pub unsafe trait ExtendsImportFenceWin32HandleInfoKHR {}
45646/// Marker trait for structs that can appear in the pNext chain of
45647#[doc = concat!("[`", "ImportMemoryBufferCollectionFUCHSIA", "`].")]
45648///
45649/// # Safety
45650/// Implementors must be valid pNext chain members for the target struct.
45651pub unsafe trait ExtendsImportMemoryBufferCollectionFUCHSIA {}
45652/// Marker trait for structs that can appear in the pNext chain of
45653#[doc = concat!("[`", "ImportMemoryFdInfoKHR", "`].")]
45654///
45655/// # Safety
45656/// Implementors must be valid pNext chain members for the target struct.
45657pub unsafe trait ExtendsImportMemoryFdInfoKHR {}
45658/// Marker trait for structs that can appear in the pNext chain of
45659#[doc = concat!("[`", "ImportMemoryHostPointerInfoEXT", "`].")]
45660///
45661/// # Safety
45662/// Implementors must be valid pNext chain members for the target struct.
45663pub unsafe trait ExtendsImportMemoryHostPointerInfoEXT {}
45664/// Marker trait for structs that can appear in the pNext chain of
45665#[doc = concat!("[`", "ImportMemoryMetalHandleInfoEXT", "`].")]
45666///
45667/// # Safety
45668/// Implementors must be valid pNext chain members for the target struct.
45669pub unsafe trait ExtendsImportMemoryMetalHandleInfoEXT {}
45670/// Marker trait for structs that can appear in the pNext chain of
45671#[doc = concat!("[`", "ImportMemorySciBufInfoNV", "`].")]
45672///
45673/// # Safety
45674/// Implementors must be valid pNext chain members for the target struct.
45675pub unsafe trait ExtendsImportMemorySciBufInfoNV {}
45676/// Marker trait for structs that can appear in the pNext chain of
45677#[doc = concat!("[`", "ImportMemoryWin32HandleInfoKHR", "`].")]
45678///
45679/// # Safety
45680/// Implementors must be valid pNext chain members for the target struct.
45681pub unsafe trait ExtendsImportMemoryWin32HandleInfoKHR {}
45682/// Marker trait for structs that can appear in the pNext chain of
45683#[doc = concat!("[`", "ImportMemoryWin32HandleInfoNV", "`].")]
45684///
45685/// # Safety
45686/// Implementors must be valid pNext chain members for the target struct.
45687pub unsafe trait ExtendsImportMemoryWin32HandleInfoNV {}
45688/// Marker trait for structs that can appear in the pNext chain of
45689#[doc = concat!("[`", "ImportMemoryZirconHandleInfoFUCHSIA", "`].")]
45690///
45691/// # Safety
45692/// Implementors must be valid pNext chain members for the target struct.
45693pub unsafe trait ExtendsImportMemoryZirconHandleInfoFUCHSIA {}
45694/// Marker trait for structs that can appear in the pNext chain of
45695#[doc = concat!("[`", "ImportMetalBufferInfoEXT", "`].")]
45696///
45697/// # Safety
45698/// Implementors must be valid pNext chain members for the target struct.
45699pub unsafe trait ExtendsImportMetalBufferInfoEXT {}
45700/// Marker trait for structs that can appear in the pNext chain of
45701#[doc = concat!("[`", "ImportMetalIOSurfaceInfoEXT", "`].")]
45702///
45703/// # Safety
45704/// Implementors must be valid pNext chain members for the target struct.
45705pub unsafe trait ExtendsImportMetalIOSurfaceInfoEXT {}
45706/// Marker trait for structs that can appear in the pNext chain of
45707#[doc = concat!("[`", "ImportMetalSharedEventInfoEXT", "`].")]
45708///
45709/// # Safety
45710/// Implementors must be valid pNext chain members for the target struct.
45711pub unsafe trait ExtendsImportMetalSharedEventInfoEXT {}
45712/// Marker trait for structs that can appear in the pNext chain of
45713#[doc = concat!("[`", "ImportMetalTextureInfoEXT", "`].")]
45714///
45715/// # Safety
45716/// Implementors must be valid pNext chain members for the target struct.
45717pub unsafe trait ExtendsImportMetalTextureInfoEXT {}
45718/// Marker trait for structs that can appear in the pNext chain of
45719#[doc = concat!("[`", "ImportNativeBufferInfoOHOS", "`].")]
45720///
45721/// # Safety
45722/// Implementors must be valid pNext chain members for the target struct.
45723pub unsafe trait ExtendsImportNativeBufferInfoOHOS {}
45724/// Marker trait for structs that can appear in the pNext chain of
45725#[doc = concat!("[`", "ImportScreenBufferInfoQNX", "`].")]
45726///
45727/// # Safety
45728/// Implementors must be valid pNext chain members for the target struct.
45729pub unsafe trait ExtendsImportScreenBufferInfoQNX {}
45730/// Marker trait for structs that can appear in the pNext chain of
45731#[doc = concat!("[`", "ImportSemaphoreFdInfoKHR", "`].")]
45732///
45733/// # Safety
45734/// Implementors must be valid pNext chain members for the target struct.
45735pub unsafe trait ExtendsImportSemaphoreFdInfoKHR {}
45736/// Marker trait for structs that can appear in the pNext chain of
45737#[doc = concat!("[`", "ImportSemaphoreSciSyncInfoNV", "`].")]
45738///
45739/// # Safety
45740/// Implementors must be valid pNext chain members for the target struct.
45741pub unsafe trait ExtendsImportSemaphoreSciSyncInfoNV {}
45742/// Marker trait for structs that can appear in the pNext chain of
45743#[doc = concat!("[`", "ImportSemaphoreWin32HandleInfoKHR", "`].")]
45744///
45745/// # Safety
45746/// Implementors must be valid pNext chain members for the target struct.
45747pub unsafe trait ExtendsImportSemaphoreWin32HandleInfoKHR {}
45748/// Marker trait for structs that can appear in the pNext chain of
45749#[doc = concat!("[`", "ImportSemaphoreZirconHandleInfoFUCHSIA", "`].")]
45750///
45751/// # Safety
45752/// Implementors must be valid pNext chain members for the target struct.
45753pub unsafe trait ExtendsImportSemaphoreZirconHandleInfoFUCHSIA {}
45754/// Marker trait for structs that can appear in the pNext chain of
45755#[doc = concat!("[`", "IndirectCommandsLayoutCreateInfoEXT", "`].")]
45756///
45757/// # Safety
45758/// Implementors must be valid pNext chain members for the target struct.
45759pub unsafe trait ExtendsIndirectCommandsLayoutCreateInfoEXT {}
45760/// Marker trait for structs that can appear in the pNext chain of
45761#[doc = concat!("[`", "IndirectCommandsLayoutCreateInfoNV", "`].")]
45762///
45763/// # Safety
45764/// Implementors must be valid pNext chain members for the target struct.
45765pub unsafe trait ExtendsIndirectCommandsLayoutCreateInfoNV {}
45766/// Marker trait for structs that can appear in the pNext chain of
45767#[doc = concat!("[`", "IndirectCommandsLayoutPushDataTokenNV", "`].")]
45768///
45769/// # Safety
45770/// Implementors must be valid pNext chain members for the target struct.
45771pub unsafe trait ExtendsIndirectCommandsLayoutPushDataTokenNV {}
45772/// Marker trait for structs that can appear in the pNext chain of
45773#[doc = concat!("[`", "IndirectCommandsLayoutTokenEXT", "`].")]
45774///
45775/// # Safety
45776/// Implementors must be valid pNext chain members for the target struct.
45777pub unsafe trait ExtendsIndirectCommandsLayoutTokenEXT {}
45778/// Marker trait for structs that can appear in the pNext chain of
45779#[doc = concat!("[`", "IndirectCommandsLayoutTokenNV", "`].")]
45780///
45781/// # Safety
45782/// Implementors must be valid pNext chain members for the target struct.
45783pub unsafe trait ExtendsIndirectCommandsLayoutTokenNV {}
45784/// Marker trait for structs that can appear in the pNext chain of
45785#[doc = concat!("[`", "IndirectExecutionSetCreateInfoEXT", "`].")]
45786///
45787/// # Safety
45788/// Implementors must be valid pNext chain members for the target struct.
45789pub unsafe trait ExtendsIndirectExecutionSetCreateInfoEXT {}
45790/// Marker trait for structs that can appear in the pNext chain of
45791#[doc = concat!("[`", "IndirectExecutionSetPipelineInfoEXT", "`].")]
45792///
45793/// # Safety
45794/// Implementors must be valid pNext chain members for the target struct.
45795pub unsafe trait ExtendsIndirectExecutionSetPipelineInfoEXT {}
45796/// Marker trait for structs that can appear in the pNext chain of
45797#[doc = concat!("[`", "IndirectExecutionSetShaderInfoEXT", "`].")]
45798///
45799/// # Safety
45800/// Implementors must be valid pNext chain members for the target struct.
45801pub unsafe trait ExtendsIndirectExecutionSetShaderInfoEXT {}
45802/// Marker trait for structs that can appear in the pNext chain of
45803#[doc = concat!("[`", "IndirectExecutionSetShaderLayoutInfoEXT", "`].")]
45804///
45805/// # Safety
45806/// Implementors must be valid pNext chain members for the target struct.
45807pub unsafe trait ExtendsIndirectExecutionSetShaderLayoutInfoEXT {}
45808/// Marker trait for structs that can appear in the pNext chain of
45809#[doc = concat!("[`", "InitializePerformanceApiInfoINTEL", "`].")]
45810///
45811/// # Safety
45812/// Implementors must be valid pNext chain members for the target struct.
45813pub unsafe trait ExtendsInitializePerformanceApiInfoINTEL {}
45814/// Marker trait for structs that can appear in the pNext chain of
45815#[doc = concat!("[`", "InstanceCreateInfo", "`].")]
45816///
45817/// # Safety
45818/// Implementors must be valid pNext chain members for the target struct.
45819pub unsafe trait ExtendsInstanceCreateInfo {}
45820/// Marker trait for structs that can appear in the pNext chain of
45821#[doc = concat!("[`", "LatencySleepInfoNV", "`].")]
45822///
45823/// # Safety
45824/// Implementors must be valid pNext chain members for the target struct.
45825pub unsafe trait ExtendsLatencySleepInfoNV {}
45826/// Marker trait for structs that can appear in the pNext chain of
45827#[doc = concat!("[`", "LatencySleepModeInfoNV", "`].")]
45828///
45829/// # Safety
45830/// Implementors must be valid pNext chain members for the target struct.
45831pub unsafe trait ExtendsLatencySleepModeInfoNV {}
45832/// Marker trait for structs that can appear in the pNext chain of
45833#[doc = concat!("[`", "LatencySubmissionPresentIdNV", "`].")]
45834///
45835/// # Safety
45836/// Implementors must be valid pNext chain members for the target struct.
45837pub unsafe trait ExtendsLatencySubmissionPresentIdNV {}
45838/// Marker trait for structs that can appear in the pNext chain of
45839#[doc = concat!("[`", "LatencySurfaceCapabilitiesNV", "`].")]
45840///
45841/// # Safety
45842/// Implementors must be valid pNext chain members for the target struct.
45843pub unsafe trait ExtendsLatencySurfaceCapabilitiesNV {}
45844/// Marker trait for structs that can appear in the pNext chain of
45845#[doc = concat!("[`", "LayerSettingsCreateInfoEXT", "`].")]
45846///
45847/// # Safety
45848/// Implementors must be valid pNext chain members for the target struct.
45849pub unsafe trait ExtendsLayerSettingsCreateInfoEXT {}
45850/// Marker trait for structs that can appear in the pNext chain of
45851#[doc = concat!("[`", "MacOSSurfaceCreateInfoMVK", "`].")]
45852///
45853/// # Safety
45854/// Implementors must be valid pNext chain members for the target struct.
45855pub unsafe trait ExtendsMacOSSurfaceCreateInfoMVK {}
45856/// Marker trait for structs that can appear in the pNext chain of
45857#[doc = concat!("[`", "MappedMemoryRange", "`].")]
45858///
45859/// # Safety
45860/// Implementors must be valid pNext chain members for the target struct.
45861pub unsafe trait ExtendsMappedMemoryRange {}
45862/// Marker trait for structs that can appear in the pNext chain of
45863#[doc = concat!("[`", "MemoryAllocateFlagsInfo", "`].")]
45864///
45865/// # Safety
45866/// Implementors must be valid pNext chain members for the target struct.
45867pub unsafe trait ExtendsMemoryAllocateFlagsInfo {}
45868/// Marker trait for structs that can appear in the pNext chain of
45869#[doc = concat!("[`", "MemoryAllocateInfo", "`].")]
45870///
45871/// # Safety
45872/// Implementors must be valid pNext chain members for the target struct.
45873pub unsafe trait ExtendsMemoryAllocateInfo {}
45874/// Marker trait for structs that can appear in the pNext chain of
45875#[doc = concat!("[`", "MemoryBarrier", "`].")]
45876///
45877/// # Safety
45878/// Implementors must be valid pNext chain members for the target struct.
45879pub unsafe trait ExtendsMemoryBarrier {}
45880/// Marker trait for structs that can appear in the pNext chain of
45881#[doc = concat!("[`", "MemoryBarrier2", "`].")]
45882///
45883/// # Safety
45884/// Implementors must be valid pNext chain members for the target struct.
45885pub unsafe trait ExtendsMemoryBarrier2 {}
45886/// Marker trait for structs that can appear in the pNext chain of
45887#[doc = concat!("[`", "MemoryBarrierAccessFlags3KHR", "`].")]
45888///
45889/// # Safety
45890/// Implementors must be valid pNext chain members for the target struct.
45891pub unsafe trait ExtendsMemoryBarrierAccessFlags3KHR {}
45892/// Marker trait for structs that can appear in the pNext chain of
45893#[doc = concat!("[`", "MemoryDedicatedAllocateInfo", "`].")]
45894///
45895/// # Safety
45896/// Implementors must be valid pNext chain members for the target struct.
45897pub unsafe trait ExtendsMemoryDedicatedAllocateInfo {}
45898/// Marker trait for structs that can appear in the pNext chain of
45899#[doc = concat!("[`", "MemoryDedicatedAllocateInfoTensorARM", "`].")]
45900///
45901/// # Safety
45902/// Implementors must be valid pNext chain members for the target struct.
45903pub unsafe trait ExtendsMemoryDedicatedAllocateInfoTensorARM {}
45904/// Marker trait for structs that can appear in the pNext chain of
45905#[doc = concat!("[`", "MemoryGetAndroidHardwareBufferInfoANDROID", "`].")]
45906///
45907/// # Safety
45908/// Implementors must be valid pNext chain members for the target struct.
45909pub unsafe trait ExtendsMemoryGetAndroidHardwareBufferInfoANDROID {}
45910/// Marker trait for structs that can appear in the pNext chain of
45911#[doc = concat!("[`", "MemoryGetFdInfoKHR", "`].")]
45912///
45913/// # Safety
45914/// Implementors must be valid pNext chain members for the target struct.
45915pub unsafe trait ExtendsMemoryGetFdInfoKHR {}
45916/// Marker trait for structs that can appear in the pNext chain of
45917#[doc = concat!("[`", "MemoryGetMetalHandleInfoEXT", "`].")]
45918///
45919/// # Safety
45920/// Implementors must be valid pNext chain members for the target struct.
45921pub unsafe trait ExtendsMemoryGetMetalHandleInfoEXT {}
45922/// Marker trait for structs that can appear in the pNext chain of
45923#[doc = concat!("[`", "MemoryGetNativeBufferInfoOHOS", "`].")]
45924///
45925/// # Safety
45926/// Implementors must be valid pNext chain members for the target struct.
45927pub unsafe trait ExtendsMemoryGetNativeBufferInfoOHOS {}
45928/// Marker trait for structs that can appear in the pNext chain of
45929#[doc = concat!("[`", "MemoryGetRemoteAddressInfoNV", "`].")]
45930///
45931/// # Safety
45932/// Implementors must be valid pNext chain members for the target struct.
45933pub unsafe trait ExtendsMemoryGetRemoteAddressInfoNV {}
45934/// Marker trait for structs that can appear in the pNext chain of
45935#[doc = concat!("[`", "MemoryGetSciBufInfoNV", "`].")]
45936///
45937/// # Safety
45938/// Implementors must be valid pNext chain members for the target struct.
45939pub unsafe trait ExtendsMemoryGetSciBufInfoNV {}
45940/// Marker trait for structs that can appear in the pNext chain of
45941#[doc = concat!("[`", "MemoryGetWin32HandleInfoKHR", "`].")]
45942///
45943/// # Safety
45944/// Implementors must be valid pNext chain members for the target struct.
45945pub unsafe trait ExtendsMemoryGetWin32HandleInfoKHR {}
45946/// Marker trait for structs that can appear in the pNext chain of
45947#[doc = concat!("[`", "MemoryGetZirconHandleInfoFUCHSIA", "`].")]
45948///
45949/// # Safety
45950/// Implementors must be valid pNext chain members for the target struct.
45951pub unsafe trait ExtendsMemoryGetZirconHandleInfoFUCHSIA {}
45952/// Marker trait for structs that can appear in the pNext chain of
45953#[doc = concat!("[`", "MemoryMapInfo", "`].")]
45954///
45955/// # Safety
45956/// Implementors must be valid pNext chain members for the target struct.
45957pub unsafe trait ExtendsMemoryMapInfo {}
45958/// Marker trait for structs that can appear in the pNext chain of
45959#[doc = concat!("[`", "MemoryMapPlacedInfoEXT", "`].")]
45960///
45961/// # Safety
45962/// Implementors must be valid pNext chain members for the target struct.
45963pub unsafe trait ExtendsMemoryMapPlacedInfoEXT {}
45964/// Marker trait for structs that can appear in the pNext chain of
45965#[doc = concat!("[`", "MemoryMarkerInfoAMD", "`].")]
45966///
45967/// # Safety
45968/// Implementors must be valid pNext chain members for the target struct.
45969pub unsafe trait ExtendsMemoryMarkerInfoAMD {}
45970/// Marker trait for structs that can appear in the pNext chain of
45971#[doc = concat!("[`", "MemoryOpaqueCaptureAddressAllocateInfo", "`].")]
45972///
45973/// # Safety
45974/// Implementors must be valid pNext chain members for the target struct.
45975pub unsafe trait ExtendsMemoryOpaqueCaptureAddressAllocateInfo {}
45976/// Marker trait for structs that can appear in the pNext chain of
45977#[doc = concat!("[`", "MemoryPriorityAllocateInfoEXT", "`].")]
45978///
45979/// # Safety
45980/// Implementors must be valid pNext chain members for the target struct.
45981pub unsafe trait ExtendsMemoryPriorityAllocateInfoEXT {}
45982/// Marker trait for structs that can appear in the pNext chain of
45983#[doc = concat!("[`", "MemoryRangeBarrierKHR", "`].")]
45984///
45985/// # Safety
45986/// Implementors must be valid pNext chain members for the target struct.
45987pub unsafe trait ExtendsMemoryRangeBarrierKHR {}
45988/// Marker trait for structs that can appear in the pNext chain of
45989#[doc = concat!("[`", "MemoryRangeBarriersInfoKHR", "`].")]
45990///
45991/// # Safety
45992/// Implementors must be valid pNext chain members for the target struct.
45993pub unsafe trait ExtendsMemoryRangeBarriersInfoKHR {}
45994/// Marker trait for structs that can appear in the pNext chain of
45995#[doc = concat!("[`", "MemoryRequirements2", "`].")]
45996///
45997/// # Safety
45998/// Implementors must be valid pNext chain members for the target struct.
45999pub unsafe trait ExtendsMemoryRequirements2 {}
46000/// Marker trait for structs that can appear in the pNext chain of
46001#[doc = concat!("[`", "MemorySciBufPropertiesNV", "`].")]
46002///
46003/// # Safety
46004/// Implementors must be valid pNext chain members for the target struct.
46005pub unsafe trait ExtendsMemorySciBufPropertiesNV {}
46006/// Marker trait for structs that can appear in the pNext chain of
46007#[doc = concat!("[`", "MemoryToImageCopy", "`].")]
46008///
46009/// # Safety
46010/// Implementors must be valid pNext chain members for the target struct.
46011pub unsafe trait ExtendsMemoryToImageCopy {}
46012/// Marker trait for structs that can appear in the pNext chain of
46013#[doc = concat!("[`", "MemoryUnmapInfo", "`].")]
46014///
46015/// # Safety
46016/// Implementors must be valid pNext chain members for the target struct.
46017pub unsafe trait ExtendsMemoryUnmapInfo {}
46018/// Marker trait for structs that can appear in the pNext chain of
46019#[doc = concat!("[`", "MetalSurfaceCreateInfoEXT", "`].")]
46020///
46021/// # Safety
46022/// Implementors must be valid pNext chain members for the target struct.
46023pub unsafe trait ExtendsMetalSurfaceCreateInfoEXT {}
46024/// Marker trait for structs that can appear in the pNext chain of
46025#[doc = concat!("[`", "MicromapBuildInfoEXT", "`].")]
46026///
46027/// # Safety
46028/// Implementors must be valid pNext chain members for the target struct.
46029pub unsafe trait ExtendsMicromapBuildInfoEXT {}
46030/// Marker trait for structs that can appear in the pNext chain of
46031#[doc = concat!("[`", "MicromapBuildSizesInfoEXT", "`].")]
46032///
46033/// # Safety
46034/// Implementors must be valid pNext chain members for the target struct.
46035pub unsafe trait ExtendsMicromapBuildSizesInfoEXT {}
46036/// Marker trait for structs that can appear in the pNext chain of
46037#[doc = concat!("[`", "MicromapCreateInfoEXT", "`].")]
46038///
46039/// # Safety
46040/// Implementors must be valid pNext chain members for the target struct.
46041pub unsafe trait ExtendsMicromapCreateInfoEXT {}
46042/// Marker trait for structs that can appear in the pNext chain of
46043#[doc = concat!("[`", "MicromapVersionInfoEXT", "`].")]
46044///
46045/// # Safety
46046/// Implementors must be valid pNext chain members for the target struct.
46047pub unsafe trait ExtendsMicromapVersionInfoEXT {}
46048/// Marker trait for structs that can appear in the pNext chain of
46049#[doc = concat!("[`", "MultisampledRenderToSingleSampledInfoEXT", "`].")]
46050///
46051/// # Safety
46052/// Implementors must be valid pNext chain members for the target struct.
46053pub unsafe trait ExtendsMultisampledRenderToSingleSampledInfoEXT {}
46054/// Marker trait for structs that can appear in the pNext chain of
46055#[doc = concat!("[`", "MultiviewPerViewAttributesInfoNVX", "`].")]
46056///
46057/// # Safety
46058/// Implementors must be valid pNext chain members for the target struct.
46059pub unsafe trait ExtendsMultiviewPerViewAttributesInfoNVX {}
46060/// Marker trait for structs that can appear in the pNext chain of
46061#[doc = concat!("[`", "MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM", "`].")]
46062///
46063/// # Safety
46064/// Implementors must be valid pNext chain members for the target struct.
46065pub unsafe trait ExtendsMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {}
46066/// Marker trait for structs that can appear in the pNext chain of
46067#[doc = concat!("[`", "MutableDescriptorTypeCreateInfoEXT", "`].")]
46068///
46069/// # Safety
46070/// Implementors must be valid pNext chain members for the target struct.
46071pub unsafe trait ExtendsMutableDescriptorTypeCreateInfoEXT {}
46072/// Marker trait for structs that can appear in the pNext chain of
46073#[doc = concat!("[`", "NativeBufferANDROID", "`].")]
46074///
46075/// # Safety
46076/// Implementors must be valid pNext chain members for the target struct.
46077pub unsafe trait ExtendsNativeBufferANDROID {}
46078/// Marker trait for structs that can appear in the pNext chain of
46079#[doc = concat!("[`", "NativeBufferOHOS", "`].")]
46080///
46081/// # Safety
46082/// Implementors must be valid pNext chain members for the target struct.
46083pub unsafe trait ExtendsNativeBufferOHOS {}
46084/// Marker trait for structs that can appear in the pNext chain of
46085#[doc = concat!("[`", "NativeBufferPropertiesOHOS", "`].")]
46086///
46087/// # Safety
46088/// Implementors must be valid pNext chain members for the target struct.
46089pub unsafe trait ExtendsNativeBufferPropertiesOHOS {}
46090/// Marker trait for structs that can appear in the pNext chain of
46091#[doc = concat!("[`", "OpaqueCaptureDataCreateInfoEXT", "`].")]
46092///
46093/// # Safety
46094/// Implementors must be valid pNext chain members for the target struct.
46095pub unsafe trait ExtendsOpaqueCaptureDataCreateInfoEXT {}
46096/// Marker trait for structs that can appear in the pNext chain of
46097#[doc = concat!("[`", "OpaqueCaptureDescriptorDataCreateInfoEXT", "`].")]
46098///
46099/// # Safety
46100/// Implementors must be valid pNext chain members for the target struct.
46101pub unsafe trait ExtendsOpaqueCaptureDescriptorDataCreateInfoEXT {}
46102/// Marker trait for structs that can appear in the pNext chain of
46103#[doc = concat!("[`", "OpticalFlowExecuteInfoNV", "`].")]
46104///
46105/// # Safety
46106/// Implementors must be valid pNext chain members for the target struct.
46107pub unsafe trait ExtendsOpticalFlowExecuteInfoNV {}
46108/// Marker trait for structs that can appear in the pNext chain of
46109#[doc = concat!("[`", "OpticalFlowImageFormatInfoNV", "`].")]
46110///
46111/// # Safety
46112/// Implementors must be valid pNext chain members for the target struct.
46113pub unsafe trait ExtendsOpticalFlowImageFormatInfoNV {}
46114/// Marker trait for structs that can appear in the pNext chain of
46115#[doc = concat!("[`", "OpticalFlowSessionCreateInfoNV", "`].")]
46116///
46117/// # Safety
46118/// Implementors must be valid pNext chain members for the target struct.
46119pub unsafe trait ExtendsOpticalFlowSessionCreateInfoNV {}
46120/// Marker trait for structs that can appear in the pNext chain of
46121#[doc = concat!("[`", "OpticalFlowSessionCreatePrivateDataInfoNV", "`].")]
46122///
46123/// # Safety
46124/// Implementors must be valid pNext chain members for the target struct.
46125pub unsafe trait ExtendsOpticalFlowSessionCreatePrivateDataInfoNV {}
46126/// Marker trait for structs that can appear in the pNext chain of
46127#[doc = concat!("[`", "OutOfBandQueueTypeInfoNV", "`].")]
46128///
46129/// # Safety
46130/// Implementors must be valid pNext chain members for the target struct.
46131pub unsafe trait ExtendsOutOfBandQueueTypeInfoNV {}
46132/// Marker trait for structs that can appear in the pNext chain of
46133#[doc = concat!("[`", "PartitionedAccelerationStructureFlagsNV", "`].")]
46134///
46135/// # Safety
46136/// Implementors must be valid pNext chain members for the target struct.
46137pub unsafe trait ExtendsPartitionedAccelerationStructureFlagsNV {}
46138/// Marker trait for structs that can appear in the pNext chain of
46139#[doc = concat!("[`", "PartitionedAccelerationStructureInstancesInputNV", "`].")]
46140///
46141/// # Safety
46142/// Implementors must be valid pNext chain members for the target struct.
46143pub unsafe trait ExtendsPartitionedAccelerationStructureInstancesInputNV {}
46144/// Marker trait for structs that can appear in the pNext chain of
46145#[doc = concat!("[`", "PastPresentationTimingInfoEXT", "`].")]
46146///
46147/// # Safety
46148/// Implementors must be valid pNext chain members for the target struct.
46149pub unsafe trait ExtendsPastPresentationTimingInfoEXT {}
46150/// Marker trait for structs that can appear in the pNext chain of
46151#[doc = concat!("[`", "PerTileBeginInfoQCOM", "`].")]
46152///
46153/// # Safety
46154/// Implementors must be valid pNext chain members for the target struct.
46155pub unsafe trait ExtendsPerTileBeginInfoQCOM {}
46156/// Marker trait for structs that can appear in the pNext chain of
46157#[doc = concat!("[`", "PerTileEndInfoQCOM", "`].")]
46158///
46159/// # Safety
46160/// Implementors must be valid pNext chain members for the target struct.
46161pub unsafe trait ExtendsPerTileEndInfoQCOM {}
46162/// Marker trait for structs that can appear in the pNext chain of
46163#[doc = concat!("[`", "PerformanceConfigurationAcquireInfoINTEL", "`].")]
46164///
46165/// # Safety
46166/// Implementors must be valid pNext chain members for the target struct.
46167pub unsafe trait ExtendsPerformanceConfigurationAcquireInfoINTEL {}
46168/// Marker trait for structs that can appear in the pNext chain of
46169#[doc = concat!("[`", "PerformanceMarkerInfoINTEL", "`].")]
46170///
46171/// # Safety
46172/// Implementors must be valid pNext chain members for the target struct.
46173pub unsafe trait ExtendsPerformanceMarkerInfoINTEL {}
46174/// Marker trait for structs that can appear in the pNext chain of
46175#[doc = concat!("[`", "PerformanceOverrideInfoINTEL", "`].")]
46176///
46177/// # Safety
46178/// Implementors must be valid pNext chain members for the target struct.
46179pub unsafe trait ExtendsPerformanceOverrideInfoINTEL {}
46180/// Marker trait for structs that can appear in the pNext chain of
46181#[doc = concat!("[`", "PerformanceQueryReservationInfoKHR", "`].")]
46182///
46183/// # Safety
46184/// Implementors must be valid pNext chain members for the target struct.
46185pub unsafe trait ExtendsPerformanceQueryReservationInfoKHR {}
46186/// Marker trait for structs that can appear in the pNext chain of
46187#[doc = concat!("[`", "PerformanceQuerySubmitInfoKHR", "`].")]
46188///
46189/// # Safety
46190/// Implementors must be valid pNext chain members for the target struct.
46191pub unsafe trait ExtendsPerformanceQuerySubmitInfoKHR {}
46192/// Marker trait for structs that can appear in the pNext chain of
46193#[doc = concat!("[`", "PerformanceStreamMarkerInfoINTEL", "`].")]
46194///
46195/// # Safety
46196/// Implementors must be valid pNext chain members for the target struct.
46197pub unsafe trait ExtendsPerformanceStreamMarkerInfoINTEL {}
46198/// Marker trait for structs that can appear in the pNext chain of
46199#[doc = concat!("[`", "PhysicalDevice16BitStorageFeatures", "`].")]
46200///
46201/// # Safety
46202/// Implementors must be valid pNext chain members for the target struct.
46203pub unsafe trait ExtendsPhysicalDevice16BitStorageFeatures {}
46204/// Marker trait for structs that can appear in the pNext chain of
46205#[doc = concat!("[`", "PhysicalDevice4444FormatsFeaturesEXT", "`].")]
46206///
46207/// # Safety
46208/// Implementors must be valid pNext chain members for the target struct.
46209pub unsafe trait ExtendsPhysicalDevice4444FormatsFeaturesEXT {}
46210/// Marker trait for structs that can appear in the pNext chain of
46211#[doc = concat!("[`", "PhysicalDevice8BitStorageFeatures", "`].")]
46212///
46213/// # Safety
46214/// Implementors must be valid pNext chain members for the target struct.
46215pub unsafe trait ExtendsPhysicalDevice8BitStorageFeatures {}
46216/// Marker trait for structs that can appear in the pNext chain of
46217#[doc = concat!("[`", "PhysicalDeviceASTCDecodeFeaturesEXT", "`].")]
46218///
46219/// # Safety
46220/// Implementors must be valid pNext chain members for the target struct.
46221pub unsafe trait ExtendsPhysicalDeviceASTCDecodeFeaturesEXT {}
46222/// Marker trait for structs that can appear in the pNext chain of
46223#[doc = concat!("[`", "PhysicalDeviceAccelerationStructureFeaturesKHR", "`].")]
46224///
46225/// # Safety
46226/// Implementors must be valid pNext chain members for the target struct.
46227pub unsafe trait ExtendsPhysicalDeviceAccelerationStructureFeaturesKHR {}
46228/// Marker trait for structs that can appear in the pNext chain of
46229#[doc = concat!("[`", "PhysicalDeviceAddressBindingReportFeaturesEXT", "`].")]
46230///
46231/// # Safety
46232/// Implementors must be valid pNext chain members for the target struct.
46233pub unsafe trait ExtendsPhysicalDeviceAddressBindingReportFeaturesEXT {}
46234/// Marker trait for structs that can appear in the pNext chain of
46235#[doc = concat!("[`", "PhysicalDeviceAmigoProfilingFeaturesSEC", "`].")]
46236///
46237/// # Safety
46238/// Implementors must be valid pNext chain members for the target struct.
46239pub unsafe trait ExtendsPhysicalDeviceAmigoProfilingFeaturesSEC {}
46240/// Marker trait for structs that can appear in the pNext chain of
46241#[doc = concat!("[`", "PhysicalDeviceAntiLagFeaturesAMD", "`].")]
46242///
46243/// # Safety
46244/// Implementors must be valid pNext chain members for the target struct.
46245pub unsafe trait ExtendsPhysicalDeviceAntiLagFeaturesAMD {}
46246/// Marker trait for structs that can appear in the pNext chain of
46247#[doc = concat!(
46248    "[`", "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", "`]."
46249)]
46250///
46251/// # Safety
46252/// Implementors must be valid pNext chain members for the target struct.
46253pub unsafe trait ExtendsPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {}
46254/// Marker trait for structs that can appear in the pNext chain of
46255#[doc = concat!("[`", "PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT", "`].")]
46256///
46257/// # Safety
46258/// Implementors must be valid pNext chain members for the target struct.
46259pub unsafe trait ExtendsPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {}
46260/// Marker trait for structs that can appear in the pNext chain of
46261#[doc = concat!("[`", "PhysicalDeviceBlendOperationAdvancedFeaturesEXT", "`].")]
46262///
46263/// # Safety
46264/// Implementors must be valid pNext chain members for the target struct.
46265pub unsafe trait ExtendsPhysicalDeviceBlendOperationAdvancedFeaturesEXT {}
46266/// Marker trait for structs that can appear in the pNext chain of
46267#[doc = concat!("[`", "PhysicalDeviceBorderColorSwizzleFeaturesEXT", "`].")]
46268///
46269/// # Safety
46270/// Implementors must be valid pNext chain members for the target struct.
46271pub unsafe trait ExtendsPhysicalDeviceBorderColorSwizzleFeaturesEXT {}
46272/// Marker trait for structs that can appear in the pNext chain of
46273#[doc = concat!("[`", "PhysicalDeviceBufferDeviceAddressFeatures", "`].")]
46274///
46275/// # Safety
46276/// Implementors must be valid pNext chain members for the target struct.
46277pub unsafe trait ExtendsPhysicalDeviceBufferDeviceAddressFeatures {}
46278/// Marker trait for structs that can appear in the pNext chain of
46279#[doc = concat!("[`", "PhysicalDeviceBufferDeviceAddressFeaturesEXT", "`].")]
46280///
46281/// # Safety
46282/// Implementors must be valid pNext chain members for the target struct.
46283pub unsafe trait ExtendsPhysicalDeviceBufferDeviceAddressFeaturesEXT {}
46284/// Marker trait for structs that can appear in the pNext chain of
46285#[doc = concat!("[`", "PhysicalDeviceClusterAccelerationStructureFeaturesNV", "`].")]
46286///
46287/// # Safety
46288/// Implementors must be valid pNext chain members for the target struct.
46289pub unsafe trait ExtendsPhysicalDeviceClusterAccelerationStructureFeaturesNV {}
46290/// Marker trait for structs that can appear in the pNext chain of
46291#[doc = concat!("[`", "PhysicalDeviceClusterCullingShaderFeaturesHUAWEI", "`].")]
46292///
46293/// # Safety
46294/// Implementors must be valid pNext chain members for the target struct.
46295pub unsafe trait ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {}
46296/// Marker trait for structs that can appear in the pNext chain of
46297#[doc = concat!("[`", "PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI", "`].")]
46298///
46299/// # Safety
46300/// Implementors must be valid pNext chain members for the target struct.
46301pub unsafe trait ExtendsPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {}
46302/// Marker trait for structs that can appear in the pNext chain of
46303#[doc = concat!("[`", "PhysicalDeviceCoherentMemoryFeaturesAMD", "`].")]
46304///
46305/// # Safety
46306/// Implementors must be valid pNext chain members for the target struct.
46307pub unsafe trait ExtendsPhysicalDeviceCoherentMemoryFeaturesAMD {}
46308/// Marker trait for structs that can appear in the pNext chain of
46309#[doc = concat!("[`", "PhysicalDeviceColorWriteEnableFeaturesEXT", "`].")]
46310///
46311/// # Safety
46312/// Implementors must be valid pNext chain members for the target struct.
46313pub unsafe trait ExtendsPhysicalDeviceColorWriteEnableFeaturesEXT {}
46314/// Marker trait for structs that can appear in the pNext chain of
46315#[doc = concat!("[`", "PhysicalDeviceCommandBufferInheritanceFeaturesNV", "`].")]
46316///
46317/// # Safety
46318/// Implementors must be valid pNext chain members for the target struct.
46319pub unsafe trait ExtendsPhysicalDeviceCommandBufferInheritanceFeaturesNV {}
46320/// Marker trait for structs that can appear in the pNext chain of
46321#[doc = concat!("[`", "PhysicalDeviceComputeOccupancyPriorityFeaturesNV", "`].")]
46322///
46323/// # Safety
46324/// Implementors must be valid pNext chain members for the target struct.
46325pub unsafe trait ExtendsPhysicalDeviceComputeOccupancyPriorityFeaturesNV {}
46326/// Marker trait for structs that can appear in the pNext chain of
46327#[doc = concat!("[`", "PhysicalDeviceComputeShaderDerivativesFeaturesKHR", "`].")]
46328///
46329/// # Safety
46330/// Implementors must be valid pNext chain members for the target struct.
46331pub unsafe trait ExtendsPhysicalDeviceComputeShaderDerivativesFeaturesKHR {}
46332/// Marker trait for structs that can appear in the pNext chain of
46333#[doc = concat!("[`", "PhysicalDeviceConditionalRenderingFeaturesEXT", "`].")]
46334///
46335/// # Safety
46336/// Implementors must be valid pNext chain members for the target struct.
46337pub unsafe trait ExtendsPhysicalDeviceConditionalRenderingFeaturesEXT {}
46338/// Marker trait for structs that can appear in the pNext chain of
46339#[doc = concat!("[`", "PhysicalDeviceCooperativeMatrix2FeaturesNV", "`].")]
46340///
46341/// # Safety
46342/// Implementors must be valid pNext chain members for the target struct.
46343pub unsafe trait ExtendsPhysicalDeviceCooperativeMatrix2FeaturesNV {}
46344/// Marker trait for structs that can appear in the pNext chain of
46345#[doc = concat!("[`", "PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM", "`].")]
46346///
46347/// # Safety
46348/// Implementors must be valid pNext chain members for the target struct.
46349pub unsafe trait ExtendsPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {}
46350/// Marker trait for structs that can appear in the pNext chain of
46351#[doc = concat!("[`", "PhysicalDeviceCooperativeMatrixFeaturesKHR", "`].")]
46352///
46353/// # Safety
46354/// Implementors must be valid pNext chain members for the target struct.
46355pub unsafe trait ExtendsPhysicalDeviceCooperativeMatrixFeaturesKHR {}
46356/// Marker trait for structs that can appear in the pNext chain of
46357#[doc = concat!("[`", "PhysicalDeviceCooperativeMatrixFeaturesNV", "`].")]
46358///
46359/// # Safety
46360/// Implementors must be valid pNext chain members for the target struct.
46361pub unsafe trait ExtendsPhysicalDeviceCooperativeMatrixFeaturesNV {}
46362/// Marker trait for structs that can appear in the pNext chain of
46363#[doc = concat!("[`", "PhysicalDeviceCooperativeVectorFeaturesNV", "`].")]
46364///
46365/// # Safety
46366/// Implementors must be valid pNext chain members for the target struct.
46367pub unsafe trait ExtendsPhysicalDeviceCooperativeVectorFeaturesNV {}
46368/// Marker trait for structs that can appear in the pNext chain of
46369#[doc = concat!("[`", "PhysicalDeviceCopyMemoryIndirectFeaturesKHR", "`].")]
46370///
46371/// # Safety
46372/// Implementors must be valid pNext chain members for the target struct.
46373pub unsafe trait ExtendsPhysicalDeviceCopyMemoryIndirectFeaturesKHR {}
46374/// Marker trait for structs that can appear in the pNext chain of
46375#[doc = concat!("[`", "PhysicalDeviceCopyMemoryIndirectFeaturesNV", "`].")]
46376///
46377/// # Safety
46378/// Implementors must be valid pNext chain members for the target struct.
46379pub unsafe trait ExtendsPhysicalDeviceCopyMemoryIndirectFeaturesNV {}
46380/// Marker trait for structs that can appear in the pNext chain of
46381#[doc = concat!("[`", "PhysicalDeviceCornerSampledImageFeaturesNV", "`].")]
46382///
46383/// # Safety
46384/// Implementors must be valid pNext chain members for the target struct.
46385pub unsafe trait ExtendsPhysicalDeviceCornerSampledImageFeaturesNV {}
46386/// Marker trait for structs that can appear in the pNext chain of
46387#[doc = concat!("[`", "PhysicalDeviceCoverageReductionModeFeaturesNV", "`].")]
46388///
46389/// # Safety
46390/// Implementors must be valid pNext chain members for the target struct.
46391pub unsafe trait ExtendsPhysicalDeviceCoverageReductionModeFeaturesNV {}
46392/// Marker trait for structs that can appear in the pNext chain of
46393#[doc = concat!("[`", "PhysicalDeviceCubicClampFeaturesQCOM", "`].")]
46394///
46395/// # Safety
46396/// Implementors must be valid pNext chain members for the target struct.
46397pub unsafe trait ExtendsPhysicalDeviceCubicClampFeaturesQCOM {}
46398/// Marker trait for structs that can appear in the pNext chain of
46399#[doc = concat!("[`", "PhysicalDeviceCubicWeightsFeaturesQCOM", "`].")]
46400///
46401/// # Safety
46402/// Implementors must be valid pNext chain members for the target struct.
46403pub unsafe trait ExtendsPhysicalDeviceCubicWeightsFeaturesQCOM {}
46404/// Marker trait for structs that can appear in the pNext chain of
46405#[doc = concat!("[`", "PhysicalDeviceCudaKernelLaunchFeaturesNV", "`].")]
46406///
46407/// # Safety
46408/// Implementors must be valid pNext chain members for the target struct.
46409pub unsafe trait ExtendsPhysicalDeviceCudaKernelLaunchFeaturesNV {}
46410/// Marker trait for structs that can appear in the pNext chain of
46411#[doc = concat!("[`", "PhysicalDeviceCustomBorderColorFeaturesEXT", "`].")]
46412///
46413/// # Safety
46414/// Implementors must be valid pNext chain members for the target struct.
46415pub unsafe trait ExtendsPhysicalDeviceCustomBorderColorFeaturesEXT {}
46416/// Marker trait for structs that can appear in the pNext chain of
46417#[doc = concat!("[`", "PhysicalDeviceCustomResolveFeaturesEXT", "`].")]
46418///
46419/// # Safety
46420/// Implementors must be valid pNext chain members for the target struct.
46421pub unsafe trait ExtendsPhysicalDeviceCustomResolveFeaturesEXT {}
46422/// Marker trait for structs that can appear in the pNext chain of
46423#[doc = concat!("[`", "PhysicalDeviceDataGraphFeaturesARM", "`].")]
46424///
46425/// # Safety
46426/// Implementors must be valid pNext chain members for the target struct.
46427pub unsafe trait ExtendsPhysicalDeviceDataGraphFeaturesARM {}
46428/// Marker trait for structs that can appear in the pNext chain of
46429#[doc = concat!("[`", "PhysicalDeviceDataGraphModelFeaturesQCOM", "`].")]
46430///
46431/// # Safety
46432/// Implementors must be valid pNext chain members for the target struct.
46433pub unsafe trait ExtendsPhysicalDeviceDataGraphModelFeaturesQCOM {}
46434/// Marker trait for structs that can appear in the pNext chain of
46435#[doc = concat!("[`", "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV", "`].")]
46436///
46437/// # Safety
46438/// Implementors must be valid pNext chain members for the target struct.
46439pub unsafe trait ExtendsPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {}
46440/// Marker trait for structs that can appear in the pNext chain of
46441#[doc = concat!("[`", "PhysicalDeviceDenseGeometryFormatFeaturesAMDX", "`].")]
46442///
46443/// # Safety
46444/// Implementors must be valid pNext chain members for the target struct.
46445pub unsafe trait ExtendsPhysicalDeviceDenseGeometryFormatFeaturesAMDX {}
46446/// Marker trait for structs that can appear in the pNext chain of
46447#[doc = concat!("[`", "PhysicalDeviceDepthBiasControlFeaturesEXT", "`].")]
46448///
46449/// # Safety
46450/// Implementors must be valid pNext chain members for the target struct.
46451pub unsafe trait ExtendsPhysicalDeviceDepthBiasControlFeaturesEXT {}
46452/// Marker trait for structs that can appear in the pNext chain of
46453#[doc = concat!("[`", "PhysicalDeviceDepthClampControlFeaturesEXT", "`].")]
46454///
46455/// # Safety
46456/// Implementors must be valid pNext chain members for the target struct.
46457pub unsafe trait ExtendsPhysicalDeviceDepthClampControlFeaturesEXT {}
46458/// Marker trait for structs that can appear in the pNext chain of
46459#[doc = concat!("[`", "PhysicalDeviceDepthClampZeroOneFeaturesKHR", "`].")]
46460///
46461/// # Safety
46462/// Implementors must be valid pNext chain members for the target struct.
46463pub unsafe trait ExtendsPhysicalDeviceDepthClampZeroOneFeaturesKHR {}
46464/// Marker trait for structs that can appear in the pNext chain of
46465#[doc = concat!("[`", "PhysicalDeviceDepthClipControlFeaturesEXT", "`].")]
46466///
46467/// # Safety
46468/// Implementors must be valid pNext chain members for the target struct.
46469pub unsafe trait ExtendsPhysicalDeviceDepthClipControlFeaturesEXT {}
46470/// Marker trait for structs that can appear in the pNext chain of
46471#[doc = concat!("[`", "PhysicalDeviceDepthClipEnableFeaturesEXT", "`].")]
46472///
46473/// # Safety
46474/// Implementors must be valid pNext chain members for the target struct.
46475pub unsafe trait ExtendsPhysicalDeviceDepthClipEnableFeaturesEXT {}
46476/// Marker trait for structs that can appear in the pNext chain of
46477#[doc = concat!("[`", "PhysicalDeviceDescriptorBufferFeaturesEXT", "`].")]
46478///
46479/// # Safety
46480/// Implementors must be valid pNext chain members for the target struct.
46481pub unsafe trait ExtendsPhysicalDeviceDescriptorBufferFeaturesEXT {}
46482/// Marker trait for structs that can appear in the pNext chain of
46483#[doc = concat!("[`", "PhysicalDeviceDescriptorBufferTensorFeaturesARM", "`].")]
46484///
46485/// # Safety
46486/// Implementors must be valid pNext chain members for the target struct.
46487pub unsafe trait ExtendsPhysicalDeviceDescriptorBufferTensorFeaturesARM {}
46488/// Marker trait for structs that can appear in the pNext chain of
46489#[doc = concat!("[`", "PhysicalDeviceDescriptorBufferTensorPropertiesARM", "`].")]
46490///
46491/// # Safety
46492/// Implementors must be valid pNext chain members for the target struct.
46493pub unsafe trait ExtendsPhysicalDeviceDescriptorBufferTensorPropertiesARM {}
46494/// Marker trait for structs that can appear in the pNext chain of
46495#[doc = concat!("[`", "PhysicalDeviceDescriptorHeapFeaturesEXT", "`].")]
46496///
46497/// # Safety
46498/// Implementors must be valid pNext chain members for the target struct.
46499pub unsafe trait ExtendsPhysicalDeviceDescriptorHeapFeaturesEXT {}
46500/// Marker trait for structs that can appear in the pNext chain of
46501#[doc = concat!("[`", "PhysicalDeviceDescriptorIndexingFeatures", "`].")]
46502///
46503/// # Safety
46504/// Implementors must be valid pNext chain members for the target struct.
46505pub unsafe trait ExtendsPhysicalDeviceDescriptorIndexingFeatures {}
46506/// Marker trait for structs that can appear in the pNext chain of
46507#[doc = concat!("[`", "PhysicalDeviceDescriptorPoolOverallocationFeaturesNV", "`].")]
46508///
46509/// # Safety
46510/// Implementors must be valid pNext chain members for the target struct.
46511pub unsafe trait ExtendsPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {}
46512/// Marker trait for structs that can appear in the pNext chain of
46513#[doc = concat!("[`", "PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE", "`].")]
46514///
46515/// # Safety
46516/// Implementors must be valid pNext chain members for the target struct.
46517pub unsafe trait ExtendsPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {}
46518/// Marker trait for structs that can appear in the pNext chain of
46519#[doc = concat!("[`", "PhysicalDeviceDeviceAddressCommandsFeaturesKHR", "`].")]
46520///
46521/// # Safety
46522/// Implementors must be valid pNext chain members for the target struct.
46523pub unsafe trait ExtendsPhysicalDeviceDeviceAddressCommandsFeaturesKHR {}
46524/// Marker trait for structs that can appear in the pNext chain of
46525#[doc = concat!("[`", "PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "`].")]
46526///
46527/// # Safety
46528/// Implementors must be valid pNext chain members for the target struct.
46529pub unsafe trait ExtendsPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {}
46530/// Marker trait for structs that can appear in the pNext chain of
46531#[doc = concat!("[`", "PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT", "`].")]
46532///
46533/// # Safety
46534/// Implementors must be valid pNext chain members for the target struct.
46535pub unsafe trait ExtendsPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {}
46536/// Marker trait for structs that can appear in the pNext chain of
46537#[doc = concat!("[`", "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV", "`].")]
46538///
46539/// # Safety
46540/// Implementors must be valid pNext chain members for the target struct.
46541pub unsafe trait ExtendsPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {}
46542/// Marker trait for structs that can appear in the pNext chain of
46543#[doc = concat!("[`", "PhysicalDeviceDeviceMemoryReportFeaturesEXT", "`].")]
46544///
46545/// # Safety
46546/// Implementors must be valid pNext chain members for the target struct.
46547pub unsafe trait ExtendsPhysicalDeviceDeviceMemoryReportFeaturesEXT {}
46548/// Marker trait for structs that can appear in the pNext chain of
46549#[doc = concat!("[`", "PhysicalDeviceDiagnosticsConfigFeaturesNV", "`].")]
46550///
46551/// # Safety
46552/// Implementors must be valid pNext chain members for the target struct.
46553pub unsafe trait ExtendsPhysicalDeviceDiagnosticsConfigFeaturesNV {}
46554/// Marker trait for structs that can appear in the pNext chain of
46555#[doc = concat!("[`", "PhysicalDeviceDisplacementMicromapFeaturesNV", "`].")]
46556///
46557/// # Safety
46558/// Implementors must be valid pNext chain members for the target struct.
46559pub unsafe trait ExtendsPhysicalDeviceDisplacementMicromapFeaturesNV {}
46560/// Marker trait for structs that can appear in the pNext chain of
46561#[doc = concat!("[`", "PhysicalDeviceDynamicRenderingFeatures", "`].")]
46562///
46563/// # Safety
46564/// Implementors must be valid pNext chain members for the target struct.
46565pub unsafe trait ExtendsPhysicalDeviceDynamicRenderingFeatures {}
46566/// Marker trait for structs that can appear in the pNext chain of
46567#[doc = concat!("[`", "PhysicalDeviceDynamicRenderingLocalReadFeatures", "`].")]
46568///
46569/// # Safety
46570/// Implementors must be valid pNext chain members for the target struct.
46571pub unsafe trait ExtendsPhysicalDeviceDynamicRenderingLocalReadFeatures {}
46572/// Marker trait for structs that can appear in the pNext chain of
46573#[doc = concat!(
46574    "[`", "PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT", "`]."
46575)]
46576///
46577/// # Safety
46578/// Implementors must be valid pNext chain members for the target struct.
46579pub unsafe trait ExtendsPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {}
46580/// Marker trait for structs that can appear in the pNext chain of
46581#[doc = concat!("[`", "PhysicalDeviceExclusiveScissorFeaturesNV", "`].")]
46582///
46583/// # Safety
46584/// Implementors must be valid pNext chain members for the target struct.
46585pub unsafe trait ExtendsPhysicalDeviceExclusiveScissorFeaturesNV {}
46586/// Marker trait for structs that can appear in the pNext chain of
46587#[doc = concat!("[`", "PhysicalDeviceExtendedDynamicState2FeaturesEXT", "`].")]
46588///
46589/// # Safety
46590/// Implementors must be valid pNext chain members for the target struct.
46591pub unsafe trait ExtendsPhysicalDeviceExtendedDynamicState2FeaturesEXT {}
46592/// Marker trait for structs that can appear in the pNext chain of
46593#[doc = concat!("[`", "PhysicalDeviceExtendedDynamicState3FeaturesEXT", "`].")]
46594///
46595/// # Safety
46596/// Implementors must be valid pNext chain members for the target struct.
46597pub unsafe trait ExtendsPhysicalDeviceExtendedDynamicState3FeaturesEXT {}
46598/// Marker trait for structs that can appear in the pNext chain of
46599#[doc = concat!("[`", "PhysicalDeviceExtendedDynamicStateFeaturesEXT", "`].")]
46600///
46601/// # Safety
46602/// Implementors must be valid pNext chain members for the target struct.
46603pub unsafe trait ExtendsPhysicalDeviceExtendedDynamicStateFeaturesEXT {}
46604/// Marker trait for structs that can appear in the pNext chain of
46605#[doc = concat!("[`", "PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV", "`].")]
46606///
46607/// # Safety
46608/// Implementors must be valid pNext chain members for the target struct.
46609pub unsafe trait ExtendsPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {}
46610/// Marker trait for structs that can appear in the pNext chain of
46611#[doc = concat!("[`", "PhysicalDeviceExternalBufferInfo", "`].")]
46612///
46613/// # Safety
46614/// Implementors must be valid pNext chain members for the target struct.
46615pub unsafe trait ExtendsPhysicalDeviceExternalBufferInfo {}
46616/// Marker trait for structs that can appear in the pNext chain of
46617#[doc = concat!("[`", "PhysicalDeviceExternalFenceInfo", "`].")]
46618///
46619/// # Safety
46620/// Implementors must be valid pNext chain members for the target struct.
46621pub unsafe trait ExtendsPhysicalDeviceExternalFenceInfo {}
46622/// Marker trait for structs that can appear in the pNext chain of
46623#[doc = concat!("[`", "PhysicalDeviceExternalFormatResolveFeaturesANDROID", "`].")]
46624///
46625/// # Safety
46626/// Implementors must be valid pNext chain members for the target struct.
46627pub unsafe trait ExtendsPhysicalDeviceExternalFormatResolveFeaturesANDROID {}
46628/// Marker trait for structs that can appear in the pNext chain of
46629#[doc = concat!("[`", "PhysicalDeviceExternalImageFormatInfo", "`].")]
46630///
46631/// # Safety
46632/// Implementors must be valid pNext chain members for the target struct.
46633pub unsafe trait ExtendsPhysicalDeviceExternalImageFormatInfo {}
46634/// Marker trait for structs that can appear in the pNext chain of
46635#[doc = concat!("[`", "PhysicalDeviceExternalMemoryRDMAFeaturesNV", "`].")]
46636///
46637/// # Safety
46638/// Implementors must be valid pNext chain members for the target struct.
46639pub unsafe trait ExtendsPhysicalDeviceExternalMemoryRDMAFeaturesNV {}
46640/// Marker trait for structs that can appear in the pNext chain of
46641#[doc = concat!("[`", "PhysicalDeviceExternalMemorySciBufFeaturesNV", "`].")]
46642///
46643/// # Safety
46644/// Implementors must be valid pNext chain members for the target struct.
46645pub unsafe trait ExtendsPhysicalDeviceExternalMemorySciBufFeaturesNV {}
46646/// Marker trait for structs that can appear in the pNext chain of
46647#[doc = concat!("[`", "PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX", "`].")]
46648///
46649/// # Safety
46650/// Implementors must be valid pNext chain members for the target struct.
46651pub unsafe trait ExtendsPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {}
46652/// Marker trait for structs that can appear in the pNext chain of
46653#[doc = concat!("[`", "PhysicalDeviceExternalSciSync2FeaturesNV", "`].")]
46654///
46655/// # Safety
46656/// Implementors must be valid pNext chain members for the target struct.
46657pub unsafe trait ExtendsPhysicalDeviceExternalSciSync2FeaturesNV {}
46658/// Marker trait for structs that can appear in the pNext chain of
46659#[doc = concat!("[`", "PhysicalDeviceExternalSciSyncFeaturesNV", "`].")]
46660///
46661/// # Safety
46662/// Implementors must be valid pNext chain members for the target struct.
46663pub unsafe trait ExtendsPhysicalDeviceExternalSciSyncFeaturesNV {}
46664/// Marker trait for structs that can appear in the pNext chain of
46665#[doc = concat!("[`", "PhysicalDeviceExternalSemaphoreInfo", "`].")]
46666///
46667/// # Safety
46668/// Implementors must be valid pNext chain members for the target struct.
46669pub unsafe trait ExtendsPhysicalDeviceExternalSemaphoreInfo {}
46670/// Marker trait for structs that can appear in the pNext chain of
46671#[doc = concat!("[`", "PhysicalDeviceExternalTensorInfoARM", "`].")]
46672///
46673/// # Safety
46674/// Implementors must be valid pNext chain members for the target struct.
46675pub unsafe trait ExtendsPhysicalDeviceExternalTensorInfoARM {}
46676/// Marker trait for structs that can appear in the pNext chain of
46677#[doc = concat!("[`", "PhysicalDeviceFaultFeaturesEXT", "`].")]
46678///
46679/// # Safety
46680/// Implementors must be valid pNext chain members for the target struct.
46681pub unsafe trait ExtendsPhysicalDeviceFaultFeaturesEXT {}
46682/// Marker trait for structs that can appear in the pNext chain of
46683#[doc = concat!("[`", "PhysicalDeviceFaultFeaturesKHR", "`].")]
46684///
46685/// # Safety
46686/// Implementors must be valid pNext chain members for the target struct.
46687pub unsafe trait ExtendsPhysicalDeviceFaultFeaturesKHR {}
46688/// Marker trait for structs that can appear in the pNext chain of
46689#[doc = concat!("[`", "PhysicalDeviceFeatures2", "`].")]
46690///
46691/// # Safety
46692/// Implementors must be valid pNext chain members for the target struct.
46693pub unsafe trait ExtendsPhysicalDeviceFeatures2 {}
46694/// Marker trait for structs that can appear in the pNext chain of
46695#[doc = concat!("[`", "PhysicalDeviceFormatPackFeaturesARM", "`].")]
46696///
46697/// # Safety
46698/// Implementors must be valid pNext chain members for the target struct.
46699pub unsafe trait ExtendsPhysicalDeviceFormatPackFeaturesARM {}
46700/// Marker trait for structs that can appear in the pNext chain of
46701#[doc = concat!("[`", "PhysicalDeviceFragmentDensityMap2FeaturesEXT", "`].")]
46702///
46703/// # Safety
46704/// Implementors must be valid pNext chain members for the target struct.
46705pub unsafe trait ExtendsPhysicalDeviceFragmentDensityMap2FeaturesEXT {}
46706/// Marker trait for structs that can appear in the pNext chain of
46707#[doc = concat!("[`", "PhysicalDeviceFragmentDensityMapFeaturesEXT", "`].")]
46708///
46709/// # Safety
46710/// Implementors must be valid pNext chain members for the target struct.
46711pub unsafe trait ExtendsPhysicalDeviceFragmentDensityMapFeaturesEXT {}
46712/// Marker trait for structs that can appear in the pNext chain of
46713#[doc = concat!("[`", "PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE", "`].")]
46714///
46715/// # Safety
46716/// Implementors must be valid pNext chain members for the target struct.
46717pub unsafe trait ExtendsPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {}
46718/// Marker trait for structs that can appear in the pNext chain of
46719#[doc = concat!("[`", "PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT", "`].")]
46720///
46721/// # Safety
46722/// Implementors must be valid pNext chain members for the target struct.
46723pub unsafe trait ExtendsPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {}
46724/// Marker trait for structs that can appear in the pNext chain of
46725#[doc = concat!("[`", "PhysicalDeviceFragmentShaderBarycentricFeaturesKHR", "`].")]
46726///
46727/// # Safety
46728/// Implementors must be valid pNext chain members for the target struct.
46729pub unsafe trait ExtendsPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {}
46730/// Marker trait for structs that can appear in the pNext chain of
46731#[doc = concat!("[`", "PhysicalDeviceFragmentShaderInterlockFeaturesEXT", "`].")]
46732///
46733/// # Safety
46734/// Implementors must be valid pNext chain members for the target struct.
46735pub unsafe trait ExtendsPhysicalDeviceFragmentShaderInterlockFeaturesEXT {}
46736/// Marker trait for structs that can appear in the pNext chain of
46737#[doc = concat!("[`", "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV", "`].")]
46738///
46739/// # Safety
46740/// Implementors must be valid pNext chain members for the target struct.
46741pub unsafe trait ExtendsPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {}
46742/// Marker trait for structs that can appear in the pNext chain of
46743#[doc = concat!("[`", "PhysicalDeviceFragmentShadingRateFeaturesKHR", "`].")]
46744///
46745/// # Safety
46746/// Implementors must be valid pNext chain members for the target struct.
46747pub unsafe trait ExtendsPhysicalDeviceFragmentShadingRateFeaturesKHR {}
46748/// Marker trait for structs that can appear in the pNext chain of
46749#[doc = concat!("[`", "PhysicalDeviceFrameBoundaryFeaturesEXT", "`].")]
46750///
46751/// # Safety
46752/// Implementors must be valid pNext chain members for the target struct.
46753pub unsafe trait ExtendsPhysicalDeviceFrameBoundaryFeaturesEXT {}
46754/// Marker trait for structs that can appear in the pNext chain of
46755#[doc = concat!("[`", "PhysicalDeviceGlobalPriorityQueryFeatures", "`].")]
46756///
46757/// # Safety
46758/// Implementors must be valid pNext chain members for the target struct.
46759pub unsafe trait ExtendsPhysicalDeviceGlobalPriorityQueryFeatures {}
46760/// Marker trait for structs that can appear in the pNext chain of
46761#[doc = concat!("[`", "PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", "`].")]
46762///
46763/// # Safety
46764/// Implementors must be valid pNext chain members for the target struct.
46765pub unsafe trait ExtendsPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {}
46766/// Marker trait for structs that can appear in the pNext chain of
46767#[doc = concat!("[`", "PhysicalDeviceHdrVividFeaturesHUAWEI", "`].")]
46768///
46769/// # Safety
46770/// Implementors must be valid pNext chain members for the target struct.
46771pub unsafe trait ExtendsPhysicalDeviceHdrVividFeaturesHUAWEI {}
46772/// Marker trait for structs that can appear in the pNext chain of
46773#[doc = concat!("[`", "PhysicalDeviceHostImageCopyFeatures", "`].")]
46774///
46775/// # Safety
46776/// Implementors must be valid pNext chain members for the target struct.
46777pub unsafe trait ExtendsPhysicalDeviceHostImageCopyFeatures {}
46778/// Marker trait for structs that can appear in the pNext chain of
46779#[doc = concat!("[`", "PhysicalDeviceHostImageCopyProperties", "`].")]
46780///
46781/// # Safety
46782/// Implementors must be valid pNext chain members for the target struct.
46783pub unsafe trait ExtendsPhysicalDeviceHostImageCopyProperties {}
46784/// Marker trait for structs that can appear in the pNext chain of
46785#[doc = concat!("[`", "PhysicalDeviceHostQueryResetFeatures", "`].")]
46786///
46787/// # Safety
46788/// Implementors must be valid pNext chain members for the target struct.
46789pub unsafe trait ExtendsPhysicalDeviceHostQueryResetFeatures {}
46790/// Marker trait for structs that can appear in the pNext chain of
46791#[doc = concat!("[`", "PhysicalDeviceImage2DViewOf3DFeaturesEXT", "`].")]
46792///
46793/// # Safety
46794/// Implementors must be valid pNext chain members for the target struct.
46795pub unsafe trait ExtendsPhysicalDeviceImage2DViewOf3DFeaturesEXT {}
46796/// Marker trait for structs that can appear in the pNext chain of
46797#[doc = concat!("[`", "PhysicalDeviceImageAlignmentControlFeaturesMESA", "`].")]
46798///
46799/// # Safety
46800/// Implementors must be valid pNext chain members for the target struct.
46801pub unsafe trait ExtendsPhysicalDeviceImageAlignmentControlFeaturesMESA {}
46802/// Marker trait for structs that can appear in the pNext chain of
46803#[doc = concat!("[`", "PhysicalDeviceImageCompressionControlFeaturesEXT", "`].")]
46804///
46805/// # Safety
46806/// Implementors must be valid pNext chain members for the target struct.
46807pub unsafe trait ExtendsPhysicalDeviceImageCompressionControlFeaturesEXT {}
46808/// Marker trait for structs that can appear in the pNext chain of
46809#[doc = concat!(
46810    "[`", "PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", "`]."
46811)]
46812///
46813/// # Safety
46814/// Implementors must be valid pNext chain members for the target struct.
46815pub unsafe trait ExtendsPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {}
46816/// Marker trait for structs that can appear in the pNext chain of
46817#[doc = concat!("[`", "PhysicalDeviceImageDrmFormatModifierInfoEXT", "`].")]
46818///
46819/// # Safety
46820/// Implementors must be valid pNext chain members for the target struct.
46821pub unsafe trait ExtendsPhysicalDeviceImageDrmFormatModifierInfoEXT {}
46822/// Marker trait for structs that can appear in the pNext chain of
46823#[doc = concat!("[`", "PhysicalDeviceImageFormatInfo2", "`].")]
46824///
46825/// # Safety
46826/// Implementors must be valid pNext chain members for the target struct.
46827pub unsafe trait ExtendsPhysicalDeviceImageFormatInfo2 {}
46828/// Marker trait for structs that can appear in the pNext chain of
46829#[doc = concat!("[`", "PhysicalDeviceImageProcessing2FeaturesQCOM", "`].")]
46830///
46831/// # Safety
46832/// Implementors must be valid pNext chain members for the target struct.
46833pub unsafe trait ExtendsPhysicalDeviceImageProcessing2FeaturesQCOM {}
46834/// Marker trait for structs that can appear in the pNext chain of
46835#[doc = concat!("[`", "PhysicalDeviceImageProcessingFeaturesQCOM", "`].")]
46836///
46837/// # Safety
46838/// Implementors must be valid pNext chain members for the target struct.
46839pub unsafe trait ExtendsPhysicalDeviceImageProcessingFeaturesQCOM {}
46840/// Marker trait for structs that can appear in the pNext chain of
46841#[doc = concat!("[`", "PhysicalDeviceImageRobustnessFeatures", "`].")]
46842///
46843/// # Safety
46844/// Implementors must be valid pNext chain members for the target struct.
46845pub unsafe trait ExtendsPhysicalDeviceImageRobustnessFeatures {}
46846/// Marker trait for structs that can appear in the pNext chain of
46847#[doc = concat!("[`", "PhysicalDeviceImageSlicedViewOf3DFeaturesEXT", "`].")]
46848///
46849/// # Safety
46850/// Implementors must be valid pNext chain members for the target struct.
46851pub unsafe trait ExtendsPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {}
46852/// Marker trait for structs that can appear in the pNext chain of
46853#[doc = concat!("[`", "PhysicalDeviceImageViewImageFormatInfoEXT", "`].")]
46854///
46855/// # Safety
46856/// Implementors must be valid pNext chain members for the target struct.
46857pub unsafe trait ExtendsPhysicalDeviceImageViewImageFormatInfoEXT {}
46858/// Marker trait for structs that can appear in the pNext chain of
46859#[doc = concat!("[`", "PhysicalDeviceImageViewMinLodFeaturesEXT", "`].")]
46860///
46861/// # Safety
46862/// Implementors must be valid pNext chain members for the target struct.
46863pub unsafe trait ExtendsPhysicalDeviceImageViewMinLodFeaturesEXT {}
46864/// Marker trait for structs that can appear in the pNext chain of
46865#[doc = concat!("[`", "PhysicalDeviceImagelessFramebufferFeatures", "`].")]
46866///
46867/// # Safety
46868/// Implementors must be valid pNext chain members for the target struct.
46869pub unsafe trait ExtendsPhysicalDeviceImagelessFramebufferFeatures {}
46870/// Marker trait for structs that can appear in the pNext chain of
46871#[doc = concat!("[`", "PhysicalDeviceIndexTypeUint8Features", "`].")]
46872///
46873/// # Safety
46874/// Implementors must be valid pNext chain members for the target struct.
46875pub unsafe trait ExtendsPhysicalDeviceIndexTypeUint8Features {}
46876/// Marker trait for structs that can appear in the pNext chain of
46877#[doc = concat!("[`", "PhysicalDeviceInheritedViewportScissorFeaturesNV", "`].")]
46878///
46879/// # Safety
46880/// Implementors must be valid pNext chain members for the target struct.
46881pub unsafe trait ExtendsPhysicalDeviceInheritedViewportScissorFeaturesNV {}
46882/// Marker trait for structs that can appear in the pNext chain of
46883#[doc = concat!("[`", "PhysicalDeviceInlineUniformBlockFeatures", "`].")]
46884///
46885/// # Safety
46886/// Implementors must be valid pNext chain members for the target struct.
46887pub unsafe trait ExtendsPhysicalDeviceInlineUniformBlockFeatures {}
46888/// Marker trait for structs that can appear in the pNext chain of
46889#[doc = concat!("[`", "PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR", "`].")]
46890///
46891/// # Safety
46892/// Implementors must be valid pNext chain members for the target struct.
46893pub unsafe trait ExtendsPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {}
46894/// Marker trait for structs that can appear in the pNext chain of
46895#[doc = concat!("[`", "PhysicalDeviceInvocationMaskFeaturesHUAWEI", "`].")]
46896///
46897/// # Safety
46898/// Implementors must be valid pNext chain members for the target struct.
46899pub unsafe trait ExtendsPhysicalDeviceInvocationMaskFeaturesHUAWEI {}
46900/// Marker trait for structs that can appear in the pNext chain of
46901#[doc = concat!("[`", "PhysicalDeviceLayeredApiPropertiesKHR", "`].")]
46902///
46903/// # Safety
46904/// Implementors must be valid pNext chain members for the target struct.
46905pub unsafe trait ExtendsPhysicalDeviceLayeredApiPropertiesKHR {}
46906/// Marker trait for structs that can appear in the pNext chain of
46907#[doc = concat!("[`", "PhysicalDeviceLayeredApiPropertiesListKHR", "`].")]
46908///
46909/// # Safety
46910/// Implementors must be valid pNext chain members for the target struct.
46911pub unsafe trait ExtendsPhysicalDeviceLayeredApiPropertiesListKHR {}
46912/// Marker trait for structs that can appear in the pNext chain of
46913#[doc = concat!("[`", "PhysicalDeviceLegacyDitheringFeaturesEXT", "`].")]
46914///
46915/// # Safety
46916/// Implementors must be valid pNext chain members for the target struct.
46917pub unsafe trait ExtendsPhysicalDeviceLegacyDitheringFeaturesEXT {}
46918/// Marker trait for structs that can appear in the pNext chain of
46919#[doc = concat!("[`", "PhysicalDeviceLegacyVertexAttributesFeaturesEXT", "`].")]
46920///
46921/// # Safety
46922/// Implementors must be valid pNext chain members for the target struct.
46923pub unsafe trait ExtendsPhysicalDeviceLegacyVertexAttributesFeaturesEXT {}
46924/// Marker trait for structs that can appear in the pNext chain of
46925#[doc = concat!("[`", "PhysicalDeviceLineRasterizationFeatures", "`].")]
46926///
46927/// # Safety
46928/// Implementors must be valid pNext chain members for the target struct.
46929pub unsafe trait ExtendsPhysicalDeviceLineRasterizationFeatures {}
46930/// Marker trait for structs that can appear in the pNext chain of
46931#[doc = concat!("[`", "PhysicalDeviceLinearColorAttachmentFeaturesNV", "`].")]
46932///
46933/// # Safety
46934/// Implementors must be valid pNext chain members for the target struct.
46935pub unsafe trait ExtendsPhysicalDeviceLinearColorAttachmentFeaturesNV {}
46936/// Marker trait for structs that can appear in the pNext chain of
46937#[doc = concat!("[`", "PhysicalDeviceMaintenance10FeaturesKHR", "`].")]
46938///
46939/// # Safety
46940/// Implementors must be valid pNext chain members for the target struct.
46941pub unsafe trait ExtendsPhysicalDeviceMaintenance10FeaturesKHR {}
46942/// Marker trait for structs that can appear in the pNext chain of
46943#[doc = concat!("[`", "PhysicalDeviceMaintenance4Features", "`].")]
46944///
46945/// # Safety
46946/// Implementors must be valid pNext chain members for the target struct.
46947pub unsafe trait ExtendsPhysicalDeviceMaintenance4Features {}
46948/// Marker trait for structs that can appear in the pNext chain of
46949#[doc = concat!("[`", "PhysicalDeviceMaintenance5Features", "`].")]
46950///
46951/// # Safety
46952/// Implementors must be valid pNext chain members for the target struct.
46953pub unsafe trait ExtendsPhysicalDeviceMaintenance5Features {}
46954/// Marker trait for structs that can appear in the pNext chain of
46955#[doc = concat!("[`", "PhysicalDeviceMaintenance6Features", "`].")]
46956///
46957/// # Safety
46958/// Implementors must be valid pNext chain members for the target struct.
46959pub unsafe trait ExtendsPhysicalDeviceMaintenance6Features {}
46960/// Marker trait for structs that can appear in the pNext chain of
46961#[doc = concat!("[`", "PhysicalDeviceMaintenance7FeaturesKHR", "`].")]
46962///
46963/// # Safety
46964/// Implementors must be valid pNext chain members for the target struct.
46965pub unsafe trait ExtendsPhysicalDeviceMaintenance7FeaturesKHR {}
46966/// Marker trait for structs that can appear in the pNext chain of
46967#[doc = concat!("[`", "PhysicalDeviceMaintenance8FeaturesKHR", "`].")]
46968///
46969/// # Safety
46970/// Implementors must be valid pNext chain members for the target struct.
46971pub unsafe trait ExtendsPhysicalDeviceMaintenance8FeaturesKHR {}
46972/// Marker trait for structs that can appear in the pNext chain of
46973#[doc = concat!("[`", "PhysicalDeviceMaintenance9FeaturesKHR", "`].")]
46974///
46975/// # Safety
46976/// Implementors must be valid pNext chain members for the target struct.
46977pub unsafe trait ExtendsPhysicalDeviceMaintenance9FeaturesKHR {}
46978/// Marker trait for structs that can appear in the pNext chain of
46979#[doc = concat!("[`", "PhysicalDeviceMapMemoryPlacedFeaturesEXT", "`].")]
46980///
46981/// # Safety
46982/// Implementors must be valid pNext chain members for the target struct.
46983pub unsafe trait ExtendsPhysicalDeviceMapMemoryPlacedFeaturesEXT {}
46984/// Marker trait for structs that can appear in the pNext chain of
46985#[doc = concat!("[`", "PhysicalDeviceMemoryDecompressionFeaturesEXT", "`].")]
46986///
46987/// # Safety
46988/// Implementors must be valid pNext chain members for the target struct.
46989pub unsafe trait ExtendsPhysicalDeviceMemoryDecompressionFeaturesEXT {}
46990/// Marker trait for structs that can appear in the pNext chain of
46991#[doc = concat!("[`", "PhysicalDeviceMemoryPriorityFeaturesEXT", "`].")]
46992///
46993/// # Safety
46994/// Implementors must be valid pNext chain members for the target struct.
46995pub unsafe trait ExtendsPhysicalDeviceMemoryPriorityFeaturesEXT {}
46996/// Marker trait for structs that can appear in the pNext chain of
46997#[doc = concat!("[`", "PhysicalDeviceMemoryProperties2", "`].")]
46998///
46999/// # Safety
47000/// Implementors must be valid pNext chain members for the target struct.
47001pub unsafe trait ExtendsPhysicalDeviceMemoryProperties2 {}
47002/// Marker trait for structs that can appear in the pNext chain of
47003#[doc = concat!("[`", "PhysicalDeviceMeshShaderFeaturesEXT", "`].")]
47004///
47005/// # Safety
47006/// Implementors must be valid pNext chain members for the target struct.
47007pub unsafe trait ExtendsPhysicalDeviceMeshShaderFeaturesEXT {}
47008/// Marker trait for structs that can appear in the pNext chain of
47009#[doc = concat!("[`", "PhysicalDeviceMeshShaderFeaturesNV", "`].")]
47010///
47011/// # Safety
47012/// Implementors must be valid pNext chain members for the target struct.
47013pub unsafe trait ExtendsPhysicalDeviceMeshShaderFeaturesNV {}
47014/// Marker trait for structs that can appear in the pNext chain of
47015#[doc = concat!("[`", "PhysicalDeviceMultiDrawFeaturesEXT", "`].")]
47016///
47017/// # Safety
47018/// Implementors must be valid pNext chain members for the target struct.
47019pub unsafe trait ExtendsPhysicalDeviceMultiDrawFeaturesEXT {}
47020/// Marker trait for structs that can appear in the pNext chain of
47021#[doc = concat!(
47022    "[`", "PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", "`]."
47023)]
47024///
47025/// # Safety
47026/// Implementors must be valid pNext chain members for the target struct.
47027pub unsafe trait ExtendsPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {}
47028/// Marker trait for structs that can appear in the pNext chain of
47029#[doc = concat!("[`", "PhysicalDeviceMultiviewFeatures", "`].")]
47030///
47031/// # Safety
47032/// Implementors must be valid pNext chain members for the target struct.
47033pub unsafe trait ExtendsPhysicalDeviceMultiviewFeatures {}
47034/// Marker trait for structs that can appear in the pNext chain of
47035#[doc = concat!("[`", "PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM", "`].")]
47036///
47037/// # Safety
47038/// Implementors must be valid pNext chain members for the target struct.
47039pub unsafe trait ExtendsPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {}
47040/// Marker trait for structs that can appear in the pNext chain of
47041#[doc = concat!("[`", "PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM", "`].")]
47042///
47043/// # Safety
47044/// Implementors must be valid pNext chain members for the target struct.
47045pub unsafe trait ExtendsPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {}
47046/// Marker trait for structs that can appear in the pNext chain of
47047#[doc = concat!("[`", "PhysicalDeviceMutableDescriptorTypeFeaturesEXT", "`].")]
47048///
47049/// # Safety
47050/// Implementors must be valid pNext chain members for the target struct.
47051pub unsafe trait ExtendsPhysicalDeviceMutableDescriptorTypeFeaturesEXT {}
47052/// Marker trait for structs that can appear in the pNext chain of
47053#[doc = concat!("[`", "PhysicalDeviceNestedCommandBufferFeaturesEXT", "`].")]
47054///
47055/// # Safety
47056/// Implementors must be valid pNext chain members for the target struct.
47057pub unsafe trait ExtendsPhysicalDeviceNestedCommandBufferFeaturesEXT {}
47058/// Marker trait for structs that can appear in the pNext chain of
47059#[doc = concat!("[`", "PhysicalDeviceNonSeamlessCubeMapFeaturesEXT", "`].")]
47060///
47061/// # Safety
47062/// Implementors must be valid pNext chain members for the target struct.
47063pub unsafe trait ExtendsPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {}
47064/// Marker trait for structs that can appear in the pNext chain of
47065#[doc = concat!("[`", "PhysicalDeviceOpacityMicromapFeaturesEXT", "`].")]
47066///
47067/// # Safety
47068/// Implementors must be valid pNext chain members for the target struct.
47069pub unsafe trait ExtendsPhysicalDeviceOpacityMicromapFeaturesEXT {}
47070/// Marker trait for structs that can appear in the pNext chain of
47071#[doc = concat!("[`", "PhysicalDeviceOpticalFlowFeaturesNV", "`].")]
47072///
47073/// # Safety
47074/// Implementors must be valid pNext chain members for the target struct.
47075pub unsafe trait ExtendsPhysicalDeviceOpticalFlowFeaturesNV {}
47076/// Marker trait for structs that can appear in the pNext chain of
47077#[doc = concat!("[`", "PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", "`].")]
47078///
47079/// # Safety
47080/// Implementors must be valid pNext chain members for the target struct.
47081pub unsafe trait ExtendsPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {}
47082/// Marker trait for structs that can appear in the pNext chain of
47083#[doc = concat!("[`", "PhysicalDevicePartitionedAccelerationStructureFeaturesNV", "`].")]
47084///
47085/// # Safety
47086/// Implementors must be valid pNext chain members for the target struct.
47087pub unsafe trait ExtendsPhysicalDevicePartitionedAccelerationStructureFeaturesNV {}
47088/// Marker trait for structs that can appear in the pNext chain of
47089#[doc = concat!("[`", "PhysicalDevicePerStageDescriptorSetFeaturesNV", "`].")]
47090///
47091/// # Safety
47092/// Implementors must be valid pNext chain members for the target struct.
47093pub unsafe trait ExtendsPhysicalDevicePerStageDescriptorSetFeaturesNV {}
47094/// Marker trait for structs that can appear in the pNext chain of
47095#[doc = concat!("[`", "PhysicalDevicePerformanceCountersByRegionFeaturesARM", "`].")]
47096///
47097/// # Safety
47098/// Implementors must be valid pNext chain members for the target struct.
47099pub unsafe trait ExtendsPhysicalDevicePerformanceCountersByRegionFeaturesARM {}
47100/// Marker trait for structs that can appear in the pNext chain of
47101#[doc = concat!("[`", "PhysicalDevicePerformanceQueryFeaturesKHR", "`].")]
47102///
47103/// # Safety
47104/// Implementors must be valid pNext chain members for the target struct.
47105pub unsafe trait ExtendsPhysicalDevicePerformanceQueryFeaturesKHR {}
47106/// Marker trait for structs that can appear in the pNext chain of
47107#[doc = concat!("[`", "PhysicalDevicePipelineBinaryFeaturesKHR", "`].")]
47108///
47109/// # Safety
47110/// Implementors must be valid pNext chain members for the target struct.
47111pub unsafe trait ExtendsPhysicalDevicePipelineBinaryFeaturesKHR {}
47112/// Marker trait for structs that can appear in the pNext chain of
47113#[doc = concat!("[`", "PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC", "`].")]
47114///
47115/// # Safety
47116/// Implementors must be valid pNext chain members for the target struct.
47117pub unsafe trait ExtendsPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {}
47118/// Marker trait for structs that can appear in the pNext chain of
47119#[doc = concat!("[`", "PhysicalDevicePipelineCreationCacheControlFeatures", "`].")]
47120///
47121/// # Safety
47122/// Implementors must be valid pNext chain members for the target struct.
47123pub unsafe trait ExtendsPhysicalDevicePipelineCreationCacheControlFeatures {}
47124/// Marker trait for structs that can appear in the pNext chain of
47125#[doc = concat!("[`", "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR", "`].")]
47126///
47127/// # Safety
47128/// Implementors must be valid pNext chain members for the target struct.
47129pub unsafe trait ExtendsPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {}
47130/// Marker trait for structs that can appear in the pNext chain of
47131#[doc = concat!("[`", "PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT", "`].")]
47132///
47133/// # Safety
47134/// Implementors must be valid pNext chain members for the target struct.
47135pub unsafe trait ExtendsPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {}
47136/// Marker trait for structs that can appear in the pNext chain of
47137#[doc = concat!("[`", "PhysicalDevicePipelineOpacityMicromapFeaturesARM", "`].")]
47138///
47139/// # Safety
47140/// Implementors must be valid pNext chain members for the target struct.
47141pub unsafe trait ExtendsPhysicalDevicePipelineOpacityMicromapFeaturesARM {}
47142/// Marker trait for structs that can appear in the pNext chain of
47143#[doc = concat!("[`", "PhysicalDevicePipelinePropertiesFeaturesEXT", "`].")]
47144///
47145/// # Safety
47146/// Implementors must be valid pNext chain members for the target struct.
47147pub unsafe trait ExtendsPhysicalDevicePipelinePropertiesFeaturesEXT {}
47148/// Marker trait for structs that can appear in the pNext chain of
47149#[doc = concat!("[`", "PhysicalDevicePipelineProtectedAccessFeatures", "`].")]
47150///
47151/// # Safety
47152/// Implementors must be valid pNext chain members for the target struct.
47153pub unsafe trait ExtendsPhysicalDevicePipelineProtectedAccessFeatures {}
47154/// Marker trait for structs that can appear in the pNext chain of
47155#[doc = concat!("[`", "PhysicalDevicePipelineRobustnessFeatures", "`].")]
47156///
47157/// # Safety
47158/// Implementors must be valid pNext chain members for the target struct.
47159pub unsafe trait ExtendsPhysicalDevicePipelineRobustnessFeatures {}
47160/// Marker trait for structs that can appear in the pNext chain of
47161#[doc = concat!("[`", "PhysicalDevicePortabilitySubsetFeaturesKHR", "`].")]
47162///
47163/// # Safety
47164/// Implementors must be valid pNext chain members for the target struct.
47165pub unsafe trait ExtendsPhysicalDevicePortabilitySubsetFeaturesKHR {}
47166/// Marker trait for structs that can appear in the pNext chain of
47167#[doc = concat!("[`", "PhysicalDevicePresentBarrierFeaturesNV", "`].")]
47168///
47169/// # Safety
47170/// Implementors must be valid pNext chain members for the target struct.
47171pub unsafe trait ExtendsPhysicalDevicePresentBarrierFeaturesNV {}
47172/// Marker trait for structs that can appear in the pNext chain of
47173#[doc = concat!("[`", "PhysicalDevicePresentId2FeaturesKHR", "`].")]
47174///
47175/// # Safety
47176/// Implementors must be valid pNext chain members for the target struct.
47177pub unsafe trait ExtendsPhysicalDevicePresentId2FeaturesKHR {}
47178/// Marker trait for structs that can appear in the pNext chain of
47179#[doc = concat!("[`", "PhysicalDevicePresentIdFeaturesKHR", "`].")]
47180///
47181/// # Safety
47182/// Implementors must be valid pNext chain members for the target struct.
47183pub unsafe trait ExtendsPhysicalDevicePresentIdFeaturesKHR {}
47184/// Marker trait for structs that can appear in the pNext chain of
47185#[doc = concat!("[`", "PhysicalDevicePresentMeteringFeaturesNV", "`].")]
47186///
47187/// # Safety
47188/// Implementors must be valid pNext chain members for the target struct.
47189pub unsafe trait ExtendsPhysicalDevicePresentMeteringFeaturesNV {}
47190/// Marker trait for structs that can appear in the pNext chain of
47191#[doc = concat!("[`", "PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR", "`].")]
47192///
47193/// # Safety
47194/// Implementors must be valid pNext chain members for the target struct.
47195pub unsafe trait ExtendsPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {}
47196/// Marker trait for structs that can appear in the pNext chain of
47197#[doc = concat!("[`", "PhysicalDevicePresentTimingFeaturesEXT", "`].")]
47198///
47199/// # Safety
47200/// Implementors must be valid pNext chain members for the target struct.
47201pub unsafe trait ExtendsPhysicalDevicePresentTimingFeaturesEXT {}
47202/// Marker trait for structs that can appear in the pNext chain of
47203#[doc = concat!("[`", "PhysicalDevicePresentWait2FeaturesKHR", "`].")]
47204///
47205/// # Safety
47206/// Implementors must be valid pNext chain members for the target struct.
47207pub unsafe trait ExtendsPhysicalDevicePresentWait2FeaturesKHR {}
47208/// Marker trait for structs that can appear in the pNext chain of
47209#[doc = concat!("[`", "PhysicalDevicePresentWaitFeaturesKHR", "`].")]
47210///
47211/// # Safety
47212/// Implementors must be valid pNext chain members for the target struct.
47213pub unsafe trait ExtendsPhysicalDevicePresentWaitFeaturesKHR {}
47214/// Marker trait for structs that can appear in the pNext chain of
47215#[doc = concat!("[`", "PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", "`].")]
47216///
47217/// # Safety
47218/// Implementors must be valid pNext chain members for the target struct.
47219pub unsafe trait ExtendsPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {}
47220/// Marker trait for structs that can appear in the pNext chain of
47221#[doc = concat!("[`", "PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", "`].")]
47222///
47223/// # Safety
47224/// Implementors must be valid pNext chain members for the target struct.
47225pub unsafe trait ExtendsPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {}
47226/// Marker trait for structs that can appear in the pNext chain of
47227#[doc = concat!("[`", "PhysicalDevicePrivateDataFeatures", "`].")]
47228///
47229/// # Safety
47230/// Implementors must be valid pNext chain members for the target struct.
47231pub unsafe trait ExtendsPhysicalDevicePrivateDataFeatures {}
47232/// Marker trait for structs that can appear in the pNext chain of
47233#[doc = concat!("[`", "PhysicalDeviceProperties2", "`].")]
47234///
47235/// # Safety
47236/// Implementors must be valid pNext chain members for the target struct.
47237pub unsafe trait ExtendsPhysicalDeviceProperties2 {}
47238/// Marker trait for structs that can appear in the pNext chain of
47239#[doc = concat!("[`", "PhysicalDeviceProtectedMemoryFeatures", "`].")]
47240///
47241/// # Safety
47242/// Implementors must be valid pNext chain members for the target struct.
47243pub unsafe trait ExtendsPhysicalDeviceProtectedMemoryFeatures {}
47244/// Marker trait for structs that can appear in the pNext chain of
47245#[doc = concat!("[`", "PhysicalDeviceProvokingVertexFeaturesEXT", "`].")]
47246///
47247/// # Safety
47248/// Implementors must be valid pNext chain members for the target struct.
47249pub unsafe trait ExtendsPhysicalDeviceProvokingVertexFeaturesEXT {}
47250/// Marker trait for structs that can appear in the pNext chain of
47251#[doc = concat!("[`", "PhysicalDevicePushConstantBankFeaturesNV", "`].")]
47252///
47253/// # Safety
47254/// Implementors must be valid pNext chain members for the target struct.
47255pub unsafe trait ExtendsPhysicalDevicePushConstantBankFeaturesNV {}
47256/// Marker trait for structs that can appear in the pNext chain of
47257#[doc = concat!(
47258    "[`", "PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM", "`]."
47259)]
47260///
47261/// # Safety
47262/// Implementors must be valid pNext chain members for the target struct.
47263pub unsafe trait ExtendsPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {}
47264/// Marker trait for structs that can appear in the pNext chain of
47265#[doc = concat!("[`", "PhysicalDeviceRGBA10X6FormatsFeaturesEXT", "`].")]
47266///
47267/// # Safety
47268/// Implementors must be valid pNext chain members for the target struct.
47269pub unsafe trait ExtendsPhysicalDeviceRGBA10X6FormatsFeaturesEXT {}
47270/// Marker trait for structs that can appear in the pNext chain of
47271#[doc = concat!(
47272    "[`", "PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT", "`]."
47273)]
47274///
47275/// # Safety
47276/// Implementors must be valid pNext chain members for the target struct.
47277pub unsafe trait ExtendsPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {}
47278/// Marker trait for structs that can appear in the pNext chain of
47279#[doc = concat!("[`", "PhysicalDeviceRawAccessChainsFeaturesNV", "`].")]
47280///
47281/// # Safety
47282/// Implementors must be valid pNext chain members for the target struct.
47283pub unsafe trait ExtendsPhysicalDeviceRawAccessChainsFeaturesNV {}
47284/// Marker trait for structs that can appear in the pNext chain of
47285#[doc = concat!("[`", "PhysicalDeviceRayQueryFeaturesKHR", "`].")]
47286///
47287/// # Safety
47288/// Implementors must be valid pNext chain members for the target struct.
47289pub unsafe trait ExtendsPhysicalDeviceRayQueryFeaturesKHR {}
47290/// Marker trait for structs that can appear in the pNext chain of
47291#[doc = concat!("[`", "PhysicalDeviceRayTracingInvocationReorderFeaturesEXT", "`].")]
47292///
47293/// # Safety
47294/// Implementors must be valid pNext chain members for the target struct.
47295pub unsafe trait ExtendsPhysicalDeviceRayTracingInvocationReorderFeaturesEXT {}
47296/// Marker trait for structs that can appear in the pNext chain of
47297#[doc = concat!("[`", "PhysicalDeviceRayTracingInvocationReorderFeaturesNV", "`].")]
47298///
47299/// # Safety
47300/// Implementors must be valid pNext chain members for the target struct.
47301pub unsafe trait ExtendsPhysicalDeviceRayTracingInvocationReorderFeaturesNV {}
47302/// Marker trait for structs that can appear in the pNext chain of
47303#[doc = concat!("[`", "PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV", "`].")]
47304///
47305/// # Safety
47306/// Implementors must be valid pNext chain members for the target struct.
47307pub unsafe trait ExtendsPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {}
47308/// Marker trait for structs that can appear in the pNext chain of
47309#[doc = concat!("[`", "PhysicalDeviceRayTracingMaintenance1FeaturesKHR", "`].")]
47310///
47311/// # Safety
47312/// Implementors must be valid pNext chain members for the target struct.
47313pub unsafe trait ExtendsPhysicalDeviceRayTracingMaintenance1FeaturesKHR {}
47314/// Marker trait for structs that can appear in the pNext chain of
47315#[doc = concat!("[`", "PhysicalDeviceRayTracingMotionBlurFeaturesNV", "`].")]
47316///
47317/// # Safety
47318/// Implementors must be valid pNext chain members for the target struct.
47319pub unsafe trait ExtendsPhysicalDeviceRayTracingMotionBlurFeaturesNV {}
47320/// Marker trait for structs that can appear in the pNext chain of
47321#[doc = concat!("[`", "PhysicalDeviceRayTracingPipelineFeaturesKHR", "`].")]
47322///
47323/// # Safety
47324/// Implementors must be valid pNext chain members for the target struct.
47325pub unsafe trait ExtendsPhysicalDeviceRayTracingPipelineFeaturesKHR {}
47326/// Marker trait for structs that can appear in the pNext chain of
47327#[doc = concat!("[`", "PhysicalDeviceRayTracingPositionFetchFeaturesKHR", "`].")]
47328///
47329/// # Safety
47330/// Implementors must be valid pNext chain members for the target struct.
47331pub unsafe trait ExtendsPhysicalDeviceRayTracingPositionFetchFeaturesKHR {}
47332/// Marker trait for structs that can appear in the pNext chain of
47333#[doc = concat!("[`", "PhysicalDeviceRayTracingValidationFeaturesNV", "`].")]
47334///
47335/// # Safety
47336/// Implementors must be valid pNext chain members for the target struct.
47337pub unsafe trait ExtendsPhysicalDeviceRayTracingValidationFeaturesNV {}
47338/// Marker trait for structs that can appear in the pNext chain of
47339#[doc = concat!("[`", "PhysicalDeviceRelaxedLineRasterizationFeaturesIMG", "`].")]
47340///
47341/// # Safety
47342/// Implementors must be valid pNext chain members for the target struct.
47343pub unsafe trait ExtendsPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {}
47344/// Marker trait for structs that can appear in the pNext chain of
47345#[doc = concat!("[`", "PhysicalDeviceRenderPassStripedFeaturesARM", "`].")]
47346///
47347/// # Safety
47348/// Implementors must be valid pNext chain members for the target struct.
47349pub unsafe trait ExtendsPhysicalDeviceRenderPassStripedFeaturesARM {}
47350/// Marker trait for structs that can appear in the pNext chain of
47351#[doc = concat!("[`", "PhysicalDeviceRepresentativeFragmentTestFeaturesNV", "`].")]
47352///
47353/// # Safety
47354/// Implementors must be valid pNext chain members for the target struct.
47355pub unsafe trait ExtendsPhysicalDeviceRepresentativeFragmentTestFeaturesNV {}
47356/// Marker trait for structs that can appear in the pNext chain of
47357#[doc = concat!("[`", "PhysicalDeviceRobustness2FeaturesKHR", "`].")]
47358///
47359/// # Safety
47360/// Implementors must be valid pNext chain members for the target struct.
47361pub unsafe trait ExtendsPhysicalDeviceRobustness2FeaturesKHR {}
47362/// Marker trait for structs that can appear in the pNext chain of
47363#[doc = concat!("[`", "PhysicalDeviceSamplerYcbcrConversionFeatures", "`].")]
47364///
47365/// # Safety
47366/// Implementors must be valid pNext chain members for the target struct.
47367pub unsafe trait ExtendsPhysicalDeviceSamplerYcbcrConversionFeatures {}
47368/// Marker trait for structs that can appear in the pNext chain of
47369#[doc = concat!("[`", "PhysicalDeviceScalarBlockLayoutFeatures", "`].")]
47370///
47371/// # Safety
47372/// Implementors must be valid pNext chain members for the target struct.
47373pub unsafe trait ExtendsPhysicalDeviceScalarBlockLayoutFeatures {}
47374/// Marker trait for structs that can appear in the pNext chain of
47375#[doc = concat!("[`", "PhysicalDeviceSchedulingControlsFeaturesARM", "`].")]
47376///
47377/// # Safety
47378/// Implementors must be valid pNext chain members for the target struct.
47379pub unsafe trait ExtendsPhysicalDeviceSchedulingControlsFeaturesARM {}
47380/// Marker trait for structs that can appear in the pNext chain of
47381#[doc = concat!("[`", "PhysicalDeviceSeparateDepthStencilLayoutsFeatures", "`].")]
47382///
47383/// # Safety
47384/// Implementors must be valid pNext chain members for the target struct.
47385pub unsafe trait ExtendsPhysicalDeviceSeparateDepthStencilLayoutsFeatures {}
47386/// Marker trait for structs that can appear in the pNext chain of
47387#[doc = concat!("[`", "PhysicalDeviceShader64BitIndexingFeaturesEXT", "`].")]
47388///
47389/// # Safety
47390/// Implementors must be valid pNext chain members for the target struct.
47391pub unsafe trait ExtendsPhysicalDeviceShader64BitIndexingFeaturesEXT {}
47392/// Marker trait for structs that can appear in the pNext chain of
47393#[doc = concat!("[`", "PhysicalDeviceShaderAbortFeaturesKHR", "`].")]
47394///
47395/// # Safety
47396/// Implementors must be valid pNext chain members for the target struct.
47397pub unsafe trait ExtendsPhysicalDeviceShaderAbortFeaturesKHR {}
47398/// Marker trait for structs that can appear in the pNext chain of
47399#[doc = concat!("[`", "PhysicalDeviceShaderAbortPropertiesKHR", "`].")]
47400///
47401/// # Safety
47402/// Implementors must be valid pNext chain members for the target struct.
47403pub unsafe trait ExtendsPhysicalDeviceShaderAbortPropertiesKHR {}
47404/// Marker trait for structs that can appear in the pNext chain of
47405#[doc = concat!("[`", "PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV", "`].")]
47406///
47407/// # Safety
47408/// Implementors must be valid pNext chain members for the target struct.
47409pub unsafe trait ExtendsPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {}
47410/// Marker trait for structs that can appear in the pNext chain of
47411#[doc = concat!("[`", "PhysicalDeviceShaderAtomicFloat2FeaturesEXT", "`].")]
47412///
47413/// # Safety
47414/// Implementors must be valid pNext chain members for the target struct.
47415pub unsafe trait ExtendsPhysicalDeviceShaderAtomicFloat2FeaturesEXT {}
47416/// Marker trait for structs that can appear in the pNext chain of
47417#[doc = concat!("[`", "PhysicalDeviceShaderAtomicFloatFeaturesEXT", "`].")]
47418///
47419/// # Safety
47420/// Implementors must be valid pNext chain members for the target struct.
47421pub unsafe trait ExtendsPhysicalDeviceShaderAtomicFloatFeaturesEXT {}
47422/// Marker trait for structs that can appear in the pNext chain of
47423#[doc = concat!("[`", "PhysicalDeviceShaderAtomicInt64Features", "`].")]
47424///
47425/// # Safety
47426/// Implementors must be valid pNext chain members for the target struct.
47427pub unsafe trait ExtendsPhysicalDeviceShaderAtomicInt64Features {}
47428/// Marker trait for structs that can appear in the pNext chain of
47429#[doc = concat!("[`", "PhysicalDeviceShaderBfloat16FeaturesKHR", "`].")]
47430///
47431/// # Safety
47432/// Implementors must be valid pNext chain members for the target struct.
47433pub unsafe trait ExtendsPhysicalDeviceShaderBfloat16FeaturesKHR {}
47434/// Marker trait for structs that can appear in the pNext chain of
47435#[doc = concat!("[`", "PhysicalDeviceShaderClockFeaturesKHR", "`].")]
47436///
47437/// # Safety
47438/// Implementors must be valid pNext chain members for the target struct.
47439pub unsafe trait ExtendsPhysicalDeviceShaderClockFeaturesKHR {}
47440/// Marker trait for structs that can appear in the pNext chain of
47441#[doc = concat!("[`", "PhysicalDeviceShaderConstantDataFeaturesKHR", "`].")]
47442///
47443/// # Safety
47444/// Implementors must be valid pNext chain members for the target struct.
47445pub unsafe trait ExtendsPhysicalDeviceShaderConstantDataFeaturesKHR {}
47446/// Marker trait for structs that can appear in the pNext chain of
47447#[doc = concat!("[`", "PhysicalDeviceShaderCoreBuiltinsFeaturesARM", "`].")]
47448///
47449/// # Safety
47450/// Implementors must be valid pNext chain members for the target struct.
47451pub unsafe trait ExtendsPhysicalDeviceShaderCoreBuiltinsFeaturesARM {}
47452/// Marker trait for structs that can appear in the pNext chain of
47453#[doc = concat!("[`", "PhysicalDeviceShaderDemoteToHelperInvocationFeatures", "`].")]
47454///
47455/// # Safety
47456/// Implementors must be valid pNext chain members for the target struct.
47457pub unsafe trait ExtendsPhysicalDeviceShaderDemoteToHelperInvocationFeatures {}
47458/// Marker trait for structs that can appear in the pNext chain of
47459#[doc = concat!("[`", "PhysicalDeviceShaderDrawParametersFeatures", "`].")]
47460///
47461/// # Safety
47462/// Implementors must be valid pNext chain members for the target struct.
47463pub unsafe trait ExtendsPhysicalDeviceShaderDrawParametersFeatures {}
47464/// Marker trait for structs that can appear in the pNext chain of
47465#[doc = concat!("[`", "PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD", "`].")]
47466///
47467/// # Safety
47468/// Implementors must be valid pNext chain members for the target struct.
47469pub unsafe trait ExtendsPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {}
47470/// Marker trait for structs that can appear in the pNext chain of
47471#[doc = concat!("[`", "PhysicalDeviceShaderEnqueueFeaturesAMDX", "`].")]
47472///
47473/// # Safety
47474/// Implementors must be valid pNext chain members for the target struct.
47475pub unsafe trait ExtendsPhysicalDeviceShaderEnqueueFeaturesAMDX {}
47476/// Marker trait for structs that can appear in the pNext chain of
47477#[doc = concat!("[`", "PhysicalDeviceShaderExpectAssumeFeatures", "`].")]
47478///
47479/// # Safety
47480/// Implementors must be valid pNext chain members for the target struct.
47481pub unsafe trait ExtendsPhysicalDeviceShaderExpectAssumeFeatures {}
47482/// Marker trait for structs that can appear in the pNext chain of
47483#[doc = concat!("[`", "PhysicalDeviceShaderFloat16Int8Features", "`].")]
47484///
47485/// # Safety
47486/// Implementors must be valid pNext chain members for the target struct.
47487pub unsafe trait ExtendsPhysicalDeviceShaderFloat16Int8Features {}
47488/// Marker trait for structs that can appear in the pNext chain of
47489#[doc = concat!("[`", "PhysicalDeviceShaderFloat8FeaturesEXT", "`].")]
47490///
47491/// # Safety
47492/// Implementors must be valid pNext chain members for the target struct.
47493pub unsafe trait ExtendsPhysicalDeviceShaderFloat8FeaturesEXT {}
47494/// Marker trait for structs that can appear in the pNext chain of
47495#[doc = concat!("[`", "PhysicalDeviceShaderFloatControls2Features", "`].")]
47496///
47497/// # Safety
47498/// Implementors must be valid pNext chain members for the target struct.
47499pub unsafe trait ExtendsPhysicalDeviceShaderFloatControls2Features {}
47500/// Marker trait for structs that can appear in the pNext chain of
47501#[doc = concat!("[`", "PhysicalDeviceShaderFmaFeaturesKHR", "`].")]
47502///
47503/// # Safety
47504/// Implementors must be valid pNext chain members for the target struct.
47505pub unsafe trait ExtendsPhysicalDeviceShaderFmaFeaturesKHR {}
47506/// Marker trait for structs that can appear in the pNext chain of
47507#[doc = concat!("[`", "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT", "`].")]
47508///
47509/// # Safety
47510/// Implementors must be valid pNext chain members for the target struct.
47511pub unsafe trait ExtendsPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {}
47512/// Marker trait for structs that can appear in the pNext chain of
47513#[doc = concat!("[`", "PhysicalDeviceShaderImageFootprintFeaturesNV", "`].")]
47514///
47515/// # Safety
47516/// Implementors must be valid pNext chain members for the target struct.
47517pub unsafe trait ExtendsPhysicalDeviceShaderImageFootprintFeaturesNV {}
47518/// Marker trait for structs that can appear in the pNext chain of
47519#[doc = concat!("[`", "PhysicalDeviceShaderInstrumentationFeaturesARM", "`].")]
47520///
47521/// # Safety
47522/// Implementors must be valid pNext chain members for the target struct.
47523pub unsafe trait ExtendsPhysicalDeviceShaderInstrumentationFeaturesARM {}
47524/// Marker trait for structs that can appear in the pNext chain of
47525#[doc = concat!("[`", "PhysicalDeviceShaderIntegerDotProductFeatures", "`].")]
47526///
47527/// # Safety
47528/// Implementors must be valid pNext chain members for the target struct.
47529pub unsafe trait ExtendsPhysicalDeviceShaderIntegerDotProductFeatures {}
47530/// Marker trait for structs that can appear in the pNext chain of
47531#[doc = concat!("[`", "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL", "`].")]
47532///
47533/// # Safety
47534/// Implementors must be valid pNext chain members for the target struct.
47535pub unsafe trait ExtendsPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {}
47536/// Marker trait for structs that can appear in the pNext chain of
47537#[doc = concat!("[`", "PhysicalDeviceShaderLongVectorFeaturesEXT", "`].")]
47538///
47539/// # Safety
47540/// Implementors must be valid pNext chain members for the target struct.
47541pub unsafe trait ExtendsPhysicalDeviceShaderLongVectorFeaturesEXT {}
47542/// Marker trait for structs that can appear in the pNext chain of
47543#[doc = concat!("[`", "PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR", "`].")]
47544///
47545/// # Safety
47546/// Implementors must be valid pNext chain members for the target struct.
47547pub unsafe trait ExtendsPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {}
47548/// Marker trait for structs that can appear in the pNext chain of
47549#[doc = concat!("[`", "PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE", "`].")]
47550///
47551/// # Safety
47552/// Implementors must be valid pNext chain members for the target struct.
47553pub unsafe trait ExtendsPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {}
47554/// Marker trait for structs that can appear in the pNext chain of
47555#[doc = concat!("[`", "PhysicalDeviceShaderModuleIdentifierFeaturesEXT", "`].")]
47556///
47557/// # Safety
47558/// Implementors must be valid pNext chain members for the target struct.
47559pub unsafe trait ExtendsPhysicalDeviceShaderModuleIdentifierFeaturesEXT {}
47560/// Marker trait for structs that can appear in the pNext chain of
47561#[doc = concat!("[`", "PhysicalDeviceShaderObjectFeaturesEXT", "`].")]
47562///
47563/// # Safety
47564/// Implementors must be valid pNext chain members for the target struct.
47565pub unsafe trait ExtendsPhysicalDeviceShaderObjectFeaturesEXT {}
47566/// Marker trait for structs that can appear in the pNext chain of
47567#[doc = concat!("[`", "PhysicalDeviceShaderQuadControlFeaturesKHR", "`].")]
47568///
47569/// # Safety
47570/// Implementors must be valid pNext chain members for the target struct.
47571pub unsafe trait ExtendsPhysicalDeviceShaderQuadControlFeaturesKHR {}
47572/// Marker trait for structs that can appear in the pNext chain of
47573#[doc = concat!(
47574    "[`", "PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", "`]."
47575)]
47576///
47577/// # Safety
47578/// Implementors must be valid pNext chain members for the target struct.
47579pub unsafe trait ExtendsPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {}
47580/// Marker trait for structs that can appear in the pNext chain of
47581#[doc = concat!("[`", "PhysicalDeviceShaderReplicatedCompositesFeaturesEXT", "`].")]
47582///
47583/// # Safety
47584/// Implementors must be valid pNext chain members for the target struct.
47585pub unsafe trait ExtendsPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {}
47586/// Marker trait for structs that can appear in the pNext chain of
47587#[doc = concat!("[`", "PhysicalDeviceShaderSMBuiltinsFeaturesNV", "`].")]
47588///
47589/// # Safety
47590/// Implementors must be valid pNext chain members for the target struct.
47591pub unsafe trait ExtendsPhysicalDeviceShaderSMBuiltinsFeaturesNV {}
47592/// Marker trait for structs that can appear in the pNext chain of
47593#[doc = concat!("[`", "PhysicalDeviceShaderSubgroupExtendedTypesFeatures", "`].")]
47594///
47595/// # Safety
47596/// Implementors must be valid pNext chain members for the target struct.
47597pub unsafe trait ExtendsPhysicalDeviceShaderSubgroupExtendedTypesFeatures {}
47598/// Marker trait for structs that can appear in the pNext chain of
47599#[doc = concat!("[`", "PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT", "`].")]
47600///
47601/// # Safety
47602/// Implementors must be valid pNext chain members for the target struct.
47603pub unsafe trait ExtendsPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {}
47604/// Marker trait for structs that can appear in the pNext chain of
47605#[doc = concat!("[`", "PhysicalDeviceShaderSubgroupRotateFeatures", "`].")]
47606///
47607/// # Safety
47608/// Implementors must be valid pNext chain members for the target struct.
47609pub unsafe trait ExtendsPhysicalDeviceShaderSubgroupRotateFeatures {}
47610/// Marker trait for structs that can appear in the pNext chain of
47611#[doc = concat!(
47612    "[`", "PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", "`]."
47613)]
47614///
47615/// # Safety
47616/// Implementors must be valid pNext chain members for the target struct.
47617pub unsafe trait ExtendsPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {}
47618/// Marker trait for structs that can appear in the pNext chain of
47619#[doc = concat!("[`", "PhysicalDeviceShaderTerminateInvocationFeatures", "`].")]
47620///
47621/// # Safety
47622/// Implementors must be valid pNext chain members for the target struct.
47623pub unsafe trait ExtendsPhysicalDeviceShaderTerminateInvocationFeatures {}
47624/// Marker trait for structs that can appear in the pNext chain of
47625#[doc = concat!("[`", "PhysicalDeviceShaderTileImageFeaturesEXT", "`].")]
47626///
47627/// # Safety
47628/// Implementors must be valid pNext chain members for the target struct.
47629pub unsafe trait ExtendsPhysicalDeviceShaderTileImageFeaturesEXT {}
47630/// Marker trait for structs that can appear in the pNext chain of
47631#[doc = concat!("[`", "PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT", "`].")]
47632///
47633/// # Safety
47634/// Implementors must be valid pNext chain members for the target struct.
47635pub unsafe trait ExtendsPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {}
47636/// Marker trait for structs that can appear in the pNext chain of
47637#[doc = concat!("[`", "PhysicalDeviceShaderUntypedPointersFeaturesKHR", "`].")]
47638///
47639/// # Safety
47640/// Implementors must be valid pNext chain members for the target struct.
47641pub unsafe trait ExtendsPhysicalDeviceShaderUntypedPointersFeaturesKHR {}
47642/// Marker trait for structs that can appear in the pNext chain of
47643#[doc = concat!("[`", "PhysicalDeviceShadingRateImageFeaturesNV", "`].")]
47644///
47645/// # Safety
47646/// Implementors must be valid pNext chain members for the target struct.
47647pub unsafe trait ExtendsPhysicalDeviceShadingRateImageFeaturesNV {}
47648/// Marker trait for structs that can appear in the pNext chain of
47649#[doc = concat!("[`", "PhysicalDeviceSparseImageFormatInfo2", "`].")]
47650///
47651/// # Safety
47652/// Implementors must be valid pNext chain members for the target struct.
47653pub unsafe trait ExtendsPhysicalDeviceSparseImageFormatInfo2 {}
47654/// Marker trait for structs that can appear in the pNext chain of
47655#[doc = concat!("[`", "PhysicalDeviceSubgroupSizeControlFeatures", "`].")]
47656///
47657/// # Safety
47658/// Implementors must be valid pNext chain members for the target struct.
47659pub unsafe trait ExtendsPhysicalDeviceSubgroupSizeControlFeatures {}
47660/// Marker trait for structs that can appear in the pNext chain of
47661#[doc = concat!("[`", "PhysicalDeviceSubpassMergeFeedbackFeaturesEXT", "`].")]
47662///
47663/// # Safety
47664/// Implementors must be valid pNext chain members for the target struct.
47665pub unsafe trait ExtendsPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {}
47666/// Marker trait for structs that can appear in the pNext chain of
47667#[doc = concat!("[`", "PhysicalDeviceSubpassShadingFeaturesHUAWEI", "`].")]
47668///
47669/// # Safety
47670/// Implementors must be valid pNext chain members for the target struct.
47671pub unsafe trait ExtendsPhysicalDeviceSubpassShadingFeaturesHUAWEI {}
47672/// Marker trait for structs that can appear in the pNext chain of
47673#[doc = concat!("[`", "PhysicalDeviceSurfaceInfo2KHR", "`].")]
47674///
47675/// # Safety
47676/// Implementors must be valid pNext chain members for the target struct.
47677pub unsafe trait ExtendsPhysicalDeviceSurfaceInfo2KHR {}
47678/// Marker trait for structs that can appear in the pNext chain of
47679#[doc = concat!("[`", "PhysicalDeviceSwapchainMaintenance1FeaturesKHR", "`].")]
47680///
47681/// # Safety
47682/// Implementors must be valid pNext chain members for the target struct.
47683pub unsafe trait ExtendsPhysicalDeviceSwapchainMaintenance1FeaturesKHR {}
47684/// Marker trait for structs that can appear in the pNext chain of
47685#[doc = concat!("[`", "PhysicalDeviceSynchronization2Features", "`].")]
47686///
47687/// # Safety
47688/// Implementors must be valid pNext chain members for the target struct.
47689pub unsafe trait ExtendsPhysicalDeviceSynchronization2Features {}
47690/// Marker trait for structs that can appear in the pNext chain of
47691#[doc = concat!("[`", "PhysicalDeviceTensorFeaturesARM", "`].")]
47692///
47693/// # Safety
47694/// Implementors must be valid pNext chain members for the target struct.
47695pub unsafe trait ExtendsPhysicalDeviceTensorFeaturesARM {}
47696/// Marker trait for structs that can appear in the pNext chain of
47697#[doc = concat!("[`", "PhysicalDeviceTexelBufferAlignmentFeaturesEXT", "`].")]
47698///
47699/// # Safety
47700/// Implementors must be valid pNext chain members for the target struct.
47701pub unsafe trait ExtendsPhysicalDeviceTexelBufferAlignmentFeaturesEXT {}
47702/// Marker trait for structs that can appear in the pNext chain of
47703#[doc = concat!("[`", "PhysicalDeviceTextureCompressionASTC3DFeaturesEXT", "`].")]
47704///
47705/// # Safety
47706/// Implementors must be valid pNext chain members for the target struct.
47707pub unsafe trait ExtendsPhysicalDeviceTextureCompressionASTC3DFeaturesEXT {}
47708/// Marker trait for structs that can appear in the pNext chain of
47709#[doc = concat!("[`", "PhysicalDeviceTextureCompressionASTCHDRFeatures", "`].")]
47710///
47711/// # Safety
47712/// Implementors must be valid pNext chain members for the target struct.
47713pub unsafe trait ExtendsPhysicalDeviceTextureCompressionASTCHDRFeatures {}
47714/// Marker trait for structs that can appear in the pNext chain of
47715#[doc = concat!("[`", "PhysicalDeviceTileMemoryHeapFeaturesQCOM", "`].")]
47716///
47717/// # Safety
47718/// Implementors must be valid pNext chain members for the target struct.
47719pub unsafe trait ExtendsPhysicalDeviceTileMemoryHeapFeaturesQCOM {}
47720/// Marker trait for structs that can appear in the pNext chain of
47721#[doc = concat!("[`", "PhysicalDeviceTileMemoryHeapPropertiesQCOM", "`].")]
47722///
47723/// # Safety
47724/// Implementors must be valid pNext chain members for the target struct.
47725pub unsafe trait ExtendsPhysicalDeviceTileMemoryHeapPropertiesQCOM {}
47726/// Marker trait for structs that can appear in the pNext chain of
47727#[doc = concat!("[`", "PhysicalDeviceTilePropertiesFeaturesQCOM", "`].")]
47728///
47729/// # Safety
47730/// Implementors must be valid pNext chain members for the target struct.
47731pub unsafe trait ExtendsPhysicalDeviceTilePropertiesFeaturesQCOM {}
47732/// Marker trait for structs that can appear in the pNext chain of
47733#[doc = concat!("[`", "PhysicalDeviceTileShadingFeaturesQCOM", "`].")]
47734///
47735/// # Safety
47736/// Implementors must be valid pNext chain members for the target struct.
47737pub unsafe trait ExtendsPhysicalDeviceTileShadingFeaturesQCOM {}
47738/// Marker trait for structs that can appear in the pNext chain of
47739#[doc = concat!("[`", "PhysicalDeviceTimelineSemaphoreFeatures", "`].")]
47740///
47741/// # Safety
47742/// Implementors must be valid pNext chain members for the target struct.
47743pub unsafe trait ExtendsPhysicalDeviceTimelineSemaphoreFeatures {}
47744/// Marker trait for structs that can appear in the pNext chain of
47745#[doc = concat!("[`", "PhysicalDeviceTransformFeedbackFeaturesEXT", "`].")]
47746///
47747/// # Safety
47748/// Implementors must be valid pNext chain members for the target struct.
47749pub unsafe trait ExtendsPhysicalDeviceTransformFeedbackFeaturesEXT {}
47750/// Marker trait for structs that can appear in the pNext chain of
47751#[doc = concat!("[`", "PhysicalDeviceUnifiedImageLayoutsFeaturesKHR", "`].")]
47752///
47753/// # Safety
47754/// Implementors must be valid pNext chain members for the target struct.
47755pub unsafe trait ExtendsPhysicalDeviceUnifiedImageLayoutsFeaturesKHR {}
47756/// Marker trait for structs that can appear in the pNext chain of
47757#[doc = concat!("[`", "PhysicalDeviceUniformBufferStandardLayoutFeatures", "`].")]
47758///
47759/// # Safety
47760/// Implementors must be valid pNext chain members for the target struct.
47761pub unsafe trait ExtendsPhysicalDeviceUniformBufferStandardLayoutFeatures {}
47762/// Marker trait for structs that can appear in the pNext chain of
47763#[doc = concat!("[`", "PhysicalDeviceVariablePointersFeatures", "`].")]
47764///
47765/// # Safety
47766/// Implementors must be valid pNext chain members for the target struct.
47767pub unsafe trait ExtendsPhysicalDeviceVariablePointersFeatures {}
47768/// Marker trait for structs that can appear in the pNext chain of
47769#[doc = concat!("[`", "PhysicalDeviceVertexAttributeDivisorFeatures", "`].")]
47770///
47771/// # Safety
47772/// Implementors must be valid pNext chain members for the target struct.
47773pub unsafe trait ExtendsPhysicalDeviceVertexAttributeDivisorFeatures {}
47774/// Marker trait for structs that can appear in the pNext chain of
47775#[doc = concat!("[`", "PhysicalDeviceVertexAttributeRobustnessFeaturesEXT", "`].")]
47776///
47777/// # Safety
47778/// Implementors must be valid pNext chain members for the target struct.
47779pub unsafe trait ExtendsPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {}
47780/// Marker trait for structs that can appear in the pNext chain of
47781#[doc = concat!("[`", "PhysicalDeviceVertexInputDynamicStateFeaturesEXT", "`].")]
47782///
47783/// # Safety
47784/// Implementors must be valid pNext chain members for the target struct.
47785pub unsafe trait ExtendsPhysicalDeviceVertexInputDynamicStateFeaturesEXT {}
47786/// Marker trait for structs that can appear in the pNext chain of
47787#[doc = concat!("[`", "PhysicalDeviceVideoDecodeVP9FeaturesKHR", "`].")]
47788///
47789/// # Safety
47790/// Implementors must be valid pNext chain members for the target struct.
47791pub unsafe trait ExtendsPhysicalDeviceVideoDecodeVP9FeaturesKHR {}
47792/// Marker trait for structs that can appear in the pNext chain of
47793#[doc = concat!("[`", "PhysicalDeviceVideoEncodeAV1FeaturesKHR", "`].")]
47794///
47795/// # Safety
47796/// Implementors must be valid pNext chain members for the target struct.
47797pub unsafe trait ExtendsPhysicalDeviceVideoEncodeAV1FeaturesKHR {}
47798/// Marker trait for structs that can appear in the pNext chain of
47799#[doc = concat!("[`", "PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR", "`].")]
47800///
47801/// # Safety
47802/// Implementors must be valid pNext chain members for the target struct.
47803pub unsafe trait ExtendsPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {}
47804/// Marker trait for structs that can appear in the pNext chain of
47805#[doc = concat!("[`", "PhysicalDeviceVideoEncodeQualityLevelInfoKHR", "`].")]
47806///
47807/// # Safety
47808/// Implementors must be valid pNext chain members for the target struct.
47809pub unsafe trait ExtendsPhysicalDeviceVideoEncodeQualityLevelInfoKHR {}
47810/// Marker trait for structs that can appear in the pNext chain of
47811#[doc = concat!("[`", "PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR", "`].")]
47812///
47813/// # Safety
47814/// Implementors must be valid pNext chain members for the target struct.
47815pub unsafe trait ExtendsPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {}
47816/// Marker trait for structs that can appear in the pNext chain of
47817#[doc = concat!("[`", "PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE", "`].")]
47818///
47819/// # Safety
47820/// Implementors must be valid pNext chain members for the target struct.
47821pub unsafe trait ExtendsPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {}
47822/// Marker trait for structs that can appear in the pNext chain of
47823#[doc = concat!("[`", "PhysicalDeviceVideoFormatInfoKHR", "`].")]
47824///
47825/// # Safety
47826/// Implementors must be valid pNext chain members for the target struct.
47827pub unsafe trait ExtendsPhysicalDeviceVideoFormatInfoKHR {}
47828/// Marker trait for structs that can appear in the pNext chain of
47829#[doc = concat!("[`", "PhysicalDeviceVideoMaintenance1FeaturesKHR", "`].")]
47830///
47831/// # Safety
47832/// Implementors must be valid pNext chain members for the target struct.
47833pub unsafe trait ExtendsPhysicalDeviceVideoMaintenance1FeaturesKHR {}
47834/// Marker trait for structs that can appear in the pNext chain of
47835#[doc = concat!("[`", "PhysicalDeviceVideoMaintenance2FeaturesKHR", "`].")]
47836///
47837/// # Safety
47838/// Implementors must be valid pNext chain members for the target struct.
47839pub unsafe trait ExtendsPhysicalDeviceVideoMaintenance2FeaturesKHR {}
47840/// Marker trait for structs that can appear in the pNext chain of
47841#[doc = concat!("[`", "PhysicalDeviceVulkan11Features", "`].")]
47842///
47843/// # Safety
47844/// Implementors must be valid pNext chain members for the target struct.
47845pub unsafe trait ExtendsPhysicalDeviceVulkan11Features {}
47846/// Marker trait for structs that can appear in the pNext chain of
47847#[doc = concat!("[`", "PhysicalDeviceVulkan12Features", "`].")]
47848///
47849/// # Safety
47850/// Implementors must be valid pNext chain members for the target struct.
47851pub unsafe trait ExtendsPhysicalDeviceVulkan12Features {}
47852/// Marker trait for structs that can appear in the pNext chain of
47853#[doc = concat!("[`", "PhysicalDeviceVulkan13Features", "`].")]
47854///
47855/// # Safety
47856/// Implementors must be valid pNext chain members for the target struct.
47857pub unsafe trait ExtendsPhysicalDeviceVulkan13Features {}
47858/// Marker trait for structs that can appear in the pNext chain of
47859#[doc = concat!("[`", "PhysicalDeviceVulkan14Features", "`].")]
47860///
47861/// # Safety
47862/// Implementors must be valid pNext chain members for the target struct.
47863pub unsafe trait ExtendsPhysicalDeviceVulkan14Features {}
47864/// Marker trait for structs that can appear in the pNext chain of
47865#[doc = concat!("[`", "PhysicalDeviceVulkanMemoryModelFeatures", "`].")]
47866///
47867/// # Safety
47868/// Implementors must be valid pNext chain members for the target struct.
47869pub unsafe trait ExtendsPhysicalDeviceVulkanMemoryModelFeatures {}
47870/// Marker trait for structs that can appear in the pNext chain of
47871#[doc = concat!("[`", "PhysicalDeviceVulkanSC10Features", "`].")]
47872///
47873/// # Safety
47874/// Implementors must be valid pNext chain members for the target struct.
47875pub unsafe trait ExtendsPhysicalDeviceVulkanSC10Features {}
47876/// Marker trait for structs that can appear in the pNext chain of
47877#[doc = concat!("[`", "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", "`].")]
47878///
47879/// # Safety
47880/// Implementors must be valid pNext chain members for the target struct.
47881pub unsafe trait ExtendsPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {}
47882/// Marker trait for structs that can appear in the pNext chain of
47883#[doc = concat!("[`", "PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", "`].")]
47884///
47885/// # Safety
47886/// Implementors must be valid pNext chain members for the target struct.
47887pub unsafe trait ExtendsPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {}
47888/// Marker trait for structs that can appear in the pNext chain of
47889#[doc = concat!("[`", "PhysicalDeviceYcbcrDegammaFeaturesQCOM", "`].")]
47890///
47891/// # Safety
47892/// Implementors must be valid pNext chain members for the target struct.
47893pub unsafe trait ExtendsPhysicalDeviceYcbcrDegammaFeaturesQCOM {}
47894/// Marker trait for structs that can appear in the pNext chain of
47895#[doc = concat!("[`", "PhysicalDeviceYcbcrImageArraysFeaturesEXT", "`].")]
47896///
47897/// # Safety
47898/// Implementors must be valid pNext chain members for the target struct.
47899pub unsafe trait ExtendsPhysicalDeviceYcbcrImageArraysFeaturesEXT {}
47900/// Marker trait for structs that can appear in the pNext chain of
47901#[doc = concat!("[`", "PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT", "`].")]
47902///
47903/// # Safety
47904/// Implementors must be valid pNext chain members for the target struct.
47905pub unsafe trait ExtendsPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {}
47906/// Marker trait for structs that can appear in the pNext chain of
47907#[doc = concat!("[`", "PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "`].")]
47908///
47909/// # Safety
47910/// Implementors must be valid pNext chain members for the target struct.
47911pub unsafe trait ExtendsPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {}
47912/// Marker trait for structs that can appear in the pNext chain of
47913#[doc = concat!("[`", "PipelineBinaryCreateInfoKHR", "`].")]
47914///
47915/// # Safety
47916/// Implementors must be valid pNext chain members for the target struct.
47917pub unsafe trait ExtendsPipelineBinaryCreateInfoKHR {}
47918/// Marker trait for structs that can appear in the pNext chain of
47919#[doc = concat!("[`", "PipelineBinaryDataInfoKHR", "`].")]
47920///
47921/// # Safety
47922/// Implementors must be valid pNext chain members for the target struct.
47923pub unsafe trait ExtendsPipelineBinaryDataInfoKHR {}
47924/// Marker trait for structs that can appear in the pNext chain of
47925#[doc = concat!("[`", "PipelineBinaryHandlesInfoKHR", "`].")]
47926///
47927/// # Safety
47928/// Implementors must be valid pNext chain members for the target struct.
47929pub unsafe trait ExtendsPipelineBinaryHandlesInfoKHR {}
47930/// Marker trait for structs that can appear in the pNext chain of
47931#[doc = concat!("[`", "PipelineBinaryInfoKHR", "`].")]
47932///
47933/// # Safety
47934/// Implementors must be valid pNext chain members for the target struct.
47935pub unsafe trait ExtendsPipelineBinaryInfoKHR {}
47936/// Marker trait for structs that can appear in the pNext chain of
47937#[doc = concat!("[`", "PipelineBinaryKeyKHR", "`].")]
47938///
47939/// # Safety
47940/// Implementors must be valid pNext chain members for the target struct.
47941pub unsafe trait ExtendsPipelineBinaryKeyKHR {}
47942/// Marker trait for structs that can appear in the pNext chain of
47943#[doc = concat!("[`", "PipelineCacheCreateInfo", "`].")]
47944///
47945/// # Safety
47946/// Implementors must be valid pNext chain members for the target struct.
47947pub unsafe trait ExtendsPipelineCacheCreateInfo {}
47948/// Marker trait for structs that can appear in the pNext chain of
47949#[doc = concat!("[`", "PipelineColorBlendAdvancedStateCreateInfoEXT", "`].")]
47950///
47951/// # Safety
47952/// Implementors must be valid pNext chain members for the target struct.
47953pub unsafe trait ExtendsPipelineColorBlendAdvancedStateCreateInfoEXT {}
47954/// Marker trait for structs that can appear in the pNext chain of
47955#[doc = concat!("[`", "PipelineColorBlendStateCreateInfo", "`].")]
47956///
47957/// # Safety
47958/// Implementors must be valid pNext chain members for the target struct.
47959pub unsafe trait ExtendsPipelineColorBlendStateCreateInfo {}
47960/// Marker trait for structs that can appear in the pNext chain of
47961#[doc = concat!("[`", "PipelineColorWriteCreateInfoEXT", "`].")]
47962///
47963/// # Safety
47964/// Implementors must be valid pNext chain members for the target struct.
47965pub unsafe trait ExtendsPipelineColorWriteCreateInfoEXT {}
47966/// Marker trait for structs that can appear in the pNext chain of
47967#[doc = concat!("[`", "PipelineCompilerControlCreateInfoAMD", "`].")]
47968///
47969/// # Safety
47970/// Implementors must be valid pNext chain members for the target struct.
47971pub unsafe trait ExtendsPipelineCompilerControlCreateInfoAMD {}
47972/// Marker trait for structs that can appear in the pNext chain of
47973#[doc = concat!("[`", "PipelineCoverageModulationStateCreateInfoNV", "`].")]
47974///
47975/// # Safety
47976/// Implementors must be valid pNext chain members for the target struct.
47977pub unsafe trait ExtendsPipelineCoverageModulationStateCreateInfoNV {}
47978/// Marker trait for structs that can appear in the pNext chain of
47979#[doc = concat!("[`", "PipelineCoverageReductionStateCreateInfoNV", "`].")]
47980///
47981/// # Safety
47982/// Implementors must be valid pNext chain members for the target struct.
47983pub unsafe trait ExtendsPipelineCoverageReductionStateCreateInfoNV {}
47984/// Marker trait for structs that can appear in the pNext chain of
47985#[doc = concat!("[`", "PipelineCoverageToColorStateCreateInfoNV", "`].")]
47986///
47987/// # Safety
47988/// Implementors must be valid pNext chain members for the target struct.
47989pub unsafe trait ExtendsPipelineCoverageToColorStateCreateInfoNV {}
47990/// Marker trait for structs that can appear in the pNext chain of
47991#[doc = concat!("[`", "PipelineCreateFlags2CreateInfo", "`].")]
47992///
47993/// # Safety
47994/// Implementors must be valid pNext chain members for the target struct.
47995pub unsafe trait ExtendsPipelineCreateFlags2CreateInfo {}
47996/// Marker trait for structs that can appear in the pNext chain of
47997#[doc = concat!("[`", "PipelineCreateInfoKHR", "`].")]
47998///
47999/// # Safety
48000/// Implementors must be valid pNext chain members for the target struct.
48001pub unsafe trait ExtendsPipelineCreateInfoKHR {}
48002/// Marker trait for structs that can appear in the pNext chain of
48003#[doc = concat!("[`", "PipelineCreationFeedbackCreateInfo", "`].")]
48004///
48005/// # Safety
48006/// Implementors must be valid pNext chain members for the target struct.
48007pub unsafe trait ExtendsPipelineCreationFeedbackCreateInfo {}
48008/// Marker trait for structs that can appear in the pNext chain of
48009#[doc = concat!("[`", "PipelineDepthStencilStateCreateInfo", "`].")]
48010///
48011/// # Safety
48012/// Implementors must be valid pNext chain members for the target struct.
48013pub unsafe trait ExtendsPipelineDepthStencilStateCreateInfo {}
48014/// Marker trait for structs that can appear in the pNext chain of
48015#[doc = concat!("[`", "PipelineDiscardRectangleStateCreateInfoEXT", "`].")]
48016///
48017/// # Safety
48018/// Implementors must be valid pNext chain members for the target struct.
48019pub unsafe trait ExtendsPipelineDiscardRectangleStateCreateInfoEXT {}
48020/// Marker trait for structs that can appear in the pNext chain of
48021#[doc = concat!("[`", "PipelineDynamicStateCreateInfo", "`].")]
48022///
48023/// # Safety
48024/// Implementors must be valid pNext chain members for the target struct.
48025pub unsafe trait ExtendsPipelineDynamicStateCreateInfo {}
48026/// Marker trait for structs that can appear in the pNext chain of
48027#[doc = concat!("[`", "PipelineExecutableInfoKHR", "`].")]
48028///
48029/// # Safety
48030/// Implementors must be valid pNext chain members for the target struct.
48031pub unsafe trait ExtendsPipelineExecutableInfoKHR {}
48032/// Marker trait for structs that can appear in the pNext chain of
48033#[doc = concat!("[`", "PipelineFragmentDensityMapLayeredCreateInfoVALVE", "`].")]
48034///
48035/// # Safety
48036/// Implementors must be valid pNext chain members for the target struct.
48037pub unsafe trait ExtendsPipelineFragmentDensityMapLayeredCreateInfoVALVE {}
48038/// Marker trait for structs that can appear in the pNext chain of
48039#[doc = concat!("[`", "PipelineFragmentShadingRateEnumStateCreateInfoNV", "`].")]
48040///
48041/// # Safety
48042/// Implementors must be valid pNext chain members for the target struct.
48043pub unsafe trait ExtendsPipelineFragmentShadingRateEnumStateCreateInfoNV {}
48044/// Marker trait for structs that can appear in the pNext chain of
48045#[doc = concat!("[`", "PipelineFragmentShadingRateStateCreateInfoKHR", "`].")]
48046///
48047/// # Safety
48048/// Implementors must be valid pNext chain members for the target struct.
48049pub unsafe trait ExtendsPipelineFragmentShadingRateStateCreateInfoKHR {}
48050/// Marker trait for structs that can appear in the pNext chain of
48051#[doc = concat!("[`", "PipelineIndirectDeviceAddressInfoNV", "`].")]
48052///
48053/// # Safety
48054/// Implementors must be valid pNext chain members for the target struct.
48055pub unsafe trait ExtendsPipelineIndirectDeviceAddressInfoNV {}
48056/// Marker trait for structs that can appear in the pNext chain of
48057#[doc = concat!("[`", "PipelineInfoKHR", "`].")]
48058///
48059/// # Safety
48060/// Implementors must be valid pNext chain members for the target struct.
48061pub unsafe trait ExtendsPipelineInfoKHR {}
48062/// Marker trait for structs that can appear in the pNext chain of
48063#[doc = concat!("[`", "PipelineInputAssemblyStateCreateInfo", "`].")]
48064///
48065/// # Safety
48066/// Implementors must be valid pNext chain members for the target struct.
48067pub unsafe trait ExtendsPipelineInputAssemblyStateCreateInfo {}
48068/// Marker trait for structs that can appear in the pNext chain of
48069#[doc = concat!("[`", "PipelineLayoutCreateInfo", "`].")]
48070///
48071/// # Safety
48072/// Implementors must be valid pNext chain members for the target struct.
48073pub unsafe trait ExtendsPipelineLayoutCreateInfo {}
48074/// Marker trait for structs that can appear in the pNext chain of
48075#[doc = concat!("[`", "PipelineLibraryCreateInfoKHR", "`].")]
48076///
48077/// # Safety
48078/// Implementors must be valid pNext chain members for the target struct.
48079pub unsafe trait ExtendsPipelineLibraryCreateInfoKHR {}
48080/// Marker trait for structs that can appear in the pNext chain of
48081#[doc = concat!("[`", "PipelineMultisampleStateCreateInfo", "`].")]
48082///
48083/// # Safety
48084/// Implementors must be valid pNext chain members for the target struct.
48085pub unsafe trait ExtendsPipelineMultisampleStateCreateInfo {}
48086/// Marker trait for structs that can appear in the pNext chain of
48087#[doc = concat!("[`", "PipelineOfflineCreateInfo", "`].")]
48088///
48089/// # Safety
48090/// Implementors must be valid pNext chain members for the target struct.
48091pub unsafe trait ExtendsPipelineOfflineCreateInfo {}
48092/// Marker trait for structs that can appear in the pNext chain of
48093#[doc = concat!("[`", "PipelinePoolSize", "`].")]
48094///
48095/// # Safety
48096/// Implementors must be valid pNext chain members for the target struct.
48097pub unsafe trait ExtendsPipelinePoolSize {}
48098/// Marker trait for structs that can appear in the pNext chain of
48099#[doc = concat!("[`", "PipelineRasterizationConservativeStateCreateInfoEXT", "`].")]
48100///
48101/// # Safety
48102/// Implementors must be valid pNext chain members for the target struct.
48103pub unsafe trait ExtendsPipelineRasterizationConservativeStateCreateInfoEXT {}
48104/// Marker trait for structs that can appear in the pNext chain of
48105#[doc = concat!("[`", "PipelineRasterizationDepthClipStateCreateInfoEXT", "`].")]
48106///
48107/// # Safety
48108/// Implementors must be valid pNext chain members for the target struct.
48109pub unsafe trait ExtendsPipelineRasterizationDepthClipStateCreateInfoEXT {}
48110/// Marker trait for structs that can appear in the pNext chain of
48111#[doc = concat!("[`", "PipelineRasterizationLineStateCreateInfo", "`].")]
48112///
48113/// # Safety
48114/// Implementors must be valid pNext chain members for the target struct.
48115pub unsafe trait ExtendsPipelineRasterizationLineStateCreateInfo {}
48116/// Marker trait for structs that can appear in the pNext chain of
48117#[doc = concat!("[`", "PipelineRasterizationProvokingVertexStateCreateInfoEXT", "`].")]
48118///
48119/// # Safety
48120/// Implementors must be valid pNext chain members for the target struct.
48121pub unsafe trait ExtendsPipelineRasterizationProvokingVertexStateCreateInfoEXT {}
48122/// Marker trait for structs that can appear in the pNext chain of
48123#[doc = concat!("[`", "PipelineRasterizationStateCreateInfo", "`].")]
48124///
48125/// # Safety
48126/// Implementors must be valid pNext chain members for the target struct.
48127pub unsafe trait ExtendsPipelineRasterizationStateCreateInfo {}
48128/// Marker trait for structs that can appear in the pNext chain of
48129#[doc = concat!("[`", "PipelineRasterizationStateRasterizationOrderAMD", "`].")]
48130///
48131/// # Safety
48132/// Implementors must be valid pNext chain members for the target struct.
48133pub unsafe trait ExtendsPipelineRasterizationStateRasterizationOrderAMD {}
48134/// Marker trait for structs that can appear in the pNext chain of
48135#[doc = concat!("[`", "PipelineRasterizationStateStreamCreateInfoEXT", "`].")]
48136///
48137/// # Safety
48138/// Implementors must be valid pNext chain members for the target struct.
48139pub unsafe trait ExtendsPipelineRasterizationStateStreamCreateInfoEXT {}
48140/// Marker trait for structs that can appear in the pNext chain of
48141#[doc = concat!("[`", "PipelineRenderingCreateInfo", "`].")]
48142///
48143/// # Safety
48144/// Implementors must be valid pNext chain members for the target struct.
48145pub unsafe trait ExtendsPipelineRenderingCreateInfo {}
48146/// Marker trait for structs that can appear in the pNext chain of
48147#[doc = concat!("[`", "PipelineRepresentativeFragmentTestStateCreateInfoNV", "`].")]
48148///
48149/// # Safety
48150/// Implementors must be valid pNext chain members for the target struct.
48151pub unsafe trait ExtendsPipelineRepresentativeFragmentTestStateCreateInfoNV {}
48152/// Marker trait for structs that can appear in the pNext chain of
48153#[doc = concat!("[`", "PipelineRobustnessCreateInfo", "`].")]
48154///
48155/// # Safety
48156/// Implementors must be valid pNext chain members for the target struct.
48157pub unsafe trait ExtendsPipelineRobustnessCreateInfo {}
48158/// Marker trait for structs that can appear in the pNext chain of
48159#[doc = concat!("[`", "PipelineSampleLocationsStateCreateInfoEXT", "`].")]
48160///
48161/// # Safety
48162/// Implementors must be valid pNext chain members for the target struct.
48163pub unsafe trait ExtendsPipelineSampleLocationsStateCreateInfoEXT {}
48164/// Marker trait for structs that can appear in the pNext chain of
48165#[doc = concat!("[`", "PipelineShaderStageCreateInfo", "`].")]
48166///
48167/// # Safety
48168/// Implementors must be valid pNext chain members for the target struct.
48169pub unsafe trait ExtendsPipelineShaderStageCreateInfo {}
48170/// Marker trait for structs that can appear in the pNext chain of
48171#[doc = concat!("[`", "PipelineShaderStageModuleIdentifierCreateInfoEXT", "`].")]
48172///
48173/// # Safety
48174/// Implementors must be valid pNext chain members for the target struct.
48175pub unsafe trait ExtendsPipelineShaderStageModuleIdentifierCreateInfoEXT {}
48176/// Marker trait for structs that can appear in the pNext chain of
48177#[doc = concat!("[`", "PipelineShaderStageNodeCreateInfoAMDX", "`].")]
48178///
48179/// # Safety
48180/// Implementors must be valid pNext chain members for the target struct.
48181pub unsafe trait ExtendsPipelineShaderStageNodeCreateInfoAMDX {}
48182/// Marker trait for structs that can appear in the pNext chain of
48183#[doc = concat!("[`", "PipelineShaderStageRequiredSubgroupSizeCreateInfo", "`].")]
48184///
48185/// # Safety
48186/// Implementors must be valid pNext chain members for the target struct.
48187pub unsafe trait ExtendsPipelineShaderStageRequiredSubgroupSizeCreateInfo {}
48188/// Marker trait for structs that can appear in the pNext chain of
48189#[doc = concat!("[`", "PipelineTessellationDomainOriginStateCreateInfo", "`].")]
48190///
48191/// # Safety
48192/// Implementors must be valid pNext chain members for the target struct.
48193pub unsafe trait ExtendsPipelineTessellationDomainOriginStateCreateInfo {}
48194/// Marker trait for structs that can appear in the pNext chain of
48195#[doc = concat!("[`", "PipelineTessellationStateCreateInfo", "`].")]
48196///
48197/// # Safety
48198/// Implementors must be valid pNext chain members for the target struct.
48199pub unsafe trait ExtendsPipelineTessellationStateCreateInfo {}
48200/// Marker trait for structs that can appear in the pNext chain of
48201#[doc = concat!("[`", "PipelineVertexInputDivisorStateCreateInfo", "`].")]
48202///
48203/// # Safety
48204/// Implementors must be valid pNext chain members for the target struct.
48205pub unsafe trait ExtendsPipelineVertexInputDivisorStateCreateInfo {}
48206/// Marker trait for structs that can appear in the pNext chain of
48207#[doc = concat!("[`", "PipelineVertexInputStateCreateInfo", "`].")]
48208///
48209/// # Safety
48210/// Implementors must be valid pNext chain members for the target struct.
48211pub unsafe trait ExtendsPipelineVertexInputStateCreateInfo {}
48212/// Marker trait for structs that can appear in the pNext chain of
48213#[doc = concat!("[`", "PipelineViewportCoarseSampleOrderStateCreateInfoNV", "`].")]
48214///
48215/// # Safety
48216/// Implementors must be valid pNext chain members for the target struct.
48217pub unsafe trait ExtendsPipelineViewportCoarseSampleOrderStateCreateInfoNV {}
48218/// Marker trait for structs that can appear in the pNext chain of
48219#[doc = concat!("[`", "PipelineViewportDepthClampControlCreateInfoEXT", "`].")]
48220///
48221/// # Safety
48222/// Implementors must be valid pNext chain members for the target struct.
48223pub unsafe trait ExtendsPipelineViewportDepthClampControlCreateInfoEXT {}
48224/// Marker trait for structs that can appear in the pNext chain of
48225#[doc = concat!("[`", "PipelineViewportDepthClipControlCreateInfoEXT", "`].")]
48226///
48227/// # Safety
48228/// Implementors must be valid pNext chain members for the target struct.
48229pub unsafe trait ExtendsPipelineViewportDepthClipControlCreateInfoEXT {}
48230/// Marker trait for structs that can appear in the pNext chain of
48231#[doc = concat!("[`", "PipelineViewportExclusiveScissorStateCreateInfoNV", "`].")]
48232///
48233/// # Safety
48234/// Implementors must be valid pNext chain members for the target struct.
48235pub unsafe trait ExtendsPipelineViewportExclusiveScissorStateCreateInfoNV {}
48236/// Marker trait for structs that can appear in the pNext chain of
48237#[doc = concat!("[`", "PipelineViewportShadingRateImageStateCreateInfoNV", "`].")]
48238///
48239/// # Safety
48240/// Implementors must be valid pNext chain members for the target struct.
48241pub unsafe trait ExtendsPipelineViewportShadingRateImageStateCreateInfoNV {}
48242/// Marker trait for structs that can appear in the pNext chain of
48243#[doc = concat!("[`", "PipelineViewportStateCreateInfo", "`].")]
48244///
48245/// # Safety
48246/// Implementors must be valid pNext chain members for the target struct.
48247pub unsafe trait ExtendsPipelineViewportStateCreateInfo {}
48248/// Marker trait for structs that can appear in the pNext chain of
48249#[doc = concat!("[`", "PipelineViewportSwizzleStateCreateInfoNV", "`].")]
48250///
48251/// # Safety
48252/// Implementors must be valid pNext chain members for the target struct.
48253pub unsafe trait ExtendsPipelineViewportSwizzleStateCreateInfoNV {}
48254/// Marker trait for structs that can appear in the pNext chain of
48255#[doc = concat!("[`", "PipelineViewportWScalingStateCreateInfoNV", "`].")]
48256///
48257/// # Safety
48258/// Implementors must be valid pNext chain members for the target struct.
48259pub unsafe trait ExtendsPipelineViewportWScalingStateCreateInfoNV {}
48260/// Marker trait for structs that can appear in the pNext chain of
48261#[doc = concat!("[`", "PresentFrameTokenGGP", "`].")]
48262///
48263/// # Safety
48264/// Implementors must be valid pNext chain members for the target struct.
48265pub unsafe trait ExtendsPresentFrameTokenGGP {}
48266/// Marker trait for structs that can appear in the pNext chain of
48267#[doc = concat!("[`", "PresentId2KHR", "`].")]
48268///
48269/// # Safety
48270/// Implementors must be valid pNext chain members for the target struct.
48271pub unsafe trait ExtendsPresentId2KHR {}
48272/// Marker trait for structs that can appear in the pNext chain of
48273#[doc = concat!("[`", "PresentIdKHR", "`].")]
48274///
48275/// # Safety
48276/// Implementors must be valid pNext chain members for the target struct.
48277pub unsafe trait ExtendsPresentIdKHR {}
48278/// Marker trait for structs that can appear in the pNext chain of
48279#[doc = concat!("[`", "PresentInfoKHR", "`].")]
48280///
48281/// # Safety
48282/// Implementors must be valid pNext chain members for the target struct.
48283pub unsafe trait ExtendsPresentInfoKHR {}
48284/// Marker trait for structs that can appear in the pNext chain of
48285#[doc = concat!("[`", "PresentRegionsKHR", "`].")]
48286///
48287/// # Safety
48288/// Implementors must be valid pNext chain members for the target struct.
48289pub unsafe trait ExtendsPresentRegionsKHR {}
48290/// Marker trait for structs that can appear in the pNext chain of
48291#[doc = concat!("[`", "PresentTimesInfoGOOGLE", "`].")]
48292///
48293/// # Safety
48294/// Implementors must be valid pNext chain members for the target struct.
48295pub unsafe trait ExtendsPresentTimesInfoGOOGLE {}
48296/// Marker trait for structs that can appear in the pNext chain of
48297#[doc = concat!("[`", "PresentTimingInfoEXT", "`].")]
48298///
48299/// # Safety
48300/// Implementors must be valid pNext chain members for the target struct.
48301pub unsafe trait ExtendsPresentTimingInfoEXT {}
48302/// Marker trait for structs that can appear in the pNext chain of
48303#[doc = concat!("[`", "PresentTimingsInfoEXT", "`].")]
48304///
48305/// # Safety
48306/// Implementors must be valid pNext chain members for the target struct.
48307pub unsafe trait ExtendsPresentTimingsInfoEXT {}
48308/// Marker trait for structs that can appear in the pNext chain of
48309#[doc = concat!("[`", "PresentWait2InfoKHR", "`].")]
48310///
48311/// # Safety
48312/// Implementors must be valid pNext chain members for the target struct.
48313pub unsafe trait ExtendsPresentWait2InfoKHR {}
48314/// Marker trait for structs that can appear in the pNext chain of
48315#[doc = concat!("[`", "PrivateDataSlotCreateInfo", "`].")]
48316///
48317/// # Safety
48318/// Implementors must be valid pNext chain members for the target struct.
48319pub unsafe trait ExtendsPrivateDataSlotCreateInfo {}
48320/// Marker trait for structs that can appear in the pNext chain of
48321#[doc = concat!("[`", "ProtectedSubmitInfo", "`].")]
48322///
48323/// # Safety
48324/// Implementors must be valid pNext chain members for the target struct.
48325pub unsafe trait ExtendsProtectedSubmitInfo {}
48326/// Marker trait for structs that can appear in the pNext chain of
48327#[doc = concat!("[`", "PushConstantBankInfoNV", "`].")]
48328///
48329/// # Safety
48330/// Implementors must be valid pNext chain members for the target struct.
48331pub unsafe trait ExtendsPushConstantBankInfoNV {}
48332/// Marker trait for structs that can appear in the pNext chain of
48333#[doc = concat!("[`", "PushConstantsInfo", "`].")]
48334///
48335/// # Safety
48336/// Implementors must be valid pNext chain members for the target struct.
48337pub unsafe trait ExtendsPushConstantsInfo {}
48338/// Marker trait for structs that can appear in the pNext chain of
48339#[doc = concat!("[`", "PushDataInfoEXT", "`].")]
48340///
48341/// # Safety
48342/// Implementors must be valid pNext chain members for the target struct.
48343pub unsafe trait ExtendsPushDataInfoEXT {}
48344/// Marker trait for structs that can appear in the pNext chain of
48345#[doc = concat!("[`", "PushDescriptorSetInfo", "`].")]
48346///
48347/// # Safety
48348/// Implementors must be valid pNext chain members for the target struct.
48349pub unsafe trait ExtendsPushDescriptorSetInfo {}
48350/// Marker trait for structs that can appear in the pNext chain of
48351#[doc = concat!("[`", "PushDescriptorSetWithTemplateInfo", "`].")]
48352///
48353/// # Safety
48354/// Implementors must be valid pNext chain members for the target struct.
48355pub unsafe trait ExtendsPushDescriptorSetWithTemplateInfo {}
48356/// Marker trait for structs that can appear in the pNext chain of
48357#[doc = concat!("[`", "QueryLowLatencySupportNV", "`].")]
48358///
48359/// # Safety
48360/// Implementors must be valid pNext chain members for the target struct.
48361pub unsafe trait ExtendsQueryLowLatencySupportNV {}
48362/// Marker trait for structs that can appear in the pNext chain of
48363#[doc = concat!("[`", "QueryPoolCreateInfo", "`].")]
48364///
48365/// # Safety
48366/// Implementors must be valid pNext chain members for the target struct.
48367pub unsafe trait ExtendsQueryPoolCreateInfo {}
48368/// Marker trait for structs that can appear in the pNext chain of
48369#[doc = concat!("[`", "QueryPoolPerformanceCreateInfoKHR", "`].")]
48370///
48371/// # Safety
48372/// Implementors must be valid pNext chain members for the target struct.
48373pub unsafe trait ExtendsQueryPoolPerformanceCreateInfoKHR {}
48374/// Marker trait for structs that can appear in the pNext chain of
48375#[doc = concat!("[`", "QueryPoolPerformanceQueryCreateInfoINTEL", "`].")]
48376///
48377/// # Safety
48378/// Implementors must be valid pNext chain members for the target struct.
48379pub unsafe trait ExtendsQueryPoolPerformanceQueryCreateInfoINTEL {}
48380/// Marker trait for structs that can appear in the pNext chain of
48381#[doc = concat!("[`", "QueryPoolVideoEncodeFeedbackCreateInfoKHR", "`].")]
48382///
48383/// # Safety
48384/// Implementors must be valid pNext chain members for the target struct.
48385pub unsafe trait ExtendsQueryPoolVideoEncodeFeedbackCreateInfoKHR {}
48386/// Marker trait for structs that can appear in the pNext chain of
48387#[doc = concat!("[`", "QueueFamilyProperties2", "`].")]
48388///
48389/// # Safety
48390/// Implementors must be valid pNext chain members for the target struct.
48391pub unsafe trait ExtendsQueueFamilyProperties2 {}
48392/// Marker trait for structs that can appear in the pNext chain of
48393#[doc = concat!(
48394    "[`", "RayTracingPipelineClusterAccelerationStructureCreateInfoNV", "`]."
48395)]
48396///
48397/// # Safety
48398/// Implementors must be valid pNext chain members for the target struct.
48399pub unsafe trait ExtendsRayTracingPipelineClusterAccelerationStructureCreateInfoNV {}
48400/// Marker trait for structs that can appear in the pNext chain of
48401#[doc = concat!("[`", "RayTracingPipelineCreateInfoKHR", "`].")]
48402///
48403/// # Safety
48404/// Implementors must be valid pNext chain members for the target struct.
48405pub unsafe trait ExtendsRayTracingPipelineCreateInfoKHR {}
48406/// Marker trait for structs that can appear in the pNext chain of
48407#[doc = concat!("[`", "RayTracingPipelineCreateInfoNV", "`].")]
48408///
48409/// # Safety
48410/// Implementors must be valid pNext chain members for the target struct.
48411pub unsafe trait ExtendsRayTracingPipelineCreateInfoNV {}
48412/// Marker trait for structs that can appear in the pNext chain of
48413#[doc = concat!("[`", "RayTracingPipelineInterfaceCreateInfoKHR", "`].")]
48414///
48415/// # Safety
48416/// Implementors must be valid pNext chain members for the target struct.
48417pub unsafe trait ExtendsRayTracingPipelineInterfaceCreateInfoKHR {}
48418/// Marker trait for structs that can appear in the pNext chain of
48419#[doc = concat!("[`", "RayTracingShaderGroupCreateInfoKHR", "`].")]
48420///
48421/// # Safety
48422/// Implementors must be valid pNext chain members for the target struct.
48423pub unsafe trait ExtendsRayTracingShaderGroupCreateInfoKHR {}
48424/// Marker trait for structs that can appear in the pNext chain of
48425#[doc = concat!("[`", "RayTracingShaderGroupCreateInfoNV", "`].")]
48426///
48427/// # Safety
48428/// Implementors must be valid pNext chain members for the target struct.
48429pub unsafe trait ExtendsRayTracingShaderGroupCreateInfoNV {}
48430/// Marker trait for structs that can appear in the pNext chain of
48431#[doc = concat!("[`", "RefreshObjectListKHR", "`].")]
48432///
48433/// # Safety
48434/// Implementors must be valid pNext chain members for the target struct.
48435pub unsafe trait ExtendsRefreshObjectListKHR {}
48436/// Marker trait for structs that can appear in the pNext chain of
48437#[doc = concat!("[`", "ReleaseCapturedPipelineDataInfoKHR", "`].")]
48438///
48439/// # Safety
48440/// Implementors must be valid pNext chain members for the target struct.
48441pub unsafe trait ExtendsReleaseCapturedPipelineDataInfoKHR {}
48442/// Marker trait for structs that can appear in the pNext chain of
48443#[doc = concat!("[`", "ReleaseSwapchainImagesInfoKHR", "`].")]
48444///
48445/// # Safety
48446/// Implementors must be valid pNext chain members for the target struct.
48447pub unsafe trait ExtendsReleaseSwapchainImagesInfoKHR {}
48448/// Marker trait for structs that can appear in the pNext chain of
48449#[doc = concat!("[`", "RenderPassAttachmentBeginInfo", "`].")]
48450///
48451/// # Safety
48452/// Implementors must be valid pNext chain members for the target struct.
48453pub unsafe trait ExtendsRenderPassAttachmentBeginInfo {}
48454/// Marker trait for structs that can appear in the pNext chain of
48455#[doc = concat!("[`", "RenderPassBeginInfo", "`].")]
48456///
48457/// # Safety
48458/// Implementors must be valid pNext chain members for the target struct.
48459pub unsafe trait ExtendsRenderPassBeginInfo {}
48460/// Marker trait for structs that can appear in the pNext chain of
48461#[doc = concat!("[`", "RenderPassCreateInfo", "`].")]
48462///
48463/// # Safety
48464/// Implementors must be valid pNext chain members for the target struct.
48465pub unsafe trait ExtendsRenderPassCreateInfo {}
48466/// Marker trait for structs that can appear in the pNext chain of
48467#[doc = concat!("[`", "RenderPassCreateInfo2", "`].")]
48468///
48469/// # Safety
48470/// Implementors must be valid pNext chain members for the target struct.
48471pub unsafe trait ExtendsRenderPassCreateInfo2 {}
48472/// Marker trait for structs that can appear in the pNext chain of
48473#[doc = concat!("[`", "RenderPassCreationControlEXT", "`].")]
48474///
48475/// # Safety
48476/// Implementors must be valid pNext chain members for the target struct.
48477pub unsafe trait ExtendsRenderPassCreationControlEXT {}
48478/// Marker trait for structs that can appear in the pNext chain of
48479#[doc = concat!("[`", "RenderPassCreationFeedbackCreateInfoEXT", "`].")]
48480///
48481/// # Safety
48482/// Implementors must be valid pNext chain members for the target struct.
48483pub unsafe trait ExtendsRenderPassCreationFeedbackCreateInfoEXT {}
48484/// Marker trait for structs that can appear in the pNext chain of
48485#[doc = concat!("[`", "RenderPassFragmentDensityMapCreateInfoEXT", "`].")]
48486///
48487/// # Safety
48488/// Implementors must be valid pNext chain members for the target struct.
48489pub unsafe trait ExtendsRenderPassFragmentDensityMapCreateInfoEXT {}
48490/// Marker trait for structs that can appear in the pNext chain of
48491#[doc = concat!("[`", "RenderPassFragmentDensityMapOffsetEndInfoEXT", "`].")]
48492///
48493/// # Safety
48494/// Implementors must be valid pNext chain members for the target struct.
48495pub unsafe trait ExtendsRenderPassFragmentDensityMapOffsetEndInfoEXT {}
48496/// Marker trait for structs that can appear in the pNext chain of
48497#[doc = concat!("[`", "RenderPassInputAttachmentAspectCreateInfo", "`].")]
48498///
48499/// # Safety
48500/// Implementors must be valid pNext chain members for the target struct.
48501pub unsafe trait ExtendsRenderPassInputAttachmentAspectCreateInfo {}
48502/// Marker trait for structs that can appear in the pNext chain of
48503#[doc = concat!("[`", "RenderPassMultiviewCreateInfo", "`].")]
48504///
48505/// # Safety
48506/// Implementors must be valid pNext chain members for the target struct.
48507pub unsafe trait ExtendsRenderPassMultiviewCreateInfo {}
48508/// Marker trait for structs that can appear in the pNext chain of
48509#[doc = concat!("[`", "RenderPassPerformanceCountersByRegionBeginInfoARM", "`].")]
48510///
48511/// # Safety
48512/// Implementors must be valid pNext chain members for the target struct.
48513pub unsafe trait ExtendsRenderPassPerformanceCountersByRegionBeginInfoARM {}
48514/// Marker trait for structs that can appear in the pNext chain of
48515#[doc = concat!("[`", "RenderPassSampleLocationsBeginInfoEXT", "`].")]
48516///
48517/// # Safety
48518/// Implementors must be valid pNext chain members for the target struct.
48519pub unsafe trait ExtendsRenderPassSampleLocationsBeginInfoEXT {}
48520/// Marker trait for structs that can appear in the pNext chain of
48521#[doc = concat!("[`", "RenderPassStripeBeginInfoARM", "`].")]
48522///
48523/// # Safety
48524/// Implementors must be valid pNext chain members for the target struct.
48525pub unsafe trait ExtendsRenderPassStripeBeginInfoARM {}
48526/// Marker trait for structs that can appear in the pNext chain of
48527#[doc = concat!("[`", "RenderPassStripeInfoARM", "`].")]
48528///
48529/// # Safety
48530/// Implementors must be valid pNext chain members for the target struct.
48531pub unsafe trait ExtendsRenderPassStripeInfoARM {}
48532/// Marker trait for structs that can appear in the pNext chain of
48533#[doc = concat!("[`", "RenderPassStripeSubmitInfoARM", "`].")]
48534///
48535/// # Safety
48536/// Implementors must be valid pNext chain members for the target struct.
48537pub unsafe trait ExtendsRenderPassStripeSubmitInfoARM {}
48538/// Marker trait for structs that can appear in the pNext chain of
48539#[doc = concat!("[`", "RenderPassSubpassFeedbackCreateInfoEXT", "`].")]
48540///
48541/// # Safety
48542/// Implementors must be valid pNext chain members for the target struct.
48543pub unsafe trait ExtendsRenderPassSubpassFeedbackCreateInfoEXT {}
48544/// Marker trait for structs that can appear in the pNext chain of
48545#[doc = concat!("[`", "RenderPassTileShadingCreateInfoQCOM", "`].")]
48546///
48547/// # Safety
48548/// Implementors must be valid pNext chain members for the target struct.
48549pub unsafe trait ExtendsRenderPassTileShadingCreateInfoQCOM {}
48550/// Marker trait for structs that can appear in the pNext chain of
48551#[doc = concat!("[`", "RenderPassTransformBeginInfoQCOM", "`].")]
48552///
48553/// # Safety
48554/// Implementors must be valid pNext chain members for the target struct.
48555pub unsafe trait ExtendsRenderPassTransformBeginInfoQCOM {}
48556/// Marker trait for structs that can appear in the pNext chain of
48557#[doc = concat!("[`", "RenderingAreaInfo", "`].")]
48558///
48559/// # Safety
48560/// Implementors must be valid pNext chain members for the target struct.
48561pub unsafe trait ExtendsRenderingAreaInfo {}
48562/// Marker trait for structs that can appear in the pNext chain of
48563#[doc = concat!("[`", "RenderingAttachmentFlagsInfoKHR", "`].")]
48564///
48565/// # Safety
48566/// Implementors must be valid pNext chain members for the target struct.
48567pub unsafe trait ExtendsRenderingAttachmentFlagsInfoKHR {}
48568/// Marker trait for structs that can appear in the pNext chain of
48569#[doc = concat!("[`", "RenderingAttachmentInfo", "`].")]
48570///
48571/// # Safety
48572/// Implementors must be valid pNext chain members for the target struct.
48573pub unsafe trait ExtendsRenderingAttachmentInfo {}
48574/// Marker trait for structs that can appear in the pNext chain of
48575#[doc = concat!("[`", "RenderingAttachmentLocationInfo", "`].")]
48576///
48577/// # Safety
48578/// Implementors must be valid pNext chain members for the target struct.
48579pub unsafe trait ExtendsRenderingAttachmentLocationInfo {}
48580/// Marker trait for structs that can appear in the pNext chain of
48581#[doc = concat!("[`", "RenderingEndInfoKHR", "`].")]
48582///
48583/// # Safety
48584/// Implementors must be valid pNext chain members for the target struct.
48585pub unsafe trait ExtendsRenderingEndInfoKHR {}
48586/// Marker trait for structs that can appear in the pNext chain of
48587#[doc = concat!("[`", "RenderingFragmentDensityMapAttachmentInfoEXT", "`].")]
48588///
48589/// # Safety
48590/// Implementors must be valid pNext chain members for the target struct.
48591pub unsafe trait ExtendsRenderingFragmentDensityMapAttachmentInfoEXT {}
48592/// Marker trait for structs that can appear in the pNext chain of
48593#[doc = concat!("[`", "RenderingFragmentShadingRateAttachmentInfoKHR", "`].")]
48594///
48595/// # Safety
48596/// Implementors must be valid pNext chain members for the target struct.
48597pub unsafe trait ExtendsRenderingFragmentShadingRateAttachmentInfoKHR {}
48598/// Marker trait for structs that can appear in the pNext chain of
48599#[doc = concat!("[`", "RenderingInfo", "`].")]
48600///
48601/// # Safety
48602/// Implementors must be valid pNext chain members for the target struct.
48603pub unsafe trait ExtendsRenderingInfo {}
48604/// Marker trait for structs that can appear in the pNext chain of
48605#[doc = concat!("[`", "RenderingInputAttachmentIndexInfo", "`].")]
48606///
48607/// # Safety
48608/// Implementors must be valid pNext chain members for the target struct.
48609pub unsafe trait ExtendsRenderingInputAttachmentIndexInfo {}
48610/// Marker trait for structs that can appear in the pNext chain of
48611#[doc = concat!("[`", "ResolveImageInfo2", "`].")]
48612///
48613/// # Safety
48614/// Implementors must be valid pNext chain members for the target struct.
48615pub unsafe trait ExtendsResolveImageInfo2 {}
48616/// Marker trait for structs that can appear in the pNext chain of
48617#[doc = concat!("[`", "ResolveImageModeInfoKHR", "`].")]
48618///
48619/// # Safety
48620/// Implementors must be valid pNext chain members for the target struct.
48621pub unsafe trait ExtendsResolveImageModeInfoKHR {}
48622/// Marker trait for structs that can appear in the pNext chain of
48623#[doc = concat!("[`", "ResourceDescriptorInfoEXT", "`].")]
48624///
48625/// # Safety
48626/// Implementors must be valid pNext chain members for the target struct.
48627pub unsafe trait ExtendsResourceDescriptorInfoEXT {}
48628/// Marker trait for structs that can appear in the pNext chain of
48629#[doc = concat!("[`", "SampleLocationsInfoEXT", "`].")]
48630///
48631/// # Safety
48632/// Implementors must be valid pNext chain members for the target struct.
48633pub unsafe trait ExtendsSampleLocationsInfoEXT {}
48634/// Marker trait for structs that can appear in the pNext chain of
48635#[doc = concat!("[`", "SamplerBlockMatchWindowCreateInfoQCOM", "`].")]
48636///
48637/// # Safety
48638/// Implementors must be valid pNext chain members for the target struct.
48639pub unsafe trait ExtendsSamplerBlockMatchWindowCreateInfoQCOM {}
48640/// Marker trait for structs that can appear in the pNext chain of
48641#[doc = concat!("[`", "SamplerBorderColorComponentMappingCreateInfoEXT", "`].")]
48642///
48643/// # Safety
48644/// Implementors must be valid pNext chain members for the target struct.
48645pub unsafe trait ExtendsSamplerBorderColorComponentMappingCreateInfoEXT {}
48646/// Marker trait for structs that can appear in the pNext chain of
48647#[doc = concat!("[`", "SamplerCaptureDescriptorDataInfoEXT", "`].")]
48648///
48649/// # Safety
48650/// Implementors must be valid pNext chain members for the target struct.
48651pub unsafe trait ExtendsSamplerCaptureDescriptorDataInfoEXT {}
48652/// Marker trait for structs that can appear in the pNext chain of
48653#[doc = concat!("[`", "SamplerCreateInfo", "`].")]
48654///
48655/// # Safety
48656/// Implementors must be valid pNext chain members for the target struct.
48657pub unsafe trait ExtendsSamplerCreateInfo {}
48658/// Marker trait for structs that can appear in the pNext chain of
48659#[doc = concat!("[`", "SamplerCubicWeightsCreateInfoQCOM", "`].")]
48660///
48661/// # Safety
48662/// Implementors must be valid pNext chain members for the target struct.
48663pub unsafe trait ExtendsSamplerCubicWeightsCreateInfoQCOM {}
48664/// Marker trait for structs that can appear in the pNext chain of
48665#[doc = concat!("[`", "SamplerCustomBorderColorCreateInfoEXT", "`].")]
48666///
48667/// # Safety
48668/// Implementors must be valid pNext chain members for the target struct.
48669pub unsafe trait ExtendsSamplerCustomBorderColorCreateInfoEXT {}
48670/// Marker trait for structs that can appear in the pNext chain of
48671#[doc = concat!("[`", "SamplerCustomBorderColorIndexCreateInfoEXT", "`].")]
48672///
48673/// # Safety
48674/// Implementors must be valid pNext chain members for the target struct.
48675pub unsafe trait ExtendsSamplerCustomBorderColorIndexCreateInfoEXT {}
48676/// Marker trait for structs that can appear in the pNext chain of
48677#[doc = concat!("[`", "SamplerReductionModeCreateInfo", "`].")]
48678///
48679/// # Safety
48680/// Implementors must be valid pNext chain members for the target struct.
48681pub unsafe trait ExtendsSamplerReductionModeCreateInfo {}
48682/// Marker trait for structs that can appear in the pNext chain of
48683#[doc = concat!("[`", "SamplerYcbcrConversionCreateInfo", "`].")]
48684///
48685/// # Safety
48686/// Implementors must be valid pNext chain members for the target struct.
48687pub unsafe trait ExtendsSamplerYcbcrConversionCreateInfo {}
48688/// Marker trait for structs that can appear in the pNext chain of
48689#[doc = concat!("[`", "SamplerYcbcrConversionInfo", "`].")]
48690///
48691/// # Safety
48692/// Implementors must be valid pNext chain members for the target struct.
48693pub unsafe trait ExtendsSamplerYcbcrConversionInfo {}
48694/// Marker trait for structs that can appear in the pNext chain of
48695#[doc = concat!("[`", "SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM", "`].")]
48696///
48697/// # Safety
48698/// Implementors must be valid pNext chain members for the target struct.
48699pub unsafe trait ExtendsSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {}
48700/// Marker trait for structs that can appear in the pNext chain of
48701#[doc = concat!("[`", "SciSyncAttributesInfoNV", "`].")]
48702///
48703/// # Safety
48704/// Implementors must be valid pNext chain members for the target struct.
48705pub unsafe trait ExtendsSciSyncAttributesInfoNV {}
48706/// Marker trait for structs that can appear in the pNext chain of
48707#[doc = concat!("[`", "ScreenBufferPropertiesQNX", "`].")]
48708///
48709/// # Safety
48710/// Implementors must be valid pNext chain members for the target struct.
48711pub unsafe trait ExtendsScreenBufferPropertiesQNX {}
48712/// Marker trait for structs that can appear in the pNext chain of
48713#[doc = concat!("[`", "ScreenSurfaceCreateInfoQNX", "`].")]
48714///
48715/// # Safety
48716/// Implementors must be valid pNext chain members for the target struct.
48717pub unsafe trait ExtendsScreenSurfaceCreateInfoQNX {}
48718/// Marker trait for structs that can appear in the pNext chain of
48719#[doc = concat!("[`", "SemaphoreCreateInfo", "`].")]
48720///
48721/// # Safety
48722/// Implementors must be valid pNext chain members for the target struct.
48723pub unsafe trait ExtendsSemaphoreCreateInfo {}
48724/// Marker trait for structs that can appear in the pNext chain of
48725#[doc = concat!("[`", "SemaphoreGetFdInfoKHR", "`].")]
48726///
48727/// # Safety
48728/// Implementors must be valid pNext chain members for the target struct.
48729pub unsafe trait ExtendsSemaphoreGetFdInfoKHR {}
48730/// Marker trait for structs that can appear in the pNext chain of
48731#[doc = concat!("[`", "SemaphoreGetSciSyncInfoNV", "`].")]
48732///
48733/// # Safety
48734/// Implementors must be valid pNext chain members for the target struct.
48735pub unsafe trait ExtendsSemaphoreGetSciSyncInfoNV {}
48736/// Marker trait for structs that can appear in the pNext chain of
48737#[doc = concat!("[`", "SemaphoreGetWin32HandleInfoKHR", "`].")]
48738///
48739/// # Safety
48740/// Implementors must be valid pNext chain members for the target struct.
48741pub unsafe trait ExtendsSemaphoreGetWin32HandleInfoKHR {}
48742/// Marker trait for structs that can appear in the pNext chain of
48743#[doc = concat!("[`", "SemaphoreGetZirconHandleInfoFUCHSIA", "`].")]
48744///
48745/// # Safety
48746/// Implementors must be valid pNext chain members for the target struct.
48747pub unsafe trait ExtendsSemaphoreGetZirconHandleInfoFUCHSIA {}
48748/// Marker trait for structs that can appear in the pNext chain of
48749#[doc = concat!("[`", "SemaphoreSciSyncCreateInfoNV", "`].")]
48750///
48751/// # Safety
48752/// Implementors must be valid pNext chain members for the target struct.
48753pub unsafe trait ExtendsSemaphoreSciSyncCreateInfoNV {}
48754/// Marker trait for structs that can appear in the pNext chain of
48755#[doc = concat!("[`", "SemaphoreSciSyncPoolCreateInfoNV", "`].")]
48756///
48757/// # Safety
48758/// Implementors must be valid pNext chain members for the target struct.
48759pub unsafe trait ExtendsSemaphoreSciSyncPoolCreateInfoNV {}
48760/// Marker trait for structs that can appear in the pNext chain of
48761#[doc = concat!("[`", "SemaphoreSignalInfo", "`].")]
48762///
48763/// # Safety
48764/// Implementors must be valid pNext chain members for the target struct.
48765pub unsafe trait ExtendsSemaphoreSignalInfo {}
48766/// Marker trait for structs that can appear in the pNext chain of
48767#[doc = concat!("[`", "SemaphoreSubmitInfo", "`].")]
48768///
48769/// # Safety
48770/// Implementors must be valid pNext chain members for the target struct.
48771pub unsafe trait ExtendsSemaphoreSubmitInfo {}
48772/// Marker trait for structs that can appear in the pNext chain of
48773#[doc = concat!("[`", "SemaphoreTypeCreateInfo", "`].")]
48774///
48775/// # Safety
48776/// Implementors must be valid pNext chain members for the target struct.
48777pub unsafe trait ExtendsSemaphoreTypeCreateInfo {}
48778/// Marker trait for structs that can appear in the pNext chain of
48779#[doc = concat!("[`", "SemaphoreWaitInfo", "`].")]
48780///
48781/// # Safety
48782/// Implementors must be valid pNext chain members for the target struct.
48783pub unsafe trait ExtendsSemaphoreWaitInfo {}
48784/// Marker trait for structs that can appear in the pNext chain of
48785#[doc = concat!("[`", "SetDescriptorBufferOffsetsInfoEXT", "`].")]
48786///
48787/// # Safety
48788/// Implementors must be valid pNext chain members for the target struct.
48789pub unsafe trait ExtendsSetDescriptorBufferOffsetsInfoEXT {}
48790/// Marker trait for structs that can appear in the pNext chain of
48791#[doc = concat!("[`", "SetLatencyMarkerInfoNV", "`].")]
48792///
48793/// # Safety
48794/// Implementors must be valid pNext chain members for the target struct.
48795pub unsafe trait ExtendsSetLatencyMarkerInfoNV {}
48796/// Marker trait for structs that can appear in the pNext chain of
48797#[doc = concat!("[`", "SetPresentConfigNV", "`].")]
48798///
48799/// # Safety
48800/// Implementors must be valid pNext chain members for the target struct.
48801pub unsafe trait ExtendsSetPresentConfigNV {}
48802/// Marker trait for structs that can appear in the pNext chain of
48803#[doc = concat!("[`", "ShaderCreateInfoEXT", "`].")]
48804///
48805/// # Safety
48806/// Implementors must be valid pNext chain members for the target struct.
48807pub unsafe trait ExtendsShaderCreateInfoEXT {}
48808/// Marker trait for structs that can appear in the pNext chain of
48809#[doc = concat!("[`", "ShaderDescriptorSetAndBindingMappingInfoEXT", "`].")]
48810///
48811/// # Safety
48812/// Implementors must be valid pNext chain members for the target struct.
48813pub unsafe trait ExtendsShaderDescriptorSetAndBindingMappingInfoEXT {}
48814/// Marker trait for structs that can appear in the pNext chain of
48815#[doc = concat!("[`", "ShaderInstrumentationCreateInfoARM", "`].")]
48816///
48817/// # Safety
48818/// Implementors must be valid pNext chain members for the target struct.
48819pub unsafe trait ExtendsShaderInstrumentationCreateInfoARM {}
48820/// Marker trait for structs that can appear in the pNext chain of
48821#[doc = concat!("[`", "ShaderInstrumentationMetricDescriptionARM", "`].")]
48822///
48823/// # Safety
48824/// Implementors must be valid pNext chain members for the target struct.
48825pub unsafe trait ExtendsShaderInstrumentationMetricDescriptionARM {}
48826/// Marker trait for structs that can appear in the pNext chain of
48827#[doc = concat!("[`", "ShaderModuleCreateInfo", "`].")]
48828///
48829/// # Safety
48830/// Implementors must be valid pNext chain members for the target struct.
48831pub unsafe trait ExtendsShaderModuleCreateInfo {}
48832/// Marker trait for structs that can appear in the pNext chain of
48833#[doc = concat!("[`", "ShaderModuleValidationCacheCreateInfoEXT", "`].")]
48834///
48835/// # Safety
48836/// Implementors must be valid pNext chain members for the target struct.
48837pub unsafe trait ExtendsShaderModuleValidationCacheCreateInfoEXT {}
48838/// Marker trait for structs that can appear in the pNext chain of
48839#[doc = concat!("[`", "StreamDescriptorSurfaceCreateInfoGGP", "`].")]
48840///
48841/// # Safety
48842/// Implementors must be valid pNext chain members for the target struct.
48843pub unsafe trait ExtendsStreamDescriptorSurfaceCreateInfoGGP {}
48844/// Marker trait for structs that can appear in the pNext chain of
48845#[doc = concat!("[`", "SubmitInfo", "`].")]
48846///
48847/// # Safety
48848/// Implementors must be valid pNext chain members for the target struct.
48849pub unsafe trait ExtendsSubmitInfo {}
48850/// Marker trait for structs that can appear in the pNext chain of
48851#[doc = concat!("[`", "SubmitInfo2", "`].")]
48852///
48853/// # Safety
48854/// Implementors must be valid pNext chain members for the target struct.
48855pub unsafe trait ExtendsSubmitInfo2 {}
48856/// Marker trait for structs that can appear in the pNext chain of
48857#[doc = concat!("[`", "SubpassBeginInfo", "`].")]
48858///
48859/// # Safety
48860/// Implementors must be valid pNext chain members for the target struct.
48861pub unsafe trait ExtendsSubpassBeginInfo {}
48862/// Marker trait for structs that can appear in the pNext chain of
48863#[doc = concat!("[`", "SubpassDependency2", "`].")]
48864///
48865/// # Safety
48866/// Implementors must be valid pNext chain members for the target struct.
48867pub unsafe trait ExtendsSubpassDependency2 {}
48868/// Marker trait for structs that can appear in the pNext chain of
48869#[doc = concat!("[`", "SubpassDescription2", "`].")]
48870///
48871/// # Safety
48872/// Implementors must be valid pNext chain members for the target struct.
48873pub unsafe trait ExtendsSubpassDescription2 {}
48874/// Marker trait for structs that can appear in the pNext chain of
48875#[doc = concat!("[`", "SubpassDescriptionDepthStencilResolve", "`].")]
48876///
48877/// # Safety
48878/// Implementors must be valid pNext chain members for the target struct.
48879pub unsafe trait ExtendsSubpassDescriptionDepthStencilResolve {}
48880/// Marker trait for structs that can appear in the pNext chain of
48881#[doc = concat!("[`", "SubpassEndInfo", "`].")]
48882///
48883/// # Safety
48884/// Implementors must be valid pNext chain members for the target struct.
48885pub unsafe trait ExtendsSubpassEndInfo {}
48886/// Marker trait for structs that can appear in the pNext chain of
48887#[doc = concat!("[`", "SubpassShadingPipelineCreateInfoHUAWEI", "`].")]
48888///
48889/// # Safety
48890/// Implementors must be valid pNext chain members for the target struct.
48891pub unsafe trait ExtendsSubpassShadingPipelineCreateInfoHUAWEI {}
48892/// Marker trait for structs that can appear in the pNext chain of
48893#[doc = concat!("[`", "SubresourceLayout2", "`].")]
48894///
48895/// # Safety
48896/// Implementors must be valid pNext chain members for the target struct.
48897pub unsafe trait ExtendsSubresourceLayout2 {}
48898/// Marker trait for structs that can appear in the pNext chain of
48899#[doc = concat!("[`", "SubsampledImageFormatPropertiesEXT", "`].")]
48900///
48901/// # Safety
48902/// Implementors must be valid pNext chain members for the target struct.
48903pub unsafe trait ExtendsSubsampledImageFormatPropertiesEXT {}
48904/// Marker trait for structs that can appear in the pNext chain of
48905#[doc = concat!("[`", "SurfaceCapabilities2KHR", "`].")]
48906///
48907/// # Safety
48908/// Implementors must be valid pNext chain members for the target struct.
48909pub unsafe trait ExtendsSurfaceCapabilities2KHR {}
48910/// Marker trait for structs that can appear in the pNext chain of
48911#[doc = concat!("[`", "SurfaceCapabilitiesPresentId2KHR", "`].")]
48912///
48913/// # Safety
48914/// Implementors must be valid pNext chain members for the target struct.
48915pub unsafe trait ExtendsSurfaceCapabilitiesPresentId2KHR {}
48916/// Marker trait for structs that can appear in the pNext chain of
48917#[doc = concat!("[`", "SurfaceCapabilitiesPresentWait2KHR", "`].")]
48918///
48919/// # Safety
48920/// Implementors must be valid pNext chain members for the target struct.
48921pub unsafe trait ExtendsSurfaceCapabilitiesPresentWait2KHR {}
48922/// Marker trait for structs that can appear in the pNext chain of
48923#[doc = concat!("[`", "SurfaceCreateInfoOHOS", "`].")]
48924///
48925/// # Safety
48926/// Implementors must be valid pNext chain members for the target struct.
48927pub unsafe trait ExtendsSurfaceCreateInfoOHOS {}
48928/// Marker trait for structs that can appear in the pNext chain of
48929#[doc = concat!("[`", "SurfaceFormat2KHR", "`].")]
48930///
48931/// # Safety
48932/// Implementors must be valid pNext chain members for the target struct.
48933pub unsafe trait ExtendsSurfaceFormat2KHR {}
48934/// Marker trait for structs that can appear in the pNext chain of
48935#[doc = concat!("[`", "SurfaceFullScreenExclusiveInfoEXT", "`].")]
48936///
48937/// # Safety
48938/// Implementors must be valid pNext chain members for the target struct.
48939pub unsafe trait ExtendsSurfaceFullScreenExclusiveInfoEXT {}
48940/// Marker trait for structs that can appear in the pNext chain of
48941#[doc = concat!("[`", "SurfaceFullScreenExclusiveWin32InfoEXT", "`].")]
48942///
48943/// # Safety
48944/// Implementors must be valid pNext chain members for the target struct.
48945pub unsafe trait ExtendsSurfaceFullScreenExclusiveWin32InfoEXT {}
48946/// Marker trait for structs that can appear in the pNext chain of
48947#[doc = concat!("[`", "SurfacePresentModeCompatibilityKHR", "`].")]
48948///
48949/// # Safety
48950/// Implementors must be valid pNext chain members for the target struct.
48951pub unsafe trait ExtendsSurfacePresentModeCompatibilityKHR {}
48952/// Marker trait for structs that can appear in the pNext chain of
48953#[doc = concat!("[`", "SurfacePresentModeKHR", "`].")]
48954///
48955/// # Safety
48956/// Implementors must be valid pNext chain members for the target struct.
48957pub unsafe trait ExtendsSurfacePresentModeKHR {}
48958/// Marker trait for structs that can appear in the pNext chain of
48959#[doc = concat!("[`", "SurfacePresentScalingCapabilitiesKHR", "`].")]
48960///
48961/// # Safety
48962/// Implementors must be valid pNext chain members for the target struct.
48963pub unsafe trait ExtendsSurfacePresentScalingCapabilitiesKHR {}
48964/// Marker trait for structs that can appear in the pNext chain of
48965#[doc = concat!("[`", "SwapchainCalibratedTimestampInfoEXT", "`].")]
48966///
48967/// # Safety
48968/// Implementors must be valid pNext chain members for the target struct.
48969pub unsafe trait ExtendsSwapchainCalibratedTimestampInfoEXT {}
48970/// Marker trait for structs that can appear in the pNext chain of
48971#[doc = concat!("[`", "SwapchainCounterCreateInfoEXT", "`].")]
48972///
48973/// # Safety
48974/// Implementors must be valid pNext chain members for the target struct.
48975pub unsafe trait ExtendsSwapchainCounterCreateInfoEXT {}
48976/// Marker trait for structs that can appear in the pNext chain of
48977#[doc = concat!("[`", "SwapchainCreateInfoKHR", "`].")]
48978///
48979/// # Safety
48980/// Implementors must be valid pNext chain members for the target struct.
48981pub unsafe trait ExtendsSwapchainCreateInfoKHR {}
48982/// Marker trait for structs that can appear in the pNext chain of
48983#[doc = concat!("[`", "SwapchainDisplayNativeHdrCreateInfoAMD", "`].")]
48984///
48985/// # Safety
48986/// Implementors must be valid pNext chain members for the target struct.
48987pub unsafe trait ExtendsSwapchainDisplayNativeHdrCreateInfoAMD {}
48988/// Marker trait for structs that can appear in the pNext chain of
48989#[doc = concat!("[`", "SwapchainImageCreateInfoANDROID", "`].")]
48990///
48991/// # Safety
48992/// Implementors must be valid pNext chain members for the target struct.
48993pub unsafe trait ExtendsSwapchainImageCreateInfoANDROID {}
48994/// Marker trait for structs that can appear in the pNext chain of
48995#[doc = concat!("[`", "SwapchainImageCreateInfoOHOS", "`].")]
48996///
48997/// # Safety
48998/// Implementors must be valid pNext chain members for the target struct.
48999pub unsafe trait ExtendsSwapchainImageCreateInfoOHOS {}
49000/// Marker trait for structs that can appear in the pNext chain of
49001#[doc = concat!("[`", "SwapchainLatencyCreateInfoNV", "`].")]
49002///
49003/// # Safety
49004/// Implementors must be valid pNext chain members for the target struct.
49005pub unsafe trait ExtendsSwapchainLatencyCreateInfoNV {}
49006/// Marker trait for structs that can appear in the pNext chain of
49007#[doc = concat!("[`", "SwapchainPresentBarrierCreateInfoNV", "`].")]
49008///
49009/// # Safety
49010/// Implementors must be valid pNext chain members for the target struct.
49011pub unsafe trait ExtendsSwapchainPresentBarrierCreateInfoNV {}
49012/// Marker trait for structs that can appear in the pNext chain of
49013#[doc = concat!("[`", "SwapchainPresentFenceInfoKHR", "`].")]
49014///
49015/// # Safety
49016/// Implementors must be valid pNext chain members for the target struct.
49017pub unsafe trait ExtendsSwapchainPresentFenceInfoKHR {}
49018/// Marker trait for structs that can appear in the pNext chain of
49019#[doc = concat!("[`", "SwapchainPresentModeInfoKHR", "`].")]
49020///
49021/// # Safety
49022/// Implementors must be valid pNext chain members for the target struct.
49023pub unsafe trait ExtendsSwapchainPresentModeInfoKHR {}
49024/// Marker trait for structs that can appear in the pNext chain of
49025#[doc = concat!("[`", "SwapchainPresentModesCreateInfoKHR", "`].")]
49026///
49027/// # Safety
49028/// Implementors must be valid pNext chain members for the target struct.
49029pub unsafe trait ExtendsSwapchainPresentModesCreateInfoKHR {}
49030/// Marker trait for structs that can appear in the pNext chain of
49031#[doc = concat!("[`", "SwapchainPresentScalingCreateInfoKHR", "`].")]
49032///
49033/// # Safety
49034/// Implementors must be valid pNext chain members for the target struct.
49035pub unsafe trait ExtendsSwapchainPresentScalingCreateInfoKHR {}
49036/// Marker trait for structs that can appear in the pNext chain of
49037#[doc = concat!("[`", "SysmemColorSpaceFUCHSIA", "`].")]
49038///
49039/// # Safety
49040/// Implementors must be valid pNext chain members for the target struct.
49041pub unsafe trait ExtendsSysmemColorSpaceFUCHSIA {}
49042/// Marker trait for structs that can appear in the pNext chain of
49043#[doc = concat!("[`", "TensorCaptureDescriptorDataInfoARM", "`].")]
49044///
49045/// # Safety
49046/// Implementors must be valid pNext chain members for the target struct.
49047pub unsafe trait ExtendsTensorCaptureDescriptorDataInfoARM {}
49048/// Marker trait for structs that can appear in the pNext chain of
49049#[doc = concat!("[`", "TensorCopyARM", "`].")]
49050///
49051/// # Safety
49052/// Implementors must be valid pNext chain members for the target struct.
49053pub unsafe trait ExtendsTensorCopyARM {}
49054/// Marker trait for structs that can appear in the pNext chain of
49055#[doc = concat!("[`", "TensorCreateInfoARM", "`].")]
49056///
49057/// # Safety
49058/// Implementors must be valid pNext chain members for the target struct.
49059pub unsafe trait ExtendsTensorCreateInfoARM {}
49060/// Marker trait for structs that can appear in the pNext chain of
49061#[doc = concat!("[`", "TensorDependencyInfoARM", "`].")]
49062///
49063/// # Safety
49064/// Implementors must be valid pNext chain members for the target struct.
49065pub unsafe trait ExtendsTensorDependencyInfoARM {}
49066/// Marker trait for structs that can appear in the pNext chain of
49067#[doc = concat!("[`", "TensorDescriptionARM", "`].")]
49068///
49069/// # Safety
49070/// Implementors must be valid pNext chain members for the target struct.
49071pub unsafe trait ExtendsTensorDescriptionARM {}
49072/// Marker trait for structs that can appear in the pNext chain of
49073#[doc = concat!("[`", "TensorMemoryBarrierARM", "`].")]
49074///
49075/// # Safety
49076/// Implementors must be valid pNext chain members for the target struct.
49077pub unsafe trait ExtendsTensorMemoryBarrierARM {}
49078/// Marker trait for structs that can appear in the pNext chain of
49079#[doc = concat!("[`", "TensorMemoryRequirementsInfoARM", "`].")]
49080///
49081/// # Safety
49082/// Implementors must be valid pNext chain members for the target struct.
49083pub unsafe trait ExtendsTensorMemoryRequirementsInfoARM {}
49084/// Marker trait for structs that can appear in the pNext chain of
49085#[doc = concat!("[`", "TensorViewCaptureDescriptorDataInfoARM", "`].")]
49086///
49087/// # Safety
49088/// Implementors must be valid pNext chain members for the target struct.
49089pub unsafe trait ExtendsTensorViewCaptureDescriptorDataInfoARM {}
49090/// Marker trait for structs that can appear in the pNext chain of
49091#[doc = concat!("[`", "TensorViewCreateInfoARM", "`].")]
49092///
49093/// # Safety
49094/// Implementors must be valid pNext chain members for the target struct.
49095pub unsafe trait ExtendsTensorViewCreateInfoARM {}
49096/// Marker trait for structs that can appear in the pNext chain of
49097#[doc = concat!("[`", "TexelBufferDescriptorInfoEXT", "`].")]
49098///
49099/// # Safety
49100/// Implementors must be valid pNext chain members for the target struct.
49101pub unsafe trait ExtendsTexelBufferDescriptorInfoEXT {}
49102/// Marker trait for structs that can appear in the pNext chain of
49103#[doc = concat!("[`", "TileMemoryBindInfoQCOM", "`].")]
49104///
49105/// # Safety
49106/// Implementors must be valid pNext chain members for the target struct.
49107pub unsafe trait ExtendsTileMemoryBindInfoQCOM {}
49108/// Marker trait for structs that can appear in the pNext chain of
49109#[doc = concat!("[`", "TileMemoryRequirementsQCOM", "`].")]
49110///
49111/// # Safety
49112/// Implementors must be valid pNext chain members for the target struct.
49113pub unsafe trait ExtendsTileMemoryRequirementsQCOM {}
49114/// Marker trait for structs that can appear in the pNext chain of
49115#[doc = concat!("[`", "TileMemorySizeInfoQCOM", "`].")]
49116///
49117/// # Safety
49118/// Implementors must be valid pNext chain members for the target struct.
49119pub unsafe trait ExtendsTileMemorySizeInfoQCOM {}
49120/// Marker trait for structs that can appear in the pNext chain of
49121#[doc = concat!("[`", "TilePropertiesQCOM", "`].")]
49122///
49123/// # Safety
49124/// Implementors must be valid pNext chain members for the target struct.
49125pub unsafe trait ExtendsTilePropertiesQCOM {}
49126/// Marker trait for structs that can appear in the pNext chain of
49127#[doc = concat!("[`", "TimelineSemaphoreSubmitInfo", "`].")]
49128///
49129/// # Safety
49130/// Implementors must be valid pNext chain members for the target struct.
49131pub unsafe trait ExtendsTimelineSemaphoreSubmitInfo {}
49132/// Marker trait for structs that can appear in the pNext chain of
49133#[doc = concat!("[`", "UbmSurfaceCreateInfoSEC", "`].")]
49134///
49135/// # Safety
49136/// Implementors must be valid pNext chain members for the target struct.
49137pub unsafe trait ExtendsUbmSurfaceCreateInfoSEC {}
49138/// Marker trait for structs that can appear in the pNext chain of
49139#[doc = concat!("[`", "ValidationCacheCreateInfoEXT", "`].")]
49140///
49141/// # Safety
49142/// Implementors must be valid pNext chain members for the target struct.
49143pub unsafe trait ExtendsValidationCacheCreateInfoEXT {}
49144/// Marker trait for structs that can appear in the pNext chain of
49145#[doc = concat!("[`", "ValidationFeaturesEXT", "`].")]
49146///
49147/// # Safety
49148/// Implementors must be valid pNext chain members for the target struct.
49149pub unsafe trait ExtendsValidationFeaturesEXT {}
49150/// Marker trait for structs that can appear in the pNext chain of
49151#[doc = concat!("[`", "ValidationFlagsEXT", "`].")]
49152///
49153/// # Safety
49154/// Implementors must be valid pNext chain members for the target struct.
49155pub unsafe trait ExtendsValidationFlagsEXT {}
49156/// Marker trait for structs that can appear in the pNext chain of
49157#[doc = concat!("[`", "VertexInputAttributeDescription2EXT", "`].")]
49158///
49159/// # Safety
49160/// Implementors must be valid pNext chain members for the target struct.
49161pub unsafe trait ExtendsVertexInputAttributeDescription2EXT {}
49162/// Marker trait for structs that can appear in the pNext chain of
49163#[doc = concat!("[`", "VertexInputBindingDescription2EXT", "`].")]
49164///
49165/// # Safety
49166/// Implementors must be valid pNext chain members for the target struct.
49167pub unsafe trait ExtendsVertexInputBindingDescription2EXT {}
49168/// Marker trait for structs that can appear in the pNext chain of
49169#[doc = concat!("[`", "ViSurfaceCreateInfoNN", "`].")]
49170///
49171/// # Safety
49172/// Implementors must be valid pNext chain members for the target struct.
49173pub unsafe trait ExtendsViSurfaceCreateInfoNN {}
49174/// Marker trait for structs that can appear in the pNext chain of
49175#[doc = concat!("[`", "VideoBeginCodingInfoKHR", "`].")]
49176///
49177/// # Safety
49178/// Implementors must be valid pNext chain members for the target struct.
49179pub unsafe trait ExtendsVideoBeginCodingInfoKHR {}
49180/// Marker trait for structs that can appear in the pNext chain of
49181#[doc = concat!("[`", "VideoCapabilitiesKHR", "`].")]
49182///
49183/// # Safety
49184/// Implementors must be valid pNext chain members for the target struct.
49185pub unsafe trait ExtendsVideoCapabilitiesKHR {}
49186/// Marker trait for structs that can appear in the pNext chain of
49187#[doc = concat!("[`", "VideoCodingControlInfoKHR", "`].")]
49188///
49189/// # Safety
49190/// Implementors must be valid pNext chain members for the target struct.
49191pub unsafe trait ExtendsVideoCodingControlInfoKHR {}
49192/// Marker trait for structs that can appear in the pNext chain of
49193#[doc = concat!("[`", "VideoDecodeAV1DpbSlotInfoKHR", "`].")]
49194///
49195/// # Safety
49196/// Implementors must be valid pNext chain members for the target struct.
49197pub unsafe trait ExtendsVideoDecodeAV1DpbSlotInfoKHR {}
49198/// Marker trait for structs that can appear in the pNext chain of
49199#[doc = concat!("[`", "VideoDecodeAV1InlineSessionParametersInfoKHR", "`].")]
49200///
49201/// # Safety
49202/// Implementors must be valid pNext chain members for the target struct.
49203pub unsafe trait ExtendsVideoDecodeAV1InlineSessionParametersInfoKHR {}
49204/// Marker trait for structs that can appear in the pNext chain of
49205#[doc = concat!("[`", "VideoDecodeAV1PictureInfoKHR", "`].")]
49206///
49207/// # Safety
49208/// Implementors must be valid pNext chain members for the target struct.
49209pub unsafe trait ExtendsVideoDecodeAV1PictureInfoKHR {}
49210/// Marker trait for structs that can appear in the pNext chain of
49211#[doc = concat!("[`", "VideoDecodeAV1ProfileInfoKHR", "`].")]
49212///
49213/// # Safety
49214/// Implementors must be valid pNext chain members for the target struct.
49215pub unsafe trait ExtendsVideoDecodeAV1ProfileInfoKHR {}
49216/// Marker trait for structs that can appear in the pNext chain of
49217#[doc = concat!("[`", "VideoDecodeAV1SessionParametersCreateInfoKHR", "`].")]
49218///
49219/// # Safety
49220/// Implementors must be valid pNext chain members for the target struct.
49221pub unsafe trait ExtendsVideoDecodeAV1SessionParametersCreateInfoKHR {}
49222/// Marker trait for structs that can appear in the pNext chain of
49223#[doc = concat!("[`", "VideoDecodeH264DpbSlotInfoKHR", "`].")]
49224///
49225/// # Safety
49226/// Implementors must be valid pNext chain members for the target struct.
49227pub unsafe trait ExtendsVideoDecodeH264DpbSlotInfoKHR {}
49228/// Marker trait for structs that can appear in the pNext chain of
49229#[doc = concat!("[`", "VideoDecodeH264InlineSessionParametersInfoKHR", "`].")]
49230///
49231/// # Safety
49232/// Implementors must be valid pNext chain members for the target struct.
49233pub unsafe trait ExtendsVideoDecodeH264InlineSessionParametersInfoKHR {}
49234/// Marker trait for structs that can appear in the pNext chain of
49235#[doc = concat!("[`", "VideoDecodeH264PictureInfoKHR", "`].")]
49236///
49237/// # Safety
49238/// Implementors must be valid pNext chain members for the target struct.
49239pub unsafe trait ExtendsVideoDecodeH264PictureInfoKHR {}
49240/// Marker trait for structs that can appear in the pNext chain of
49241#[doc = concat!("[`", "VideoDecodeH264ProfileInfoKHR", "`].")]
49242///
49243/// # Safety
49244/// Implementors must be valid pNext chain members for the target struct.
49245pub unsafe trait ExtendsVideoDecodeH264ProfileInfoKHR {}
49246/// Marker trait for structs that can appear in the pNext chain of
49247#[doc = concat!("[`", "VideoDecodeH264SessionParametersAddInfoKHR", "`].")]
49248///
49249/// # Safety
49250/// Implementors must be valid pNext chain members for the target struct.
49251pub unsafe trait ExtendsVideoDecodeH264SessionParametersAddInfoKHR {}
49252/// Marker trait for structs that can appear in the pNext chain of
49253#[doc = concat!("[`", "VideoDecodeH264SessionParametersCreateInfoKHR", "`].")]
49254///
49255/// # Safety
49256/// Implementors must be valid pNext chain members for the target struct.
49257pub unsafe trait ExtendsVideoDecodeH264SessionParametersCreateInfoKHR {}
49258/// Marker trait for structs that can appear in the pNext chain of
49259#[doc = concat!("[`", "VideoDecodeH265DpbSlotInfoKHR", "`].")]
49260///
49261/// # Safety
49262/// Implementors must be valid pNext chain members for the target struct.
49263pub unsafe trait ExtendsVideoDecodeH265DpbSlotInfoKHR {}
49264/// Marker trait for structs that can appear in the pNext chain of
49265#[doc = concat!("[`", "VideoDecodeH265InlineSessionParametersInfoKHR", "`].")]
49266///
49267/// # Safety
49268/// Implementors must be valid pNext chain members for the target struct.
49269pub unsafe trait ExtendsVideoDecodeH265InlineSessionParametersInfoKHR {}
49270/// Marker trait for structs that can appear in the pNext chain of
49271#[doc = concat!("[`", "VideoDecodeH265PictureInfoKHR", "`].")]
49272///
49273/// # Safety
49274/// Implementors must be valid pNext chain members for the target struct.
49275pub unsafe trait ExtendsVideoDecodeH265PictureInfoKHR {}
49276/// Marker trait for structs that can appear in the pNext chain of
49277#[doc = concat!("[`", "VideoDecodeH265ProfileInfoKHR", "`].")]
49278///
49279/// # Safety
49280/// Implementors must be valid pNext chain members for the target struct.
49281pub unsafe trait ExtendsVideoDecodeH265ProfileInfoKHR {}
49282/// Marker trait for structs that can appear in the pNext chain of
49283#[doc = concat!("[`", "VideoDecodeH265SessionParametersAddInfoKHR", "`].")]
49284///
49285/// # Safety
49286/// Implementors must be valid pNext chain members for the target struct.
49287pub unsafe trait ExtendsVideoDecodeH265SessionParametersAddInfoKHR {}
49288/// Marker trait for structs that can appear in the pNext chain of
49289#[doc = concat!("[`", "VideoDecodeH265SessionParametersCreateInfoKHR", "`].")]
49290///
49291/// # Safety
49292/// Implementors must be valid pNext chain members for the target struct.
49293pub unsafe trait ExtendsVideoDecodeH265SessionParametersCreateInfoKHR {}
49294/// Marker trait for structs that can appear in the pNext chain of
49295#[doc = concat!("[`", "VideoDecodeInfoKHR", "`].")]
49296///
49297/// # Safety
49298/// Implementors must be valid pNext chain members for the target struct.
49299pub unsafe trait ExtendsVideoDecodeInfoKHR {}
49300/// Marker trait for structs that can appear in the pNext chain of
49301#[doc = concat!("[`", "VideoDecodeUsageInfoKHR", "`].")]
49302///
49303/// # Safety
49304/// Implementors must be valid pNext chain members for the target struct.
49305pub unsafe trait ExtendsVideoDecodeUsageInfoKHR {}
49306/// Marker trait for structs that can appear in the pNext chain of
49307#[doc = concat!("[`", "VideoDecodeVP9PictureInfoKHR", "`].")]
49308///
49309/// # Safety
49310/// Implementors must be valid pNext chain members for the target struct.
49311pub unsafe trait ExtendsVideoDecodeVP9PictureInfoKHR {}
49312/// Marker trait for structs that can appear in the pNext chain of
49313#[doc = concat!("[`", "VideoDecodeVP9ProfileInfoKHR", "`].")]
49314///
49315/// # Safety
49316/// Implementors must be valid pNext chain members for the target struct.
49317pub unsafe trait ExtendsVideoDecodeVP9ProfileInfoKHR {}
49318/// Marker trait for structs that can appear in the pNext chain of
49319#[doc = concat!("[`", "VideoEncodeAV1DpbSlotInfoKHR", "`].")]
49320///
49321/// # Safety
49322/// Implementors must be valid pNext chain members for the target struct.
49323pub unsafe trait ExtendsVideoEncodeAV1DpbSlotInfoKHR {}
49324/// Marker trait for structs that can appear in the pNext chain of
49325#[doc = concat!("[`", "VideoEncodeAV1GopRemainingFrameInfoKHR", "`].")]
49326///
49327/// # Safety
49328/// Implementors must be valid pNext chain members for the target struct.
49329pub unsafe trait ExtendsVideoEncodeAV1GopRemainingFrameInfoKHR {}
49330/// Marker trait for structs that can appear in the pNext chain of
49331#[doc = concat!("[`", "VideoEncodeAV1PictureInfoKHR", "`].")]
49332///
49333/// # Safety
49334/// Implementors must be valid pNext chain members for the target struct.
49335pub unsafe trait ExtendsVideoEncodeAV1PictureInfoKHR {}
49336/// Marker trait for structs that can appear in the pNext chain of
49337#[doc = concat!("[`", "VideoEncodeAV1ProfileInfoKHR", "`].")]
49338///
49339/// # Safety
49340/// Implementors must be valid pNext chain members for the target struct.
49341pub unsafe trait ExtendsVideoEncodeAV1ProfileInfoKHR {}
49342/// Marker trait for structs that can appear in the pNext chain of
49343#[doc = concat!("[`", "VideoEncodeAV1RateControlInfoKHR", "`].")]
49344///
49345/// # Safety
49346/// Implementors must be valid pNext chain members for the target struct.
49347pub unsafe trait ExtendsVideoEncodeAV1RateControlInfoKHR {}
49348/// Marker trait for structs that can appear in the pNext chain of
49349#[doc = concat!("[`", "VideoEncodeAV1RateControlLayerInfoKHR", "`].")]
49350///
49351/// # Safety
49352/// Implementors must be valid pNext chain members for the target struct.
49353pub unsafe trait ExtendsVideoEncodeAV1RateControlLayerInfoKHR {}
49354/// Marker trait for structs that can appear in the pNext chain of
49355#[doc = concat!("[`", "VideoEncodeAV1SessionCreateInfoKHR", "`].")]
49356///
49357/// # Safety
49358/// Implementors must be valid pNext chain members for the target struct.
49359pub unsafe trait ExtendsVideoEncodeAV1SessionCreateInfoKHR {}
49360/// Marker trait for structs that can appear in the pNext chain of
49361#[doc = concat!("[`", "VideoEncodeAV1SessionParametersCreateInfoKHR", "`].")]
49362///
49363/// # Safety
49364/// Implementors must be valid pNext chain members for the target struct.
49365pub unsafe trait ExtendsVideoEncodeAV1SessionParametersCreateInfoKHR {}
49366/// Marker trait for structs that can appear in the pNext chain of
49367#[doc = concat!("[`", "VideoEncodeH264DpbSlotInfoKHR", "`].")]
49368///
49369/// # Safety
49370/// Implementors must be valid pNext chain members for the target struct.
49371pub unsafe trait ExtendsVideoEncodeH264DpbSlotInfoKHR {}
49372/// Marker trait for structs that can appear in the pNext chain of
49373#[doc = concat!("[`", "VideoEncodeH264GopRemainingFrameInfoKHR", "`].")]
49374///
49375/// # Safety
49376/// Implementors must be valid pNext chain members for the target struct.
49377pub unsafe trait ExtendsVideoEncodeH264GopRemainingFrameInfoKHR {}
49378/// Marker trait for structs that can appear in the pNext chain of
49379#[doc = concat!("[`", "VideoEncodeH264NaluSliceInfoKHR", "`].")]
49380///
49381/// # Safety
49382/// Implementors must be valid pNext chain members for the target struct.
49383pub unsafe trait ExtendsVideoEncodeH264NaluSliceInfoKHR {}
49384/// Marker trait for structs that can appear in the pNext chain of
49385#[doc = concat!("[`", "VideoEncodeH264PictureInfoKHR", "`].")]
49386///
49387/// # Safety
49388/// Implementors must be valid pNext chain members for the target struct.
49389pub unsafe trait ExtendsVideoEncodeH264PictureInfoKHR {}
49390/// Marker trait for structs that can appear in the pNext chain of
49391#[doc = concat!("[`", "VideoEncodeH264ProfileInfoKHR", "`].")]
49392///
49393/// # Safety
49394/// Implementors must be valid pNext chain members for the target struct.
49395pub unsafe trait ExtendsVideoEncodeH264ProfileInfoKHR {}
49396/// Marker trait for structs that can appear in the pNext chain of
49397#[doc = concat!("[`", "VideoEncodeH264RateControlInfoKHR", "`].")]
49398///
49399/// # Safety
49400/// Implementors must be valid pNext chain members for the target struct.
49401pub unsafe trait ExtendsVideoEncodeH264RateControlInfoKHR {}
49402/// Marker trait for structs that can appear in the pNext chain of
49403#[doc = concat!("[`", "VideoEncodeH264RateControlLayerInfoKHR", "`].")]
49404///
49405/// # Safety
49406/// Implementors must be valid pNext chain members for the target struct.
49407pub unsafe trait ExtendsVideoEncodeH264RateControlLayerInfoKHR {}
49408/// Marker trait for structs that can appear in the pNext chain of
49409#[doc = concat!("[`", "VideoEncodeH264SessionCreateInfoKHR", "`].")]
49410///
49411/// # Safety
49412/// Implementors must be valid pNext chain members for the target struct.
49413pub unsafe trait ExtendsVideoEncodeH264SessionCreateInfoKHR {}
49414/// Marker trait for structs that can appear in the pNext chain of
49415#[doc = concat!("[`", "VideoEncodeH264SessionParametersAddInfoKHR", "`].")]
49416///
49417/// # Safety
49418/// Implementors must be valid pNext chain members for the target struct.
49419pub unsafe trait ExtendsVideoEncodeH264SessionParametersAddInfoKHR {}
49420/// Marker trait for structs that can appear in the pNext chain of
49421#[doc = concat!("[`", "VideoEncodeH264SessionParametersCreateInfoKHR", "`].")]
49422///
49423/// # Safety
49424/// Implementors must be valid pNext chain members for the target struct.
49425pub unsafe trait ExtendsVideoEncodeH264SessionParametersCreateInfoKHR {}
49426/// Marker trait for structs that can appear in the pNext chain of
49427#[doc = concat!("[`", "VideoEncodeH264SessionParametersGetInfoKHR", "`].")]
49428///
49429/// # Safety
49430/// Implementors must be valid pNext chain members for the target struct.
49431pub unsafe trait ExtendsVideoEncodeH264SessionParametersGetInfoKHR {}
49432/// Marker trait for structs that can appear in the pNext chain of
49433#[doc = concat!("[`", "VideoEncodeH265DpbSlotInfoKHR", "`].")]
49434///
49435/// # Safety
49436/// Implementors must be valid pNext chain members for the target struct.
49437pub unsafe trait ExtendsVideoEncodeH265DpbSlotInfoKHR {}
49438/// Marker trait for structs that can appear in the pNext chain of
49439#[doc = concat!("[`", "VideoEncodeH265GopRemainingFrameInfoKHR", "`].")]
49440///
49441/// # Safety
49442/// Implementors must be valid pNext chain members for the target struct.
49443pub unsafe trait ExtendsVideoEncodeH265GopRemainingFrameInfoKHR {}
49444/// Marker trait for structs that can appear in the pNext chain of
49445#[doc = concat!("[`", "VideoEncodeH265NaluSliceSegmentInfoKHR", "`].")]
49446///
49447/// # Safety
49448/// Implementors must be valid pNext chain members for the target struct.
49449pub unsafe trait ExtendsVideoEncodeH265NaluSliceSegmentInfoKHR {}
49450/// Marker trait for structs that can appear in the pNext chain of
49451#[doc = concat!("[`", "VideoEncodeH265PictureInfoKHR", "`].")]
49452///
49453/// # Safety
49454/// Implementors must be valid pNext chain members for the target struct.
49455pub unsafe trait ExtendsVideoEncodeH265PictureInfoKHR {}
49456/// Marker trait for structs that can appear in the pNext chain of
49457#[doc = concat!("[`", "VideoEncodeH265ProfileInfoKHR", "`].")]
49458///
49459/// # Safety
49460/// Implementors must be valid pNext chain members for the target struct.
49461pub unsafe trait ExtendsVideoEncodeH265ProfileInfoKHR {}
49462/// Marker trait for structs that can appear in the pNext chain of
49463#[doc = concat!("[`", "VideoEncodeH265RateControlInfoKHR", "`].")]
49464///
49465/// # Safety
49466/// Implementors must be valid pNext chain members for the target struct.
49467pub unsafe trait ExtendsVideoEncodeH265RateControlInfoKHR {}
49468/// Marker trait for structs that can appear in the pNext chain of
49469#[doc = concat!("[`", "VideoEncodeH265RateControlLayerInfoKHR", "`].")]
49470///
49471/// # Safety
49472/// Implementors must be valid pNext chain members for the target struct.
49473pub unsafe trait ExtendsVideoEncodeH265RateControlLayerInfoKHR {}
49474/// Marker trait for structs that can appear in the pNext chain of
49475#[doc = concat!("[`", "VideoEncodeH265SessionCreateInfoKHR", "`].")]
49476///
49477/// # Safety
49478/// Implementors must be valid pNext chain members for the target struct.
49479pub unsafe trait ExtendsVideoEncodeH265SessionCreateInfoKHR {}
49480/// Marker trait for structs that can appear in the pNext chain of
49481#[doc = concat!("[`", "VideoEncodeH265SessionParametersAddInfoKHR", "`].")]
49482///
49483/// # Safety
49484/// Implementors must be valid pNext chain members for the target struct.
49485pub unsafe trait ExtendsVideoEncodeH265SessionParametersAddInfoKHR {}
49486/// Marker trait for structs that can appear in the pNext chain of
49487#[doc = concat!("[`", "VideoEncodeH265SessionParametersCreateInfoKHR", "`].")]
49488///
49489/// # Safety
49490/// Implementors must be valid pNext chain members for the target struct.
49491pub unsafe trait ExtendsVideoEncodeH265SessionParametersCreateInfoKHR {}
49492/// Marker trait for structs that can appear in the pNext chain of
49493#[doc = concat!("[`", "VideoEncodeH265SessionParametersGetInfoKHR", "`].")]
49494///
49495/// # Safety
49496/// Implementors must be valid pNext chain members for the target struct.
49497pub unsafe trait ExtendsVideoEncodeH265SessionParametersGetInfoKHR {}
49498/// Marker trait for structs that can appear in the pNext chain of
49499#[doc = concat!("[`", "VideoEncodeInfoKHR", "`].")]
49500///
49501/// # Safety
49502/// Implementors must be valid pNext chain members for the target struct.
49503pub unsafe trait ExtendsVideoEncodeInfoKHR {}
49504/// Marker trait for structs that can appear in the pNext chain of
49505#[doc = concat!("[`", "VideoEncodeIntraRefreshInfoKHR", "`].")]
49506///
49507/// # Safety
49508/// Implementors must be valid pNext chain members for the target struct.
49509pub unsafe trait ExtendsVideoEncodeIntraRefreshInfoKHR {}
49510/// Marker trait for structs that can appear in the pNext chain of
49511#[doc = concat!("[`", "VideoEncodeProfileRgbConversionInfoVALVE", "`].")]
49512///
49513/// # Safety
49514/// Implementors must be valid pNext chain members for the target struct.
49515pub unsafe trait ExtendsVideoEncodeProfileRgbConversionInfoVALVE {}
49516/// Marker trait for structs that can appear in the pNext chain of
49517#[doc = concat!("[`", "VideoEncodeQualityLevelInfoKHR", "`].")]
49518///
49519/// # Safety
49520/// Implementors must be valid pNext chain members for the target struct.
49521pub unsafe trait ExtendsVideoEncodeQualityLevelInfoKHR {}
49522/// Marker trait for structs that can appear in the pNext chain of
49523#[doc = concat!("[`", "VideoEncodeQualityLevelPropertiesKHR", "`].")]
49524///
49525/// # Safety
49526/// Implementors must be valid pNext chain members for the target struct.
49527pub unsafe trait ExtendsVideoEncodeQualityLevelPropertiesKHR {}
49528/// Marker trait for structs that can appear in the pNext chain of
49529#[doc = concat!("[`", "VideoEncodeQuantizationMapInfoKHR", "`].")]
49530///
49531/// # Safety
49532/// Implementors must be valid pNext chain members for the target struct.
49533pub unsafe trait ExtendsVideoEncodeQuantizationMapInfoKHR {}
49534/// Marker trait for structs that can appear in the pNext chain of
49535#[doc = concat!("[`", "VideoEncodeQuantizationMapSessionParametersCreateInfoKHR", "`].")]
49536///
49537/// # Safety
49538/// Implementors must be valid pNext chain members for the target struct.
49539pub unsafe trait ExtendsVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {}
49540/// Marker trait for structs that can appear in the pNext chain of
49541#[doc = concat!("[`", "VideoEncodeRateControlInfoKHR", "`].")]
49542///
49543/// # Safety
49544/// Implementors must be valid pNext chain members for the target struct.
49545pub unsafe trait ExtendsVideoEncodeRateControlInfoKHR {}
49546/// Marker trait for structs that can appear in the pNext chain of
49547#[doc = concat!("[`", "VideoEncodeRateControlLayerInfoKHR", "`].")]
49548///
49549/// # Safety
49550/// Implementors must be valid pNext chain members for the target struct.
49551pub unsafe trait ExtendsVideoEncodeRateControlLayerInfoKHR {}
49552/// Marker trait for structs that can appear in the pNext chain of
49553#[doc = concat!("[`", "VideoEncodeSessionIntraRefreshCreateInfoKHR", "`].")]
49554///
49555/// # Safety
49556/// Implementors must be valid pNext chain members for the target struct.
49557pub unsafe trait ExtendsVideoEncodeSessionIntraRefreshCreateInfoKHR {}
49558/// Marker trait for structs that can appear in the pNext chain of
49559#[doc = concat!("[`", "VideoEncodeSessionParametersFeedbackInfoKHR", "`].")]
49560///
49561/// # Safety
49562/// Implementors must be valid pNext chain members for the target struct.
49563pub unsafe trait ExtendsVideoEncodeSessionParametersFeedbackInfoKHR {}
49564/// Marker trait for structs that can appear in the pNext chain of
49565#[doc = concat!("[`", "VideoEncodeSessionParametersGetInfoKHR", "`].")]
49566///
49567/// # Safety
49568/// Implementors must be valid pNext chain members for the target struct.
49569pub unsafe trait ExtendsVideoEncodeSessionParametersGetInfoKHR {}
49570/// Marker trait for structs that can appear in the pNext chain of
49571#[doc = concat!("[`", "VideoEncodeSessionRgbConversionCreateInfoVALVE", "`].")]
49572///
49573/// # Safety
49574/// Implementors must be valid pNext chain members for the target struct.
49575pub unsafe trait ExtendsVideoEncodeSessionRgbConversionCreateInfoVALVE {}
49576/// Marker trait for structs that can appear in the pNext chain of
49577#[doc = concat!("[`", "VideoEncodeUsageInfoKHR", "`].")]
49578///
49579/// # Safety
49580/// Implementors must be valid pNext chain members for the target struct.
49581pub unsafe trait ExtendsVideoEncodeUsageInfoKHR {}
49582/// Marker trait for structs that can appear in the pNext chain of
49583#[doc = concat!("[`", "VideoEndCodingInfoKHR", "`].")]
49584///
49585/// # Safety
49586/// Implementors must be valid pNext chain members for the target struct.
49587pub unsafe trait ExtendsVideoEndCodingInfoKHR {}
49588/// Marker trait for structs that can appear in the pNext chain of
49589#[doc = concat!("[`", "VideoFormatPropertiesKHR", "`].")]
49590///
49591/// # Safety
49592/// Implementors must be valid pNext chain members for the target struct.
49593pub unsafe trait ExtendsVideoFormatPropertiesKHR {}
49594/// Marker trait for structs that can appear in the pNext chain of
49595#[doc = concat!("[`", "VideoInlineQueryInfoKHR", "`].")]
49596///
49597/// # Safety
49598/// Implementors must be valid pNext chain members for the target struct.
49599pub unsafe trait ExtendsVideoInlineQueryInfoKHR {}
49600/// Marker trait for structs that can appear in the pNext chain of
49601#[doc = concat!("[`", "VideoPictureResourceInfoKHR", "`].")]
49602///
49603/// # Safety
49604/// Implementors must be valid pNext chain members for the target struct.
49605pub unsafe trait ExtendsVideoPictureResourceInfoKHR {}
49606/// Marker trait for structs that can appear in the pNext chain of
49607#[doc = concat!("[`", "VideoProfileInfoKHR", "`].")]
49608///
49609/// # Safety
49610/// Implementors must be valid pNext chain members for the target struct.
49611pub unsafe trait ExtendsVideoProfileInfoKHR {}
49612/// Marker trait for structs that can appear in the pNext chain of
49613#[doc = concat!("[`", "VideoProfileListInfoKHR", "`].")]
49614///
49615/// # Safety
49616/// Implementors must be valid pNext chain members for the target struct.
49617pub unsafe trait ExtendsVideoProfileListInfoKHR {}
49618/// Marker trait for structs that can appear in the pNext chain of
49619#[doc = concat!("[`", "VideoReferenceIntraRefreshInfoKHR", "`].")]
49620///
49621/// # Safety
49622/// Implementors must be valid pNext chain members for the target struct.
49623pub unsafe trait ExtendsVideoReferenceIntraRefreshInfoKHR {}
49624/// Marker trait for structs that can appear in the pNext chain of
49625#[doc = concat!("[`", "VideoReferenceSlotInfoKHR", "`].")]
49626///
49627/// # Safety
49628/// Implementors must be valid pNext chain members for the target struct.
49629pub unsafe trait ExtendsVideoReferenceSlotInfoKHR {}
49630/// Marker trait for structs that can appear in the pNext chain of
49631#[doc = concat!("[`", "VideoSessionCreateInfoKHR", "`].")]
49632///
49633/// # Safety
49634/// Implementors must be valid pNext chain members for the target struct.
49635pub unsafe trait ExtendsVideoSessionCreateInfoKHR {}
49636/// Marker trait for structs that can appear in the pNext chain of
49637#[doc = concat!("[`", "VideoSessionParametersCreateInfoKHR", "`].")]
49638///
49639/// # Safety
49640/// Implementors must be valid pNext chain members for the target struct.
49641pub unsafe trait ExtendsVideoSessionParametersCreateInfoKHR {}
49642/// Marker trait for structs that can appear in the pNext chain of
49643#[doc = concat!("[`", "VideoSessionParametersUpdateInfoKHR", "`].")]
49644///
49645/// # Safety
49646/// Implementors must be valid pNext chain members for the target struct.
49647pub unsafe trait ExtendsVideoSessionParametersUpdateInfoKHR {}
49648/// Marker trait for structs that can appear in the pNext chain of
49649#[doc = concat!("[`", "WaylandSurfaceCreateInfoKHR", "`].")]
49650///
49651/// # Safety
49652/// Implementors must be valid pNext chain members for the target struct.
49653pub unsafe trait ExtendsWaylandSurfaceCreateInfoKHR {}
49654/// Marker trait for structs that can appear in the pNext chain of
49655#[doc = concat!("[`", "Win32KeyedMutexAcquireReleaseInfoKHR", "`].")]
49656///
49657/// # Safety
49658/// Implementors must be valid pNext chain members for the target struct.
49659pub unsafe trait ExtendsWin32KeyedMutexAcquireReleaseInfoKHR {}
49660/// Marker trait for structs that can appear in the pNext chain of
49661#[doc = concat!("[`", "Win32KeyedMutexAcquireReleaseInfoNV", "`].")]
49662///
49663/// # Safety
49664/// Implementors must be valid pNext chain members for the target struct.
49665pub unsafe trait ExtendsWin32KeyedMutexAcquireReleaseInfoNV {}
49666/// Marker trait for structs that can appear in the pNext chain of
49667#[doc = concat!("[`", "Win32SurfaceCreateInfoKHR", "`].")]
49668///
49669/// # Safety
49670/// Implementors must be valid pNext chain members for the target struct.
49671pub unsafe trait ExtendsWin32SurfaceCreateInfoKHR {}
49672/// Marker trait for structs that can appear in the pNext chain of
49673#[doc = concat!("[`", "WriteDescriptorSet", "`].")]
49674///
49675/// # Safety
49676/// Implementors must be valid pNext chain members for the target struct.
49677pub unsafe trait ExtendsWriteDescriptorSet {}
49678/// Marker trait for structs that can appear in the pNext chain of
49679#[doc = concat!("[`", "WriteDescriptorSetAccelerationStructureKHR", "`].")]
49680///
49681/// # Safety
49682/// Implementors must be valid pNext chain members for the target struct.
49683pub unsafe trait ExtendsWriteDescriptorSetAccelerationStructureKHR {}
49684/// Marker trait for structs that can appear in the pNext chain of
49685#[doc = concat!("[`", "WriteDescriptorSetAccelerationStructureNV", "`].")]
49686///
49687/// # Safety
49688/// Implementors must be valid pNext chain members for the target struct.
49689pub unsafe trait ExtendsWriteDescriptorSetAccelerationStructureNV {}
49690/// Marker trait for structs that can appear in the pNext chain of
49691#[doc = concat!("[`", "WriteDescriptorSetInlineUniformBlock", "`].")]
49692///
49693/// # Safety
49694/// Implementors must be valid pNext chain members for the target struct.
49695pub unsafe trait ExtendsWriteDescriptorSetInlineUniformBlock {}
49696/// Marker trait for structs that can appear in the pNext chain of
49697#[doc = concat!("[`", "WriteDescriptorSetPartitionedAccelerationStructureNV", "`].")]
49698///
49699/// # Safety
49700/// Implementors must be valid pNext chain members for the target struct.
49701pub unsafe trait ExtendsWriteDescriptorSetPartitionedAccelerationStructureNV {}
49702/// Marker trait for structs that can appear in the pNext chain of
49703#[doc = concat!("[`", "WriteDescriptorSetTensorARM", "`].")]
49704///
49705/// # Safety
49706/// Implementors must be valid pNext chain members for the target struct.
49707pub unsafe trait ExtendsWriteDescriptorSetTensorARM {}
49708/// Marker trait for structs that can appear in the pNext chain of
49709#[doc = concat!("[`", "WriteIndirectExecutionSetPipelineEXT", "`].")]
49710///
49711/// # Safety
49712/// Implementors must be valid pNext chain members for the target struct.
49713pub unsafe trait ExtendsWriteIndirectExecutionSetPipelineEXT {}
49714/// Marker trait for structs that can appear in the pNext chain of
49715#[doc = concat!("[`", "WriteIndirectExecutionSetShaderEXT", "`].")]
49716///
49717/// # Safety
49718/// Implementors must be valid pNext chain members for the target struct.
49719pub unsafe trait ExtendsWriteIndirectExecutionSetShaderEXT {}
49720/// Marker trait for structs that can appear in the pNext chain of
49721#[doc = concat!("[`", "XcbSurfaceCreateInfoKHR", "`].")]
49722///
49723/// # Safety
49724/// Implementors must be valid pNext chain members for the target struct.
49725pub unsafe trait ExtendsXcbSurfaceCreateInfoKHR {}
49726/// Marker trait for structs that can appear in the pNext chain of
49727#[doc = concat!("[`", "XlibSurfaceCreateInfoKHR", "`].")]
49728///
49729/// # Safety
49730/// Implementors must be valid pNext chain members for the target struct.
49731pub unsafe trait ExtendsXlibSurfaceCreateInfoKHR {}
49732unsafe impl ExtendsBufferViewCreateInfo for BufferUsageFlags2CreateInfo {}
49733unsafe impl ExtendsBufferCreateInfo for BufferUsageFlags2CreateInfo {}
49734unsafe impl ExtendsPhysicalDeviceExternalBufferInfo for BufferUsageFlags2CreateInfo {}
49735unsafe impl ExtendsDescriptorBufferBindingInfoEXT for BufferUsageFlags2CreateInfo {}
49736unsafe impl ExtendsPipelineShaderStageCreateInfo for ShaderModuleCreateInfo {}
49737unsafe impl ExtendsDataGraphPipelineCreateInfoARM for ShaderModuleCreateInfo {}
49738unsafe impl ExtendsComputePipelineCreateInfo for ComputePipelineIndirectBufferInfoNV {}
49739unsafe impl ExtendsComputePipelineCreateInfo for PipelineCreateFlags2CreateInfo {}
49740unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCreateFlags2CreateInfo {}
49741unsafe impl ExtendsRayTracingPipelineCreateInfoNV for PipelineCreateFlags2CreateInfo {}
49742unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineCreateFlags2CreateInfo {}
49743unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineBinaryInfoKHR {}
49744unsafe impl ExtendsComputePipelineCreateInfo for PipelineBinaryInfoKHR {}
49745unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineBinaryInfoKHR {}
49746unsafe impl ExtendsBindDescriptorSetsInfo for PipelineLayoutCreateInfo {}
49747unsafe impl ExtendsPushConstantsInfo for PipelineLayoutCreateInfo {}
49748unsafe impl ExtendsPushDescriptorSetInfo for PipelineLayoutCreateInfo {}
49749unsafe impl ExtendsPushDescriptorSetWithTemplateInfo for PipelineLayoutCreateInfo {}
49750unsafe impl ExtendsSetDescriptorBufferOffsetsInfoEXT for PipelineLayoutCreateInfo {}
49751unsafe impl ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT
49752for PipelineLayoutCreateInfo {}
49753unsafe impl ExtendsIndirectCommandsLayoutCreateInfoEXT for PipelineLayoutCreateInfo {}
49754unsafe impl ExtendsDisplaySurfaceCreateInfoKHR for DisplaySurfaceStereoCreateInfoNV {}
49755unsafe impl ExtendsPresentInfoKHR for DisplayPresentInfoKHR {}
49756unsafe impl ExtendsInstanceCreateInfo for DebugReportCallbackCreateInfoEXT {}
49757unsafe impl ExtendsInstanceCreateInfo for ValidationFlagsEXT {}
49758unsafe impl ExtendsInstanceCreateInfo for ValidationFeaturesEXT {}
49759unsafe impl ExtendsShaderModuleCreateInfo for ValidationFeaturesEXT {}
49760unsafe impl ExtendsShaderCreateInfoEXT for ValidationFeaturesEXT {}
49761unsafe impl ExtendsInstanceCreateInfo for LayerSettingsCreateInfoEXT {}
49762unsafe impl ExtendsApplicationInfo for ApplicationParametersEXT {}
49763unsafe impl ExtendsDeviceCreateInfo for ApplicationParametersEXT {}
49764unsafe impl ExtendsPipelineRasterizationStateCreateInfo
49765for PipelineRasterizationStateRasterizationOrderAMD {}
49766unsafe impl ExtendsImageCreateInfo for DedicatedAllocationImageCreateInfoNV {}
49767unsafe impl ExtendsBufferCreateInfo for DedicatedAllocationBufferCreateInfoNV {}
49768unsafe impl ExtendsMemoryAllocateInfo for DedicatedAllocationMemoryAllocateInfoNV {}
49769unsafe impl ExtendsImageCreateInfo for ExternalMemoryImageCreateInfoNV {}
49770unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryAllocateInfoNV {}
49771unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryWin32HandleInfoNV {}
49772unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryWin32HandleInfoNV {}
49773unsafe impl ExtendsMemoryAllocateInfo for ExportMemorySciBufInfoNV {}
49774unsafe impl ExtendsMemoryAllocateInfo for ImportMemorySciBufInfoNV {}
49775unsafe impl ExtendsPhysicalDeviceFeatures2
49776for PhysicalDeviceExternalMemorySciBufFeaturesNV {}
49777unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemorySciBufFeaturesNV {}
49778unsafe impl ExtendsSubmitInfo for Win32KeyedMutexAcquireReleaseInfoNV {}
49779unsafe impl ExtendsSubmitInfo2 for Win32KeyedMutexAcquireReleaseInfoNV {}
49780unsafe impl ExtendsPhysicalDeviceFeatures2
49781for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {}
49782unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {}
49783unsafe impl ExtendsDescriptorSetAndBindingMappingEXT for PushConstantBankInfoNV {}
49784unsafe impl ExtendsPushDataInfoEXT for PushConstantBankInfoNV {}
49785unsafe impl ExtendsPushConstantsInfo for PushConstantBankInfoNV {}
49786unsafe impl ExtendsIndirectCommandsLayoutTokenEXT for PushConstantBankInfoNV {}
49787unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePushConstantBankFeaturesNV {}
49788unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePushConstantBankFeaturesNV {}
49789unsafe impl ExtendsPhysicalDeviceProperties2
49790for PhysicalDevicePushConstantBankPropertiesNV {}
49791unsafe impl ExtendsPhysicalDeviceFeatures2
49792for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {}
49793unsafe impl ExtendsDeviceCreateInfo
49794for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {}
49795unsafe impl ExtendsDeviceCreateInfo for DevicePrivateDataCreateInfo {}
49796unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePrivateDataFeatures {}
49797unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePrivateDataFeatures {}
49798unsafe impl ExtendsPhysicalDeviceProperties2
49799for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {}
49800unsafe impl ExtendsPhysicalDeviceFeatures2
49801for PhysicalDeviceClusterAccelerationStructureFeaturesNV {}
49802unsafe impl ExtendsDeviceCreateInfo
49803for PhysicalDeviceClusterAccelerationStructureFeaturesNV {}
49804unsafe impl ExtendsPhysicalDeviceProperties2
49805for PhysicalDeviceClusterAccelerationStructurePropertiesNV {}
49806unsafe impl ExtendsRayTracingPipelineCreateInfoKHR
49807for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {}
49808unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMultiDrawPropertiesEXT {}
49809unsafe impl ExtendsGraphicsPipelineCreateInfo
49810for GraphicsPipelineShaderGroupsCreateInfoNV {}
49811unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFeatures2 {}
49812unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePushDescriptorProperties {}
49813unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDriverProperties {}
49814unsafe impl ExtendsPresentInfoKHR for PresentRegionsKHR {}
49815unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVariablePointersFeatures {}
49816unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVariablePointersFeatures {}
49817unsafe impl ExtendsPhysicalDeviceImageFormatInfo2
49818for PhysicalDeviceExternalImageFormatInfo {}
49819unsafe impl ExtendsImageFormatProperties2 for ExternalImageFormatProperties {}
49820unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceIDProperties {}
49821unsafe impl ExtendsImageCreateInfo for ExternalMemoryImageCreateInfo {}
49822unsafe impl ExtendsBufferCreateInfo for ExternalMemoryBufferCreateInfo {}
49823unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryAllocateInfo {}
49824unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryWin32HandleInfoKHR {}
49825unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryWin32HandleInfoKHR {}
49826unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryZirconHandleInfoFUCHSIA {}
49827unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryFdInfoKHR {}
49828unsafe impl ExtendsSubmitInfo for Win32KeyedMutexAcquireReleaseInfoKHR {}
49829unsafe impl ExtendsSubmitInfo2 for Win32KeyedMutexAcquireReleaseInfoKHR {}
49830unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryMetalHandleInfoEXT {}
49831unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreCreateInfo {}
49832unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreWin32HandleInfoKHR {}
49833unsafe impl ExtendsSubmitInfo for D3D12FenceSubmitInfoKHR {}
49834unsafe impl ExtendsFenceCreateInfo for ExportFenceCreateInfo {}
49835unsafe impl ExtendsFenceCreateInfo for ExportFenceWin32HandleInfoKHR {}
49836unsafe impl ExtendsFenceCreateInfo for ExportFenceSciSyncInfoNV {}
49837unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreSciSyncInfoNV {}
49838unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalSciSyncFeaturesNV {}
49839unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalSciSyncFeaturesNV {}
49840unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalSciSync2FeaturesNV {}
49841unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalSciSync2FeaturesNV {}
49842unsafe impl ExtendsSemaphoreCreateInfo for SemaphoreSciSyncCreateInfoNV {}
49843unsafe impl ExtendsDeviceCreateInfo
49844for DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {}
49845unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMultiviewFeatures {}
49846unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiviewFeatures {}
49847unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMultiviewProperties {}
49848unsafe impl ExtendsRenderPassCreateInfo for RenderPassMultiviewCreateInfo {}
49849unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainCounterCreateInfoEXT {}
49850unsafe impl ExtendsMemoryAllocateInfo for MemoryAllocateFlagsInfo {}
49851unsafe impl ExtendsBindBufferMemoryInfo for BindBufferMemoryDeviceGroupInfo {}
49852unsafe impl ExtendsBindImageMemoryInfo for BindImageMemoryDeviceGroupInfo {}
49853unsafe impl ExtendsRenderPassBeginInfo for DeviceGroupRenderPassBeginInfo {}
49854unsafe impl ExtendsRenderingInfo for DeviceGroupRenderPassBeginInfo {}
49855unsafe impl ExtendsCommandBufferBeginInfo for DeviceGroupCommandBufferBeginInfo {}
49856unsafe impl ExtendsSubmitInfo for DeviceGroupSubmitInfo {}
49857unsafe impl ExtendsBindSparseInfo for DeviceGroupBindSparseInfo {}
49858unsafe impl ExtendsImageCreateInfo for ImageSwapchainCreateInfoKHR {}
49859unsafe impl ExtendsBindImageMemoryInfo for BindImageMemorySwapchainInfoKHR {}
49860unsafe impl ExtendsPresentInfoKHR for DeviceGroupPresentInfoKHR {}
49861unsafe impl ExtendsDeviceCreateInfo for DeviceGroupDeviceCreateInfo {}
49862unsafe impl ExtendsSwapchainCreateInfoKHR for DeviceGroupSwapchainCreateInfoKHR {}
49863unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentIdFeaturesKHR {}
49864unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentIdFeaturesKHR {}
49865unsafe impl ExtendsPresentInfoKHR for PresentIdKHR {}
49866unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentId2FeaturesKHR {}
49867unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentId2FeaturesKHR {}
49868unsafe impl ExtendsPresentInfoKHR for PresentId2KHR {}
49869unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentWaitFeaturesKHR {}
49870unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentWaitFeaturesKHR {}
49871unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentWait2FeaturesKHR {}
49872unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentWait2FeaturesKHR {}
49873unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentTimingFeaturesEXT {}
49874unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentTimingFeaturesEXT {}
49875unsafe impl ExtendsSurfaceCapabilities2KHR for PresentTimingSurfaceCapabilitiesEXT {}
49876unsafe impl ExtendsPresentInfoKHR for PresentTimingsInfoEXT {}
49877unsafe impl ExtendsCalibratedTimestampInfoKHR for SwapchainCalibratedTimestampInfoEXT {}
49878unsafe impl ExtendsHdrMetadataEXT for HdrVividDynamicMetadataHUAWEI {}
49879unsafe impl ExtendsSurfaceCapabilities2KHR for DisplayNativeHdrSurfaceCapabilitiesAMD {}
49880unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainDisplayNativeHdrCreateInfoAMD {}
49881unsafe impl ExtendsPresentInfoKHR for PresentTimesInfoGOOGLE {}
49882unsafe impl ExtendsPipelineViewportStateCreateInfo
49883for PipelineViewportWScalingStateCreateInfoNV {}
49884unsafe impl ExtendsPipelineViewportStateCreateInfo
49885for PipelineViewportSwizzleStateCreateInfoNV {}
49886unsafe impl ExtendsPhysicalDeviceProperties2
49887for PhysicalDeviceDiscardRectanglePropertiesEXT {}
49888unsafe impl ExtendsGraphicsPipelineCreateInfo
49889for PipelineDiscardRectangleStateCreateInfoEXT {}
49890unsafe impl ExtendsPhysicalDeviceProperties2
49891for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {}
49892unsafe impl ExtendsRenderPassCreateInfo for RenderPassInputAttachmentAspectCreateInfo {}
49893unsafe impl ExtendsDisplayModeProperties2KHR for DisplayModeStereoPropertiesNV {}
49894unsafe impl ExtendsSurfaceCapabilities2KHR for SharedPresentSurfaceCapabilitiesKHR {}
49895unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice16BitStorageFeatures {}
49896unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice16BitStorageFeatures {}
49897unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSubgroupProperties {}
49898unsafe impl ExtendsPhysicalDeviceFeatures2
49899for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {}
49900unsafe impl ExtendsDeviceCreateInfo
49901for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {}
49902unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePointClippingProperties {}
49903unsafe impl ExtendsMemoryRequirements2 for MemoryDedicatedRequirements {}
49904unsafe impl ExtendsMemoryAllocateInfo for MemoryDedicatedAllocateInfo {}
49905unsafe impl ExtendsImageViewCreateInfo for ImageViewUsageCreateInfo {}
49906unsafe impl ExtendsImageViewCreateInfo for ImageViewSlicedCreateInfoEXT {}
49907unsafe impl ExtendsPipelineTessellationStateCreateInfo
49908for PipelineTessellationDomainOriginStateCreateInfo {}
49909unsafe impl ExtendsSamplerCreateInfo for SamplerYcbcrConversionInfo {}
49910unsafe impl ExtendsImageViewCreateInfo for SamplerYcbcrConversionInfo {}
49911unsafe impl ExtendsBindImageMemoryInfo for BindImagePlaneMemoryInfo {}
49912unsafe impl ExtendsImageMemoryRequirementsInfo2 for ImagePlaneMemoryRequirementsInfo {}
49913unsafe impl ExtendsPhysicalDeviceFeatures2
49914for PhysicalDeviceSamplerYcbcrConversionFeatures {}
49915unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSamplerYcbcrConversionFeatures {}
49916unsafe impl ExtendsImageFormatProperties2
49917for SamplerYcbcrConversionImageFormatProperties {}
49918unsafe impl ExtendsImageFormatProperties2 for TextureLODGatherFormatPropertiesAMD {}
49919unsafe impl ExtendsSubmitInfo for ProtectedSubmitInfo {}
49920unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceProtectedMemoryFeatures {}
49921unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceProtectedMemoryFeatures {}
49922unsafe impl ExtendsPhysicalDeviceProperties2
49923for PhysicalDeviceProtectedMemoryProperties {}
49924unsafe impl ExtendsPipelineMultisampleStateCreateInfo
49925for PipelineCoverageToColorStateCreateInfoNV {}
49926unsafe impl ExtendsPhysicalDeviceProperties2
49927for PhysicalDeviceSamplerFilterMinmaxProperties {}
49928unsafe impl ExtendsImageMemoryBarrier for SampleLocationsInfoEXT {}
49929unsafe impl ExtendsImageMemoryBarrier2 for SampleLocationsInfoEXT {}
49930unsafe impl ExtendsRenderPassBeginInfo for RenderPassSampleLocationsBeginInfoEXT {}
49931unsafe impl ExtendsPipelineMultisampleStateCreateInfo
49932for PipelineSampleLocationsStateCreateInfoEXT {}
49933unsafe impl ExtendsPhysicalDeviceProperties2
49934for PhysicalDeviceSampleLocationsPropertiesEXT {}
49935unsafe impl ExtendsSamplerCreateInfo for SamplerReductionModeCreateInfo {}
49936unsafe impl ExtendsPhysicalDeviceFeatures2
49937for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {}
49938unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {}
49939unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMultiDrawFeaturesEXT {}
49940unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiDrawFeaturesEXT {}
49941unsafe impl ExtendsPhysicalDeviceProperties2
49942for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {}
49943unsafe impl ExtendsPipelineColorBlendStateCreateInfo
49944for PipelineColorBlendAdvancedStateCreateInfoEXT {}
49945unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceInlineUniformBlockFeatures {}
49946unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInlineUniformBlockFeatures {}
49947unsafe impl ExtendsPhysicalDeviceProperties2
49948for PhysicalDeviceInlineUniformBlockProperties {}
49949unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetInlineUniformBlock {}
49950unsafe impl ExtendsDescriptorPoolCreateInfo
49951for DescriptorPoolInlineUniformBlockCreateInfo {}
49952unsafe impl ExtendsPipelineMultisampleStateCreateInfo
49953for PipelineCoverageModulationStateCreateInfoNV {}
49954unsafe impl ExtendsImageCreateInfo for ImageFormatListCreateInfo {}
49955unsafe impl ExtendsSwapchainCreateInfoKHR for ImageFormatListCreateInfo {}
49956unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageFormatListCreateInfo {}
49957unsafe impl ExtendsShaderModuleCreateInfo for ShaderModuleValidationCacheCreateInfoEXT {}
49958unsafe impl ExtendsPipelineShaderStageCreateInfo
49959for ShaderModuleValidationCacheCreateInfoEXT {}
49960unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance3Properties {}
49961unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance4Features {}
49962unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance4Features {}
49963unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance4Properties {}
49964unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance5Features {}
49965unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance5Features {}
49966unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance5Properties {}
49967unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance6Features {}
49968unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance6Features {}
49969unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance6Properties {}
49970unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance7FeaturesKHR {}
49971unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance7FeaturesKHR {}
49972unsafe impl ExtendsPhysicalDeviceProperties2
49973for PhysicalDeviceMaintenance7PropertiesKHR {}
49974unsafe impl ExtendsPhysicalDeviceProperties2
49975for PhysicalDeviceLayeredApiPropertiesListKHR {}
49976unsafe impl ExtendsPhysicalDeviceLayeredApiPropertiesKHR
49977for PhysicalDeviceLayeredApiVulkanPropertiesKHR {}
49978unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance8FeaturesKHR {}
49979unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance8FeaturesKHR {}
49980unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance9FeaturesKHR {}
49981unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance9FeaturesKHR {}
49982unsafe impl ExtendsPhysicalDeviceProperties2
49983for PhysicalDeviceMaintenance9PropertiesKHR {}
49984unsafe impl ExtendsPhysicalDeviceProperties2
49985for PhysicalDeviceMaintenance10PropertiesKHR {}
49986unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance10FeaturesKHR {}
49987unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance10FeaturesKHR {}
49988unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyOwnershipTransferPropertiesKHR {}
49989unsafe impl ExtendsPhysicalDeviceFeatures2
49990for PhysicalDeviceShaderDrawParametersFeatures {}
49991unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderDrawParametersFeatures {}
49992unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloat16Int8Features {}
49993unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloat16Int8Features {}
49994unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFloatControlsProperties {}
49995unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHostQueryResetFeatures {}
49996unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHostQueryResetFeatures {}
49997unsafe impl ExtendsImageCreateInfo for NativeBufferANDROID {}
49998unsafe impl ExtendsBindImageMemoryInfo for NativeBufferANDROID {}
49999unsafe impl ExtendsImageCreateInfo for SwapchainImageCreateInfoANDROID {}
50000unsafe impl ExtendsPhysicalDeviceProperties2
50001for PhysicalDevicePresentationPropertiesANDROID {}
50002unsafe impl ExtendsDeviceQueueCreateInfo for DeviceQueueGlobalPriorityCreateInfo {}
50003unsafe impl ExtendsPhysicalDeviceFeatures2
50004for PhysicalDeviceGlobalPriorityQueryFeatures {}
50005unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceGlobalPriorityQueryFeatures {}
50006unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyGlobalPriorityProperties {}
50007unsafe impl ExtendsPipelineShaderStageCreateInfo for DebugUtilsObjectNameInfoEXT {}
50008unsafe impl ExtendsResourceDescriptorInfoEXT for DebugUtilsObjectNameInfoEXT {}
50009unsafe impl ExtendsSamplerCreateInfo for DebugUtilsObjectNameInfoEXT {}
50010unsafe impl ExtendsInstanceCreateInfo for DebugUtilsMessengerCreateInfoEXT {}
50011unsafe impl ExtendsPhysicalDeviceFeatures2
50012for PhysicalDeviceDeviceMemoryReportFeaturesEXT {}
50013unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceMemoryReportFeaturesEXT {}
50014unsafe impl ExtendsDeviceCreateInfo for DeviceDeviceMemoryReportCreateInfoEXT {}
50015unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryHostPointerInfoEXT {}
50016unsafe impl ExtendsPhysicalDeviceProperties2
50017for PhysicalDeviceExternalMemoryHostPropertiesEXT {}
50018unsafe impl ExtendsPhysicalDeviceProperties2
50019for PhysicalDeviceConservativeRasterizationPropertiesEXT {}
50020unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesAMD {}
50021unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCoreProperties2AMD {}
50022unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50023for PipelineRasterizationConservativeStateCreateInfoEXT {}
50024unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorIndexingFeatures {}
50025unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorIndexingFeatures {}
50026unsafe impl ExtendsPhysicalDeviceProperties2
50027for PhysicalDeviceDescriptorIndexingProperties {}
50028unsafe impl ExtendsDescriptorSetLayoutCreateInfo
50029for DescriptorSetLayoutBindingFlagsCreateInfo {}
50030unsafe impl ExtendsDescriptorSetAllocateInfo
50031for DescriptorSetVariableDescriptorCountAllocateInfo {}
50032unsafe impl ExtendsDescriptorSetLayoutSupport
50033for DescriptorSetVariableDescriptorCountLayoutSupport {}
50034unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTimelineSemaphoreFeatures {}
50035unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTimelineSemaphoreFeatures {}
50036unsafe impl ExtendsPhysicalDeviceProperties2
50037for PhysicalDeviceTimelineSemaphoreProperties {}
50038unsafe impl ExtendsSemaphoreCreateInfo for SemaphoreTypeCreateInfo {}
50039unsafe impl ExtendsPhysicalDeviceExternalSemaphoreInfo for SemaphoreTypeCreateInfo {}
50040unsafe impl ExtendsSubmitInfo for TimelineSemaphoreSubmitInfo {}
50041unsafe impl ExtendsBindSparseInfo for TimelineSemaphoreSubmitInfo {}
50042unsafe impl ExtendsPipelineVertexInputStateCreateInfo
50043for PipelineVertexInputDivisorStateCreateInfo {}
50044unsafe impl ExtendsPhysicalDeviceProperties2
50045for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {}
50046unsafe impl ExtendsPhysicalDeviceProperties2
50047for PhysicalDeviceVertexAttributeDivisorProperties {}
50048unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePCIBusInfoPropertiesEXT {}
50049unsafe impl ExtendsMemoryAllocateInfo for ImportAndroidHardwareBufferInfoANDROID {}
50050unsafe impl ExtendsImageFormatProperties2 for AndroidHardwareBufferUsageANDROID {}
50051unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID
50052for AndroidHardwareBufferFormatPropertiesANDROID {}
50053unsafe impl ExtendsCommandBufferInheritanceInfo
50054for CommandBufferInheritanceConditionalRenderingInfoEXT {}
50055unsafe impl ExtendsImageCreateInfo for ExternalFormatANDROID {}
50056unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatANDROID {}
50057unsafe impl ExtendsAttachmentDescription2 for ExternalFormatANDROID {}
50058unsafe impl ExtendsGraphicsPipelineCreateInfo for ExternalFormatANDROID {}
50059unsafe impl ExtendsCommandBufferInheritanceInfo for ExternalFormatANDROID {}
50060unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice8BitStorageFeatures {}
50061unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice8BitStorageFeatures {}
50062unsafe impl ExtendsPhysicalDeviceFeatures2
50063for PhysicalDeviceConditionalRenderingFeaturesEXT {}
50064unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceConditionalRenderingFeaturesEXT {}
50065unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkanMemoryModelFeatures {}
50066unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkanMemoryModelFeatures {}
50067unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicInt64Features {}
50068unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicInt64Features {}
50069unsafe impl ExtendsPhysicalDeviceFeatures2
50070for PhysicalDeviceShaderAtomicFloatFeaturesEXT {}
50071unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloatFeaturesEXT {}
50072unsafe impl ExtendsPhysicalDeviceFeatures2
50073for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {}
50074unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {}
50075unsafe impl ExtendsPhysicalDeviceFeatures2
50076for PhysicalDeviceVertexAttributeDivisorFeatures {}
50077unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVertexAttributeDivisorFeatures {}
50078unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyCheckpointPropertiesNV {}
50079unsafe impl ExtendsPhysicalDeviceProperties2
50080for PhysicalDeviceDepthStencilResolveProperties {}
50081unsafe impl ExtendsSubpassDescription2 for SubpassDescriptionDepthStencilResolve {}
50082unsafe impl ExtendsImageViewCreateInfo for ImageViewASTCDecodeModeEXT {}
50083unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceASTCDecodeFeaturesEXT {}
50084unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceASTCDecodeFeaturesEXT {}
50085unsafe impl ExtendsPhysicalDeviceFeatures2
50086for PhysicalDeviceTransformFeedbackFeaturesEXT {}
50087unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTransformFeedbackFeaturesEXT {}
50088unsafe impl ExtendsPhysicalDeviceProperties2
50089for PhysicalDeviceTransformFeedbackPropertiesEXT {}
50090unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50091for PipelineRasterizationStateStreamCreateInfoEXT {}
50092unsafe impl ExtendsPhysicalDeviceFeatures2
50093for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {}
50094unsafe impl ExtendsDeviceCreateInfo
50095for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {}
50096unsafe impl ExtendsGraphicsPipelineCreateInfo
50097for PipelineRepresentativeFragmentTestStateCreateInfoNV {}
50098unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExclusiveScissorFeaturesNV {}
50099unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExclusiveScissorFeaturesNV {}
50100unsafe impl ExtendsPipelineViewportStateCreateInfo
50101for PipelineViewportExclusiveScissorStateCreateInfoNV {}
50102unsafe impl ExtendsPhysicalDeviceFeatures2
50103for PhysicalDeviceCornerSampledImageFeaturesNV {}
50104unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCornerSampledImageFeaturesNV {}
50105unsafe impl ExtendsPhysicalDeviceFeatures2
50106for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {}
50107unsafe impl ExtendsDeviceCreateInfo
50108for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {}
50109unsafe impl ExtendsPhysicalDeviceProperties2
50110for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {}
50111unsafe impl ExtendsPhysicalDeviceFeatures2
50112for PhysicalDeviceShaderImageFootprintFeaturesNV {}
50113unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageFootprintFeaturesNV {}
50114unsafe impl ExtendsPhysicalDeviceFeatures2
50115for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {}
50116unsafe impl ExtendsDeviceCreateInfo
50117for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {}
50118unsafe impl ExtendsPhysicalDeviceFeatures2
50119for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {}
50120unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {}
50121unsafe impl ExtendsPhysicalDeviceFeatures2
50122for PhysicalDeviceCopyMemoryIndirectFeaturesNV {}
50123unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCopyMemoryIndirectFeaturesNV {}
50124unsafe impl ExtendsPhysicalDeviceProperties2
50125for PhysicalDeviceCopyMemoryIndirectPropertiesKHR {}
50126unsafe impl ExtendsPhysicalDeviceFeatures2
50127for PhysicalDeviceMemoryDecompressionFeaturesEXT {}
50128unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMemoryDecompressionFeaturesEXT {}
50129unsafe impl ExtendsPhysicalDeviceProperties2
50130for PhysicalDeviceMemoryDecompressionPropertiesEXT {}
50131unsafe impl ExtendsPipelineViewportStateCreateInfo
50132for PipelineViewportShadingRateImageStateCreateInfoNV {}
50133unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShadingRateImageFeaturesNV {}
50134unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShadingRateImageFeaturesNV {}
50135unsafe impl ExtendsPhysicalDeviceProperties2
50136for PhysicalDeviceShadingRateImagePropertiesNV {}
50137unsafe impl ExtendsPhysicalDeviceFeatures2
50138for PhysicalDeviceInvocationMaskFeaturesHUAWEI {}
50139unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInvocationMaskFeaturesHUAWEI {}
50140unsafe impl ExtendsPipelineViewportStateCreateInfo
50141for PipelineViewportCoarseSampleOrderStateCreateInfoNV {}
50142unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMeshShaderFeaturesNV {}
50143unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMeshShaderFeaturesNV {}
50144unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMeshShaderPropertiesNV {}
50145unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMeshShaderFeaturesEXT {}
50146unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMeshShaderFeaturesEXT {}
50147unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMeshShaderPropertiesEXT {}
50148unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetAccelerationStructureKHR {}
50149unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetAccelerationStructureNV {}
50150unsafe impl ExtendsPhysicalDeviceFeatures2
50151for PhysicalDeviceAccelerationStructureFeaturesKHR {}
50152unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAccelerationStructureFeaturesKHR {}
50153unsafe impl ExtendsPhysicalDeviceFeatures2
50154for PhysicalDeviceRayTracingPipelineFeaturesKHR {}
50155unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingPipelineFeaturesKHR {}
50156unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayQueryFeaturesKHR {}
50157unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayQueryFeaturesKHR {}
50158unsafe impl ExtendsPhysicalDeviceProperties2
50159for PhysicalDeviceAccelerationStructurePropertiesKHR {}
50160unsafe impl ExtendsPhysicalDeviceProperties2
50161for PhysicalDeviceRayTracingPipelinePropertiesKHR {}
50162unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRayTracingPropertiesNV {}
50163unsafe impl ExtendsPhysicalDeviceFeatures2
50164for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {}
50165unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {}
50166unsafe impl ExtendsFormatProperties2 for DrmFormatModifierPropertiesListEXT {}
50167unsafe impl ExtendsPhysicalDeviceImageFormatInfo2
50168for PhysicalDeviceImageDrmFormatModifierInfoEXT {}
50169unsafe impl ExtendsImageCreateInfo for ImageDrmFormatModifierListCreateInfoEXT {}
50170unsafe impl ExtendsImageCreateInfo for ImageDrmFormatModifierExplicitCreateInfoEXT {}
50171unsafe impl ExtendsImageCreateInfo for ImageStencilUsageCreateInfo {}
50172unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageStencilUsageCreateInfo {}
50173unsafe impl ExtendsDeviceCreateInfo for DeviceMemoryOverallocationCreateInfoAMD {}
50174unsafe impl ExtendsPhysicalDeviceFeatures2
50175for PhysicalDeviceFragmentDensityMapFeaturesEXT {}
50176unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMapFeaturesEXT {}
50177unsafe impl ExtendsPhysicalDeviceFeatures2
50178for PhysicalDeviceFragmentDensityMap2FeaturesEXT {}
50179unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMap2FeaturesEXT {}
50180unsafe impl ExtendsPhysicalDeviceFeatures2
50181for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {}
50182unsafe impl ExtendsDeviceCreateInfo
50183for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {}
50184unsafe impl ExtendsPhysicalDeviceProperties2
50185for PhysicalDeviceFragmentDensityMapPropertiesEXT {}
50186unsafe impl ExtendsPhysicalDeviceProperties2
50187for PhysicalDeviceFragmentDensityMap2PropertiesEXT {}
50188unsafe impl ExtendsPhysicalDeviceProperties2
50189for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {}
50190unsafe impl ExtendsRenderPassCreateInfo for RenderPassFragmentDensityMapCreateInfoEXT {}
50191unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassFragmentDensityMapCreateInfoEXT {}
50192unsafe impl ExtendsSubpassEndInfo for RenderPassFragmentDensityMapOffsetEndInfoEXT {}
50193unsafe impl ExtendsRenderingEndInfoKHR for RenderPassFragmentDensityMapOffsetEndInfoEXT {}
50194unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceScalarBlockLayoutFeatures {}
50195unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceScalarBlockLayoutFeatures {}
50196unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceProtectedCapabilitiesKHR {}
50197unsafe impl ExtendsPhysicalDeviceFeatures2
50198for PhysicalDeviceUniformBufferStandardLayoutFeatures {}
50199unsafe impl ExtendsDeviceCreateInfo
50200for PhysicalDeviceUniformBufferStandardLayoutFeatures {}
50201unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClipEnableFeaturesEXT {}
50202unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClipEnableFeaturesEXT {}
50203unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50204for PipelineRasterizationDepthClipStateCreateInfoEXT {}
50205unsafe impl ExtendsPhysicalDeviceMemoryProperties2
50206for PhysicalDeviceMemoryBudgetPropertiesEXT {}
50207unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMemoryPriorityFeaturesEXT {}
50208unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMemoryPriorityFeaturesEXT {}
50209unsafe impl ExtendsMemoryAllocateInfo for MemoryPriorityAllocateInfoEXT {}
50210unsafe impl ExtendsPhysicalDeviceFeatures2
50211for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {}
50212unsafe impl ExtendsDeviceCreateInfo
50213for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {}
50214unsafe impl ExtendsPhysicalDeviceFeatures2
50215for PhysicalDeviceBufferDeviceAddressFeatures {}
50216unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBufferDeviceAddressFeatures {}
50217unsafe impl ExtendsPhysicalDeviceFeatures2
50218for PhysicalDeviceBufferDeviceAddressFeaturesEXT {}
50219unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBufferDeviceAddressFeaturesEXT {}
50220unsafe impl ExtendsBufferCreateInfo for BufferOpaqueCaptureAddressCreateInfo {}
50221unsafe impl ExtendsBufferCreateInfo for BufferDeviceAddressCreateInfoEXT {}
50222unsafe impl ExtendsPhysicalDeviceImageFormatInfo2
50223for PhysicalDeviceImageViewImageFormatInfoEXT {}
50224unsafe impl ExtendsImageFormatProperties2
50225for FilterCubicImageViewImageFormatPropertiesEXT {}
50226unsafe impl ExtendsPhysicalDeviceFeatures2
50227for PhysicalDeviceImagelessFramebufferFeatures {}
50228unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImagelessFramebufferFeatures {}
50229unsafe impl ExtendsFramebufferCreateInfo for FramebufferAttachmentsCreateInfo {}
50230unsafe impl ExtendsRenderPassBeginInfo for RenderPassAttachmentBeginInfo {}
50231unsafe impl ExtendsPhysicalDeviceFeatures2
50232for PhysicalDeviceTextureCompressionASTCHDRFeatures {}
50233unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTextureCompressionASTCHDRFeatures {}
50234unsafe impl ExtendsPhysicalDeviceFeatures2
50235for PhysicalDeviceCooperativeMatrixFeaturesNV {}
50236unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrixFeaturesNV {}
50237unsafe impl ExtendsPhysicalDeviceProperties2
50238for PhysicalDeviceCooperativeMatrixPropertiesNV {}
50239unsafe impl ExtendsPhysicalDeviceFeatures2
50240for PhysicalDeviceYcbcrImageArraysFeaturesEXT {}
50241unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcrImageArraysFeaturesEXT {}
50242unsafe impl ExtendsPresentInfoKHR for PresentFrameTokenGGP {}
50243unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCreationFeedbackCreateInfo {}
50244unsafe impl ExtendsComputePipelineCreateInfo for PipelineCreationFeedbackCreateInfo {}
50245unsafe impl ExtendsRayTracingPipelineCreateInfoNV
50246for PipelineCreationFeedbackCreateInfo {}
50247unsafe impl ExtendsRayTracingPipelineCreateInfoKHR
50248for PipelineCreationFeedbackCreateInfo {}
50249unsafe impl ExtendsExecutionGraphPipelineCreateInfoAMDX
50250for PipelineCreationFeedbackCreateInfo {}
50251unsafe impl ExtendsDataGraphPipelineCreateInfoARM
50252for PipelineCreationFeedbackCreateInfo {}
50253unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfaceFullScreenExclusiveInfoEXT {}
50254unsafe impl ExtendsSwapchainCreateInfoKHR for SurfaceFullScreenExclusiveInfoEXT {}
50255unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR
50256for SurfaceFullScreenExclusiveWin32InfoEXT {}
50257unsafe impl ExtendsSwapchainCreateInfoKHR for SurfaceFullScreenExclusiveWin32InfoEXT {}
50258unsafe impl ExtendsSurfaceCapabilities2KHR
50259for SurfaceCapabilitiesFullScreenExclusiveEXT {}
50260unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentBarrierFeaturesNV {}
50261unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentBarrierFeaturesNV {}
50262unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesPresentBarrierNV {}
50263unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentBarrierCreateInfoNV {}
50264unsafe impl ExtendsPhysicalDeviceFeatures2
50265for PhysicalDevicePerformanceQueryFeaturesKHR {}
50266unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePerformanceQueryFeaturesKHR {}
50267unsafe impl ExtendsPhysicalDeviceProperties2
50268for PhysicalDevicePerformanceQueryPropertiesKHR {}
50269unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolPerformanceCreateInfoKHR {}
50270unsafe impl ExtendsSubmitInfo for PerformanceQuerySubmitInfoKHR {}
50271unsafe impl ExtendsSubmitInfo2 for PerformanceQuerySubmitInfoKHR {}
50272unsafe impl ExtendsDeviceCreateInfo for PerformanceQueryReservationInfoKHR {}
50273unsafe impl ExtendsPhysicalDeviceFeatures2
50274for PhysicalDeviceCoverageReductionModeFeaturesNV {}
50275unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCoverageReductionModeFeaturesNV {}
50276unsafe impl ExtendsPipelineMultisampleStateCreateInfo
50277for PipelineCoverageReductionStateCreateInfoNV {}
50278unsafe impl ExtendsPhysicalDeviceFeatures2
50279for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {}
50280unsafe impl ExtendsDeviceCreateInfo
50281for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {}
50282unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolPerformanceQueryCreateInfoINTEL {}
50283unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderClockFeaturesKHR {}
50284unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderClockFeaturesKHR {}
50285unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceIndexTypeUint8Features {}
50286unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceIndexTypeUint8Features {}
50287unsafe impl ExtendsPhysicalDeviceProperties2
50288for PhysicalDeviceShaderSMBuiltinsPropertiesNV {}
50289unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderSMBuiltinsFeaturesNV {}
50290unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSMBuiltinsFeaturesNV {}
50291unsafe impl ExtendsPhysicalDeviceFeatures2
50292for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {}
50293unsafe impl ExtendsDeviceCreateInfo
50294for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {}
50295unsafe impl ExtendsPhysicalDeviceFeatures2
50296for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {}
50297unsafe impl ExtendsDeviceCreateInfo
50298for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {}
50299unsafe impl ExtendsAttachmentReference2 for AttachmentReferenceStencilLayout {}
50300unsafe impl ExtendsPhysicalDeviceFeatures2
50301for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {}
50302unsafe impl ExtendsDeviceCreateInfo
50303for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {}
50304unsafe impl ExtendsAttachmentDescription2 for AttachmentDescriptionStencilLayout {}
50305unsafe impl ExtendsPhysicalDeviceFeatures2
50306for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {}
50307unsafe impl ExtendsDeviceCreateInfo
50308for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {}
50309unsafe impl ExtendsPhysicalDeviceFeatures2
50310for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {}
50311unsafe impl ExtendsDeviceCreateInfo
50312for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {}
50313unsafe impl ExtendsPhysicalDeviceFeatures2
50314for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {}
50315unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {}
50316unsafe impl ExtendsPhysicalDeviceProperties2
50317for PhysicalDeviceTexelBufferAlignmentProperties {}
50318unsafe impl ExtendsPhysicalDeviceFeatures2
50319for PhysicalDeviceSubgroupSizeControlFeatures {}
50320unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubgroupSizeControlFeatures {}
50321unsafe impl ExtendsPhysicalDeviceProperties2
50322for PhysicalDeviceSubgroupSizeControlProperties {}
50323unsafe impl ExtendsPipelineShaderStageCreateInfo
50324for PipelineShaderStageRequiredSubgroupSizeCreateInfo {}
50325unsafe impl ExtendsShaderCreateInfoEXT
50326for PipelineShaderStageRequiredSubgroupSizeCreateInfo {}
50327unsafe impl ExtendsComputePipelineCreateInfo for SubpassShadingPipelineCreateInfoHUAWEI {}
50328unsafe impl ExtendsPhysicalDeviceProperties2
50329for PhysicalDeviceSubpassShadingPropertiesHUAWEI {}
50330unsafe impl ExtendsPhysicalDeviceProperties2
50331for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {}
50332unsafe impl ExtendsMemoryAllocateInfo for MemoryOpaqueCaptureAddressAllocateInfo {}
50333unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLineRasterizationFeatures {}
50334unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLineRasterizationFeatures {}
50335unsafe impl ExtendsPhysicalDeviceProperties2
50336for PhysicalDeviceLineRasterizationProperties {}
50337unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50338for PipelineRasterizationLineStateCreateInfo {}
50339unsafe impl ExtendsPhysicalDeviceFeatures2
50340for PhysicalDevicePipelineCreationCacheControlFeatures {}
50341unsafe impl ExtendsDeviceCreateInfo
50342for PhysicalDevicePipelineCreationCacheControlFeatures {}
50343unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan11Features {}
50344unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan11Features {}
50345unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan11Properties {}
50346unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan12Features {}
50347unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan12Features {}
50348unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan12Properties {}
50349unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan13Features {}
50350unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan13Features {}
50351unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan13Properties {}
50352unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan14Features {}
50353unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan14Features {}
50354unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan14Properties {}
50355unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCompilerControlCreateInfoAMD {}
50356unsafe impl ExtendsComputePipelineCreateInfo for PipelineCompilerControlCreateInfoAMD {}
50357unsafe impl ExtendsExecutionGraphPipelineCreateInfoAMDX
50358for PipelineCompilerControlCreateInfoAMD {}
50359unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCoherentMemoryFeaturesAMD {}
50360unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCoherentMemoryFeaturesAMD {}
50361unsafe impl ExtendsDeviceCreateInfo for FaultCallbackInfo {}
50362unsafe impl ExtendsSamplerCreateInfo for SamplerCustomBorderColorCreateInfoEXT {}
50363unsafe impl ExtendsPhysicalDeviceProperties2
50364for PhysicalDeviceCustomBorderColorPropertiesEXT {}
50365unsafe impl ExtendsPhysicalDeviceFeatures2
50366for PhysicalDeviceCustomBorderColorFeaturesEXT {}
50367unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCustomBorderColorFeaturesEXT {}
50368unsafe impl ExtendsSamplerCreateInfo
50369for SamplerBorderColorComponentMappingCreateInfoEXT {}
50370unsafe impl ExtendsPhysicalDeviceFeatures2
50371for PhysicalDeviceBorderColorSwizzleFeaturesEXT {}
50372unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBorderColorSwizzleFeaturesEXT {}
50373unsafe impl ExtendsAccelerationStructureGeometryKHR
50374for AccelerationStructureGeometryLinearSweptSpheresDataNV {}
50375unsafe impl ExtendsAccelerationStructureGeometryKHR
50376for AccelerationStructureGeometrySpheresDataNV {}
50377unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineLibraryCreateInfoKHR {}
50378unsafe impl ExtendsPhysicalDeviceFeatures2
50379for PhysicalDeviceExtendedDynamicStateFeaturesEXT {}
50380unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicStateFeaturesEXT {}
50381unsafe impl ExtendsPhysicalDeviceFeatures2
50382for PhysicalDeviceExtendedDynamicState2FeaturesEXT {}
50383unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicState2FeaturesEXT {}
50384unsafe impl ExtendsPhysicalDeviceFeatures2
50385for PhysicalDeviceExtendedDynamicState3FeaturesEXT {}
50386unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicState3FeaturesEXT {}
50387unsafe impl ExtendsPhysicalDeviceProperties2
50388for PhysicalDeviceExtendedDynamicState3PropertiesEXT {}
50389unsafe impl ExtendsRenderPassBeginInfo for RenderPassTransformBeginInfoQCOM {}
50390unsafe impl ExtendsBufferImageCopy2 for CopyCommandTransformInfoQCOM {}
50391unsafe impl ExtendsImageBlit2 for CopyCommandTransformInfoQCOM {}
50392unsafe impl ExtendsDeviceMemoryImageCopyKHR for CopyCommandTransformInfoQCOM {}
50393unsafe impl ExtendsCommandBufferInheritanceInfo
50394for CommandBufferInheritanceRenderPassTransformInfoQCOM {}
50395unsafe impl ExtendsPhysicalDeviceFeatures2
50396for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {}
50397unsafe impl ExtendsDeviceCreateInfo
50398for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {}
50399unsafe impl ExtendsPhysicalDeviceProperties2
50400for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {}
50401unsafe impl ExtendsPartitionedAccelerationStructureInstancesInputNV
50402for PartitionedAccelerationStructureFlagsNV {}
50403unsafe impl ExtendsWriteDescriptorSet
50404for WriteDescriptorSetPartitionedAccelerationStructureNV {}
50405unsafe impl ExtendsPhysicalDeviceFeatures2
50406for PhysicalDeviceDiagnosticsConfigFeaturesNV {}
50407unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDiagnosticsConfigFeaturesNV {}
50408unsafe impl ExtendsDeviceCreateInfo for DeviceDiagnosticsConfigCreateInfoNV {}
50409unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineOfflineCreateInfo {}
50410unsafe impl ExtendsComputePipelineCreateInfo for PipelineOfflineCreateInfo {}
50411unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineOfflineCreateInfo {}
50412unsafe impl ExtendsRayTracingPipelineCreateInfoNV for PipelineOfflineCreateInfo {}
50413unsafe impl ExtendsPhysicalDeviceFeatures2
50414for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {}
50415unsafe impl ExtendsDeviceCreateInfo
50416for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {}
50417unsafe impl ExtendsPhysicalDeviceFeatures2
50418for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {}
50419unsafe impl ExtendsDeviceCreateInfo
50420for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {}
50421unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRobustness2FeaturesKHR {}
50422unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRobustness2FeaturesKHR {}
50423unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRobustness2PropertiesKHR {}
50424unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageRobustnessFeatures {}
50425unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageRobustnessFeatures {}
50426unsafe impl ExtendsPhysicalDeviceFeatures2
50427for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {}
50428unsafe impl ExtendsDeviceCreateInfo
50429for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {}
50430unsafe impl ExtendsPhysicalDeviceFeatures2
50431for PhysicalDevicePortabilitySubsetFeaturesKHR {}
50432unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePortabilitySubsetFeaturesKHR {}
50433unsafe impl ExtendsPhysicalDeviceProperties2
50434for PhysicalDevicePortabilitySubsetPropertiesKHR {}
50435unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice4444FormatsFeaturesEXT {}
50436unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice4444FormatsFeaturesEXT {}
50437unsafe impl ExtendsPhysicalDeviceFeatures2
50438for PhysicalDeviceSubpassShadingFeaturesHUAWEI {}
50439unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubpassShadingFeaturesHUAWEI {}
50440unsafe impl ExtendsPhysicalDeviceFeatures2
50441for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {}
50442unsafe impl ExtendsDeviceCreateInfo
50443for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {}
50444unsafe impl ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
50445for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {}
50446unsafe impl ExtendsPhysicalDeviceFeatures2
50447for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {}
50448unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {}
50449unsafe impl ExtendsSubpassDescription2 for FragmentShadingRateAttachmentInfoKHR {}
50450unsafe impl ExtendsGraphicsPipelineCreateInfo
50451for PipelineFragmentShadingRateStateCreateInfoKHR {}
50452unsafe impl ExtendsPhysicalDeviceFeatures2
50453for PhysicalDeviceFragmentShadingRateFeaturesKHR {}
50454unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShadingRateFeaturesKHR {}
50455unsafe impl ExtendsPhysicalDeviceProperties2
50456for PhysicalDeviceFragmentShadingRatePropertiesKHR {}
50457unsafe impl ExtendsPhysicalDeviceFeatures2
50458for PhysicalDeviceShaderTerminateInvocationFeatures {}
50459unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTerminateInvocationFeatures {}
50460unsafe impl ExtendsPhysicalDeviceFeatures2
50461for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {}
50462unsafe impl ExtendsDeviceCreateInfo
50463for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {}
50464unsafe impl ExtendsPhysicalDeviceProperties2
50465for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {}
50466unsafe impl ExtendsGraphicsPipelineCreateInfo
50467for PipelineFragmentShadingRateEnumStateCreateInfoNV {}
50468unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImage2DViewOf3DFeaturesEXT {}
50469unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImage2DViewOf3DFeaturesEXT {}
50470unsafe impl ExtendsPhysicalDeviceFeatures2
50471for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {}
50472unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {}
50473unsafe impl ExtendsPhysicalDeviceFeatures2
50474for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {}
50475unsafe impl ExtendsDeviceCreateInfo
50476for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {}
50477unsafe impl ExtendsPhysicalDeviceFeatures2
50478for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {}
50479unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {}
50480unsafe impl ExtendsPhysicalDeviceProperties2
50481for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {}
50482unsafe impl ExtendsPhysicalDeviceFeatures2
50483for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {}
50484unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {}
50485unsafe impl ExtendsDescriptorSetLayoutCreateInfo for MutableDescriptorTypeCreateInfoEXT {}
50486unsafe impl ExtendsDescriptorPoolCreateInfo for MutableDescriptorTypeCreateInfoEXT {}
50487unsafe impl ExtendsPhysicalDeviceFeatures2
50488for PhysicalDeviceDepthClipControlFeaturesEXT {}
50489unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClipControlFeaturesEXT {}
50490unsafe impl ExtendsPhysicalDeviceFeatures2
50491for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {}
50492unsafe impl ExtendsDeviceCreateInfo
50493for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {}
50494unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCustomResolveFeaturesEXT {}
50495unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCustomResolveFeaturesEXT {}
50496unsafe impl ExtendsGraphicsPipelineCreateInfo for CustomResolveCreateInfoEXT {}
50497unsafe impl ExtendsCommandBufferInheritanceInfo for CustomResolveCreateInfoEXT {}
50498unsafe impl ExtendsShaderCreateInfoEXT for CustomResolveCreateInfoEXT {}
50499unsafe impl ExtendsPhysicalDeviceFeatures2
50500for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {}
50501unsafe impl ExtendsDeviceCreateInfo
50502for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {}
50503unsafe impl ExtendsPhysicalDeviceProperties2
50504for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {}
50505unsafe impl ExtendsGeneratedCommandsInfoEXT for GeneratedCommandsPipelineInfoEXT {}
50506unsafe impl ExtendsGeneratedCommandsMemoryRequirementsInfoEXT
50507for GeneratedCommandsPipelineInfoEXT {}
50508unsafe impl ExtendsGeneratedCommandsInfoEXT for GeneratedCommandsShaderInfoEXT {}
50509unsafe impl ExtendsGeneratedCommandsMemoryRequirementsInfoEXT
50510for GeneratedCommandsShaderInfoEXT {}
50511unsafe impl ExtendsPipelineViewportStateCreateInfo
50512for PipelineViewportDepthClipControlCreateInfoEXT {}
50513unsafe impl ExtendsPhysicalDeviceFeatures2
50514for PhysicalDeviceDepthClampControlFeaturesEXT {}
50515unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClampControlFeaturesEXT {}
50516unsafe impl ExtendsPipelineViewportStateCreateInfo
50517for PipelineViewportDepthClampControlCreateInfoEXT {}
50518unsafe impl ExtendsPhysicalDeviceFeatures2
50519for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {}
50520unsafe impl ExtendsDeviceCreateInfo
50521for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {}
50522unsafe impl ExtendsPhysicalDeviceFeatures2
50523for PhysicalDeviceExternalMemoryRDMAFeaturesNV {}
50524unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemoryRDMAFeaturesNV {}
50525unsafe impl ExtendsPhysicalDeviceFeatures2
50526for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {}
50527unsafe impl ExtendsDeviceCreateInfo
50528for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {}
50529unsafe impl ExtendsPhysicalDeviceFeatures2
50530for PhysicalDeviceColorWriteEnableFeaturesEXT {}
50531unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceColorWriteEnableFeaturesEXT {}
50532unsafe impl ExtendsPipelineColorBlendStateCreateInfo
50533for PipelineColorWriteCreateInfoEXT {}
50534unsafe impl ExtendsSubpassDependency2 for MemoryBarrier2 {}
50535unsafe impl ExtendsSubpassDependency2 for MemoryBarrierAccessFlags3KHR {}
50536unsafe impl ExtendsBufferMemoryBarrier2 for MemoryBarrierAccessFlags3KHR {}
50537unsafe impl ExtendsImageMemoryBarrier2 for MemoryBarrierAccessFlags3KHR {}
50538unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyCheckpointProperties2NV {}
50539unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSynchronization2Features {}
50540unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSynchronization2Features {}
50541unsafe impl ExtendsPhysicalDeviceFeatures2
50542for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {}
50543unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {}
50544unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHostImageCopyFeatures {}
50545unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHostImageCopyFeatures {}
50546unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceHostImageCopyProperties {}
50547unsafe impl ExtendsSubresourceLayout2 for SubresourceHostMemcpySize {}
50548unsafe impl ExtendsImageFormatProperties2 for HostImageCopyDevicePerformanceQuery {}
50549unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkanSC10Properties {}
50550unsafe impl ExtendsDeviceCreateInfo for DeviceObjectReservationCreateInfo {}
50551unsafe impl ExtendsCommandPoolCreateInfo for CommandPoolMemoryReservationCreateInfo {}
50552unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkanSC10Features {}
50553unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkanSC10Features {}
50554unsafe impl ExtendsPhysicalDeviceFeatures2
50555for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {}
50556unsafe impl ExtendsDeviceCreateInfo
50557for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {}
50558unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLegacyDitheringFeaturesEXT {}
50559unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLegacyDitheringFeaturesEXT {}
50560unsafe impl ExtendsPhysicalDeviceFeatures2
50561for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {}
50562unsafe impl ExtendsDeviceCreateInfo
50563for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {}
50564unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesPresentId2KHR {}
50565unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesPresentWait2KHR {}
50566unsafe impl ExtendsFormatProperties2 for SubpassResolvePerformanceQueryEXT {}
50567unsafe impl ExtendsSubpassDescription2 for MultisampledRenderToSingleSampledInfoEXT {}
50568unsafe impl ExtendsRenderingInfo for MultisampledRenderToSingleSampledInfoEXT {}
50569unsafe impl ExtendsPhysicalDeviceFeatures2
50570for PhysicalDevicePipelineProtectedAccessFeatures {}
50571unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineProtectedAccessFeatures {}
50572unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyVideoPropertiesKHR {}
50573unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyQueryResultStatusPropertiesKHR {}
50574unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for VideoProfileListInfoKHR {}
50575unsafe impl ExtendsPhysicalDeviceVideoFormatInfoKHR for VideoProfileListInfoKHR {}
50576unsafe impl ExtendsImageCreateInfo for VideoProfileListInfoKHR {}
50577unsafe impl ExtendsBufferCreateInfo for VideoProfileListInfoKHR {}
50578unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeQuantizationMapCapabilitiesKHR {}
50579unsafe impl ExtendsVideoCapabilitiesKHR
50580for VideoEncodeH264QuantizationMapCapabilitiesKHR {}
50581unsafe impl ExtendsVideoCapabilitiesKHR
50582for VideoEncodeH265QuantizationMapCapabilitiesKHR {}
50583unsafe impl ExtendsVideoCapabilitiesKHR
50584for VideoEncodeAV1QuantizationMapCapabilitiesKHR {}
50585unsafe impl ExtendsVideoFormatPropertiesKHR for VideoFormatQuantizationMapPropertiesKHR {}
50586unsafe impl ExtendsVideoFormatPropertiesKHR
50587for VideoFormatH265QuantizationMapPropertiesKHR {}
50588unsafe impl ExtendsVideoFormatPropertiesKHR
50589for VideoFormatAV1QuantizationMapPropertiesKHR {}
50590unsafe impl ExtendsQueryPoolCreateInfo for VideoProfileInfoKHR {}
50591unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeCapabilitiesKHR {}
50592unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeUsageInfoKHR {}
50593unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeUsageInfoKHR {}
50594unsafe impl ExtendsPhysicalDeviceFeatures2
50595for PhysicalDeviceVideoMaintenance1FeaturesKHR {}
50596unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoMaintenance1FeaturesKHR {}
50597unsafe impl ExtendsPhysicalDeviceFeatures2
50598for PhysicalDeviceVideoMaintenance2FeaturesKHR {}
50599unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoMaintenance2FeaturesKHR {}
50600unsafe impl ExtendsVideoDecodeInfoKHR for VideoInlineQueryInfoKHR {}
50601unsafe impl ExtendsVideoEncodeInfoKHR for VideoInlineQueryInfoKHR {}
50602unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeH264ProfileInfoKHR {}
50603unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeH264ProfileInfoKHR {}
50604unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeH264CapabilitiesKHR {}
50605unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR
50606for VideoDecodeH264SessionParametersAddInfoKHR {}
50607unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50608for VideoDecodeH264SessionParametersCreateInfoKHR {}
50609unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH264InlineSessionParametersInfoKHR {}
50610unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH264PictureInfoKHR {}
50611unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeH264DpbSlotInfoKHR {}
50612unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeH265ProfileInfoKHR {}
50613unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeH265ProfileInfoKHR {}
50614unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeH265CapabilitiesKHR {}
50615unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR
50616for VideoDecodeH265SessionParametersAddInfoKHR {}
50617unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50618for VideoDecodeH265SessionParametersCreateInfoKHR {}
50619unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH265InlineSessionParametersInfoKHR {}
50620unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH265PictureInfoKHR {}
50621unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeH265DpbSlotInfoKHR {}
50622unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVideoDecodeVP9FeaturesKHR {}
50623unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoDecodeVP9FeaturesKHR {}
50624unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeVP9ProfileInfoKHR {}
50625unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeVP9ProfileInfoKHR {}
50626unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeVP9CapabilitiesKHR {}
50627unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeVP9PictureInfoKHR {}
50628unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeAV1ProfileInfoKHR {}
50629unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeAV1ProfileInfoKHR {}
50630unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeAV1CapabilitiesKHR {}
50631unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50632for VideoDecodeAV1SessionParametersCreateInfoKHR {}
50633unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeAV1InlineSessionParametersInfoKHR {}
50634unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeAV1PictureInfoKHR {}
50635unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeAV1DpbSlotInfoKHR {}
50636unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeUsageInfoKHR {}
50637unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeUsageInfoKHR {}
50638unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeQuantizationMapInfoKHR {}
50639unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50640for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {}
50641unsafe impl ExtendsPhysicalDeviceFeatures2
50642for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {}
50643unsafe impl ExtendsDeviceCreateInfo
50644for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {}
50645unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolVideoEncodeFeedbackCreateInfoKHR {}
50646unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeQualityLevelInfoKHR {}
50647unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50648for VideoEncodeQualityLevelInfoKHR {}
50649unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeRateControlInfoKHR {}
50650unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeRateControlInfoKHR {}
50651unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeCapabilitiesKHR {}
50652unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeH264CapabilitiesKHR {}
50653unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR
50654for VideoEncodeH264QualityLevelPropertiesKHR {}
50655unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeH264SessionCreateInfoKHR {}
50656unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR
50657for VideoEncodeH264SessionParametersAddInfoKHR {}
50658unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50659for VideoEncodeH264SessionParametersCreateInfoKHR {}
50660unsafe impl ExtendsVideoEncodeSessionParametersGetInfoKHR
50661for VideoEncodeH264SessionParametersGetInfoKHR {}
50662unsafe impl ExtendsVideoEncodeSessionParametersFeedbackInfoKHR
50663for VideoEncodeH264SessionParametersFeedbackInfoKHR {}
50664unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeH264DpbSlotInfoKHR {}
50665unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeH264PictureInfoKHR {}
50666unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeH264ProfileInfoKHR {}
50667unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeH264ProfileInfoKHR {}
50668unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeH264RateControlInfoKHR {}
50669unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH264RateControlInfoKHR {}
50670unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH264GopRemainingFrameInfoKHR {}
50671unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR
50672for VideoEncodeH264RateControlLayerInfoKHR {}
50673unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeH265CapabilitiesKHR {}
50674unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR
50675for VideoEncodeH265QualityLevelPropertiesKHR {}
50676unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeH265SessionCreateInfoKHR {}
50677unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR
50678for VideoEncodeH265SessionParametersAddInfoKHR {}
50679unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50680for VideoEncodeH265SessionParametersCreateInfoKHR {}
50681unsafe impl ExtendsVideoEncodeSessionParametersGetInfoKHR
50682for VideoEncodeH265SessionParametersGetInfoKHR {}
50683unsafe impl ExtendsVideoEncodeSessionParametersFeedbackInfoKHR
50684for VideoEncodeH265SessionParametersFeedbackInfoKHR {}
50685unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeH265PictureInfoKHR {}
50686unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeH265RateControlInfoKHR {}
50687unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH265RateControlInfoKHR {}
50688unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH265GopRemainingFrameInfoKHR {}
50689unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR
50690for VideoEncodeH265RateControlLayerInfoKHR {}
50691unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeH265ProfileInfoKHR {}
50692unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeH265ProfileInfoKHR {}
50693unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeH265DpbSlotInfoKHR {}
50694unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeAV1CapabilitiesKHR {}
50695unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR
50696for VideoEncodeAV1QualityLevelPropertiesKHR {}
50697unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVideoEncodeAV1FeaturesKHR {}
50698unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoEncodeAV1FeaturesKHR {}
50699unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeAV1SessionCreateInfoKHR {}
50700unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50701for VideoEncodeAV1SessionParametersCreateInfoKHR {}
50702unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeAV1DpbSlotInfoKHR {}
50703unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeAV1PictureInfoKHR {}
50704unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeAV1ProfileInfoKHR {}
50705unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeAV1ProfileInfoKHR {}
50706unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeAV1RateControlInfoKHR {}
50707unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeAV1RateControlInfoKHR {}
50708unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeAV1GopRemainingFrameInfoKHR {}
50709unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR
50710for VideoEncodeAV1RateControlLayerInfoKHR {}
50711unsafe impl ExtendsPhysicalDeviceFeatures2
50712for PhysicalDeviceInheritedViewportScissorFeaturesNV {}
50713unsafe impl ExtendsDeviceCreateInfo
50714for PhysicalDeviceInheritedViewportScissorFeaturesNV {}
50715unsafe impl ExtendsCommandBufferInheritanceInfo
50716for CommandBufferInheritanceViewportScissorInfoNV {}
50717unsafe impl ExtendsPhysicalDeviceFeatures2
50718for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {}
50719unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {}
50720unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceProvokingVertexFeaturesEXT {}
50721unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceProvokingVertexFeaturesEXT {}
50722unsafe impl ExtendsPhysicalDeviceProperties2
50723for PhysicalDeviceProvokingVertexPropertiesEXT {}
50724unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50725for PipelineRasterizationProvokingVertexStateCreateInfoEXT {}
50726unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeIntraRefreshCapabilitiesKHR {}
50727unsafe impl ExtendsVideoSessionCreateInfoKHR
50728for VideoEncodeSessionIntraRefreshCreateInfoKHR {}
50729unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeIntraRefreshInfoKHR {}
50730unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoReferenceIntraRefreshInfoKHR {}
50731unsafe impl ExtendsPhysicalDeviceFeatures2
50732for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {}
50733unsafe impl ExtendsDeviceCreateInfo
50734for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {}
50735unsafe impl ExtendsCuModuleCreateInfoNVX for CuModuleTexturingModeCreateInfoNVX {}
50736unsafe impl ExtendsPhysicalDeviceFeatures2
50737for PhysicalDeviceDescriptorBufferFeaturesEXT {}
50738unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorBufferFeaturesEXT {}
50739unsafe impl ExtendsPhysicalDeviceProperties2
50740for PhysicalDeviceDescriptorBufferPropertiesEXT {}
50741unsafe impl ExtendsPhysicalDeviceProperties2
50742for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {}
50743unsafe impl ExtendsDescriptorBufferBindingInfoEXT
50744for DescriptorBufferBindingPushDescriptorBufferHandleEXT {}
50745unsafe impl ExtendsBufferCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50746unsafe impl ExtendsImageCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50747unsafe impl ExtendsImageViewCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50748unsafe impl ExtendsSamplerCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50749unsafe impl ExtendsAccelerationStructureCreateInfoKHR
50750for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50751unsafe impl ExtendsAccelerationStructureCreateInfoNV
50752for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50753unsafe impl ExtendsTensorCreateInfoARM for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50754unsafe impl ExtendsTensorViewCreateInfoARM for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50755unsafe impl ExtendsAccelerationStructureCreateInfo2KHR
50756for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50757unsafe impl ExtendsPhysicalDeviceFeatures2
50758for PhysicalDeviceShaderIntegerDotProductFeatures {}
50759unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderIntegerDotProductFeatures {}
50760unsafe impl ExtendsPhysicalDeviceProperties2
50761for PhysicalDeviceShaderIntegerDotProductProperties {}
50762unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDrmPropertiesEXT {}
50763unsafe impl ExtendsPhysicalDeviceFeatures2
50764for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {}
50765unsafe impl ExtendsDeviceCreateInfo
50766for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {}
50767unsafe impl ExtendsPhysicalDeviceProperties2
50768for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {}
50769unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFmaFeaturesKHR {}
50770unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFmaFeaturesKHR {}
50771unsafe impl ExtendsPhysicalDeviceFeatures2
50772for PhysicalDeviceRayTracingMotionBlurFeaturesNV {}
50773unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingMotionBlurFeaturesNV {}
50774unsafe impl ExtendsPhysicalDeviceFeatures2
50775for PhysicalDeviceRayTracingValidationFeaturesNV {}
50776unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingValidationFeaturesNV {}
50777unsafe impl ExtendsPhysicalDeviceFeatures2
50778for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {}
50779unsafe impl ExtendsDeviceCreateInfo
50780for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {}
50781unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR
50782for AccelerationStructureGeometryMotionTrianglesDataNV {}
50783unsafe impl ExtendsAccelerationStructureCreateInfoKHR
50784for AccelerationStructureMotionInfoNV {}
50785unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryBufferCollectionFUCHSIA {}
50786unsafe impl ExtendsImageCreateInfo for BufferCollectionImageCreateInfoFUCHSIA {}
50787unsafe impl ExtendsBufferCreateInfo for BufferCollectionBufferCreateInfoFUCHSIA {}
50788unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {}
50789unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {}
50790unsafe impl ExtendsFormatProperties2 for FormatProperties3 {}
50791unsafe impl ExtendsFormatProperties2 for DrmFormatModifierPropertiesList2EXT {}
50792unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID
50793for AndroidHardwareBufferFormatProperties2ANDROID {}
50794unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineRenderingCreateInfo {}
50795unsafe impl ExtendsRenderingInfo for RenderingFragmentShadingRateAttachmentInfoKHR {}
50796unsafe impl ExtendsRenderingInfo for RenderingFragmentDensityMapAttachmentInfoEXT {}
50797unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDynamicRenderingFeatures {}
50798unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDynamicRenderingFeatures {}
50799unsafe impl ExtendsCommandBufferInheritanceInfo
50800for CommandBufferInheritanceRenderingInfo {}
50801unsafe impl ExtendsCommandBufferInheritanceInfo for AttachmentSampleCountInfoAMD {}
50802unsafe impl ExtendsGraphicsPipelineCreateInfo for AttachmentSampleCountInfoAMD {}
50803unsafe impl ExtendsCommandBufferInheritanceInfo for MultiviewPerViewAttributesInfoNVX {}
50804unsafe impl ExtendsGraphicsPipelineCreateInfo for MultiviewPerViewAttributesInfoNVX {}
50805unsafe impl ExtendsRenderingInfo for MultiviewPerViewAttributesInfoNVX {}
50806unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageViewMinLodFeaturesEXT {}
50807unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageViewMinLodFeaturesEXT {}
50808unsafe impl ExtendsImageViewCreateInfo for ImageViewMinLodCreateInfoEXT {}
50809unsafe impl ExtendsPhysicalDeviceFeatures2
50810for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {}
50811unsafe impl ExtendsDeviceCreateInfo
50812for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {}
50813unsafe impl ExtendsPhysicalDeviceFeatures2
50814for PhysicalDeviceLinearColorAttachmentFeaturesNV {}
50815unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLinearColorAttachmentFeaturesNV {}
50816unsafe impl ExtendsPhysicalDeviceFeatures2
50817for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {}
50818unsafe impl ExtendsDeviceCreateInfo
50819for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {}
50820unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelineBinaryFeaturesKHR {}
50821unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineBinaryFeaturesKHR {}
50822unsafe impl ExtendsDeviceCreateInfo for DevicePipelineBinaryInternalCacheControlKHR {}
50823unsafe impl ExtendsPhysicalDeviceProperties2
50824for PhysicalDevicePipelineBinaryPropertiesKHR {}
50825unsafe impl ExtendsPhysicalDeviceProperties2
50826for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {}
50827unsafe impl ExtendsGraphicsPipelineCreateInfo for GraphicsPipelineLibraryCreateInfoEXT {}
50828unsafe impl ExtendsPhysicalDeviceFeatures2
50829for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {}
50830unsafe impl ExtendsDeviceCreateInfo
50831for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {}
50832unsafe impl ExtendsPhysicalDeviceFeatures2
50833for PhysicalDeviceNestedCommandBufferFeaturesEXT {}
50834unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceNestedCommandBufferFeaturesEXT {}
50835unsafe impl ExtendsPhysicalDeviceProperties2
50836for PhysicalDeviceNestedCommandBufferPropertiesEXT {}
50837unsafe impl ExtendsPhysicalDeviceFeatures2
50838for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {}
50839unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {}
50840unsafe impl ExtendsPhysicalDeviceProperties2
50841for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {}
50842unsafe impl ExtendsPipelineShaderStageCreateInfo
50843for PipelineShaderStageModuleIdentifierCreateInfoEXT {}
50844unsafe impl ExtendsImageCreateInfo for ImageCompressionControlEXT {}
50845unsafe impl ExtendsSwapchainCreateInfoKHR for ImageCompressionControlEXT {}
50846unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageCompressionControlEXT {}
50847unsafe impl ExtendsPhysicalDeviceFeatures2
50848for PhysicalDeviceImageCompressionControlFeaturesEXT {}
50849unsafe impl ExtendsDeviceCreateInfo
50850for PhysicalDeviceImageCompressionControlFeaturesEXT {}
50851unsafe impl ExtendsImageFormatProperties2 for ImageCompressionPropertiesEXT {}
50852unsafe impl ExtendsSurfaceFormat2KHR for ImageCompressionPropertiesEXT {}
50853unsafe impl ExtendsSubresourceLayout2 for ImageCompressionPropertiesEXT {}
50854unsafe impl ExtendsPhysicalDeviceFeatures2
50855for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {}
50856unsafe impl ExtendsDeviceCreateInfo
50857for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {}
50858unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassCreationControlEXT {}
50859unsafe impl ExtendsSubpassDescription2 for RenderPassCreationControlEXT {}
50860unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassCreationFeedbackCreateInfoEXT {}
50861unsafe impl ExtendsSubpassDescription2 for RenderPassSubpassFeedbackCreateInfoEXT {}
50862unsafe impl ExtendsPhysicalDeviceFeatures2
50863for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {}
50864unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {}
50865unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceOpacityMicromapFeaturesEXT {}
50866unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceOpacityMicromapFeaturesEXT {}
50867unsafe impl ExtendsPhysicalDeviceProperties2
50868for PhysicalDeviceOpacityMicromapPropertiesEXT {}
50869unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR
50870for AccelerationStructureTrianglesOpacityMicromapEXT {}
50871unsafe impl ExtendsAccelerationStructureDenseGeometryFormatTrianglesDataAMDX
50872for AccelerationStructureTrianglesOpacityMicromapEXT {}
50873unsafe impl ExtendsPhysicalDeviceFeatures2
50874for PhysicalDeviceDisplacementMicromapFeaturesNV {}
50875unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDisplacementMicromapFeaturesNV {}
50876unsafe impl ExtendsPhysicalDeviceProperties2
50877for PhysicalDeviceDisplacementMicromapPropertiesNV {}
50878unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR
50879for AccelerationStructureTrianglesDisplacementMicromapNV {}
50880unsafe impl ExtendsPhysicalDeviceFeatures2
50881for PhysicalDevicePipelinePropertiesFeaturesEXT {}
50882unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelinePropertiesFeaturesEXT {}
50883unsafe impl ExtendsPhysicalDeviceFeatures2
50884for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {}
50885unsafe impl ExtendsDeviceCreateInfo
50886for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {}
50887unsafe impl ExtendsBufferMemoryBarrier for ExternalMemoryAcquireUnmodifiedEXT {}
50888unsafe impl ExtendsBufferMemoryBarrier2 for ExternalMemoryAcquireUnmodifiedEXT {}
50889unsafe impl ExtendsImageMemoryBarrier for ExternalMemoryAcquireUnmodifiedEXT {}
50890unsafe impl ExtendsImageMemoryBarrier2 for ExternalMemoryAcquireUnmodifiedEXT {}
50891unsafe impl ExtendsInstanceCreateInfo for ExportMetalObjectCreateInfoEXT {}
50892unsafe impl ExtendsMemoryAllocateInfo for ExportMetalObjectCreateInfoEXT {}
50893unsafe impl ExtendsImageCreateInfo for ExportMetalObjectCreateInfoEXT {}
50894unsafe impl ExtendsImageViewCreateInfo for ExportMetalObjectCreateInfoEXT {}
50895unsafe impl ExtendsBufferViewCreateInfo for ExportMetalObjectCreateInfoEXT {}
50896unsafe impl ExtendsSemaphoreCreateInfo for ExportMetalObjectCreateInfoEXT {}
50897unsafe impl ExtendsEventCreateInfo for ExportMetalObjectCreateInfoEXT {}
50898unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalDeviceInfoEXT {}
50899unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalCommandQueueInfoEXT {}
50900unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalBufferInfoEXT {}
50901unsafe impl ExtendsMemoryAllocateInfo for ImportMetalBufferInfoEXT {}
50902unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalTextureInfoEXT {}
50903unsafe impl ExtendsImageCreateInfo for ImportMetalTextureInfoEXT {}
50904unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalIOSurfaceInfoEXT {}
50905unsafe impl ExtendsImageCreateInfo for ImportMetalIOSurfaceInfoEXT {}
50906unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalSharedEventInfoEXT {}
50907unsafe impl ExtendsSemaphoreCreateInfo for ImportMetalSharedEventInfoEXT {}
50908unsafe impl ExtendsEventCreateInfo for ImportMetalSharedEventInfoEXT {}
50909unsafe impl ExtendsPhysicalDeviceFeatures2
50910for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {}
50911unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {}
50912unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelineRobustnessFeatures {}
50913unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineRobustnessFeatures {}
50914unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineRobustnessCreateInfo {}
50915unsafe impl ExtendsComputePipelineCreateInfo for PipelineRobustnessCreateInfo {}
50916unsafe impl ExtendsPipelineShaderStageCreateInfo for PipelineRobustnessCreateInfo {}
50917unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineRobustnessCreateInfo {}
50918unsafe impl ExtendsPhysicalDeviceProperties2
50919for PhysicalDevicePipelineRobustnessProperties {}
50920unsafe impl ExtendsImageViewCreateInfo for ImageViewSampleWeightCreateInfoQCOM {}
50921unsafe impl ExtendsPhysicalDeviceFeatures2
50922for PhysicalDeviceImageProcessingFeaturesQCOM {}
50923unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageProcessingFeaturesQCOM {}
50924unsafe impl ExtendsPhysicalDeviceProperties2
50925for PhysicalDeviceImageProcessingPropertiesQCOM {}
50926unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTilePropertiesFeaturesQCOM {}
50927unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTilePropertiesFeaturesQCOM {}
50928unsafe impl ExtendsCommandBufferInheritanceInfo for TileMemoryBindInfoQCOM {}
50929unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAmigoProfilingFeaturesSEC {}
50930unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAmigoProfilingFeaturesSEC {}
50931unsafe impl ExtendsSubmitInfo for AmigoProfilingSubmitInfoSEC {}
50932unsafe impl ExtendsPhysicalDeviceFeatures2
50933for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {}
50934unsafe impl ExtendsDeviceCreateInfo
50935for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {}
50936unsafe impl ExtendsRenderingAttachmentInfo for AttachmentFeedbackLoopInfoEXT {}
50937unsafe impl ExtendsPhysicalDeviceFeatures2
50938for PhysicalDeviceAddressBindingReportFeaturesEXT {}
50939unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAddressBindingReportFeaturesEXT {}
50940unsafe impl ExtendsRenderingAttachmentInfo for RenderingAttachmentFlagsInfoKHR {}
50941unsafe impl ExtendsResolveImageInfo2 for ResolveImageModeInfoKHR {}
50942unsafe impl ExtendsDebugUtilsMessengerCallbackDataEXT
50943for DeviceAddressBindingCallbackDataEXT {}
50944unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceOpticalFlowFeaturesNV {}
50945unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceOpticalFlowFeaturesNV {}
50946unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceOpticalFlowPropertiesNV {}
50947unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for OpticalFlowImageFormatInfoNV {}
50948unsafe impl ExtendsImageCreateInfo for OpticalFlowImageFormatInfoNV {}
50949unsafe impl ExtendsOpticalFlowSessionCreateInfoNV
50950for OpticalFlowSessionCreatePrivateDataInfoNV {}
50951unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFaultFeaturesEXT {}
50952unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFaultFeaturesEXT {}
50953unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFaultFeaturesKHR {}
50954unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFaultFeaturesKHR {}
50955unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFaultPropertiesKHR {}
50956unsafe impl ExtendsPhysicalDeviceFeatures2
50957for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {}
50958unsafe impl ExtendsDeviceCreateInfo
50959for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {}
50960unsafe impl ExtendsDepthBiasInfoEXT for DepthBiasRepresentationInfoEXT {}
50961unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50962for DepthBiasRepresentationInfoEXT {}
50963unsafe impl ExtendsPhysicalDeviceProperties2
50964for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {}
50965unsafe impl ExtendsPhysicalDeviceFeatures2
50966for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {}
50967unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {}
50968unsafe impl ExtendsSubmitInfo for FrameBoundaryEXT {}
50969unsafe impl ExtendsSubmitInfo2 for FrameBoundaryEXT {}
50970unsafe impl ExtendsPresentInfoKHR for FrameBoundaryEXT {}
50971unsafe impl ExtendsBindSparseInfo for FrameBoundaryEXT {}
50972unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFrameBoundaryFeaturesEXT {}
50973unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFrameBoundaryFeaturesEXT {}
50974unsafe impl ExtendsPhysicalDeviceFeatures2
50975for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {}
50976unsafe impl ExtendsDeviceCreateInfo
50977for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {}
50978unsafe impl ExtendsPhysicalDeviceFeatures2
50979for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {}
50980unsafe impl ExtendsDeviceCreateInfo
50981for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {}
50982unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfacePresentModeKHR {}
50983unsafe impl ExtendsSurfaceCapabilities2KHR for SurfacePresentScalingCapabilitiesKHR {}
50984unsafe impl ExtendsSurfaceCapabilities2KHR for SurfacePresentModeCompatibilityKHR {}
50985unsafe impl ExtendsPhysicalDeviceFeatures2
50986for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {}
50987unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {}
50988unsafe impl ExtendsPresentInfoKHR for SwapchainPresentFenceInfoKHR {}
50989unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentModesCreateInfoKHR {}
50990unsafe impl ExtendsPresentInfoKHR for SwapchainPresentModeInfoKHR {}
50991unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentScalingCreateInfoKHR {}
50992unsafe impl ExtendsPhysicalDeviceFeatures2
50993for PhysicalDeviceDepthBiasControlFeaturesEXT {}
50994unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthBiasControlFeaturesEXT {}
50995unsafe impl ExtendsPhysicalDeviceFeatures2
50996for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {}
50997unsafe impl ExtendsDeviceCreateInfo
50998for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {}
50999unsafe impl ExtendsPhysicalDeviceFeatures2
51000for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {}
51001unsafe impl ExtendsDeviceCreateInfo
51002for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {}
51003unsafe impl ExtendsPhysicalDeviceProperties2
51004for PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {}
51005unsafe impl ExtendsPhysicalDeviceProperties2
51006for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {}
51007unsafe impl ExtendsPhysicalDeviceFeatures2
51008for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {}
51009unsafe impl ExtendsDeviceCreateInfo
51010for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {}
51011unsafe impl ExtendsPhysicalDeviceProperties2
51012for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {}
51013unsafe impl ExtendsInstanceCreateInfo for DirectDriverLoadingListLUNARG {}
51014unsafe impl ExtendsPhysicalDeviceFeatures2
51015for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {}
51016unsafe impl ExtendsDeviceCreateInfo
51017for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {}
51018unsafe impl ExtendsPhysicalDeviceFeatures2
51019for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {}
51020unsafe impl ExtendsDeviceCreateInfo
51021for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {}
51022unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesARM {}
51023unsafe impl ExtendsPhysicalDeviceFeatures2
51024for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {}
51025unsafe impl ExtendsDeviceCreateInfo
51026for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {}
51027unsafe impl ExtendsRenderPassBeginInfo
51028for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {}
51029unsafe impl ExtendsRenderingInfo for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {}
51030unsafe impl ExtendsSemaphoreCreateInfo for QueryLowLatencySupportNV {}
51031unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderObjectFeaturesEXT {}
51032unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderObjectFeaturesEXT {}
51033unsafe impl ExtendsPhysicalDeviceProperties2
51034for PhysicalDeviceShaderObjectPropertiesEXT {}
51035unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderTileImageFeaturesEXT {}
51036unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTileImageFeaturesEXT {}
51037unsafe impl ExtendsPhysicalDeviceProperties2
51038for PhysicalDeviceShaderTileImagePropertiesEXT {}
51039unsafe impl ExtendsMemoryAllocateInfo for ImportScreenBufferInfoQNX {}
51040unsafe impl ExtendsScreenBufferPropertiesQNX for ScreenBufferFormatPropertiesQNX {}
51041unsafe impl ExtendsImageCreateInfo for ExternalFormatQNX {}
51042unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatQNX {}
51043unsafe impl ExtendsPhysicalDeviceFeatures2
51044for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {}
51045unsafe impl ExtendsDeviceCreateInfo
51046for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {}
51047unsafe impl ExtendsPhysicalDeviceFeatures2
51048for PhysicalDeviceCooperativeMatrixFeaturesKHR {}
51049unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrixFeaturesKHR {}
51050unsafe impl ExtendsPhysicalDeviceProperties2
51051for PhysicalDeviceCooperativeMatrixPropertiesKHR {}
51052unsafe impl ExtendsPhysicalDeviceFeatures2
51053for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {}
51054unsafe impl ExtendsDeviceCreateInfo
51055for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {}
51056unsafe impl ExtendsPhysicalDeviceProperties2
51057for PhysicalDeviceShaderEnqueuePropertiesAMDX {}
51058unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderEnqueueFeaturesAMDX {}
51059unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderEnqueueFeaturesAMDX {}
51060unsafe impl ExtendsPipelineShaderStageCreateInfo
51061for PipelineShaderStageNodeCreateInfoAMDX {}
51062unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAntiLagFeaturesAMD {}
51063unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAntiLagFeaturesAMD {}
51064unsafe impl ExtendsBindBufferMemoryInfo for BindMemoryStatus {}
51065unsafe impl ExtendsBindImageMemoryInfo for BindMemoryStatus {}
51066unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTileMemoryHeapFeaturesQCOM {}
51067unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTileMemoryHeapFeaturesQCOM {}
51068unsafe impl ExtendsPhysicalDeviceProperties2
51069for PhysicalDeviceTileMemoryHeapPropertiesQCOM {}
51070unsafe impl ExtendsRenderPassCreateInfo for TileMemorySizeInfoQCOM {}
51071unsafe impl ExtendsRenderPassCreateInfo2 for TileMemorySizeInfoQCOM {}
51072unsafe impl ExtendsRenderingInfo for TileMemorySizeInfoQCOM {}
51073unsafe impl ExtendsMemoryRequirements2 for TileMemoryRequirementsQCOM {}
51074unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCubicClampFeaturesQCOM {}
51075unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCubicClampFeaturesQCOM {}
51076unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceYcbcrDegammaFeaturesQCOM {}
51077unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcrDegammaFeaturesQCOM {}
51078unsafe impl ExtendsSamplerYcbcrConversionCreateInfo
51079for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {}
51080unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCubicWeightsFeaturesQCOM {}
51081unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCubicWeightsFeaturesQCOM {}
51082unsafe impl ExtendsSamplerCreateInfo for SamplerCubicWeightsCreateInfoQCOM {}
51083unsafe impl ExtendsBlitImageInfo2 for BlitImageCubicWeightsInfoQCOM {}
51084unsafe impl ExtendsPhysicalDeviceFeatures2
51085for PhysicalDeviceImageProcessing2FeaturesQCOM {}
51086unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageProcessing2FeaturesQCOM {}
51087unsafe impl ExtendsPhysicalDeviceProperties2
51088for PhysicalDeviceImageProcessing2PropertiesQCOM {}
51089unsafe impl ExtendsSamplerCreateInfo for SamplerBlockMatchWindowCreateInfoQCOM {}
51090unsafe impl ExtendsPhysicalDeviceFeatures2
51091for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {}
51092unsafe impl ExtendsDeviceCreateInfo
51093for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {}
51094unsafe impl ExtendsPhysicalDeviceProperties2
51095for PhysicalDeviceLayeredDriverPropertiesMSFT {}
51096unsafe impl ExtendsPhysicalDeviceFeatures2
51097for PhysicalDevicePerStageDescriptorSetFeaturesNV {}
51098unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePerStageDescriptorSetFeaturesNV {}
51099unsafe impl ExtendsPhysicalDeviceFeatures2
51100for PhysicalDeviceExternalFormatResolveFeaturesANDROID {}
51101unsafe impl ExtendsDeviceCreateInfo
51102for PhysicalDeviceExternalFormatResolveFeaturesANDROID {}
51103unsafe impl ExtendsPhysicalDeviceProperties2
51104for PhysicalDeviceExternalFormatResolvePropertiesANDROID {}
51105unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID
51106for AndroidHardwareBufferFormatResolvePropertiesANDROID {}
51107unsafe impl ExtendsSubmitInfo for LatencySubmissionPresentIdNV {}
51108unsafe impl ExtendsSubmitInfo2 for LatencySubmissionPresentIdNV {}
51109unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainLatencyCreateInfoNV {}
51110unsafe impl ExtendsSurfaceCapabilities2KHR for LatencySurfaceCapabilitiesNV {}
51111unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCudaKernelLaunchFeaturesNV {}
51112unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCudaKernelLaunchFeaturesNV {}
51113unsafe impl ExtendsPhysicalDeviceProperties2
51114for PhysicalDeviceCudaKernelLaunchPropertiesNV {}
51115unsafe impl ExtendsDeviceQueueCreateInfo for DeviceQueueShaderCoreControlCreateInfoARM {}
51116unsafe impl ExtendsDeviceCreateInfo for DeviceQueueShaderCoreControlCreateInfoARM {}
51117unsafe impl ExtendsPhysicalDeviceFeatures2
51118for PhysicalDeviceSchedulingControlsFeaturesARM {}
51119unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSchedulingControlsFeaturesARM {}
51120unsafe impl ExtendsPhysicalDeviceProperties2
51121for PhysicalDeviceSchedulingControlsPropertiesARM {}
51122unsafe impl ExtendsPhysicalDeviceFeatures2
51123for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {}
51124unsafe impl ExtendsDeviceCreateInfo
51125for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {}
51126unsafe impl ExtendsPhysicalDeviceFeatures2
51127for PhysicalDeviceRenderPassStripedFeaturesARM {}
51128unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRenderPassStripedFeaturesARM {}
51129unsafe impl ExtendsPhysicalDeviceProperties2
51130for PhysicalDeviceRenderPassStripedPropertiesARM {}
51131unsafe impl ExtendsRenderingInfo for RenderPassStripeBeginInfoARM {}
51132unsafe impl ExtendsRenderPassBeginInfo for RenderPassStripeBeginInfoARM {}
51133unsafe impl ExtendsCommandBufferSubmitInfo for RenderPassStripeSubmitInfoARM {}
51134unsafe impl ExtendsPhysicalDeviceFeatures2
51135for PhysicalDevicePipelineOpacityMicromapFeaturesARM {}
51136unsafe impl ExtendsDeviceCreateInfo
51137for PhysicalDevicePipelineOpacityMicromapFeaturesARM {}
51138unsafe impl ExtendsPhysicalDeviceFeatures2
51139for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {}
51140unsafe impl ExtendsDeviceCreateInfo
51141for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {}
51142unsafe impl ExtendsPhysicalDeviceFeatures2
51143for PhysicalDeviceShaderSubgroupRotateFeatures {}
51144unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSubgroupRotateFeatures {}
51145unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderExpectAssumeFeatures {}
51146unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderExpectAssumeFeatures {}
51147unsafe impl ExtendsPhysicalDeviceFeatures2
51148for PhysicalDeviceShaderFloatControls2Features {}
51149unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloatControls2Features {}
51150unsafe impl ExtendsPhysicalDeviceFeatures2
51151for PhysicalDeviceDynamicRenderingLocalReadFeatures {}
51152unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDynamicRenderingLocalReadFeatures {}
51153unsafe impl ExtendsGraphicsPipelineCreateInfo for RenderingAttachmentLocationInfo {}
51154unsafe impl ExtendsCommandBufferInheritanceInfo for RenderingAttachmentLocationInfo {}
51155unsafe impl ExtendsGraphicsPipelineCreateInfo for RenderingInputAttachmentIndexInfo {}
51156unsafe impl ExtendsCommandBufferInheritanceInfo for RenderingInputAttachmentIndexInfo {}
51157unsafe impl ExtendsPhysicalDeviceFeatures2
51158for PhysicalDeviceShaderQuadControlFeaturesKHR {}
51159unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderQuadControlFeaturesKHR {}
51160unsafe impl ExtendsPhysicalDeviceFeatures2
51161for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {}
51162unsafe impl ExtendsDeviceCreateInfo
51163for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {}
51164unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMapMemoryPlacedFeaturesEXT {}
51165unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMapMemoryPlacedFeaturesEXT {}
51166unsafe impl ExtendsPhysicalDeviceProperties2
51167for PhysicalDeviceMapMemoryPlacedPropertiesEXT {}
51168unsafe impl ExtendsMemoryMapInfo for MemoryMapPlacedInfoEXT {}
51169unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderBfloat16FeaturesKHR {}
51170unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderBfloat16FeaturesKHR {}
51171unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRawAccessChainsFeaturesNV {}
51172unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRawAccessChainsFeaturesNV {}
51173unsafe impl ExtendsPhysicalDeviceFeatures2
51174for PhysicalDeviceCommandBufferInheritanceFeaturesNV {}
51175unsafe impl ExtendsDeviceCreateInfo
51176for PhysicalDeviceCommandBufferInheritanceFeaturesNV {}
51177unsafe impl ExtendsPhysicalDeviceFeatures2
51178for PhysicalDeviceImageAlignmentControlFeaturesMESA {}
51179unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageAlignmentControlFeaturesMESA {}
51180unsafe impl ExtendsPhysicalDeviceProperties2
51181for PhysicalDeviceImageAlignmentControlPropertiesMESA {}
51182unsafe impl ExtendsImageCreateInfo for ImageAlignmentControlCreateInfoMESA {}
51183unsafe impl ExtendsPhysicalDeviceFeatures2
51184for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {}
51185unsafe impl ExtendsDeviceCreateInfo
51186for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {}
51187unsafe impl ExtendsPhysicalDeviceFeatures2
51188for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {}
51189unsafe impl ExtendsDeviceCreateInfo
51190for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {}
51191unsafe impl ExtendsPhysicalDeviceFeatures2
51192for PhysicalDeviceCooperativeMatrix2FeaturesNV {}
51193unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrix2FeaturesNV {}
51194unsafe impl ExtendsPhysicalDeviceProperties2
51195for PhysicalDeviceCooperativeMatrix2PropertiesNV {}
51196unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHdrVividFeaturesHUAWEI {}
51197unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHdrVividFeaturesHUAWEI {}
51198unsafe impl ExtendsPhysicalDeviceFeatures2
51199for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {}
51200unsafe impl ExtendsDeviceCreateInfo
51201for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {}
51202unsafe impl ExtendsPhysicalDeviceFeatures2
51203for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {}
51204unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {}
51205unsafe impl ExtendsAccelerationStructureGeometryKHR
51206for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {}
51207unsafe impl ExtendsPhysicalDeviceFeatures2
51208for PhysicalDeviceDepthClampZeroOneFeaturesKHR {}
51209unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClampZeroOneFeaturesKHR {}
51210unsafe impl ExtendsPhysicalDeviceFeatures2
51211for PhysicalDeviceCooperativeVectorFeaturesNV {}
51212unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeVectorFeaturesNV {}
51213unsafe impl ExtendsPhysicalDeviceProperties2
51214for PhysicalDeviceCooperativeVectorPropertiesNV {}
51215unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTileShadingFeaturesQCOM {}
51216unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTileShadingFeaturesQCOM {}
51217unsafe impl ExtendsPhysicalDeviceProperties2
51218for PhysicalDeviceTileShadingPropertiesQCOM {}
51219unsafe impl ExtendsRenderPassCreateInfo for RenderPassTileShadingCreateInfoQCOM {}
51220unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassTileShadingCreateInfoQCOM {}
51221unsafe impl ExtendsRenderingInfo for RenderPassTileShadingCreateInfoQCOM {}
51222unsafe impl ExtendsCommandBufferInheritanceInfo for RenderPassTileShadingCreateInfoQCOM {}
51223unsafe impl ExtendsPhysicalDeviceProperties2
51224for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {}
51225unsafe impl ExtendsPhysicalDeviceFeatures2
51226for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {}
51227unsafe impl ExtendsDeviceCreateInfo
51228for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {}
51229unsafe impl ExtendsGraphicsPipelineCreateInfo
51230for PipelineFragmentDensityMapLayeredCreateInfoVALVE {}
51231unsafe impl ExtendsPresentInfoKHR for SetPresentConfigNV {}
51232unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentMeteringFeaturesNV {}
51233unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentMeteringFeaturesNV {}
51234unsafe impl ExtendsDeviceCreateInfo for ExternalComputeQueueDeviceCreateInfoNV {}
51235unsafe impl ExtendsPhysicalDeviceProperties2
51236for PhysicalDeviceExternalComputeQueuePropertiesNV {}
51237unsafe impl ExtendsPhysicalDeviceFeatures2
51238for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {}
51239unsafe impl ExtendsDeviceCreateInfo
51240for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {}
51241unsafe impl ExtendsPhysicalDeviceFeatures2
51242for PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {}
51243unsafe impl ExtendsDeviceCreateInfo
51244for PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {}
51245unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFormatPackFeaturesARM {}
51246unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFormatPackFeaturesARM {}
51247unsafe impl ExtendsDataGraphPipelineResourceInfoARM for TensorDescriptionARM {}
51248unsafe impl ExtendsDataGraphPipelineConstantARM for TensorDescriptionARM {}
51249unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetTensorARM {}
51250unsafe impl ExtendsFormatProperties2 for TensorFormatPropertiesARM {}
51251unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceTensorPropertiesARM {}
51252unsafe impl ExtendsDependencyInfo for TensorMemoryBarrierARM {}
51253unsafe impl ExtendsDependencyInfo for TensorDependencyInfoARM {}
51254unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTensorFeaturesARM {}
51255unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTensorFeaturesARM {}
51256unsafe impl ExtendsMemoryAllocateInfo for MemoryDedicatedAllocateInfoTensorARM {}
51257unsafe impl ExtendsPhysicalDeviceProperties2
51258for PhysicalDeviceDescriptorBufferTensorPropertiesARM {}
51259unsafe impl ExtendsPhysicalDeviceFeatures2
51260for PhysicalDeviceDescriptorBufferTensorFeaturesARM {}
51261unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorBufferTensorFeaturesARM {}
51262unsafe impl ExtendsDescriptorGetInfoEXT for DescriptorGetTensorInfoARM {}
51263unsafe impl ExtendsSubmitInfo for FrameBoundaryTensorsARM {}
51264unsafe impl ExtendsSubmitInfo2 for FrameBoundaryTensorsARM {}
51265unsafe impl ExtendsPresentInfoKHR for FrameBoundaryTensorsARM {}
51266unsafe impl ExtendsBindSparseInfo for FrameBoundaryTensorsARM {}
51267unsafe impl ExtendsTensorCreateInfoARM for ExternalMemoryTensorCreateInfoARM {}
51268unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloat8FeaturesEXT {}
51269unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloat8FeaturesEXT {}
51270unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDataGraphFeaturesARM {}
51271unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDataGraphFeaturesARM {}
51272unsafe impl ExtendsDataGraphPipelineConstantARM
51273for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {}
51274unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51275for DataGraphPipelineCompilerControlCreateInfoARM {}
51276unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51277for DataGraphPipelineShaderModuleCreateInfoARM {}
51278unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51279for DataGraphPipelineIdentifierCreateInfoARM {}
51280unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51281for DataGraphProcessingEngineCreateInfoARM {}
51282unsafe impl ExtendsDescriptorPoolCreateInfo for DataGraphProcessingEngineCreateInfoARM {}
51283unsafe impl ExtendsCommandPoolCreateInfo for DataGraphProcessingEngineCreateInfoARM {}
51284unsafe impl ExtendsPhysicalDeviceFeatures2
51285for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {}
51286unsafe impl ExtendsDeviceCreateInfo
51287for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {}
51288unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51289for DataGraphPipelineBuiltinModelCreateInfoQCOM {}
51290unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDataGraphModelFeaturesQCOM {}
51291unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDataGraphModelFeaturesQCOM {}
51292unsafe impl ExtendsPhysicalDeviceFeatures2
51293for PhysicalDeviceShaderUntypedPointersFeaturesKHR {}
51294unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderUntypedPointersFeaturesKHR {}
51295unsafe impl ExtendsImageCreateInfo for NativeBufferOHOS {}
51296unsafe impl ExtendsBindImageMemoryInfo for NativeBufferOHOS {}
51297unsafe impl ExtendsImageCreateInfo for SwapchainImageCreateInfoOHOS {}
51298unsafe impl ExtendsPhysicalDeviceProperties2
51299for PhysicalDevicePresentationPropertiesOHOS {}
51300unsafe impl ExtendsPhysicalDeviceFeatures2
51301for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {}
51302unsafe impl ExtendsDeviceCreateInfo
51303for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {}
51304unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeRgbConversionCapabilitiesVALVE {}
51305unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeProfileRgbConversionInfoVALVE {}
51306unsafe impl ExtendsVideoSessionCreateInfoKHR
51307for VideoEncodeSessionRgbConversionCreateInfoVALVE {}
51308unsafe impl ExtendsPhysicalDeviceFeatures2
51309for PhysicalDeviceShader64BitIndexingFeaturesEXT {}
51310unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShader64BitIndexingFeaturesEXT {}
51311unsafe impl ExtendsImageFormatProperties2 for NativeBufferUsageOHOS {}
51312unsafe impl ExtendsNativeBufferPropertiesOHOS for NativeBufferFormatPropertiesOHOS {}
51313unsafe impl ExtendsMemoryAllocateInfo for ImportNativeBufferInfoOHOS {}
51314unsafe impl ExtendsImageCreateInfo for ExternalFormatOHOS {}
51315unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatOHOS {}
51316unsafe impl ExtendsAttachmentDescription2 for ExternalFormatOHOS {}
51317unsafe impl ExtendsGraphicsPipelineCreateInfo for ExternalFormatOHOS {}
51318unsafe impl ExtendsCommandBufferInheritanceInfo for ExternalFormatOHOS {}
51319unsafe impl ExtendsPhysicalDeviceFeatures2
51320for PhysicalDevicePerformanceCountersByRegionFeaturesARM {}
51321unsafe impl ExtendsDeviceCreateInfo
51322for PhysicalDevicePerformanceCountersByRegionFeaturesARM {}
51323unsafe impl ExtendsPhysicalDeviceProperties2
51324for PhysicalDevicePerformanceCountersByRegionPropertiesARM {}
51325unsafe impl ExtendsRenderPassBeginInfo
51326for RenderPassPerformanceCountersByRegionBeginInfoARM {}
51327unsafe impl ExtendsRenderingInfo for RenderPassPerformanceCountersByRegionBeginInfoARM {}
51328unsafe impl ExtendsPhysicalDeviceFeatures2
51329for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {}
51330unsafe impl ExtendsDeviceCreateInfo
51331for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {}
51332unsafe impl ExtendsPhysicalDeviceFeatures2
51333for PhysicalDeviceShaderLongVectorFeaturesEXT {}
51334unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderLongVectorFeaturesEXT {}
51335unsafe impl ExtendsPhysicalDeviceProperties2
51336for PhysicalDeviceShaderLongVectorPropertiesEXT {}
51337unsafe impl ExtendsPhysicalDeviceFeatures2
51338for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {}
51339unsafe impl ExtendsDeviceCreateInfo
51340for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {}
51341unsafe impl ExtendsPhysicalDeviceFeatures2
51342for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {}
51343unsafe impl ExtendsDeviceCreateInfo
51344for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {}
51345unsafe impl ExtendsPipelineShaderStageCreateInfo
51346for ShaderDescriptorSetAndBindingMappingInfoEXT {}
51347unsafe impl ExtendsShaderCreateInfoEXT for ShaderDescriptorSetAndBindingMappingInfoEXT {}
51348unsafe impl ExtendsSamplerCreateInfo for SamplerCustomBorderColorIndexCreateInfoEXT {}
51349unsafe impl ExtendsImageCreateInfo for OpaqueCaptureDataCreateInfoEXT {}
51350unsafe impl ExtendsTensorCreateInfoARM for OpaqueCaptureDataCreateInfoEXT {}
51351unsafe impl ExtendsIndirectCommandsLayoutTokenNV
51352for IndirectCommandsLayoutPushDataTokenNV {}
51353unsafe impl ExtendsImageFormatProperties2 for SubsampledImageFormatPropertiesEXT {}
51354unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorHeapFeaturesEXT {}
51355unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorHeapFeaturesEXT {}
51356unsafe impl ExtendsPhysicalDeviceProperties2
51357for PhysicalDeviceDescriptorHeapPropertiesEXT {}
51358unsafe impl ExtendsCommandBufferInheritanceInfo
51359for CommandBufferInheritanceDescriptorHeapInfoEXT {}
51360unsafe impl ExtendsPhysicalDeviceProperties2
51361for PhysicalDeviceDescriptorHeapTensorPropertiesARM {}
51362unsafe impl ExtendsPhysicalDeviceFeatures2
51363for PhysicalDeviceShaderInstrumentationFeaturesARM {}
51364unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderInstrumentationFeaturesARM {}
51365unsafe impl ExtendsPhysicalDeviceProperties2
51366for PhysicalDeviceShaderInstrumentationPropertiesARM {}
51367unsafe impl ExtendsDependencyInfo for MemoryRangeBarriersInfoKHR {}
51368unsafe impl ExtendsPhysicalDeviceFeatures2
51369for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {}
51370unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {}
51371unsafe impl ExtendsPhysicalDeviceFeatures2
51372for PhysicalDeviceShaderConstantDataFeaturesKHR {}
51373unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderConstantDataFeaturesKHR {}
51374unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAbortFeaturesKHR {}
51375unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAbortFeaturesKHR {}
51376unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderAbortPropertiesKHR {}
51377unsafe impl ExtendsDeviceFaultDebugInfoKHR for DeviceFaultShaderAbortMessageInfoKHR {}