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<unsafe extern "system" fn()>;
6pub type PFN_vkInternalFreeNotification = Option<unsafe extern "system" fn()>;
7pub type PFN_vkReallocationFunction = Option<unsafe extern "system" fn()>;
8pub type PFN_vkAllocationFunction = Option<unsafe extern "system" fn()>;
9pub type PFN_vkFreeFunction = Option<unsafe extern "system" fn()>;
10pub type PFN_vkVoidFunction = Option<unsafe extern "system" fn()>;
11pub type PFN_vkDebugReportCallbackEXT = Option<unsafe extern "system" fn()>;
12pub type PFN_vkDebugUtilsMessengerCallbackEXT = Option<unsafe extern "system" fn()>;
13pub type PFN_vkFaultCallbackFunction = Option<unsafe extern "system" fn()>;
14pub type PFN_vkDeviceMemoryReportCallbackEXT = Option<unsafe extern "system" fn()>;
15pub type PFN_vkGetInstanceProcAddrLUNARG = Option<unsafe extern "system" fn()>;
16/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
17#[repr(transparent)]
18#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
19pub struct StdVideoAV1Level(pub i32);
20/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
21#[repr(transparent)]
22#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
23pub struct StdVideoAV1Profile(pub i32);
24/// Opaque video codec type (defined in vulkan_video_codec headers).
25#[repr(C)]
26#[derive(Debug, Copy, Clone, Default)]
27pub struct StdVideoAV1SequenceHeader {
28    _opaque: [u8; 0],
29}
30/// Opaque video codec type (defined in vulkan_video_codec headers).
31#[repr(C)]
32#[derive(Debug, Copy, Clone, Default)]
33pub struct StdVideoDecodeAV1PictureInfo {
34    _opaque: [u8; 0],
35}
36/// Opaque video codec type (defined in vulkan_video_codec headers).
37#[repr(C)]
38#[derive(Debug, Copy, Clone, Default)]
39pub struct StdVideoDecodeAV1ReferenceInfo {
40    _opaque: [u8; 0],
41}
42/// Opaque video codec type (defined in vulkan_video_codec headers).
43#[repr(C)]
44#[derive(Debug, Copy, Clone, Default)]
45pub struct StdVideoDecodeH264PictureInfo {
46    _opaque: [u8; 0],
47}
48/// Opaque video codec type (defined in vulkan_video_codec headers).
49#[repr(C)]
50#[derive(Debug, Copy, Clone, Default)]
51pub struct StdVideoDecodeH264ReferenceInfo {
52    _opaque: [u8; 0],
53}
54/// Opaque video codec type (defined in vulkan_video_codec headers).
55#[repr(C)]
56#[derive(Debug, Copy, Clone, Default)]
57pub struct StdVideoDecodeH265PictureInfo {
58    _opaque: [u8; 0],
59}
60/// Opaque video codec type (defined in vulkan_video_codec headers).
61#[repr(C)]
62#[derive(Debug, Copy, Clone, Default)]
63pub struct StdVideoDecodeH265ReferenceInfo {
64    _opaque: [u8; 0],
65}
66/// Opaque video codec type (defined in vulkan_video_codec headers).
67#[repr(C)]
68#[derive(Debug, Copy, Clone, Default)]
69pub struct StdVideoDecodeVP9PictureInfo {
70    _opaque: [u8; 0],
71}
72/// Opaque video codec type (defined in vulkan_video_codec headers).
73#[repr(C)]
74#[derive(Debug, Copy, Clone, Default)]
75pub struct StdVideoEncodeAV1DecoderModelInfo {
76    _opaque: [u8; 0],
77}
78/// Opaque video codec type (defined in vulkan_video_codec headers).
79#[repr(C)]
80#[derive(Debug, Copy, Clone, Default)]
81pub struct StdVideoEncodeAV1OperatingPointInfo {
82    _opaque: [u8; 0],
83}
84/// Opaque video codec type (defined in vulkan_video_codec headers).
85#[repr(C)]
86#[derive(Debug, Copy, Clone, Default)]
87pub struct StdVideoEncodeAV1PictureInfo {
88    _opaque: [u8; 0],
89}
90/// Opaque video codec type (defined in vulkan_video_codec headers).
91#[repr(C)]
92#[derive(Debug, Copy, Clone, Default)]
93pub struct StdVideoEncodeAV1ReferenceInfo {
94    _opaque: [u8; 0],
95}
96/// Opaque video codec type (defined in vulkan_video_codec headers).
97#[repr(C)]
98#[derive(Debug, Copy, Clone, Default)]
99pub struct StdVideoEncodeH264PictureInfo {
100    _opaque: [u8; 0],
101}
102/// Opaque video codec type (defined in vulkan_video_codec headers).
103#[repr(C)]
104#[derive(Debug, Copy, Clone, Default)]
105pub struct StdVideoEncodeH264ReferenceInfo {
106    _opaque: [u8; 0],
107}
108/// Opaque video codec type (defined in vulkan_video_codec headers).
109#[repr(C)]
110#[derive(Debug, Copy, Clone, Default)]
111pub struct StdVideoEncodeH264SliceHeader {
112    _opaque: [u8; 0],
113}
114/// Opaque video codec type (defined in vulkan_video_codec headers).
115#[repr(C)]
116#[derive(Debug, Copy, Clone, Default)]
117pub struct StdVideoEncodeH265PictureInfo {
118    _opaque: [u8; 0],
119}
120/// Opaque video codec type (defined in vulkan_video_codec headers).
121#[repr(C)]
122#[derive(Debug, Copy, Clone, Default)]
123pub struct StdVideoEncodeH265ReferenceInfo {
124    _opaque: [u8; 0],
125}
126/// Opaque video codec type (defined in vulkan_video_codec headers).
127#[repr(C)]
128#[derive(Debug, Copy, Clone, Default)]
129pub struct StdVideoEncodeH265SliceSegmentHeader {
130    _opaque: [u8; 0],
131}
132/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
133#[repr(transparent)]
134#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
135pub struct StdVideoH264LevelIdc(pub i32);
136/// Opaque video codec type (defined in vulkan_video_codec headers).
137#[repr(C)]
138#[derive(Debug, Copy, Clone, Default)]
139pub struct StdVideoH264PictureParameterSet {
140    _opaque: [u8; 0],
141}
142/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
143#[repr(transparent)]
144#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
145pub struct StdVideoH264ProfileIdc(pub i32);
146/// Opaque video codec type (defined in vulkan_video_codec headers).
147#[repr(C)]
148#[derive(Debug, Copy, Clone, Default)]
149pub struct StdVideoH264SequenceParameterSet {
150    _opaque: [u8; 0],
151}
152/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
153#[repr(transparent)]
154#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
155pub struct StdVideoH265LevelIdc(pub i32);
156/// Opaque video codec type (defined in vulkan_video_codec headers).
157#[repr(C)]
158#[derive(Debug, Copy, Clone, Default)]
159pub struct StdVideoH265PictureParameterSet {
160    _opaque: [u8; 0],
161}
162/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
163#[repr(transparent)]
164#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
165pub struct StdVideoH265ProfileIdc(pub i32);
166/// Opaque video codec type (defined in vulkan_video_codec headers).
167#[repr(C)]
168#[derive(Debug, Copy, Clone, Default)]
169pub struct StdVideoH265SequenceParameterSet {
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 StdVideoH265VideoParameterSet {
176    _opaque: [u8; 0],
177}
178/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
179#[repr(transparent)]
180#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
181pub struct StdVideoVP9Level(pub i32);
182/// Video codec enum type (C `int32_t`, defined in vulkan_video_codec headers).
183#[repr(transparent)]
184#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
185pub struct StdVideoVP9Profile(pub i32);
186pub type AccelerationStructureCreateFlagsKHR = AccelerationStructureCreateFlagBitsKHR;
187pub type AccessFlags = AccessFlagBits;
188pub type AccessFlags2 = AccessFlagBits2;
189pub type AccessFlags3KHR = AccessFlagBits3KHR;
190pub type AcquireProfilingLockFlagsKHR = AcquireProfilingLockFlagBitsKHR;
191pub type AddressCommandFlagsKHR = AddressCommandFlagBitsKHR;
192pub type AddressCopyFlagsKHR = AddressCopyFlagBitsKHR;
193pub type AttachmentDescriptionFlags = AttachmentDescriptionFlagBits;
194pub type BufferCreateFlags = BufferCreateFlagBits;
195pub type BufferUsageFlags = BufferUsageFlagBits;
196pub type BufferUsageFlags2 = BufferUsageFlagBits2;
197pub type BuildAccelerationStructureFlagsKHR = BuildAccelerationStructureFlagBitsKHR;
198pub type BuildMicromapFlagsEXT = BuildMicromapFlagBitsEXT;
199pub type ClusterAccelerationStructureAddressResolutionFlagsNV = ClusterAccelerationStructureAddressResolutionFlagBitsNV;
200pub type ClusterAccelerationStructureClusterFlagsNV = ClusterAccelerationStructureClusterFlagBitsNV;
201pub type ClusterAccelerationStructureGeometryFlagsNV = ClusterAccelerationStructureGeometryFlagBitsNV;
202pub type ClusterAccelerationStructureIndexFormatFlagsNV = ClusterAccelerationStructureIndexFormatFlagBitsNV;
203pub type ColorComponentFlags = ColorComponentFlagBits;
204pub type CommandBufferResetFlags = CommandBufferResetFlagBits;
205pub type CommandBufferUsageFlags = CommandBufferUsageFlagBits;
206pub type CommandPoolCreateFlags = CommandPoolCreateFlagBits;
207pub type CommandPoolResetFlags = CommandPoolResetFlagBits;
208pub type CompositeAlphaFlagsKHR = CompositeAlphaFlagBitsKHR;
209pub type ConditionalRenderingFlagsEXT = ConditionalRenderingFlagBitsEXT;
210pub type CullModeFlags = CullModeFlagBits;
211pub type DataGraphPipelineDispatchFlagsARM = DataGraphPipelineDispatchFlagBitsARM;
212pub type DataGraphPipelineSessionCreateFlagsARM = DataGraphPipelineSessionCreateFlagBitsARM;
213pub type DebugReportFlagsEXT = DebugReportFlagBitsEXT;
214pub type DebugUtilsMessageSeverityFlagsEXT = DebugUtilsMessageSeverityFlagBitsEXT;
215pub type DebugUtilsMessageTypeFlagsEXT = DebugUtilsMessageTypeFlagBitsEXT;
216pub type DependencyFlags = DependencyFlagBits;
217pub type DescriptorBindingFlags = DescriptorBindingFlagBits;
218pub type DescriptorPoolCreateFlags = DescriptorPoolCreateFlagBits;
219pub type DescriptorSetLayoutCreateFlags = DescriptorSetLayoutCreateFlagBits;
220pub type DeviceAddressBindingFlagsEXT = DeviceAddressBindingFlagBitsEXT;
221pub type DeviceDiagnosticsConfigFlagsNV = DeviceDiagnosticsConfigFlagBitsNV;
222pub type DeviceFaultFlagsKHR = DeviceFaultFlagBitsKHR;
223pub type DeviceGroupPresentModeFlagsKHR = DeviceGroupPresentModeFlagBitsKHR;
224pub type DeviceQueueCreateFlags = DeviceQueueCreateFlagBits;
225pub type DisplayPlaneAlphaFlagsKHR = DisplayPlaneAlphaFlagBitsKHR;
226pub type EventCreateFlags = EventCreateFlagBits;
227pub type ExportMetalObjectTypeFlagsEXT = ExportMetalObjectTypeFlagBitsEXT;
228pub type ExternalFenceFeatureFlags = ExternalFenceFeatureFlagBits;
229pub type ExternalFenceHandleTypeFlags = ExternalFenceHandleTypeFlagBits;
230pub type ExternalMemoryFeatureFlags = ExternalMemoryFeatureFlagBits;
231pub type ExternalMemoryFeatureFlagsNV = ExternalMemoryFeatureFlagBitsNV;
232pub type ExternalMemoryHandleTypeFlags = ExternalMemoryHandleTypeFlagBits;
233pub type ExternalMemoryHandleTypeFlagsNV = ExternalMemoryHandleTypeFlagBitsNV;
234pub type ExternalSemaphoreFeatureFlags = ExternalSemaphoreFeatureFlagBits;
235pub type ExternalSemaphoreHandleTypeFlags = ExternalSemaphoreHandleTypeFlagBits;
236pub type FenceCreateFlags = FenceCreateFlagBits;
237pub type FenceImportFlags = FenceImportFlagBits;
238pub type FormatFeatureFlags = FormatFeatureFlagBits;
239pub type FormatFeatureFlags2 = FormatFeatureFlagBits2;
240pub type FrameBoundaryFlagsEXT = FrameBoundaryFlagBitsEXT;
241pub type FramebufferCreateFlags = FramebufferCreateFlagBits;
242pub type GeometryFlagsKHR = GeometryFlagBitsKHR;
243pub type GeometryInstanceFlagsKHR = GeometryInstanceFlagBitsKHR;
244pub type GraphicsPipelineLibraryFlagsEXT = GraphicsPipelineLibraryFlagBitsEXT;
245pub type HostImageCopyFlags = HostImageCopyFlagBits;
246pub type ImageAspectFlags = ImageAspectFlagBits;
247pub type ImageCompressionFixedRateFlagsEXT = ImageCompressionFixedRateFlagBitsEXT;
248pub type ImageCompressionFlagsEXT = ImageCompressionFlagBitsEXT;
249pub type ImageConstraintsInfoFlagsFUCHSIA = ImageConstraintsInfoFlagBitsFUCHSIA;
250pub type ImageCreateFlags = ImageCreateFlagBits;
251pub type ImageUsageFlags = ImageUsageFlagBits;
252pub type ImageViewCreateFlags = ImageViewCreateFlagBits;
253pub type IndirectCommandsInputModeFlagsEXT = IndirectCommandsInputModeFlagBitsEXT;
254pub type IndirectCommandsLayoutUsageFlagsEXT = IndirectCommandsLayoutUsageFlagBitsEXT;
255pub type IndirectCommandsLayoutUsageFlagsNV = IndirectCommandsLayoutUsageFlagBitsNV;
256pub type IndirectStateFlagsNV = IndirectStateFlagBitsNV;
257pub type InstanceCreateFlags = InstanceCreateFlagBits;
258pub type MemoryAllocateFlags = MemoryAllocateFlagBits;
259pub type MemoryDecompressionMethodFlagsEXT = MemoryDecompressionMethodFlagBitsEXT;
260pub type MemoryHeapFlags = MemoryHeapFlagBits;
261pub type MemoryMapFlags = MemoryMapFlagBits;
262pub type MemoryPropertyFlags = MemoryPropertyFlagBits;
263pub type MemoryUnmapFlags = MemoryUnmapFlagBits;
264pub type MicromapCreateFlagsEXT = MicromapCreateFlagBitsEXT;
265pub type OpticalFlowExecuteFlagsNV = OpticalFlowExecuteFlagBitsNV;
266pub type OpticalFlowGridSizeFlagsNV = OpticalFlowGridSizeFlagBitsNV;
267pub type OpticalFlowSessionCreateFlagsNV = OpticalFlowSessionCreateFlagBitsNV;
268pub type OpticalFlowUsageFlagsNV = OpticalFlowUsageFlagBitsNV;
269pub type PartitionedAccelerationStructureInstanceFlagsNV = PartitionedAccelerationStructureInstanceFlagBitsNV;
270pub type PastPresentationTimingFlagsEXT = PastPresentationTimingFlagBitsEXT;
271pub type PeerMemoryFeatureFlags = PeerMemoryFeatureFlagBits;
272pub type PerformanceCounterDescriptionFlagsKHR = PerformanceCounterDescriptionFlagBitsKHR;
273pub type PhysicalDeviceSchedulingControlsFlagsARM = PhysicalDeviceSchedulingControlsFlagBitsARM;
274pub type PipelineCacheCreateFlags = PipelineCacheCreateFlagBits;
275pub type PipelineColorBlendStateCreateFlags = PipelineColorBlendStateCreateFlagBits;
276pub type PipelineCompilerControlFlagsAMD = PipelineCompilerControlFlagBitsAMD;
277pub type PipelineCreateFlags = PipelineCreateFlagBits;
278pub type PipelineCreateFlags2 = PipelineCreateFlagBits2;
279pub type PipelineCreationFeedbackFlags = PipelineCreationFeedbackFlagBits;
280pub type PipelineDepthStencilStateCreateFlags = PipelineDepthStencilStateCreateFlagBits;
281pub type PipelineLayoutCreateFlags = PipelineLayoutCreateFlagBits;
282pub type PipelineShaderStageCreateFlags = PipelineShaderStageCreateFlagBits;
283pub type PipelineStageFlags = PipelineStageFlagBits;
284pub type PipelineStageFlags2 = PipelineStageFlagBits2;
285pub type PresentGravityFlagsKHR = PresentGravityFlagBitsKHR;
286pub type PresentScalingFlagsKHR = PresentScalingFlagBitsKHR;
287pub type PresentStageFlagsEXT = PresentStageFlagBitsEXT;
288pub type PresentTimingInfoFlagsEXT = PresentTimingInfoFlagBitsEXT;
289pub type QueryControlFlags = QueryControlFlagBits;
290pub type QueryPipelineStatisticFlags = QueryPipelineStatisticFlagBits;
291pub type QueryPoolCreateFlags = QueryPoolCreateFlagBits;
292pub type QueryResultFlags = QueryResultFlagBits;
293pub type QueueFlags = QueueFlagBits;
294pub type RefreshObjectFlagsKHR = RefreshObjectFlagBitsKHR;
295pub type RenderPassCreateFlags = RenderPassCreateFlagBits;
296pub type RenderingAttachmentFlagsKHR = RenderingAttachmentFlagBitsKHR;
297pub type RenderingFlags = RenderingFlagBits;
298pub type ResolveImageFlagsKHR = ResolveImageFlagBitsKHR;
299pub type ResolveModeFlags = ResolveModeFlagBits;
300pub type SampleCountFlags = SampleCountFlagBits;
301pub type SamplerCreateFlags = SamplerCreateFlagBits;
302pub type SemaphoreImportFlags = SemaphoreImportFlagBits;
303pub type SemaphoreWaitFlags = SemaphoreWaitFlagBits;
304pub type ShaderCorePropertiesFlagsAMD = ShaderCorePropertiesFlagBitsAMD;
305pub type ShaderCreateFlagsEXT = ShaderCreateFlagBitsEXT;
306pub type ShaderStageFlags = ShaderStageFlagBits;
307pub type SparseImageFormatFlags = SparseImageFormatFlagBits;
308pub type SparseMemoryBindFlags = SparseMemoryBindFlagBits;
309pub type SpirvResourceTypeFlagsEXT = SpirvResourceTypeFlagBitsEXT;
310pub type StencilFaceFlags = StencilFaceFlagBits;
311pub type SubgroupFeatureFlags = SubgroupFeatureFlagBits;
312pub type SubmitFlags = SubmitFlagBits;
313pub type SubpassDescriptionFlags = SubpassDescriptionFlagBits;
314pub type SurfaceCounterFlagsEXT = SurfaceCounterFlagBitsEXT;
315pub type SurfaceTransformFlagsKHR = SurfaceTransformFlagBitsKHR;
316pub type SwapchainCreateFlagsKHR = SwapchainCreateFlagBitsKHR;
317pub type SwapchainImageUsageFlagsANDROID = SwapchainImageUsageFlagBitsANDROID;
318pub type SwapchainImageUsageFlagsOHOS = SwapchainImageUsageFlagBitsOHOS;
319pub type TensorCreateFlagsARM = TensorCreateFlagBitsARM;
320pub type TensorUsageFlagsARM = TensorUsageFlagBitsARM;
321pub type TensorViewCreateFlagsARM = TensorViewCreateFlagBitsARM;
322pub type TileShadingRenderPassFlagsQCOM = TileShadingRenderPassFlagBitsQCOM;
323pub type ToolPurposeFlags = ToolPurposeFlagBits;
324pub type VideoCapabilityFlagsKHR = VideoCapabilityFlagBitsKHR;
325pub type VideoChromaSubsamplingFlagsKHR = VideoChromaSubsamplingFlagBitsKHR;
326pub type VideoCodecOperationFlagsKHR = VideoCodecOperationFlagBitsKHR;
327pub type VideoCodingControlFlagsKHR = VideoCodingControlFlagBitsKHR;
328pub type VideoComponentBitDepthFlagsKHR = VideoComponentBitDepthFlagBitsKHR;
329pub type VideoDecodeCapabilityFlagsKHR = VideoDecodeCapabilityFlagBitsKHR;
330pub type VideoDecodeH264PictureLayoutFlagsKHR = VideoDecodeH264PictureLayoutFlagBitsKHR;
331pub type VideoDecodeUsageFlagsKHR = VideoDecodeUsageFlagBitsKHR;
332pub type VideoEncodeAV1CapabilityFlagsKHR = VideoEncodeAV1CapabilityFlagBitsKHR;
333pub type VideoEncodeAV1RateControlFlagsKHR = VideoEncodeAV1RateControlFlagBitsKHR;
334pub type VideoEncodeAV1StdFlagsKHR = VideoEncodeAV1StdFlagBitsKHR;
335pub type VideoEncodeAV1SuperblockSizeFlagsKHR = VideoEncodeAV1SuperblockSizeFlagBitsKHR;
336pub type VideoEncodeCapabilityFlagsKHR = VideoEncodeCapabilityFlagBitsKHR;
337pub type VideoEncodeContentFlagsKHR = VideoEncodeContentFlagBitsKHR;
338pub type VideoEncodeFeedbackFlagsKHR = VideoEncodeFeedbackFlagBitsKHR;
339pub type VideoEncodeFlagsKHR = VideoEncodeFlagBitsKHR;
340pub type VideoEncodeH264CapabilityFlagsKHR = VideoEncodeH264CapabilityFlagBitsKHR;
341pub type VideoEncodeH264RateControlFlagsKHR = VideoEncodeH264RateControlFlagBitsKHR;
342pub type VideoEncodeH264StdFlagsKHR = VideoEncodeH264StdFlagBitsKHR;
343pub type VideoEncodeH265CapabilityFlagsKHR = VideoEncodeH265CapabilityFlagBitsKHR;
344pub type VideoEncodeH265CtbSizeFlagsKHR = VideoEncodeH265CtbSizeFlagBitsKHR;
345pub type VideoEncodeH265RateControlFlagsKHR = VideoEncodeH265RateControlFlagBitsKHR;
346pub type VideoEncodeH265StdFlagsKHR = VideoEncodeH265StdFlagBitsKHR;
347pub type VideoEncodeH265TransformBlockSizeFlagsKHR = VideoEncodeH265TransformBlockSizeFlagBitsKHR;
348pub type VideoEncodeIntraRefreshModeFlagsKHR = VideoEncodeIntraRefreshModeFlagBitsKHR;
349pub type VideoEncodeRateControlModeFlagsKHR = VideoEncodeRateControlModeFlagBitsKHR;
350pub type VideoEncodeRgbChromaOffsetFlagsVALVE = VideoEncodeRgbChromaOffsetFlagBitsVALVE;
351pub type VideoEncodeRgbModelConversionFlagsVALVE = VideoEncodeRgbModelConversionFlagBitsVALVE;
352pub type VideoEncodeRgbRangeCompressionFlagsVALVE = VideoEncodeRgbRangeCompressionFlagBitsVALVE;
353pub type VideoEncodeUsageFlagsKHR = VideoEncodeUsageFlagBitsKHR;
354pub type VideoSessionCreateFlagsKHR = VideoSessionCreateFlagBitsKHR;
355pub type VideoSessionParametersCreateFlagsKHR = VideoSessionParametersCreateFlagBitsKHR;
356pub type DeviceCreateFlags = u32;
357pub type BufferViewCreateFlags = u32;
358pub type ShaderModuleCreateFlags = ShaderModuleCreateFlagBits;
359pub type PipelineVertexInputStateCreateFlags = u32;
360pub type PipelineInputAssemblyStateCreateFlags = u32;
361pub type PipelineTessellationStateCreateFlags = u32;
362pub type PipelineViewportStateCreateFlags = u32;
363pub type PipelineRasterizationStateCreateFlags = u32;
364pub type PipelineMultisampleStateCreateFlags = u32;
365pub type PipelineDynamicStateCreateFlags = u32;
366pub type SemaphoreCreateFlags = SemaphoreCreateFlagBits;
367pub type DisplayModeCreateFlagsKHR = u32;
368pub type DisplaySurfaceCreateFlagsKHR = u32;
369pub type AndroidSurfaceCreateFlagsKHR = u32;
370pub type ViSurfaceCreateFlagsNN = u32;
371pub type WaylandSurfaceCreateFlagsKHR = WaylandSurfaceCreateFlagBitsKHR;
372pub type UbmSurfaceCreateFlagsSEC = u32;
373pub type Win32SurfaceCreateFlagsKHR = u32;
374pub type XlibSurfaceCreateFlagsKHR = u32;
375pub type XcbSurfaceCreateFlagsKHR = u32;
376pub type DirectFBSurfaceCreateFlagsEXT = u32;
377pub type ImagePipeSurfaceCreateFlagsFUCHSIA = u32;
378pub type StreamDescriptorSurfaceCreateFlagsGGP = u32;
379pub type ScreenSurfaceCreateFlagsQNX = u32;
380pub type PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlagBits;
381pub type DescriptorUpdateTemplateCreateFlags = u32;
382pub type IOSSurfaceCreateFlagsMVK = u32;
383pub type MacOSSurfaceCreateFlagsMVK = u32;
384pub type MetalSurfaceCreateFlagsEXT = u32;
385pub type PipelineViewportSwizzleStateCreateFlagsNV = u32;
386pub type PipelineDiscardRectangleStateCreateFlagsEXT = u32;
387pub type PipelineCoverageToColorStateCreateFlagsNV = u32;
388pub type PipelineCoverageModulationStateCreateFlagsNV = u32;
389pub type ValidationCacheCreateFlagsEXT = u32;
390pub type DebugUtilsMessengerCreateFlagsEXT = u32;
391pub type DebugUtilsMessengerCallbackDataFlagsEXT = u32;
392pub type DeviceMemoryReportFlagsEXT = u32;
393pub type PipelineRasterizationConservativeStateCreateFlagsEXT = u32;
394pub type PipelineRasterizationStateStreamCreateFlagsEXT = u32;
395pub type BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagBitsKHR;
396pub type PipelineRasterizationDepthClipStateCreateFlagsEXT = u32;
397pub type HeadlessSurfaceCreateFlagsEXT = u32;
398pub type PipelineCoverageReductionStateCreateFlagsNV = u32;
399pub type VideoDecodeFlagsKHR = u32;
400pub type VideoBeginCodingFlagsKHR = u32;
401pub type VideoEndCodingFlagsKHR = u32;
402pub type VideoEncodeRateControlFlagsKHR = u32;
403pub type AccelerationStructureMotionInfoFlagsNV = u32;
404pub type AccelerationStructureMotionInstanceFlagsNV = u32;
405pub type ImageFormatConstraintsFlagsFUCHSIA = ImageFormatConstraintsFlagBitsFUCHSIA;
406pub type MemoryDecompressionMethodFlagsNV = MemoryDecompressionMethodFlagBitsEXT;
407pub type DirectDriverLoadingFlagsLUNARG = u32;
408pub type SurfaceCreateFlagsOHOS = u32;
409pub type PipelineCreateFlags2KHR = PipelineCreateFlagBits2;
410pub type PerformanceCounterDescriptionFlagsARM = u32;
411pub type PipelineStageFlags2KHR = PipelineStageFlagBits2;
412pub type DescriptorPoolResetFlags = u32;
413pub type CommandPoolTrimFlags = u32;
414pub type ShaderInstrumentationValuesFlagsARM = u32;
415pub type DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
416pub type SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
417pub type PrivateDataSlotEXT = PrivateDataSlot;
418pub type RayTracingInvocationReorderModeNV = RayTracingInvocationReorderModeEXT;
419pub type PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits;
420pub type DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
421pub type PointClippingBehaviorKHR = PointClippingBehavior;
422pub type QueueGlobalPriorityKHR = QueueGlobalPriority;
423pub type QueueGlobalPriorityEXT = QueueGlobalPriority;
424pub type TimeDomainEXT = TimeDomainKHR;
425pub type ResolveModeFlagBitsKHR = ResolveModeFlagBits;
426pub type DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
427pub type SemaphoreTypeKHR = SemaphoreType;
428pub type GeometryFlagBitsNV = GeometryFlagBitsKHR;
429pub type GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
430pub type BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
431pub type CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
432pub type AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
433pub type GeometryTypeNV = GeometryTypeKHR;
434pub type RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
435pub type PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits;
436pub type SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
437pub type LineRasterizationModeKHR = LineRasterizationMode;
438pub type LineRasterizationModeEXT = LineRasterizationMode;
439pub type ToolPurposeFlagBitsEXT = ToolPurposeFlagBits;
440pub type AccessFlagBits2KHR = AccessFlagBits2;
441pub type PipelineStageFlagBits2KHR = PipelineStageFlagBits2;
442pub type HostImageCopyFlagBitsEXT = HostImageCopyFlagBits;
443pub type FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2;
444pub type RenderingFlagBitsKHR = RenderingFlagBits;
445pub type PipelineRobustnessBufferBehaviorEXT = PipelineRobustnessBufferBehavior;
446pub type PipelineRobustnessImageBehaviorEXT = PipelineRobustnessImageBehavior;
447pub type DeviceFaultVendorBinaryHeaderVersionEXT = DeviceFaultVendorBinaryHeaderVersionKHR;
448pub type MemoryDecompressionMethodFlagBitsNV = MemoryDecompressionMethodFlagBitsEXT;
449pub type PipelineCreateFlagBits2KHR = PipelineCreateFlagBits2;
450pub type BufferUsageFlagBits2KHR = BufferUsageFlagBits2;
451pub type ScopeNV = ScopeKHR;
452pub type ComponentTypeNV = ComponentTypeKHR;
453pub type ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
454pub type ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
455pub type ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
456pub type ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
457pub type SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
458pub type ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
459pub type ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
460pub type FenceImportFlagBitsKHR = FenceImportFlagBits;
461pub type PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
462pub type MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
463pub type TessellationDomainOriginKHR = TessellationDomainOrigin;
464pub type SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
465pub type SamplerYcbcrRangeKHR = SamplerYcbcrRange;
466pub type ChromaLocationKHR = ChromaLocation;
467pub type SamplerReductionModeEXT = SamplerReductionMode;
468pub type ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
469pub type SubmitFlagBitsKHR = SubmitFlagBits;
470pub type DeviceFaultAddressTypeEXT = DeviceFaultAddressTypeKHR;
471pub type PresentScalingFlagBitsEXT = PresentScalingFlagBitsKHR;
472pub type PresentGravityFlagBitsEXT = PresentGravityFlagBitsKHR;
473pub type MemoryUnmapFlagBitsKHR = MemoryUnmapFlagBits;
474pub type DriverIdKHR = DriverId;
475pub type CopyMemoryIndirectCommandNV = CopyMemoryIndirectCommandKHR;
476pub type CopyMemoryToImageIndirectCommandNV = CopyMemoryToImageIndirectCommandKHR;
477pub type PhysicalDeviceExternalSciBufFeaturesNV = PhysicalDeviceExternalMemorySciBufFeaturesNV;
478pub type DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
479pub type PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
480pub type PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
481pub type PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
482pub type PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
483pub type FormatProperties2KHR = FormatProperties2;
484pub type ImageFormatProperties2KHR = ImageFormatProperties2;
485pub type PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
486pub type QueueFamilyProperties2KHR = QueueFamilyProperties2;
487pub type PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
488pub type SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
489pub type PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
490pub type PhysicalDevicePushDescriptorPropertiesKHR = PhysicalDevicePushDescriptorProperties;
491pub type ConformanceVersionKHR = ConformanceVersion;
492pub type PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
493pub type PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
494pub type PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
495pub type PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
496pub type ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
497pub type PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
498pub type ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
499pub type PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
500pub type ExternalBufferPropertiesKHR = ExternalBufferProperties;
501pub type PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
502pub type ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
503pub type ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
504pub type ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
505pub type PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
506pub type ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
507pub type ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
508pub type PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
509pub type ExternalFencePropertiesKHR = ExternalFenceProperties;
510pub type ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
511pub type PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
512pub type PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
513pub type RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
514pub type PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
515pub type BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
516pub type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
517pub type BindImageMemoryInfoKHR = BindImageMemoryInfo;
518pub type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
519pub type DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
520pub type DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
521pub type DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
522pub type DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
523pub type DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
524pub type DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
525pub type DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
526pub type InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
527pub type RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
528pub type PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
529pub type PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
530pub type BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
531pub type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
532pub type ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
533pub type ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
534pub type DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
535pub type MemoryRequirements2KHR = MemoryRequirements2;
536pub type SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
537pub type PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
538pub type MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
539pub type MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
540pub type ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
541pub type PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
542pub type SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
543pub type SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
544pub type BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
545pub type ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
546pub type PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
547pub type SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
548pub type PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
549pub type SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
550pub type PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
551pub type PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
552pub type WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;
553pub type DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
554pub type ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
555pub type PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
556pub type PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
557pub type PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
558pub type PhysicalDeviceMaintenance5FeaturesKHR = PhysicalDeviceMaintenance5Features;
559pub type PhysicalDeviceMaintenance5PropertiesKHR = PhysicalDeviceMaintenance5Properties;
560pub type PhysicalDeviceMaintenance6FeaturesKHR = PhysicalDeviceMaintenance6Features;
561pub type PhysicalDeviceMaintenance6PropertiesKHR = PhysicalDeviceMaintenance6Properties;
562pub type RenderingAreaInfoKHR = RenderingAreaInfo;
563pub type DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
564pub type PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
565pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
566pub type PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
567pub type PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
568pub type PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
569pub type DeviceQueueGlobalPriorityCreateInfoKHR = DeviceQueueGlobalPriorityCreateInfo;
570pub type DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfo;
571pub type PhysicalDeviceGlobalPriorityQueryFeaturesKHR = PhysicalDeviceGlobalPriorityQueryFeatures;
572pub type PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeatures;
573pub type QueueFamilyGlobalPriorityPropertiesKHR = QueueFamilyGlobalPriorityProperties;
574pub type QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityProperties;
575pub type CalibratedTimestampInfoEXT = CalibratedTimestampInfoKHR;
576pub type PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
577pub type PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
578pub type DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
579pub type DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
580pub type AttachmentDescription2KHR = AttachmentDescription2;
581pub type AttachmentReference2KHR = AttachmentReference2;
582pub type SubpassDescription2KHR = SubpassDescription2;
583pub type SubpassDependency2KHR = SubpassDependency2;
584pub type RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
585pub type SubpassBeginInfoKHR = SubpassBeginInfo;
586pub type SubpassEndInfoKHR = SubpassEndInfo;
587pub type PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
588pub type PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
589pub type SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
590pub type TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
591pub type SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
592pub type SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
593pub type VertexInputBindingDivisorDescriptionKHR = VertexInputBindingDivisorDescription;
594pub type VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescription;
595pub type PipelineVertexInputDivisorStateCreateInfoKHR = PipelineVertexInputDivisorStateCreateInfo;
596pub type PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfo;
597pub type PhysicalDeviceVertexAttributeDivisorPropertiesKHR = PhysicalDeviceVertexAttributeDivisorProperties;
598pub type PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
599pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
600pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
601pub type PhysicalDeviceVertexAttributeDivisorFeaturesKHR = PhysicalDeviceVertexAttributeDivisorFeatures;
602pub type PhysicalDeviceVertexAttributeDivisorFeaturesEXT = PhysicalDeviceVertexAttributeDivisorFeatures;
603pub type PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
604pub type SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
605pub type PhysicalDeviceComputeShaderDerivativesFeaturesNV = PhysicalDeviceComputeShaderDerivativesFeaturesKHR;
606pub type PhysicalDeviceFragmentShaderBarycentricFeaturesNV = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
607pub type PhysicalDeviceCopyMemoryIndirectPropertiesNV = PhysicalDeviceCopyMemoryIndirectPropertiesKHR;
608pub type PhysicalDeviceMemoryDecompressionFeaturesNV = PhysicalDeviceMemoryDecompressionFeaturesEXT;
609pub type PhysicalDeviceMemoryDecompressionPropertiesNV = PhysicalDeviceMemoryDecompressionPropertiesEXT;
610pub type ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
611pub type PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
612pub type PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
613pub type SubpassFragmentDensityMapOffsetEndInfoQCOM = RenderPassFragmentDensityMapOffsetEndInfoEXT;
614pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
615pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
616pub type PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
617pub type PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
618pub type BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
619pub type BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
620pub type BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
621pub type PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
622pub type FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
623pub type FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
624pub type RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
625pub type PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeatures;
626pub type PipelineCreationFeedbackEXT = PipelineCreationFeedback;
627pub type PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
628pub type QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
629pub type PhysicalDeviceIndexTypeUint8FeaturesKHR = PhysicalDeviceIndexTypeUint8Features;
630pub type PhysicalDeviceIndexTypeUint8FeaturesEXT = PhysicalDeviceIndexTypeUint8Features;
631pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
632pub type AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
633pub type AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
634pub type PipelineInfoEXT = PipelineInfoKHR;
635pub type PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
636pub type PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentProperties;
637pub type PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
638pub type PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties;
639pub type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
640pub type ShaderRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
641pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
642pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
643pub type PhysicalDeviceLineRasterizationFeaturesKHR = PhysicalDeviceLineRasterizationFeatures;
644pub type PhysicalDeviceLineRasterizationFeaturesEXT = PhysicalDeviceLineRasterizationFeatures;
645pub type PhysicalDeviceLineRasterizationPropertiesKHR = PhysicalDeviceLineRasterizationProperties;
646pub type PhysicalDeviceLineRasterizationPropertiesEXT = PhysicalDeviceLineRasterizationProperties;
647pub type PipelineRasterizationLineStateCreateInfoKHR = PipelineRasterizationLineStateCreateInfo;
648pub type PipelineRasterizationLineStateCreateInfoEXT = PipelineRasterizationLineStateCreateInfo;
649pub type PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeatures;
650pub type PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
651pub type AabbPositionsNV = AabbPositionsKHR;
652pub type TransformMatrixNV = TransformMatrixKHR;
653pub type AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
654pub type PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
655pub type PhysicalDeviceRobustness2FeaturesEXT = PhysicalDeviceRobustness2FeaturesKHR;
656pub type PhysicalDeviceRobustness2PropertiesEXT = PhysicalDeviceRobustness2PropertiesKHR;
657pub type PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
658pub type BufferCopy2KHR = BufferCopy2;
659pub type ImageCopy2KHR = ImageCopy2;
660pub type ImageBlit2KHR = ImageBlit2;
661pub type BufferImageCopy2KHR = BufferImageCopy2;
662pub type ImageResolve2KHR = ImageResolve2;
663pub type CopyBufferInfo2KHR = CopyBufferInfo2;
664pub type CopyImageInfo2KHR = CopyImageInfo2;
665pub type BlitImageInfo2KHR = BlitImageInfo2;
666pub type CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
667pub type CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
668pub type ResolveImageInfo2KHR = ResolveImageInfo2;
669pub type PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeatures;
670pub type PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
671pub type MutableDescriptorTypeListVALVE = MutableDescriptorTypeListEXT;
672pub type MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
673pub type MemoryBarrier2KHR = MemoryBarrier2;
674pub type ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
675pub type BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
676pub type DependencyInfoKHR = DependencyInfo;
677pub type SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
678pub type CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
679pub type SubmitInfo2KHR = SubmitInfo2;
680pub type PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
681pub type PhysicalDeviceHostImageCopyFeaturesEXT = PhysicalDeviceHostImageCopyFeatures;
682pub type PhysicalDeviceHostImageCopyPropertiesEXT = PhysicalDeviceHostImageCopyProperties;
683pub type MemoryToImageCopyEXT = MemoryToImageCopy;
684pub type ImageToMemoryCopyEXT = ImageToMemoryCopy;
685pub type CopyMemoryToImageInfoEXT = CopyMemoryToImageInfo;
686pub type CopyImageToMemoryInfoEXT = CopyImageToMemoryInfo;
687pub type CopyImageToImageInfoEXT = CopyImageToImageInfo;
688pub type HostImageLayoutTransitionInfoEXT = HostImageLayoutTransitionInfo;
689pub type SubresourceHostMemcpySizeEXT = SubresourceHostMemcpySize;
690pub type HostImageCopyDevicePerformanceQueryEXT = HostImageCopyDevicePerformanceQuery;
691pub type PhysicalDevicePipelineProtectedAccessFeaturesEXT = PhysicalDevicePipelineProtectedAccessFeatures;
692pub type PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeatures;
693pub type PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductProperties;
694pub type FormatProperties3KHR = FormatProperties3;
695pub type PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
696pub type RenderingInfoKHR = RenderingInfo;
697pub type RenderingEndInfoEXT = RenderingEndInfoKHR;
698pub type RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
699pub type PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
700pub type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
701pub type AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
702pub type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
703pub type ImageSubresource2KHR = ImageSubresource2;
704pub type ImageSubresource2EXT = ImageSubresource2;
705pub type SubresourceLayout2KHR = SubresourceLayout2;
706pub type SubresourceLayout2EXT = SubresourceLayout2;
707pub type PhysicalDevicePipelineRobustnessFeaturesEXT = PhysicalDevicePipelineRobustnessFeatures;
708pub type PipelineRobustnessCreateInfoEXT = PipelineRobustnessCreateInfo;
709pub type PhysicalDevicePipelineRobustnessPropertiesEXT = PhysicalDevicePipelineRobustnessProperties;
710pub type PhysicalDeviceDepthClampZeroOneFeaturesEXT = PhysicalDeviceDepthClampZeroOneFeaturesKHR;
711pub type DeviceFaultAddressInfoEXT = DeviceFaultAddressInfoKHR;
712pub type DeviceFaultVendorInfoEXT = DeviceFaultVendorInfoKHR;
713pub type DeviceFaultVendorBinaryHeaderVersionOneEXT = DeviceFaultVendorBinaryHeaderVersionOneKHR;
714pub type SurfacePresentModeEXT = SurfacePresentModeKHR;
715pub type SurfacePresentScalingCapabilitiesEXT = SurfacePresentScalingCapabilitiesKHR;
716pub type SurfacePresentModeCompatibilityEXT = SurfacePresentModeCompatibilityKHR;
717pub type PhysicalDeviceSwapchainMaintenance1FeaturesEXT = PhysicalDeviceSwapchainMaintenance1FeaturesKHR;
718pub type SwapchainPresentFenceInfoEXT = SwapchainPresentFenceInfoKHR;
719pub type SwapchainPresentModesCreateInfoEXT = SwapchainPresentModesCreateInfoKHR;
720pub type SwapchainPresentModeInfoEXT = SwapchainPresentModeInfoKHR;
721pub type SwapchainPresentScalingCreateInfoEXT = SwapchainPresentScalingCreateInfoKHR;
722pub type ReleaseSwapchainImagesInfoEXT = ReleaseSwapchainImagesInfoKHR;
723pub type DeviceImageSubresourceInfoKHR = DeviceImageSubresourceInfo;
724pub type MemoryMapInfoKHR = MemoryMapInfo;
725pub type MemoryUnmapInfoKHR = MemoryUnmapInfo;
726pub type BindMemoryStatusKHR = BindMemoryStatus;
727pub type BindDescriptorSetsInfoKHR = BindDescriptorSetsInfo;
728pub type PushConstantsInfoKHR = PushConstantsInfo;
729pub type PushDescriptorSetInfoKHR = PushDescriptorSetInfo;
730pub type PushDescriptorSetWithTemplateInfoKHR = PushDescriptorSetWithTemplateInfo;
731pub type PhysicalDeviceShaderSubgroupRotateFeaturesKHR = PhysicalDeviceShaderSubgroupRotateFeatures;
732pub type PhysicalDeviceShaderExpectAssumeFeaturesKHR = PhysicalDeviceShaderExpectAssumeFeatures;
733pub type PhysicalDeviceShaderFloatControls2FeaturesKHR = PhysicalDeviceShaderFloatControls2Features;
734pub type PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = PhysicalDeviceDynamicRenderingLocalReadFeatures;
735pub type RenderingAttachmentLocationInfoKHR = RenderingAttachmentLocationInfo;
736pub type RenderingInputAttachmentIndexInfoKHR = RenderingInputAttachmentIndexInfo;
737pub type PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
738pub type DeviceAddressRangeEXT = DeviceAddressRangeKHR;
739/// Structure type used for traversing pNext chains (mutable).
740#[repr(C)]
741#[derive(Copy, Clone)]
742#[doc(alias = "VkBaseOutStructure")]
743pub struct BaseOutStructure {
744    pub s_type: StructureType,
745    pub p_next: *mut BaseOutStructure,
746}
747impl Default for BaseOutStructure {
748    #[inline]
749    fn default() -> Self {
750        Self {
751            s_type: StructureType::from_raw(0),
752            p_next: core::ptr::null_mut(),
753        }
754    }
755}
756impl core::fmt::Debug for BaseOutStructure {
757    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
758        f.debug_struct("BaseOutStructure")
759            .field("s_type", &self.s_type)
760            .field("p_next", &self.p_next)
761            .finish()
762    }
763}
764/// Structure type used for traversing pNext chains (const).
765#[repr(C)]
766#[derive(Copy, Clone)]
767#[doc(alias = "VkBaseInStructure")]
768pub struct BaseInStructure {
769    pub s_type: StructureType,
770    pub p_next: *const BaseInStructure,
771}
772impl Default for BaseInStructure {
773    #[inline]
774    fn default() -> Self {
775        Self {
776            s_type: StructureType::from_raw(0),
777            p_next: core::ptr::null(),
778        }
779    }
780}
781impl core::fmt::Debug for BaseInStructure {
782    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
783        f.debug_struct("BaseInStructure")
784            .field("s_type", &self.s_type)
785            .field("p_next", &self.p_next)
786            .finish()
787    }
788}
789///[`VkOffset2D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOffset2D.html)
790/**
791Provided by **VK_BASE_VERSION_1_0**.*/
792#[repr(C)]
793#[derive(Copy, Clone, Debug)]
794#[doc(alias = "VkOffset2D")]
795pub struct Offset2D {
796    pub x: i32,
797    pub y: i32,
798}
799impl Default for Offset2D {
800    #[inline]
801    fn default() -> Self {
802        unsafe { core::mem::zeroed() }
803    }
804}
805///[`VkOffset3D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOffset3D.html)
806/**
807Provided by **VK_BASE_VERSION_1_0**.*/
808#[repr(C)]
809#[derive(Copy, Clone, Debug)]
810#[doc(alias = "VkOffset3D")]
811pub struct Offset3D {
812    pub x: i32,
813    pub y: i32,
814    pub z: i32,
815}
816impl Default for Offset3D {
817    #[inline]
818    fn default() -> Self {
819        unsafe { core::mem::zeroed() }
820    }
821}
822///[`VkExtent2D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExtent2D.html)
823/**
824Provided by **VK_BASE_VERSION_1_0**.*/
825#[repr(C)]
826#[derive(Copy, Clone, Debug)]
827#[doc(alias = "VkExtent2D")]
828pub struct Extent2D {
829    pub width: u32,
830    pub height: u32,
831}
832impl Default for Extent2D {
833    #[inline]
834    fn default() -> Self {
835        unsafe { core::mem::zeroed() }
836    }
837}
838///[`VkExtent3D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExtent3D.html)
839/**
840Provided by **VK_BASE_VERSION_1_0**.*/
841#[repr(C)]
842#[derive(Copy, Clone, Debug)]
843#[doc(alias = "VkExtent3D")]
844pub struct Extent3D {
845    pub width: u32,
846    pub height: u32,
847    pub depth: u32,
848}
849impl Default for Extent3D {
850    #[inline]
851    fn default() -> Self {
852        unsafe { core::mem::zeroed() }
853    }
854}
855///[`VkViewport`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkViewport.html)
856/**
857Provided by **VK_GRAPHICS_VERSION_1_0**.*/
858#[repr(C)]
859#[derive(Copy, Clone, Debug)]
860#[doc(alias = "VkViewport")]
861pub struct Viewport {
862    pub x: f32,
863    pub y: f32,
864    pub width: f32,
865    pub height: f32,
866    pub min_depth: f32,
867    pub max_depth: f32,
868}
869impl Default for Viewport {
870    #[inline]
871    fn default() -> Self {
872        unsafe { core::mem::zeroed() }
873    }
874}
875///[`VkRect2D`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRect2D.html)
876/**
877Provided by **VK_BASE_VERSION_1_0**.*/
878#[repr(C)]
879#[derive(Copy, Clone, Debug)]
880#[doc(alias = "VkRect2D")]
881pub struct Rect2D {
882    pub offset: Offset2D,
883    pub extent: Extent2D,
884}
885impl Default for Rect2D {
886    #[inline]
887    fn default() -> Self {
888        unsafe { core::mem::zeroed() }
889    }
890}
891///[`VkClearRect`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearRect.html)
892/**
893Provided by **VK_GRAPHICS_VERSION_1_0**.*/
894#[repr(C)]
895#[derive(Copy, Clone, Debug)]
896#[doc(alias = "VkClearRect")]
897pub struct ClearRect {
898    pub rect: Rect2D,
899    pub base_array_layer: u32,
900    pub layer_count: u32,
901}
902impl Default for ClearRect {
903    #[inline]
904    fn default() -> Self {
905        unsafe { core::mem::zeroed() }
906    }
907}
908///[`VkComponentMapping`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkComponentMapping.html)
909/**
910Provided by **VK_BASE_VERSION_1_0**.*/
911#[repr(C)]
912#[derive(Copy, Clone, Debug)]
913#[doc(alias = "VkComponentMapping")]
914pub struct ComponentMapping {
915    pub r: ComponentSwizzle,
916    pub g: ComponentSwizzle,
917    pub b: ComponentSwizzle,
918    pub a: ComponentSwizzle,
919}
920impl Default for ComponentMapping {
921    #[inline]
922    fn default() -> Self {
923        unsafe { core::mem::zeroed() }
924    }
925}
926///[`VkPhysicalDeviceProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProperties.html)
927/**
928Provided by **VK_BASE_VERSION_1_0**.*/
929/**
930**Returned only**, filled by Vulkan, not constructed by the application.*/
931#[repr(C)]
932#[derive(Copy, Clone, Debug)]
933#[doc(alias = "VkPhysicalDeviceProperties")]
934pub struct PhysicalDeviceProperties {
935    pub api_version: u32,
936    pub driver_version: u32,
937    pub vendor_id: u32,
938    pub device_id: u32,
939    pub device_type: PhysicalDeviceType,
940    pub device_name: crate::StringArray<{ MAX_PHYSICAL_DEVICE_NAME_SIZE as usize }>,
941    pub pipeline_cache_uuid: [u8; UUID_SIZE as usize],
942    pub limits: PhysicalDeviceLimits,
943    pub sparse_properties: PhysicalDeviceSparseProperties,
944}
945impl Default for PhysicalDeviceProperties {
946    #[inline]
947    fn default() -> Self {
948        unsafe { core::mem::zeroed() }
949    }
950}
951///[`VkExtensionProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExtensionProperties.html)
952/**
953Provided by **VK_BASE_VERSION_1_0**.*/
954/**
955**Returned only**, filled by Vulkan, not constructed by the application.*/
956#[repr(C)]
957#[derive(Copy, Clone, Debug)]
958#[doc(alias = "VkExtensionProperties")]
959pub struct ExtensionProperties {
960    pub extension_name: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
961    pub spec_version: u32,
962}
963impl Default for ExtensionProperties {
964    #[inline]
965    fn default() -> Self {
966        unsafe { core::mem::zeroed() }
967    }
968}
969///[`VkLayerProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLayerProperties.html)
970/**
971Provided by **VK_BASE_VERSION_1_0**.*/
972/**
973**Returned only**, filled by Vulkan, not constructed by the application.*/
974#[repr(C)]
975#[derive(Copy, Clone, Debug)]
976#[doc(alias = "VkLayerProperties")]
977pub struct LayerProperties {
978    pub layer_name: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
979    pub spec_version: u32,
980    pub implementation_version: u32,
981    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
982}
983impl Default for LayerProperties {
984    #[inline]
985    fn default() -> Self {
986        unsafe { core::mem::zeroed() }
987    }
988}
989///[`VkApplicationInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkApplicationInfo.html)
990/**
991Provided by **VK_BASE_VERSION_1_0**.*/
992///
993///# Extended By
994///- [`ApplicationParametersEXT`]
995#[repr(C)]
996#[derive(Copy, Clone, Debug)]
997#[doc(alias = "VkApplicationInfo")]
998pub struct ApplicationInfo {
999    ///Must be `VK_STRUCTURE_TYPE_APPLICATION_INFO`.
1000    pub s_type: StructureType,
1001    ///Optional, may be null.
1002    pub p_next: *const core::ffi::c_void,
1003    ///Optional, may be null.
1004    pub p_application_name: *const core::ffi::c_char,
1005    pub application_version: u32,
1006    ///Optional, may be null.
1007    pub p_engine_name: *const core::ffi::c_char,
1008    pub engine_version: u32,
1009    pub api_version: u32,
1010}
1011impl Default for ApplicationInfo {
1012    #[inline]
1013    fn default() -> Self {
1014        Self {
1015            s_type: StructureType::from_raw(0i32),
1016            p_next: core::ptr::null(),
1017            p_application_name: core::ptr::null(),
1018            application_version: Default::default(),
1019            p_engine_name: core::ptr::null(),
1020            engine_version: Default::default(),
1021            api_version: Default::default(),
1022        }
1023    }
1024}
1025///[`VkAllocationCallbacks`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAllocationCallbacks.html)
1026/**
1027Provided by **VK_BASE_VERSION_1_0**.*/
1028#[repr(C)]
1029#[derive(Copy, Clone, Debug)]
1030#[doc(alias = "VkAllocationCallbacks")]
1031pub struct AllocationCallbacks {
1032    ///Optional, may be null.
1033    pub p_user_data: *mut core::ffi::c_void,
1034    pub pfn_allocation: PFN_vkAllocationFunction,
1035    pub pfn_reallocation: PFN_vkReallocationFunction,
1036    pub pfn_free: PFN_vkFreeFunction,
1037    pub pfn_internal_allocation: PFN_vkInternalAllocationNotification,
1038    pub pfn_internal_free: PFN_vkInternalFreeNotification,
1039}
1040impl Default for AllocationCallbacks {
1041    #[inline]
1042    fn default() -> Self {
1043        unsafe { core::mem::zeroed() }
1044    }
1045}
1046///[`VkDeviceQueueCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceQueueCreateInfo.html)
1047/**
1048Provided by **VK_BASE_VERSION_1_0**.*/
1049///
1050///# Extended By
1051///- [`DeviceQueueGlobalPriorityCreateInfo`]
1052///- [`DeviceQueueShaderCoreControlCreateInfoARM`]
1053#[repr(C)]
1054#[derive(Copy, Clone, Debug)]
1055#[doc(alias = "VkDeviceQueueCreateInfo")]
1056pub struct DeviceQueueCreateInfo {
1057    ///Must be `VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO`.
1058    pub s_type: StructureType,
1059    ///Optional, may be null.
1060    pub p_next: *const core::ffi::c_void,
1061    pub flags: DeviceQueueCreateFlags,
1062    pub queue_family_index: u32,
1063    ///Length of `p_queue_priorities`.
1064    pub queue_count: u32,
1065    pub p_queue_priorities: *const f32,
1066}
1067impl Default for DeviceQueueCreateInfo {
1068    #[inline]
1069    fn default() -> Self {
1070        Self {
1071            s_type: StructureType::from_raw(2i32),
1072            p_next: core::ptr::null(),
1073            flags: Default::default(),
1074            queue_family_index: Default::default(),
1075            queue_count: Default::default(),
1076            p_queue_priorities: core::ptr::null(),
1077        }
1078    }
1079}
1080///[`VkDeviceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceCreateInfo.html)
1081/**
1082Provided by **VK_BASE_VERSION_1_0**.*/
1083///
1084///# Extended By
1085///- [`ApplicationParametersEXT`]
1086///- [`DeviceDeviceMemoryReportCreateInfoEXT`]
1087///- [`DeviceDiagnosticsConfigCreateInfoNV`]
1088///- [`DeviceGroupDeviceCreateInfo`]
1089///- [`DeviceMemoryOverallocationCreateInfoAMD`]
1090///- [`DeviceObjectReservationCreateInfo`]
1091///- [`DevicePipelineBinaryInternalCacheControlKHR`]
1092///- [`DevicePrivateDataCreateInfo`]
1093///- [`DeviceQueueShaderCoreControlCreateInfoARM`]
1094///- [`DeviceSemaphoreSciSyncPoolReservationCreateInfoNV`]
1095///- [`ExternalComputeQueueDeviceCreateInfoNV`]
1096///- [`FaultCallbackInfo`]
1097///- [`PerformanceQueryReservationInfoKHR`]
1098///- [`PhysicalDevice16BitStorageFeatures`]
1099///- [`PhysicalDevice4444FormatsFeaturesEXT`]
1100///- [`PhysicalDevice8BitStorageFeatures`]
1101///- [`PhysicalDeviceASTCDecodeFeaturesEXT`]
1102///- [`PhysicalDeviceAccelerationStructureFeaturesKHR`]
1103///- [`PhysicalDeviceAddressBindingReportFeaturesEXT`]
1104///- [`PhysicalDeviceAmigoProfilingFeaturesSEC`]
1105///- [`PhysicalDeviceAntiLagFeaturesAMD`]
1106///- [`PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT`]
1107///- [`PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT`]
1108///- [`PhysicalDeviceBlendOperationAdvancedFeaturesEXT`]
1109///- [`PhysicalDeviceBorderColorSwizzleFeaturesEXT`]
1110///- [`PhysicalDeviceBufferDeviceAddressFeatures`]
1111///- [`PhysicalDeviceBufferDeviceAddressFeaturesEXT`]
1112///- [`PhysicalDeviceClusterAccelerationStructureFeaturesNV`]
1113///- [`PhysicalDeviceClusterCullingShaderFeaturesHUAWEI`]
1114///- [`PhysicalDeviceCoherentMemoryFeaturesAMD`]
1115///- [`PhysicalDeviceColorWriteEnableFeaturesEXT`]
1116///- [`PhysicalDeviceCommandBufferInheritanceFeaturesNV`]
1117///- [`PhysicalDeviceComputeOccupancyPriorityFeaturesNV`]
1118///- [`PhysicalDeviceComputeShaderDerivativesFeaturesKHR`]
1119///- [`PhysicalDeviceConditionalRenderingFeaturesEXT`]
1120///- [`PhysicalDeviceCooperativeMatrix2FeaturesNV`]
1121///- [`PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM`]
1122///- [`PhysicalDeviceCooperativeMatrixFeaturesKHR`]
1123///- [`PhysicalDeviceCooperativeMatrixFeaturesNV`]
1124///- [`PhysicalDeviceCooperativeVectorFeaturesNV`]
1125///- [`PhysicalDeviceCopyMemoryIndirectFeaturesKHR`]
1126///- [`PhysicalDeviceCopyMemoryIndirectFeaturesNV`]
1127///- [`PhysicalDeviceCornerSampledImageFeaturesNV`]
1128///- [`PhysicalDeviceCoverageReductionModeFeaturesNV`]
1129///- [`PhysicalDeviceCubicClampFeaturesQCOM`]
1130///- [`PhysicalDeviceCubicWeightsFeaturesQCOM`]
1131///- [`PhysicalDeviceCudaKernelLaunchFeaturesNV`]
1132///- [`PhysicalDeviceCustomBorderColorFeaturesEXT`]
1133///- [`PhysicalDeviceCustomResolveFeaturesEXT`]
1134///- [`PhysicalDeviceDataGraphFeaturesARM`]
1135///- [`PhysicalDeviceDataGraphModelFeaturesQCOM`]
1136///- [`PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV`]
1137///- [`PhysicalDeviceDenseGeometryFormatFeaturesAMDX`]
1138///- [`PhysicalDeviceDepthBiasControlFeaturesEXT`]
1139///- [`PhysicalDeviceDepthClampControlFeaturesEXT`]
1140///- [`PhysicalDeviceDepthClampZeroOneFeaturesKHR`]
1141///- [`PhysicalDeviceDepthClipControlFeaturesEXT`]
1142///- [`PhysicalDeviceDepthClipEnableFeaturesEXT`]
1143///- [`PhysicalDeviceDescriptorBufferFeaturesEXT`]
1144///- [`PhysicalDeviceDescriptorBufferTensorFeaturesARM`]
1145///- [`PhysicalDeviceDescriptorHeapFeaturesEXT`]
1146///- [`PhysicalDeviceDescriptorIndexingFeatures`]
1147///- [`PhysicalDeviceDescriptorPoolOverallocationFeaturesNV`]
1148///- [`PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE`]
1149///- [`PhysicalDeviceDeviceAddressCommandsFeaturesKHR`]
1150///- [`PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV`]
1151///- [`PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT`]
1152///- [`PhysicalDeviceDeviceGeneratedCommandsFeaturesNV`]
1153///- [`PhysicalDeviceDeviceMemoryReportFeaturesEXT`]
1154///- [`PhysicalDeviceDiagnosticsConfigFeaturesNV`]
1155///- [`PhysicalDeviceDisplacementMicromapFeaturesNV`]
1156///- [`PhysicalDeviceDynamicRenderingFeatures`]
1157///- [`PhysicalDeviceDynamicRenderingLocalReadFeatures`]
1158///- [`PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT`]
1159///- [`PhysicalDeviceExclusiveScissorFeaturesNV`]
1160///- [`PhysicalDeviceExtendedDynamicState2FeaturesEXT`]
1161///- [`PhysicalDeviceExtendedDynamicState3FeaturesEXT`]
1162///- [`PhysicalDeviceExtendedDynamicStateFeaturesEXT`]
1163///- [`PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV`]
1164///- [`PhysicalDeviceExternalFormatResolveFeaturesANDROID`]
1165///- [`PhysicalDeviceExternalMemoryRDMAFeaturesNV`]
1166///- [`PhysicalDeviceExternalMemorySciBufFeaturesNV`]
1167///- [`PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX`]
1168///- [`PhysicalDeviceExternalSciSync2FeaturesNV`]
1169///- [`PhysicalDeviceExternalSciSyncFeaturesNV`]
1170///- [`PhysicalDeviceFaultFeaturesEXT`]
1171///- [`PhysicalDeviceFaultFeaturesKHR`]
1172///- [`PhysicalDeviceFeatures2`]
1173///- [`PhysicalDeviceFormatPackFeaturesARM`]
1174///- [`PhysicalDeviceFragmentDensityMap2FeaturesEXT`]
1175///- [`PhysicalDeviceFragmentDensityMapFeaturesEXT`]
1176///- [`PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE`]
1177///- [`PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT`]
1178///- [`PhysicalDeviceFragmentShaderBarycentricFeaturesKHR`]
1179///- [`PhysicalDeviceFragmentShaderInterlockFeaturesEXT`]
1180///- [`PhysicalDeviceFragmentShadingRateEnumsFeaturesNV`]
1181///- [`PhysicalDeviceFragmentShadingRateFeaturesKHR`]
1182///- [`PhysicalDeviceFrameBoundaryFeaturesEXT`]
1183///- [`PhysicalDeviceGlobalPriorityQueryFeatures`]
1184///- [`PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT`]
1185///- [`PhysicalDeviceHdrVividFeaturesHUAWEI`]
1186///- [`PhysicalDeviceHostImageCopyFeatures`]
1187///- [`PhysicalDeviceHostQueryResetFeatures`]
1188///- [`PhysicalDeviceImage2DViewOf3DFeaturesEXT`]
1189///- [`PhysicalDeviceImageAlignmentControlFeaturesMESA`]
1190///- [`PhysicalDeviceImageCompressionControlFeaturesEXT`]
1191///- [`PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT`]
1192///- [`PhysicalDeviceImageProcessing2FeaturesQCOM`]
1193///- [`PhysicalDeviceImageProcessingFeaturesQCOM`]
1194///- [`PhysicalDeviceImageRobustnessFeatures`]
1195///- [`PhysicalDeviceImageSlicedViewOf3DFeaturesEXT`]
1196///- [`PhysicalDeviceImageViewMinLodFeaturesEXT`]
1197///- [`PhysicalDeviceImagelessFramebufferFeatures`]
1198///- [`PhysicalDeviceIndexTypeUint8Features`]
1199///- [`PhysicalDeviceInheritedViewportScissorFeaturesNV`]
1200///- [`PhysicalDeviceInlineUniformBlockFeatures`]
1201///- [`PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR`]
1202///- [`PhysicalDeviceInvocationMaskFeaturesHUAWEI`]
1203///- [`PhysicalDeviceLegacyDitheringFeaturesEXT`]
1204///- [`PhysicalDeviceLegacyVertexAttributesFeaturesEXT`]
1205///- [`PhysicalDeviceLineRasterizationFeatures`]
1206///- [`PhysicalDeviceLinearColorAttachmentFeaturesNV`]
1207///- [`PhysicalDeviceMaintenance10FeaturesKHR`]
1208///- [`PhysicalDeviceMaintenance4Features`]
1209///- [`PhysicalDeviceMaintenance5Features`]
1210///- [`PhysicalDeviceMaintenance6Features`]
1211///- [`PhysicalDeviceMaintenance7FeaturesKHR`]
1212///- [`PhysicalDeviceMaintenance8FeaturesKHR`]
1213///- [`PhysicalDeviceMaintenance9FeaturesKHR`]
1214///- [`PhysicalDeviceMapMemoryPlacedFeaturesEXT`]
1215///- [`PhysicalDeviceMemoryDecompressionFeaturesEXT`]
1216///- [`PhysicalDeviceMemoryPriorityFeaturesEXT`]
1217///- [`PhysicalDeviceMeshShaderFeaturesEXT`]
1218///- [`PhysicalDeviceMeshShaderFeaturesNV`]
1219///- [`PhysicalDeviceMultiDrawFeaturesEXT`]
1220///- [`PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT`]
1221///- [`PhysicalDeviceMultiviewFeatures`]
1222///- [`PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM`]
1223///- [`PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM`]
1224///- [`PhysicalDeviceMutableDescriptorTypeFeaturesEXT`]
1225///- [`PhysicalDeviceNestedCommandBufferFeaturesEXT`]
1226///- [`PhysicalDeviceNonSeamlessCubeMapFeaturesEXT`]
1227///- [`PhysicalDeviceOpacityMicromapFeaturesEXT`]
1228///- [`PhysicalDeviceOpticalFlowFeaturesNV`]
1229///- [`PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT`]
1230///- [`PhysicalDevicePartitionedAccelerationStructureFeaturesNV`]
1231///- [`PhysicalDevicePerStageDescriptorSetFeaturesNV`]
1232///- [`PhysicalDevicePerformanceCountersByRegionFeaturesARM`]
1233///- [`PhysicalDevicePerformanceQueryFeaturesKHR`]
1234///- [`PhysicalDevicePipelineBinaryFeaturesKHR`]
1235///- [`PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC`]
1236///- [`PhysicalDevicePipelineCreationCacheControlFeatures`]
1237///- [`PhysicalDevicePipelineExecutablePropertiesFeaturesKHR`]
1238///- [`PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT`]
1239///- [`PhysicalDevicePipelineOpacityMicromapFeaturesARM`]
1240///- [`PhysicalDevicePipelinePropertiesFeaturesEXT`]
1241///- [`PhysicalDevicePipelineProtectedAccessFeatures`]
1242///- [`PhysicalDevicePipelineRobustnessFeatures`]
1243///- [`PhysicalDevicePortabilitySubsetFeaturesKHR`]
1244///- [`PhysicalDevicePresentBarrierFeaturesNV`]
1245///- [`PhysicalDevicePresentId2FeaturesKHR`]
1246///- [`PhysicalDevicePresentIdFeaturesKHR`]
1247///- [`PhysicalDevicePresentMeteringFeaturesNV`]
1248///- [`PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR`]
1249///- [`PhysicalDevicePresentTimingFeaturesEXT`]
1250///- [`PhysicalDevicePresentWait2FeaturesKHR`]
1251///- [`PhysicalDevicePresentWaitFeaturesKHR`]
1252///- [`PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT`]
1253///- [`PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT`]
1254///- [`PhysicalDevicePrivateDataFeatures`]
1255///- [`PhysicalDeviceProtectedMemoryFeatures`]
1256///- [`PhysicalDeviceProvokingVertexFeaturesEXT`]
1257///- [`PhysicalDevicePushConstantBankFeaturesNV`]
1258///- [`PhysicalDeviceRGBA10X6FormatsFeaturesEXT`]
1259///- [`PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT`]
1260///- [`PhysicalDeviceRawAccessChainsFeaturesNV`]
1261///- [`PhysicalDeviceRayQueryFeaturesKHR`]
1262///- [`PhysicalDeviceRayTracingInvocationReorderFeaturesEXT`]
1263///- [`PhysicalDeviceRayTracingInvocationReorderFeaturesNV`]
1264///- [`PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV`]
1265///- [`PhysicalDeviceRayTracingMaintenance1FeaturesKHR`]
1266///- [`PhysicalDeviceRayTracingMotionBlurFeaturesNV`]
1267///- [`PhysicalDeviceRayTracingPipelineFeaturesKHR`]
1268///- [`PhysicalDeviceRayTracingPositionFetchFeaturesKHR`]
1269///- [`PhysicalDeviceRayTracingValidationFeaturesNV`]
1270///- [`PhysicalDeviceRelaxedLineRasterizationFeaturesIMG`]
1271///- [`PhysicalDeviceRenderPassStripedFeaturesARM`]
1272///- [`PhysicalDeviceRepresentativeFragmentTestFeaturesNV`]
1273///- [`PhysicalDeviceRobustness2FeaturesKHR`]
1274///- [`PhysicalDeviceSamplerYcbcrConversionFeatures`]
1275///- [`PhysicalDeviceScalarBlockLayoutFeatures`]
1276///- [`PhysicalDeviceSchedulingControlsFeaturesARM`]
1277///- [`PhysicalDeviceSeparateDepthStencilLayoutsFeatures`]
1278///- [`PhysicalDeviceShader64BitIndexingFeaturesEXT`]
1279///- [`PhysicalDeviceShaderAbortFeaturesKHR`]
1280///- [`PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV`]
1281///- [`PhysicalDeviceShaderAtomicFloat2FeaturesEXT`]
1282///- [`PhysicalDeviceShaderAtomicFloatFeaturesEXT`]
1283///- [`PhysicalDeviceShaderAtomicInt64Features`]
1284///- [`PhysicalDeviceShaderBfloat16FeaturesKHR`]
1285///- [`PhysicalDeviceShaderClockFeaturesKHR`]
1286///- [`PhysicalDeviceShaderConstantDataFeaturesKHR`]
1287///- [`PhysicalDeviceShaderCoreBuiltinsFeaturesARM`]
1288///- [`PhysicalDeviceShaderDemoteToHelperInvocationFeatures`]
1289///- [`PhysicalDeviceShaderDrawParametersFeatures`]
1290///- [`PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD`]
1291///- [`PhysicalDeviceShaderEnqueueFeaturesAMDX`]
1292///- [`PhysicalDeviceShaderExpectAssumeFeatures`]
1293///- [`PhysicalDeviceShaderFloat16Int8Features`]
1294///- [`PhysicalDeviceShaderFloat8FeaturesEXT`]
1295///- [`PhysicalDeviceShaderFloatControls2Features`]
1296///- [`PhysicalDeviceShaderFmaFeaturesKHR`]
1297///- [`PhysicalDeviceShaderImageAtomicInt64FeaturesEXT`]
1298///- [`PhysicalDeviceShaderImageFootprintFeaturesNV`]
1299///- [`PhysicalDeviceShaderInstrumentationFeaturesARM`]
1300///- [`PhysicalDeviceShaderIntegerDotProductFeatures`]
1301///- [`PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL`]
1302///- [`PhysicalDeviceShaderLongVectorFeaturesEXT`]
1303///- [`PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR`]
1304///- [`PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE`]
1305///- [`PhysicalDeviceShaderModuleIdentifierFeaturesEXT`]
1306///- [`PhysicalDeviceShaderObjectFeaturesEXT`]
1307///- [`PhysicalDeviceShaderQuadControlFeaturesKHR`]
1308///- [`PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR`]
1309///- [`PhysicalDeviceShaderReplicatedCompositesFeaturesEXT`]
1310///- [`PhysicalDeviceShaderSMBuiltinsFeaturesNV`]
1311///- [`PhysicalDeviceShaderSubgroupExtendedTypesFeatures`]
1312///- [`PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT`]
1313///- [`PhysicalDeviceShaderSubgroupRotateFeatures`]
1314///- [`PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR`]
1315///- [`PhysicalDeviceShaderTerminateInvocationFeatures`]
1316///- [`PhysicalDeviceShaderTileImageFeaturesEXT`]
1317///- [`PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT`]
1318///- [`PhysicalDeviceShaderUntypedPointersFeaturesKHR`]
1319///- [`PhysicalDeviceShadingRateImageFeaturesNV`]
1320///- [`PhysicalDeviceSubgroupSizeControlFeatures`]
1321///- [`PhysicalDeviceSubpassMergeFeedbackFeaturesEXT`]
1322///- [`PhysicalDeviceSubpassShadingFeaturesHUAWEI`]
1323///- [`PhysicalDeviceSwapchainMaintenance1FeaturesKHR`]
1324///- [`PhysicalDeviceSynchronization2Features`]
1325///- [`PhysicalDeviceTensorFeaturesARM`]
1326///- [`PhysicalDeviceTexelBufferAlignmentFeaturesEXT`]
1327///- [`PhysicalDeviceTextureCompressionASTC3DFeaturesEXT`]
1328///- [`PhysicalDeviceTextureCompressionASTCHDRFeatures`]
1329///- [`PhysicalDeviceTileMemoryHeapFeaturesQCOM`]
1330///- [`PhysicalDeviceTilePropertiesFeaturesQCOM`]
1331///- [`PhysicalDeviceTileShadingFeaturesQCOM`]
1332///- [`PhysicalDeviceTimelineSemaphoreFeatures`]
1333///- [`PhysicalDeviceTransformFeedbackFeaturesEXT`]
1334///- [`PhysicalDeviceUnifiedImageLayoutsFeaturesKHR`]
1335///- [`PhysicalDeviceUniformBufferStandardLayoutFeatures`]
1336///- [`PhysicalDeviceVariablePointersFeatures`]
1337///- [`PhysicalDeviceVertexAttributeDivisorFeatures`]
1338///- [`PhysicalDeviceVertexAttributeRobustnessFeaturesEXT`]
1339///- [`PhysicalDeviceVertexInputDynamicStateFeaturesEXT`]
1340///- [`PhysicalDeviceVideoDecodeVP9FeaturesKHR`]
1341///- [`PhysicalDeviceVideoEncodeAV1FeaturesKHR`]
1342///- [`PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR`]
1343///- [`PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR`]
1344///- [`PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE`]
1345///- [`PhysicalDeviceVideoMaintenance1FeaturesKHR`]
1346///- [`PhysicalDeviceVideoMaintenance2FeaturesKHR`]
1347///- [`PhysicalDeviceVulkan11Features`]
1348///- [`PhysicalDeviceVulkan12Features`]
1349///- [`PhysicalDeviceVulkan13Features`]
1350///- [`PhysicalDeviceVulkan14Features`]
1351///- [`PhysicalDeviceVulkanMemoryModelFeatures`]
1352///- [`PhysicalDeviceVulkanSC10Features`]
1353///- [`PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR`]
1354///- [`PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT`]
1355///- [`PhysicalDeviceYcbcrDegammaFeaturesQCOM`]
1356///- [`PhysicalDeviceYcbcrImageArraysFeaturesEXT`]
1357///- [`PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT`]
1358///- [`PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures`]
1359#[repr(C)]
1360#[derive(Copy, Clone, Debug)]
1361#[doc(alias = "VkDeviceCreateInfo")]
1362pub struct DeviceCreateInfo {
1363    ///Must be `VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO`.
1364    pub s_type: StructureType,
1365    ///Optional, may be null.
1366    pub p_next: *const core::ffi::c_void,
1367    pub flags: DeviceCreateFlags,
1368    ///Length of `p_queue_create_infos`.
1369    pub queue_create_info_count: u32,
1370    pub p_queue_create_infos: *const DeviceQueueCreateInfo,
1371    pub enabled_layer_count: u32,
1372    pub pp_enabled_layer_names: *const *const core::ffi::c_char,
1373    ///Length of `pp_enabled_extension_names`.
1374    pub enabled_extension_count: u32,
1375    pub pp_enabled_extension_names: *const *const core::ffi::c_char,
1376    ///Optional, may be null.
1377    pub p_enabled_features: *const PhysicalDeviceFeatures,
1378}
1379impl Default for DeviceCreateInfo {
1380    #[inline]
1381    fn default() -> Self {
1382        Self {
1383            s_type: StructureType::from_raw(3i32),
1384            p_next: core::ptr::null(),
1385            flags: Default::default(),
1386            queue_create_info_count: Default::default(),
1387            p_queue_create_infos: core::ptr::null(),
1388            enabled_layer_count: Default::default(),
1389            pp_enabled_layer_names: core::ptr::null(),
1390            enabled_extension_count: Default::default(),
1391            pp_enabled_extension_names: core::ptr::null(),
1392            p_enabled_features: core::ptr::null(),
1393        }
1394    }
1395}
1396///[`VkInstanceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkInstanceCreateInfo.html)
1397/**
1398Provided by **VK_BASE_VERSION_1_0**.*/
1399///
1400///# Extended By
1401///- [`DebugReportCallbackCreateInfoEXT`]
1402///- [`DebugUtilsMessengerCreateInfoEXT`]
1403///- [`DirectDriverLoadingListLUNARG`]
1404///- [`ExportMetalObjectCreateInfoEXT`]
1405///- [`LayerSettingsCreateInfoEXT`]
1406///- [`ValidationFeaturesEXT`]
1407///- [`ValidationFlagsEXT`]
1408#[repr(C)]
1409#[derive(Copy, Clone, Debug)]
1410#[doc(alias = "VkInstanceCreateInfo")]
1411pub struct InstanceCreateInfo {
1412    ///Must be `VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO`.
1413    pub s_type: StructureType,
1414    ///Optional, may be null.
1415    pub p_next: *const core::ffi::c_void,
1416    pub flags: InstanceCreateFlags,
1417    ///Optional, may be null.
1418    pub p_application_info: *const ApplicationInfo,
1419    ///Length of `pp_enabled_layer_names`.
1420    pub enabled_layer_count: u32,
1421    pub pp_enabled_layer_names: *const *const core::ffi::c_char,
1422    ///Length of `pp_enabled_extension_names`.
1423    pub enabled_extension_count: u32,
1424    pub pp_enabled_extension_names: *const *const core::ffi::c_char,
1425}
1426impl Default for InstanceCreateInfo {
1427    #[inline]
1428    fn default() -> Self {
1429        Self {
1430            s_type: StructureType::from_raw(1i32),
1431            p_next: core::ptr::null(),
1432            flags: Default::default(),
1433            p_application_info: core::ptr::null(),
1434            enabled_layer_count: Default::default(),
1435            pp_enabled_layer_names: core::ptr::null(),
1436            enabled_extension_count: Default::default(),
1437            pp_enabled_extension_names: core::ptr::null(),
1438        }
1439    }
1440}
1441///[`VkQueueFamilyProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyProperties.html)
1442/**
1443Provided by **VK_BASE_VERSION_1_0**.*/
1444/**
1445**Returned only**, filled by Vulkan, not constructed by the application.*/
1446#[repr(C)]
1447#[derive(Copy, Clone, Debug)]
1448#[doc(alias = "VkQueueFamilyProperties")]
1449pub struct QueueFamilyProperties {
1450    pub queue_flags: QueueFlags,
1451    pub queue_count: u32,
1452    pub timestamp_valid_bits: u32,
1453    pub min_image_transfer_granularity: Extent3D,
1454}
1455impl Default for QueueFamilyProperties {
1456    #[inline]
1457    fn default() -> Self {
1458        unsafe { core::mem::zeroed() }
1459    }
1460}
1461///[`VkPhysicalDeviceMemoryProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryProperties.html)
1462/**
1463Provided by **VK_BASE_VERSION_1_0**.*/
1464/**
1465**Returned only**, filled by Vulkan, not constructed by the application.*/
1466#[repr(C)]
1467#[derive(Copy, Clone, Debug)]
1468#[doc(alias = "VkPhysicalDeviceMemoryProperties")]
1469pub struct PhysicalDeviceMemoryProperties {
1470    pub memory_type_count: u32,
1471    pub memory_types: [MemoryType; MAX_MEMORY_TYPES as usize],
1472    pub memory_heap_count: u32,
1473    pub memory_heaps: [MemoryHeap; MAX_MEMORY_HEAPS as usize],
1474}
1475impl Default for PhysicalDeviceMemoryProperties {
1476    #[inline]
1477    fn default() -> Self {
1478        unsafe { core::mem::zeroed() }
1479    }
1480}
1481///[`VkMemoryAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryAllocateInfo.html)
1482/**
1483Provided by **VK_BASE_VERSION_1_0**.*/
1484///
1485///# Extended By
1486///- [`DedicatedAllocationMemoryAllocateInfoNV`]
1487///- [`ExportMemoryAllocateInfo`]
1488///- [`ExportMemoryAllocateInfoNV`]
1489///- [`ExportMemorySciBufInfoNV`]
1490///- [`ExportMemoryWin32HandleInfoKHR`]
1491///- [`ExportMemoryWin32HandleInfoNV`]
1492///- [`ExportMetalObjectCreateInfoEXT`]
1493///- [`ImportAndroidHardwareBufferInfoANDROID`]
1494///- [`ImportMemoryBufferCollectionFUCHSIA`]
1495///- [`ImportMemoryFdInfoKHR`]
1496///- [`ImportMemoryHostPointerInfoEXT`]
1497///- [`ImportMemoryMetalHandleInfoEXT`]
1498///- [`ImportMemorySciBufInfoNV`]
1499///- [`ImportMemoryWin32HandleInfoKHR`]
1500///- [`ImportMemoryWin32HandleInfoNV`]
1501///- [`ImportMemoryZirconHandleInfoFUCHSIA`]
1502///- [`ImportMetalBufferInfoEXT`]
1503///- [`ImportNativeBufferInfoOHOS`]
1504///- [`ImportScreenBufferInfoQNX`]
1505///- [`MemoryAllocateFlagsInfo`]
1506///- [`MemoryDedicatedAllocateInfo`]
1507///- [`MemoryDedicatedAllocateInfoTensorARM`]
1508///- [`MemoryOpaqueCaptureAddressAllocateInfo`]
1509///- [`MemoryPriorityAllocateInfoEXT`]
1510#[repr(C)]
1511#[derive(Copy, Clone, Debug)]
1512#[doc(alias = "VkMemoryAllocateInfo")]
1513pub struct MemoryAllocateInfo {
1514    ///Must be `VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO`.
1515    pub s_type: StructureType,
1516    ///Optional, may be null.
1517    pub p_next: *const core::ffi::c_void,
1518    pub allocation_size: u64,
1519    pub memory_type_index: u32,
1520}
1521impl Default for MemoryAllocateInfo {
1522    #[inline]
1523    fn default() -> Self {
1524        Self {
1525            s_type: StructureType::from_raw(5i32),
1526            p_next: core::ptr::null(),
1527            allocation_size: Default::default(),
1528            memory_type_index: Default::default(),
1529        }
1530    }
1531}
1532///[`VkMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryRequirements.html)
1533/**
1534Provided by **VK_BASE_VERSION_1_0**.*/
1535/**
1536**Returned only**, filled by Vulkan, not constructed by the application.*/
1537#[repr(C)]
1538#[derive(Copy, Clone, Debug)]
1539#[doc(alias = "VkMemoryRequirements")]
1540pub struct MemoryRequirements {
1541    pub size: u64,
1542    pub alignment: u64,
1543    pub memory_type_bits: u32,
1544}
1545impl Default for MemoryRequirements {
1546    #[inline]
1547    fn default() -> Self {
1548        unsafe { core::mem::zeroed() }
1549    }
1550}
1551///[`VkSparseImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageFormatProperties.html)
1552/**
1553Provided by **VK_BASE_VERSION_1_0**.*/
1554/**
1555**Returned only**, filled by Vulkan, not constructed by the application.*/
1556#[repr(C)]
1557#[derive(Copy, Clone, Debug)]
1558#[doc(alias = "VkSparseImageFormatProperties")]
1559pub struct SparseImageFormatProperties {
1560    pub aspect_mask: ImageAspectFlags,
1561    pub image_granularity: Extent3D,
1562    pub flags: SparseImageFormatFlags,
1563}
1564impl Default for SparseImageFormatProperties {
1565    #[inline]
1566    fn default() -> Self {
1567        unsafe { core::mem::zeroed() }
1568    }
1569}
1570///[`VkSparseImageMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageMemoryRequirements.html)
1571/**
1572Provided by **VK_BASE_VERSION_1_0**.*/
1573/**
1574**Returned only**, filled by Vulkan, not constructed by the application.*/
1575#[repr(C)]
1576#[derive(Copy, Clone, Debug)]
1577#[doc(alias = "VkSparseImageMemoryRequirements")]
1578pub struct SparseImageMemoryRequirements {
1579    pub format_properties: SparseImageFormatProperties,
1580    pub image_mip_tail_first_lod: u32,
1581    pub image_mip_tail_size: u64,
1582    pub image_mip_tail_offset: u64,
1583    pub image_mip_tail_stride: u64,
1584}
1585impl Default for SparseImageMemoryRequirements {
1586    #[inline]
1587    fn default() -> Self {
1588        unsafe { core::mem::zeroed() }
1589    }
1590}
1591///[`VkMemoryType`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryType.html)
1592/**
1593Provided by **VK_BASE_VERSION_1_0**.*/
1594/**
1595**Returned only**, filled by Vulkan, not constructed by the application.*/
1596#[repr(C)]
1597#[derive(Copy, Clone, Debug)]
1598#[doc(alias = "VkMemoryType")]
1599pub struct MemoryType {
1600    pub property_flags: MemoryPropertyFlags,
1601    pub heap_index: u32,
1602}
1603impl Default for MemoryType {
1604    #[inline]
1605    fn default() -> Self {
1606        unsafe { core::mem::zeroed() }
1607    }
1608}
1609///[`VkMemoryHeap`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryHeap.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 = "VkMemoryHeap")]
1617pub struct MemoryHeap {
1618    pub size: u64,
1619    pub flags: MemoryHeapFlags,
1620}
1621impl Default for MemoryHeap {
1622    #[inline]
1623    fn default() -> Self {
1624        unsafe { core::mem::zeroed() }
1625    }
1626}
1627///[`VkMappedMemoryRange`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMappedMemoryRange.html)
1628/**
1629Provided by **VK_BASE_VERSION_1_0**.*/
1630#[repr(C)]
1631#[derive(Copy, Clone, Debug)]
1632#[doc(alias = "VkMappedMemoryRange")]
1633pub struct MappedMemoryRange {
1634    ///Must be `VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE`.
1635    pub s_type: StructureType,
1636    ///Optional, may be null.
1637    pub p_next: *const core::ffi::c_void,
1638    pub memory: DeviceMemory,
1639    pub offset: u64,
1640    pub size: u64,
1641}
1642impl Default for MappedMemoryRange {
1643    #[inline]
1644    fn default() -> Self {
1645        Self {
1646            s_type: StructureType::from_raw(6i32),
1647            p_next: core::ptr::null(),
1648            memory: Default::default(),
1649            offset: Default::default(),
1650            size: Default::default(),
1651        }
1652    }
1653}
1654///[`VkFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFormatProperties.html)
1655/**
1656Provided by **VK_BASE_VERSION_1_0**.*/
1657/**
1658**Returned only**, filled by Vulkan, not constructed by the application.*/
1659#[repr(C)]
1660#[derive(Copy, Clone, Debug)]
1661#[doc(alias = "VkFormatProperties")]
1662pub struct FormatProperties {
1663    pub linear_tiling_features: FormatFeatureFlags,
1664    pub optimal_tiling_features: FormatFeatureFlags,
1665    pub buffer_features: FormatFeatureFlags,
1666}
1667impl Default for FormatProperties {
1668    #[inline]
1669    fn default() -> Self {
1670        unsafe { core::mem::zeroed() }
1671    }
1672}
1673///[`VkImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageFormatProperties.html)
1674/**
1675Provided by **VK_BASE_VERSION_1_0**.*/
1676/**
1677**Returned only**, filled by Vulkan, not constructed by the application.*/
1678#[repr(C)]
1679#[derive(Copy, Clone, Debug)]
1680#[doc(alias = "VkImageFormatProperties")]
1681pub struct ImageFormatProperties {
1682    pub max_extent: Extent3D,
1683    pub max_mip_levels: u32,
1684    pub max_array_layers: u32,
1685    pub sample_counts: SampleCountFlags,
1686    pub max_resource_size: u64,
1687}
1688impl Default for ImageFormatProperties {
1689    #[inline]
1690    fn default() -> Self {
1691        unsafe { core::mem::zeroed() }
1692    }
1693}
1694///[`VkDescriptorBufferInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorBufferInfo.html)
1695/**
1696Provided by **VK_COMPUTE_VERSION_1_0**.*/
1697#[repr(C)]
1698#[derive(Copy, Clone, Debug)]
1699#[doc(alias = "VkDescriptorBufferInfo")]
1700pub struct DescriptorBufferInfo {
1701    pub buffer: Buffer,
1702    pub offset: u64,
1703    pub range: u64,
1704}
1705impl Default for DescriptorBufferInfo {
1706    #[inline]
1707    fn default() -> Self {
1708        unsafe { core::mem::zeroed() }
1709    }
1710}
1711///[`VkDescriptorImageInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorImageInfo.html)
1712/**
1713Provided by **VK_COMPUTE_VERSION_1_0**.*/
1714#[repr(C)]
1715#[derive(Copy, Clone, Debug)]
1716#[doc(alias = "VkDescriptorImageInfo")]
1717pub struct DescriptorImageInfo {
1718    pub sampler: Sampler,
1719    pub image_view: ImageView,
1720    pub image_layout: ImageLayout,
1721}
1722impl Default for DescriptorImageInfo {
1723    #[inline]
1724    fn default() -> Self {
1725        unsafe { core::mem::zeroed() }
1726    }
1727}
1728///[`VkWriteDescriptorSet`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSet.html)
1729/**
1730Provided by **VK_COMPUTE_VERSION_1_0**.*/
1731///
1732///# Extended By
1733///- [`WriteDescriptorSetAccelerationStructureKHR`]
1734///- [`WriteDescriptorSetAccelerationStructureNV`]
1735///- [`WriteDescriptorSetInlineUniformBlock`]
1736///- [`WriteDescriptorSetPartitionedAccelerationStructureNV`]
1737///- [`WriteDescriptorSetTensorARM`]
1738#[repr(C)]
1739#[derive(Copy, Clone, Debug)]
1740#[doc(alias = "VkWriteDescriptorSet")]
1741pub struct WriteDescriptorSet {
1742    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET`.
1743    pub s_type: StructureType,
1744    ///Optional, may be null.
1745    pub p_next: *const core::ffi::c_void,
1746    pub dst_set: DescriptorSet,
1747    pub dst_binding: u32,
1748    pub dst_array_element: u32,
1749    ///Length of `p_texel_buffer_view`.
1750    pub descriptor_count: u32,
1751    pub descriptor_type: DescriptorType,
1752    pub p_image_info: *const DescriptorImageInfo,
1753    pub p_buffer_info: *const DescriptorBufferInfo,
1754    pub p_texel_buffer_view: *const BufferView,
1755}
1756impl Default for WriteDescriptorSet {
1757    #[inline]
1758    fn default() -> Self {
1759        Self {
1760            s_type: StructureType::from_raw(35i32),
1761            p_next: core::ptr::null(),
1762            dst_set: Default::default(),
1763            dst_binding: Default::default(),
1764            dst_array_element: Default::default(),
1765            descriptor_count: Default::default(),
1766            descriptor_type: Default::default(),
1767            p_image_info: core::ptr::null(),
1768            p_buffer_info: core::ptr::null(),
1769            p_texel_buffer_view: core::ptr::null(),
1770        }
1771    }
1772}
1773///[`VkCopyDescriptorSet`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyDescriptorSet.html)
1774/**
1775Provided by **VK_COMPUTE_VERSION_1_0**.*/
1776#[repr(C)]
1777#[derive(Copy, Clone, Debug)]
1778#[doc(alias = "VkCopyDescriptorSet")]
1779pub struct CopyDescriptorSet {
1780    ///Must be `VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET`.
1781    pub s_type: StructureType,
1782    ///Optional, may be null.
1783    pub p_next: *const core::ffi::c_void,
1784    pub src_set: DescriptorSet,
1785    pub src_binding: u32,
1786    pub src_array_element: u32,
1787    ///**Thread safety:** must be externally synchronized.
1788    pub dst_set: DescriptorSet,
1789    pub dst_binding: u32,
1790    pub dst_array_element: u32,
1791    pub descriptor_count: u32,
1792}
1793impl Default for CopyDescriptorSet {
1794    #[inline]
1795    fn default() -> Self {
1796        Self {
1797            s_type: StructureType::from_raw(36i32),
1798            p_next: core::ptr::null(),
1799            src_set: Default::default(),
1800            src_binding: Default::default(),
1801            src_array_element: Default::default(),
1802            dst_set: Default::default(),
1803            dst_binding: Default::default(),
1804            dst_array_element: Default::default(),
1805            descriptor_count: Default::default(),
1806        }
1807    }
1808}
1809///[`VkBufferUsageFlags2CreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferUsageFlags2CreateInfo.html)
1810/**
1811Provided by **VK_BASE_VERSION_1_4**.*/
1812///
1813///# Extends
1814///- [`BufferViewCreateInfo`]
1815///- [`BufferCreateInfo`]
1816///- [`PhysicalDeviceExternalBufferInfo`]
1817///- [`DescriptorBufferBindingInfoEXT`]
1818#[repr(C)]
1819#[derive(Copy, Clone, Debug)]
1820#[doc(alias = "VkBufferUsageFlags2CreateInfo")]
1821pub struct BufferUsageFlags2CreateInfo {
1822    ///Must be `VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO`.
1823    pub s_type: StructureType,
1824    ///Optional, may be null.
1825    pub p_next: *const core::ffi::c_void,
1826    pub usage: BufferUsageFlags2,
1827}
1828impl Default for BufferUsageFlags2CreateInfo {
1829    #[inline]
1830    fn default() -> Self {
1831        Self {
1832            s_type: StructureType::from_raw(1000470006i32),
1833            p_next: core::ptr::null(),
1834            usage: Default::default(),
1835        }
1836    }
1837}
1838///[`VkBufferCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCreateInfo.html)
1839/**
1840Provided by **VK_BASE_VERSION_1_0**.*/
1841///
1842///# Extended By
1843///- [`BufferCollectionBufferCreateInfoFUCHSIA`]
1844///- [`BufferDeviceAddressCreateInfoEXT`]
1845///- [`BufferOpaqueCaptureAddressCreateInfo`]
1846///- [`BufferUsageFlags2CreateInfo`]
1847///- [`DedicatedAllocationBufferCreateInfoNV`]
1848///- [`ExternalMemoryBufferCreateInfo`]
1849///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
1850///- [`VideoProfileListInfoKHR`]
1851#[repr(C)]
1852#[derive(Copy, Clone, Debug)]
1853#[doc(alias = "VkBufferCreateInfo")]
1854pub struct BufferCreateInfo {
1855    ///Must be `VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO`.
1856    pub s_type: StructureType,
1857    ///Optional, may be null.
1858    pub p_next: *const core::ffi::c_void,
1859    pub flags: BufferCreateFlags,
1860    pub size: u64,
1861    pub usage: BufferUsageFlags,
1862    pub sharing_mode: SharingMode,
1863    ///Length of `p_queue_family_indices`.
1864    pub queue_family_index_count: u32,
1865    pub p_queue_family_indices: *const u32,
1866}
1867impl Default for BufferCreateInfo {
1868    #[inline]
1869    fn default() -> Self {
1870        Self {
1871            s_type: StructureType::from_raw(12i32),
1872            p_next: core::ptr::null(),
1873            flags: Default::default(),
1874            size: Default::default(),
1875            usage: Default::default(),
1876            sharing_mode: Default::default(),
1877            queue_family_index_count: Default::default(),
1878            p_queue_family_indices: core::ptr::null(),
1879        }
1880    }
1881}
1882///[`VkBufferViewCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferViewCreateInfo.html)
1883/**
1884Provided by **VK_COMPUTE_VERSION_1_0**.*/
1885///
1886///# Extended By
1887///- [`BufferUsageFlags2CreateInfo`]
1888///- [`ExportMetalObjectCreateInfoEXT`]
1889#[repr(C)]
1890#[derive(Copy, Clone, Debug)]
1891#[doc(alias = "VkBufferViewCreateInfo")]
1892pub struct BufferViewCreateInfo {
1893    ///Must be `VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO`.
1894    pub s_type: StructureType,
1895    ///Optional, may be null.
1896    pub p_next: *const core::ffi::c_void,
1897    pub flags: BufferViewCreateFlags,
1898    pub buffer: Buffer,
1899    pub format: Format,
1900    pub offset: u64,
1901    pub range: u64,
1902}
1903impl Default for BufferViewCreateInfo {
1904    #[inline]
1905    fn default() -> Self {
1906        Self {
1907            s_type: StructureType::from_raw(13i32),
1908            p_next: core::ptr::null(),
1909            flags: Default::default(),
1910            buffer: Default::default(),
1911            format: Default::default(),
1912            offset: Default::default(),
1913            range: Default::default(),
1914        }
1915    }
1916}
1917///[`VkImageSubresource`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSubresource.html)
1918/**
1919Provided by **VK_BASE_VERSION_1_0**.*/
1920#[repr(C)]
1921#[derive(Copy, Clone, Debug)]
1922#[doc(alias = "VkImageSubresource")]
1923pub struct ImageSubresource {
1924    pub aspect_mask: ImageAspectFlags,
1925    pub mip_level: u32,
1926    pub array_layer: u32,
1927}
1928impl Default for ImageSubresource {
1929    #[inline]
1930    fn default() -> Self {
1931        unsafe { core::mem::zeroed() }
1932    }
1933}
1934///[`VkImageSubresourceLayers`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSubresourceLayers.html)
1935/**
1936Provided by **VK_BASE_VERSION_1_0**.*/
1937#[repr(C)]
1938#[derive(Copy, Clone, Debug)]
1939#[doc(alias = "VkImageSubresourceLayers")]
1940pub struct ImageSubresourceLayers {
1941    pub aspect_mask: ImageAspectFlags,
1942    pub mip_level: u32,
1943    pub base_array_layer: u32,
1944    pub layer_count: u32,
1945}
1946impl Default for ImageSubresourceLayers {
1947    #[inline]
1948    fn default() -> Self {
1949        unsafe { core::mem::zeroed() }
1950    }
1951}
1952///[`VkImageSubresourceRange`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSubresourceRange.html)
1953/**
1954Provided by **VK_BASE_VERSION_1_0**.*/
1955#[repr(C)]
1956#[derive(Copy, Clone, Debug)]
1957#[doc(alias = "VkImageSubresourceRange")]
1958pub struct ImageSubresourceRange {
1959    pub aspect_mask: ImageAspectFlags,
1960    pub base_mip_level: u32,
1961    pub level_count: u32,
1962    pub base_array_layer: u32,
1963    pub layer_count: u32,
1964}
1965impl Default for ImageSubresourceRange {
1966    #[inline]
1967    fn default() -> Self {
1968        unsafe { core::mem::zeroed() }
1969    }
1970}
1971///[`VkMemoryBarrier`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryBarrier.html)
1972/**
1973Provided by **VK_BASE_VERSION_1_0**.*/
1974#[repr(C)]
1975#[derive(Copy, Clone, Debug)]
1976#[doc(alias = "VkMemoryBarrier")]
1977pub struct MemoryBarrier {
1978    ///Must be `VK_STRUCTURE_TYPE_MEMORY_BARRIER`.
1979    pub s_type: StructureType,
1980    ///Optional, may be null.
1981    pub p_next: *const core::ffi::c_void,
1982    pub src_access_mask: AccessFlags,
1983    pub dst_access_mask: AccessFlags,
1984}
1985impl Default for MemoryBarrier {
1986    #[inline]
1987    fn default() -> Self {
1988        Self {
1989            s_type: StructureType::from_raw(46i32),
1990            p_next: core::ptr::null(),
1991            src_access_mask: Default::default(),
1992            dst_access_mask: Default::default(),
1993        }
1994    }
1995}
1996///[`VkBufferMemoryBarrier`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferMemoryBarrier.html)
1997/**
1998Provided by **VK_BASE_VERSION_1_0**.*/
1999///
2000///# Extended By
2001///- [`ExternalMemoryAcquireUnmodifiedEXT`]
2002#[repr(C)]
2003#[derive(Copy, Clone, Debug)]
2004#[doc(alias = "VkBufferMemoryBarrier")]
2005pub struct BufferMemoryBarrier {
2006    ///Must be `VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER`.
2007    pub s_type: StructureType,
2008    ///Optional, may be null.
2009    pub p_next: *const core::ffi::c_void,
2010    pub src_access_mask: AccessFlags,
2011    pub dst_access_mask: AccessFlags,
2012    pub src_queue_family_index: u32,
2013    pub dst_queue_family_index: u32,
2014    pub buffer: Buffer,
2015    pub offset: u64,
2016    pub size: u64,
2017}
2018impl Default for BufferMemoryBarrier {
2019    #[inline]
2020    fn default() -> Self {
2021        Self {
2022            s_type: StructureType::from_raw(44i32),
2023            p_next: core::ptr::null(),
2024            src_access_mask: Default::default(),
2025            dst_access_mask: Default::default(),
2026            src_queue_family_index: Default::default(),
2027            dst_queue_family_index: Default::default(),
2028            buffer: Default::default(),
2029            offset: Default::default(),
2030            size: Default::default(),
2031        }
2032    }
2033}
2034///[`VkImageMemoryBarrier`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageMemoryBarrier.html)
2035/**
2036Provided by **VK_BASE_VERSION_1_0**.*/
2037///
2038///# Extended By
2039///- [`ExternalMemoryAcquireUnmodifiedEXT`]
2040///- [`SampleLocationsInfoEXT`]
2041#[repr(C)]
2042#[derive(Copy, Clone, Debug)]
2043#[doc(alias = "VkImageMemoryBarrier")]
2044pub struct ImageMemoryBarrier {
2045    ///Must be `VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER`.
2046    pub s_type: StructureType,
2047    ///Optional, may be null.
2048    pub p_next: *const core::ffi::c_void,
2049    pub src_access_mask: AccessFlags,
2050    pub dst_access_mask: AccessFlags,
2051    pub old_layout: ImageLayout,
2052    pub new_layout: ImageLayout,
2053    pub src_queue_family_index: u32,
2054    pub dst_queue_family_index: u32,
2055    pub image: Image,
2056    pub subresource_range: ImageSubresourceRange,
2057}
2058impl Default for ImageMemoryBarrier {
2059    #[inline]
2060    fn default() -> Self {
2061        Self {
2062            s_type: StructureType::from_raw(45i32),
2063            p_next: core::ptr::null(),
2064            src_access_mask: Default::default(),
2065            dst_access_mask: Default::default(),
2066            old_layout: Default::default(),
2067            new_layout: Default::default(),
2068            src_queue_family_index: Default::default(),
2069            dst_queue_family_index: Default::default(),
2070            image: Default::default(),
2071            subresource_range: Default::default(),
2072        }
2073    }
2074}
2075///[`VkImageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCreateInfo.html)
2076/**
2077Provided by **VK_BASE_VERSION_1_0**.*/
2078///
2079///# Extended By
2080///- [`BufferCollectionImageCreateInfoFUCHSIA`]
2081///- [`DedicatedAllocationImageCreateInfoNV`]
2082///- [`ExportMetalObjectCreateInfoEXT`]
2083///- [`ExternalFormatANDROID`]
2084///- [`ExternalFormatOHOS`]
2085///- [`ExternalFormatQNX`]
2086///- [`ExternalMemoryImageCreateInfo`]
2087///- [`ExternalMemoryImageCreateInfoNV`]
2088///- [`ImageAlignmentControlCreateInfoMESA`]
2089///- [`ImageCompressionControlEXT`]
2090///- [`ImageDrmFormatModifierExplicitCreateInfoEXT`]
2091///- [`ImageDrmFormatModifierListCreateInfoEXT`]
2092///- [`ImageFormatListCreateInfo`]
2093///- [`ImageStencilUsageCreateInfo`]
2094///- [`ImageSwapchainCreateInfoKHR`]
2095///- [`ImportMetalIOSurfaceInfoEXT`]
2096///- [`ImportMetalTextureInfoEXT`]
2097///- [`NativeBufferANDROID`]
2098///- [`NativeBufferOHOS`]
2099///- [`OpaqueCaptureDataCreateInfoEXT`]
2100///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
2101///- [`OpticalFlowImageFormatInfoNV`]
2102///- [`SwapchainImageCreateInfoANDROID`]
2103///- [`SwapchainImageCreateInfoOHOS`]
2104///- [`VideoProfileListInfoKHR`]
2105#[repr(C)]
2106#[derive(Copy, Clone, Debug)]
2107#[doc(alias = "VkImageCreateInfo")]
2108pub struct ImageCreateInfo {
2109    ///Must be `VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO`.
2110    pub s_type: StructureType,
2111    ///Optional, may be null.
2112    pub p_next: *const core::ffi::c_void,
2113    pub flags: ImageCreateFlags,
2114    pub image_type: ImageType,
2115    pub format: Format,
2116    pub extent: Extent3D,
2117    pub mip_levels: u32,
2118    pub array_layers: u32,
2119    pub samples: SampleCountFlagBits,
2120    pub tiling: ImageTiling,
2121    pub usage: ImageUsageFlags,
2122    pub sharing_mode: SharingMode,
2123    ///Length of `p_queue_family_indices`.
2124    pub queue_family_index_count: u32,
2125    pub p_queue_family_indices: *const u32,
2126    pub initial_layout: ImageLayout,
2127}
2128impl Default for ImageCreateInfo {
2129    #[inline]
2130    fn default() -> Self {
2131        Self {
2132            s_type: StructureType::from_raw(14i32),
2133            p_next: core::ptr::null(),
2134            flags: Default::default(),
2135            image_type: Default::default(),
2136            format: Default::default(),
2137            extent: Default::default(),
2138            mip_levels: Default::default(),
2139            array_layers: Default::default(),
2140            samples: Default::default(),
2141            tiling: Default::default(),
2142            usage: Default::default(),
2143            sharing_mode: Default::default(),
2144            queue_family_index_count: Default::default(),
2145            p_queue_family_indices: core::ptr::null(),
2146            initial_layout: Default::default(),
2147        }
2148    }
2149}
2150///[`VkSubresourceLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubresourceLayout.html)
2151/**
2152Provided by **VK_BASE_VERSION_1_0**.*/
2153#[repr(C)]
2154#[derive(Copy, Clone, Debug)]
2155#[doc(alias = "VkSubresourceLayout")]
2156pub struct SubresourceLayout {
2157    pub offset: u64,
2158    pub size: u64,
2159    pub row_pitch: u64,
2160    pub array_pitch: u64,
2161    pub depth_pitch: u64,
2162}
2163impl Default for SubresourceLayout {
2164    #[inline]
2165    fn default() -> Self {
2166        unsafe { core::mem::zeroed() }
2167    }
2168}
2169///[`VkImageViewCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewCreateInfo.html)
2170/**
2171Provided by **VK_BASE_VERSION_1_0**.*/
2172///
2173///# Extended By
2174///- [`ExportMetalObjectCreateInfoEXT`]
2175///- [`ImageViewASTCDecodeModeEXT`]
2176///- [`ImageViewMinLodCreateInfoEXT`]
2177///- [`ImageViewSampleWeightCreateInfoQCOM`]
2178///- [`ImageViewSlicedCreateInfoEXT`]
2179///- [`ImageViewUsageCreateInfo`]
2180///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
2181///- [`SamplerYcbcrConversionInfo`]
2182#[repr(C)]
2183#[derive(Copy, Clone, Debug)]
2184#[doc(alias = "VkImageViewCreateInfo")]
2185pub struct ImageViewCreateInfo {
2186    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO`.
2187    pub s_type: StructureType,
2188    ///Optional, may be null.
2189    pub p_next: *const core::ffi::c_void,
2190    pub flags: ImageViewCreateFlags,
2191    pub image: Image,
2192    pub view_type: ImageViewType,
2193    pub format: Format,
2194    pub components: ComponentMapping,
2195    pub subresource_range: ImageSubresourceRange,
2196}
2197impl Default for ImageViewCreateInfo {
2198    #[inline]
2199    fn default() -> Self {
2200        Self {
2201            s_type: StructureType::from_raw(15i32),
2202            p_next: core::ptr::null(),
2203            flags: Default::default(),
2204            image: Default::default(),
2205            view_type: Default::default(),
2206            format: Default::default(),
2207            components: Default::default(),
2208            subresource_range: Default::default(),
2209        }
2210    }
2211}
2212///[`VkBufferCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCopy.html)
2213/**
2214Provided by **VK_BASE_VERSION_1_0**.*/
2215#[repr(C)]
2216#[derive(Copy, Clone, Debug)]
2217#[doc(alias = "VkBufferCopy")]
2218pub struct BufferCopy {
2219    pub src_offset: u64,
2220    pub dst_offset: u64,
2221    pub size: u64,
2222}
2223impl Default for BufferCopy {
2224    #[inline]
2225    fn default() -> Self {
2226        unsafe { core::mem::zeroed() }
2227    }
2228}
2229///[`VkSparseMemoryBind`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseMemoryBind.html)
2230/**
2231Provided by **VK_BASE_VERSION_1_0**.*/
2232#[repr(C)]
2233#[derive(Copy, Clone, Debug)]
2234#[doc(alias = "VkSparseMemoryBind")]
2235pub struct SparseMemoryBind {
2236    pub resource_offset: u64,
2237    pub size: u64,
2238    pub memory: DeviceMemory,
2239    pub memory_offset: u64,
2240    pub flags: SparseMemoryBindFlags,
2241}
2242impl Default for SparseMemoryBind {
2243    #[inline]
2244    fn default() -> Self {
2245        unsafe { core::mem::zeroed() }
2246    }
2247}
2248///[`VkSparseImageMemoryBind`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageMemoryBind.html)
2249/**
2250Provided by **VK_BASE_VERSION_1_0**.*/
2251#[repr(C)]
2252#[derive(Copy, Clone, Debug)]
2253#[doc(alias = "VkSparseImageMemoryBind")]
2254pub struct SparseImageMemoryBind {
2255    pub subresource: ImageSubresource,
2256    pub offset: Offset3D,
2257    pub extent: Extent3D,
2258    pub memory: DeviceMemory,
2259    pub memory_offset: u64,
2260    pub flags: SparseMemoryBindFlags,
2261}
2262impl Default for SparseImageMemoryBind {
2263    #[inline]
2264    fn default() -> Self {
2265        unsafe { core::mem::zeroed() }
2266    }
2267}
2268///[`VkSparseBufferMemoryBindInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseBufferMemoryBindInfo.html)
2269/**
2270Provided by **VK_BASE_VERSION_1_0**.*/
2271#[repr(C)]
2272#[derive(Copy, Clone, Debug)]
2273#[doc(alias = "VkSparseBufferMemoryBindInfo")]
2274pub struct SparseBufferMemoryBindInfo {
2275    pub buffer: Buffer,
2276    ///Length of `p_binds`.
2277    pub bind_count: u32,
2278    pub p_binds: *const SparseMemoryBind,
2279}
2280impl Default for SparseBufferMemoryBindInfo {
2281    #[inline]
2282    fn default() -> Self {
2283        unsafe { core::mem::zeroed() }
2284    }
2285}
2286///[`VkSparseImageOpaqueMemoryBindInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageOpaqueMemoryBindInfo.html)
2287/**
2288Provided by **VK_BASE_VERSION_1_0**.*/
2289#[repr(C)]
2290#[derive(Copy, Clone, Debug)]
2291#[doc(alias = "VkSparseImageOpaqueMemoryBindInfo")]
2292pub struct SparseImageOpaqueMemoryBindInfo {
2293    pub image: Image,
2294    ///Length of `p_binds`.
2295    pub bind_count: u32,
2296    pub p_binds: *const SparseMemoryBind,
2297}
2298impl Default for SparseImageOpaqueMemoryBindInfo {
2299    #[inline]
2300    fn default() -> Self {
2301        unsafe { core::mem::zeroed() }
2302    }
2303}
2304///[`VkSparseImageMemoryBindInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageMemoryBindInfo.html)
2305/**
2306Provided by **VK_BASE_VERSION_1_0**.*/
2307#[repr(C)]
2308#[derive(Copy, Clone, Debug)]
2309#[doc(alias = "VkSparseImageMemoryBindInfo")]
2310pub struct SparseImageMemoryBindInfo {
2311    pub image: Image,
2312    ///Length of `p_binds`.
2313    pub bind_count: u32,
2314    pub p_binds: *const SparseImageMemoryBind,
2315}
2316impl Default for SparseImageMemoryBindInfo {
2317    #[inline]
2318    fn default() -> Self {
2319        unsafe { core::mem::zeroed() }
2320    }
2321}
2322///[`VkBindSparseInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindSparseInfo.html)
2323/**
2324Provided by **VK_BASE_VERSION_1_0**.*/
2325///
2326///# Extended By
2327///- [`DeviceGroupBindSparseInfo`]
2328///- [`FrameBoundaryEXT`]
2329///- [`FrameBoundaryTensorsARM`]
2330///- [`TimelineSemaphoreSubmitInfo`]
2331#[repr(C)]
2332#[derive(Copy, Clone, Debug)]
2333#[doc(alias = "VkBindSparseInfo")]
2334pub struct BindSparseInfo {
2335    ///Must be `VK_STRUCTURE_TYPE_BIND_SPARSE_INFO`.
2336    pub s_type: StructureType,
2337    ///Optional, may be null.
2338    pub p_next: *const core::ffi::c_void,
2339    ///Length of `p_wait_semaphores`.
2340    pub wait_semaphore_count: u32,
2341    pub p_wait_semaphores: *const Semaphore,
2342    ///Length of `p_buffer_binds`.
2343    pub buffer_bind_count: u32,
2344    pub p_buffer_binds: *const SparseBufferMemoryBindInfo,
2345    ///Length of `p_image_opaque_binds`.
2346    pub image_opaque_bind_count: u32,
2347    pub p_image_opaque_binds: *const SparseImageOpaqueMemoryBindInfo,
2348    ///Length of `p_image_binds`.
2349    pub image_bind_count: u32,
2350    pub p_image_binds: *const SparseImageMemoryBindInfo,
2351    ///Length of `p_signal_semaphores`.
2352    pub signal_semaphore_count: u32,
2353    pub p_signal_semaphores: *const Semaphore,
2354}
2355impl Default for BindSparseInfo {
2356    #[inline]
2357    fn default() -> Self {
2358        Self {
2359            s_type: StructureType::from_raw(7i32),
2360            p_next: core::ptr::null(),
2361            wait_semaphore_count: Default::default(),
2362            p_wait_semaphores: core::ptr::null(),
2363            buffer_bind_count: Default::default(),
2364            p_buffer_binds: core::ptr::null(),
2365            image_opaque_bind_count: Default::default(),
2366            p_image_opaque_binds: core::ptr::null(),
2367            image_bind_count: Default::default(),
2368            p_image_binds: core::ptr::null(),
2369            signal_semaphore_count: Default::default(),
2370            p_signal_semaphores: core::ptr::null(),
2371        }
2372    }
2373}
2374///[`VkImageCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCopy.html)
2375/**
2376Provided by **VK_BASE_VERSION_1_0**.*/
2377#[repr(C)]
2378#[derive(Copy, Clone, Debug)]
2379#[doc(alias = "VkImageCopy")]
2380pub struct ImageCopy {
2381    pub src_subresource: ImageSubresourceLayers,
2382    pub src_offset: Offset3D,
2383    pub dst_subresource: ImageSubresourceLayers,
2384    pub dst_offset: Offset3D,
2385    pub extent: Extent3D,
2386}
2387impl Default for ImageCopy {
2388    #[inline]
2389    fn default() -> Self {
2390        unsafe { core::mem::zeroed() }
2391    }
2392}
2393///[`VkImageBlit`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageBlit.html)
2394/**
2395Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2396#[repr(C)]
2397#[derive(Copy, Clone, Debug)]
2398#[doc(alias = "VkImageBlit")]
2399pub struct ImageBlit {
2400    pub src_subresource: ImageSubresourceLayers,
2401    pub src_offsets: [Offset3D; 2usize],
2402    pub dst_subresource: ImageSubresourceLayers,
2403    pub dst_offsets: [Offset3D; 2usize],
2404}
2405impl Default for ImageBlit {
2406    #[inline]
2407    fn default() -> Self {
2408        unsafe { core::mem::zeroed() }
2409    }
2410}
2411///[`VkBufferImageCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferImageCopy.html)
2412/**
2413Provided by **VK_BASE_VERSION_1_0**.*/
2414#[repr(C)]
2415#[derive(Copy, Clone, Debug)]
2416#[doc(alias = "VkBufferImageCopy")]
2417pub struct BufferImageCopy {
2418    pub buffer_offset: u64,
2419    pub buffer_row_length: u32,
2420    pub buffer_image_height: u32,
2421    pub image_subresource: ImageSubresourceLayers,
2422    pub image_offset: Offset3D,
2423    pub image_extent: Extent3D,
2424}
2425impl Default for BufferImageCopy {
2426    #[inline]
2427    fn default() -> Self {
2428        unsafe { core::mem::zeroed() }
2429    }
2430}
2431///[`VkStridedDeviceAddressRangeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStridedDeviceAddressRangeKHR.html)
2432/**
2433Provided by **VK_KHR_device_address_commands**.*/
2434#[repr(C)]
2435#[derive(Copy, Clone, Debug)]
2436#[doc(alias = "VkStridedDeviceAddressRangeKHR")]
2437pub struct StridedDeviceAddressRangeKHR {
2438    pub address: u64,
2439    pub size: u64,
2440    pub stride: u64,
2441}
2442impl Default for StridedDeviceAddressRangeKHR {
2443    #[inline]
2444    fn default() -> Self {
2445        unsafe { core::mem::zeroed() }
2446    }
2447}
2448///[`VkCopyMemoryIndirectCommandKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryIndirectCommandKHR.html)
2449/**
2450Provided by **VK_KHR_copy_memory_indirect**.*/
2451#[repr(C)]
2452#[derive(Copy, Clone, Debug)]
2453#[doc(alias = "VkCopyMemoryIndirectCommandKHR")]
2454pub struct CopyMemoryIndirectCommandKHR {
2455    pub src_address: u64,
2456    pub dst_address: u64,
2457    pub size: u64,
2458}
2459impl Default for CopyMemoryIndirectCommandKHR {
2460    #[inline]
2461    fn default() -> Self {
2462        unsafe { core::mem::zeroed() }
2463    }
2464}
2465///[`VkCopyMemoryIndirectInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryIndirectInfoKHR.html)
2466/**
2467Provided by **VK_KHR_copy_memory_indirect**.*/
2468#[repr(C)]
2469#[derive(Copy, Clone, Debug)]
2470#[doc(alias = "VkCopyMemoryIndirectInfoKHR")]
2471pub struct CopyMemoryIndirectInfoKHR {
2472    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR`.
2473    pub s_type: StructureType,
2474    ///Optional, may be null.
2475    pub p_next: *const core::ffi::c_void,
2476    pub src_copy_flags: AddressCopyFlagsKHR,
2477    pub dst_copy_flags: AddressCopyFlagsKHR,
2478    pub copy_count: u32,
2479    pub copy_address_range: StridedDeviceAddressRangeKHR,
2480}
2481impl Default for CopyMemoryIndirectInfoKHR {
2482    #[inline]
2483    fn default() -> Self {
2484        Self {
2485            s_type: StructureType::from_raw(1000549002i32),
2486            p_next: core::ptr::null(),
2487            src_copy_flags: Default::default(),
2488            dst_copy_flags: Default::default(),
2489            copy_count: Default::default(),
2490            copy_address_range: Default::default(),
2491        }
2492    }
2493}
2494///[`VkCopyMemoryToImageIndirectCommandKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageIndirectCommandKHR.html)
2495/**
2496Provided by **VK_KHR_copy_memory_indirect**.*/
2497#[repr(C)]
2498#[derive(Copy, Clone, Debug)]
2499#[doc(alias = "VkCopyMemoryToImageIndirectCommandKHR")]
2500pub struct CopyMemoryToImageIndirectCommandKHR {
2501    pub src_address: u64,
2502    pub buffer_row_length: u32,
2503    pub buffer_image_height: u32,
2504    pub image_subresource: ImageSubresourceLayers,
2505    pub image_offset: Offset3D,
2506    pub image_extent: Extent3D,
2507}
2508impl Default for CopyMemoryToImageIndirectCommandKHR {
2509    #[inline]
2510    fn default() -> Self {
2511        unsafe { core::mem::zeroed() }
2512    }
2513}
2514///[`VkCopyMemoryToImageIndirectInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageIndirectInfoKHR.html)
2515/**
2516Provided by **VK_KHR_copy_memory_indirect**.*/
2517#[repr(C)]
2518#[derive(Copy, Clone, Debug)]
2519#[doc(alias = "VkCopyMemoryToImageIndirectInfoKHR")]
2520pub struct CopyMemoryToImageIndirectInfoKHR {
2521    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR`.
2522    pub s_type: StructureType,
2523    ///Optional, may be null.
2524    pub p_next: *const core::ffi::c_void,
2525    pub src_copy_flags: AddressCopyFlagsKHR,
2526    ///Length of `p_image_subresources`.
2527    pub copy_count: u32,
2528    pub copy_address_range: StridedDeviceAddressRangeKHR,
2529    pub dst_image: Image,
2530    pub dst_image_layout: ImageLayout,
2531    pub p_image_subresources: *const ImageSubresourceLayers,
2532}
2533impl Default for CopyMemoryToImageIndirectInfoKHR {
2534    #[inline]
2535    fn default() -> Self {
2536        Self {
2537            s_type: StructureType::from_raw(1000549003i32),
2538            p_next: core::ptr::null(),
2539            src_copy_flags: Default::default(),
2540            copy_count: Default::default(),
2541            copy_address_range: Default::default(),
2542            dst_image: Default::default(),
2543            dst_image_layout: Default::default(),
2544            p_image_subresources: core::ptr::null(),
2545        }
2546    }
2547}
2548///[`VkImageResolve`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageResolve.html)
2549/**
2550Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2551#[repr(C)]
2552#[derive(Copy, Clone, Debug)]
2553#[doc(alias = "VkImageResolve")]
2554pub struct ImageResolve {
2555    pub src_subresource: ImageSubresourceLayers,
2556    pub src_offset: Offset3D,
2557    pub dst_subresource: ImageSubresourceLayers,
2558    pub dst_offset: Offset3D,
2559    pub extent: Extent3D,
2560}
2561impl Default for ImageResolve {
2562    #[inline]
2563    fn default() -> Self {
2564        unsafe { core::mem::zeroed() }
2565    }
2566}
2567///[`VkShaderModuleCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderModuleCreateInfo.html)
2568/**
2569Provided by **VK_COMPUTE_VERSION_1_0**.*/
2570///
2571///# Extends
2572///- [`PipelineShaderStageCreateInfo`]
2573///- [`DataGraphPipelineCreateInfoARM`]
2574///
2575///# Extended By
2576///- [`ShaderModuleValidationCacheCreateInfoEXT`]
2577///- [`ValidationFeaturesEXT`]
2578#[repr(C)]
2579#[derive(Copy, Clone, Debug)]
2580#[doc(alias = "VkShaderModuleCreateInfo")]
2581pub struct ShaderModuleCreateInfo {
2582    ///Must be `VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO`.
2583    pub s_type: StructureType,
2584    ///Optional, may be null.
2585    pub p_next: *const core::ffi::c_void,
2586    pub flags: ShaderModuleCreateFlags,
2587    pub code_size: usize,
2588    pub p_code: *const u32,
2589}
2590impl Default for ShaderModuleCreateInfo {
2591    #[inline]
2592    fn default() -> Self {
2593        Self {
2594            s_type: StructureType::from_raw(16i32),
2595            p_next: core::ptr::null(),
2596            flags: Default::default(),
2597            code_size: Default::default(),
2598            p_code: core::ptr::null(),
2599        }
2600    }
2601}
2602///[`VkDescriptorSetLayoutBinding`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutBinding.html)
2603/**
2604Provided by **VK_COMPUTE_VERSION_1_0**.*/
2605#[repr(C)]
2606#[derive(Copy, Clone, Debug)]
2607#[doc(alias = "VkDescriptorSetLayoutBinding")]
2608pub struct DescriptorSetLayoutBinding {
2609    pub binding: u32,
2610    pub descriptor_type: DescriptorType,
2611    ///Length of `p_immutable_samplers`.
2612    pub descriptor_count: u32,
2613    pub stage_flags: ShaderStageFlags,
2614    ///Optional, may be null.
2615    pub p_immutable_samplers: *const Sampler,
2616}
2617impl Default for DescriptorSetLayoutBinding {
2618    #[inline]
2619    fn default() -> Self {
2620        unsafe { core::mem::zeroed() }
2621    }
2622}
2623///[`VkDescriptorSetLayoutCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutCreateInfo.html)
2624/**
2625Provided by **VK_COMPUTE_VERSION_1_0**.*/
2626///
2627///# Extended By
2628///- [`DescriptorSetLayoutBindingFlagsCreateInfo`]
2629///- [`MutableDescriptorTypeCreateInfoEXT`]
2630#[repr(C)]
2631#[derive(Copy, Clone, Debug)]
2632#[doc(alias = "VkDescriptorSetLayoutCreateInfo")]
2633pub struct DescriptorSetLayoutCreateInfo {
2634    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO`.
2635    pub s_type: StructureType,
2636    ///Optional, may be null.
2637    pub p_next: *const core::ffi::c_void,
2638    pub flags: DescriptorSetLayoutCreateFlags,
2639    ///Length of `p_bindings`.
2640    pub binding_count: u32,
2641    pub p_bindings: *const DescriptorSetLayoutBinding,
2642}
2643impl Default for DescriptorSetLayoutCreateInfo {
2644    #[inline]
2645    fn default() -> Self {
2646        Self {
2647            s_type: StructureType::from_raw(32i32),
2648            p_next: core::ptr::null(),
2649            flags: Default::default(),
2650            binding_count: Default::default(),
2651            p_bindings: core::ptr::null(),
2652        }
2653    }
2654}
2655///[`VkDescriptorPoolSize`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorPoolSize.html)
2656/**
2657Provided by **VK_COMPUTE_VERSION_1_0**.*/
2658#[repr(C)]
2659#[derive(Copy, Clone, Debug)]
2660#[doc(alias = "VkDescriptorPoolSize")]
2661pub struct DescriptorPoolSize {
2662    pub r#type: DescriptorType,
2663    pub descriptor_count: u32,
2664}
2665impl Default for DescriptorPoolSize {
2666    #[inline]
2667    fn default() -> Self {
2668        unsafe { core::mem::zeroed() }
2669    }
2670}
2671///[`VkDescriptorPoolCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorPoolCreateInfo.html)
2672/**
2673Provided by **VK_COMPUTE_VERSION_1_0**.*/
2674///
2675///# Extended By
2676///- [`DataGraphProcessingEngineCreateInfoARM`]
2677///- [`DescriptorPoolInlineUniformBlockCreateInfo`]
2678///- [`MutableDescriptorTypeCreateInfoEXT`]
2679#[repr(C)]
2680#[derive(Copy, Clone, Debug)]
2681#[doc(alias = "VkDescriptorPoolCreateInfo")]
2682pub struct DescriptorPoolCreateInfo {
2683    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO`.
2684    pub s_type: StructureType,
2685    ///Optional, may be null.
2686    pub p_next: *const core::ffi::c_void,
2687    pub flags: DescriptorPoolCreateFlags,
2688    pub max_sets: u32,
2689    ///Length of `p_pool_sizes`.
2690    pub pool_size_count: u32,
2691    pub p_pool_sizes: *const DescriptorPoolSize,
2692}
2693impl Default for DescriptorPoolCreateInfo {
2694    #[inline]
2695    fn default() -> Self {
2696        Self {
2697            s_type: StructureType::from_raw(33i32),
2698            p_next: core::ptr::null(),
2699            flags: Default::default(),
2700            max_sets: Default::default(),
2701            pool_size_count: Default::default(),
2702            p_pool_sizes: core::ptr::null(),
2703        }
2704    }
2705}
2706///[`VkDescriptorSetAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetAllocateInfo.html)
2707/**
2708Provided by **VK_COMPUTE_VERSION_1_0**.*/
2709///
2710///# Extended By
2711///- [`DescriptorSetVariableDescriptorCountAllocateInfo`]
2712#[repr(C)]
2713#[derive(Copy, Clone, Debug)]
2714#[doc(alias = "VkDescriptorSetAllocateInfo")]
2715pub struct DescriptorSetAllocateInfo {
2716    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO`.
2717    pub s_type: StructureType,
2718    ///Optional, may be null.
2719    pub p_next: *const core::ffi::c_void,
2720    ///**Thread safety:** must be externally synchronized.
2721    pub descriptor_pool: DescriptorPool,
2722    ///Length of `p_set_layouts`.
2723    pub descriptor_set_count: u32,
2724    pub p_set_layouts: *const DescriptorSetLayout,
2725}
2726impl Default for DescriptorSetAllocateInfo {
2727    #[inline]
2728    fn default() -> Self {
2729        Self {
2730            s_type: StructureType::from_raw(34i32),
2731            p_next: core::ptr::null(),
2732            descriptor_pool: Default::default(),
2733            descriptor_set_count: Default::default(),
2734            p_set_layouts: core::ptr::null(),
2735        }
2736    }
2737}
2738///[`VkSpecializationMapEntry`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSpecializationMapEntry.html)
2739/**
2740Provided by **VK_COMPUTE_VERSION_1_0**.*/
2741#[repr(C)]
2742#[derive(Copy, Clone, Debug)]
2743#[doc(alias = "VkSpecializationMapEntry")]
2744pub struct SpecializationMapEntry {
2745    pub constant_id: u32,
2746    pub offset: u32,
2747    pub size: usize,
2748}
2749impl Default for SpecializationMapEntry {
2750    #[inline]
2751    fn default() -> Self {
2752        unsafe { core::mem::zeroed() }
2753    }
2754}
2755///[`VkSpecializationInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSpecializationInfo.html)
2756/**
2757Provided by **VK_COMPUTE_VERSION_1_0**.*/
2758#[repr(C)]
2759#[derive(Copy, Clone, Debug)]
2760#[doc(alias = "VkSpecializationInfo")]
2761pub struct SpecializationInfo {
2762    ///Length of `p_map_entries`.
2763    pub map_entry_count: u32,
2764    pub p_map_entries: *const SpecializationMapEntry,
2765    ///Length of `p_data`.
2766    pub data_size: usize,
2767    pub p_data: *const core::ffi::c_void,
2768}
2769impl Default for SpecializationInfo {
2770    #[inline]
2771    fn default() -> Self {
2772        unsafe { core::mem::zeroed() }
2773    }
2774}
2775///[`VkPipelineShaderStageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineShaderStageCreateInfo.html)
2776/**
2777Provided by **VK_COMPUTE_VERSION_1_0**.*/
2778///
2779///# Extended By
2780///- [`DebugUtilsObjectNameInfoEXT`]
2781///- [`PipelineRobustnessCreateInfo`]
2782///- [`PipelineShaderStageModuleIdentifierCreateInfoEXT`]
2783///- [`PipelineShaderStageNodeCreateInfoAMDX`]
2784///- [`PipelineShaderStageRequiredSubgroupSizeCreateInfo`]
2785///- [`ShaderDescriptorSetAndBindingMappingInfoEXT`]
2786///- [`ShaderModuleCreateInfo`]
2787///- [`ShaderModuleValidationCacheCreateInfoEXT`]
2788#[repr(C)]
2789#[derive(Copy, Clone, Debug)]
2790#[doc(alias = "VkPipelineShaderStageCreateInfo")]
2791pub struct PipelineShaderStageCreateInfo {
2792    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO`.
2793    pub s_type: StructureType,
2794    ///Optional, may be null.
2795    pub p_next: *const core::ffi::c_void,
2796    pub flags: PipelineShaderStageCreateFlags,
2797    pub stage: ShaderStageFlagBits,
2798    pub module: ShaderModule,
2799    pub p_name: *const core::ffi::c_char,
2800    ///Optional, may be null.
2801    pub p_specialization_info: *const SpecializationInfo,
2802}
2803impl Default for PipelineShaderStageCreateInfo {
2804    #[inline]
2805    fn default() -> Self {
2806        Self {
2807            s_type: StructureType::from_raw(18i32),
2808            p_next: core::ptr::null(),
2809            flags: Default::default(),
2810            stage: Default::default(),
2811            module: Default::default(),
2812            p_name: core::ptr::null(),
2813            p_specialization_info: core::ptr::null(),
2814        }
2815    }
2816}
2817///[`VkComputePipelineCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkComputePipelineCreateInfo.html)
2818/**
2819Provided by **VK_COMPUTE_VERSION_1_0**.*/
2820///
2821///# Extended By
2822///- [`ComputePipelineIndirectBufferInfoNV`]
2823///- [`PipelineBinaryInfoKHR`]
2824///- [`PipelineCompilerControlCreateInfoAMD`]
2825///- [`PipelineCreateFlags2CreateInfo`]
2826///- [`PipelineCreationFeedbackCreateInfo`]
2827///- [`PipelineOfflineCreateInfo`]
2828///- [`PipelineRobustnessCreateInfo`]
2829///- [`SubpassShadingPipelineCreateInfoHUAWEI`]
2830#[repr(C)]
2831#[derive(Copy, Clone, Debug)]
2832#[doc(alias = "VkComputePipelineCreateInfo")]
2833pub struct ComputePipelineCreateInfo {
2834    ///Must be `VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO`.
2835    pub s_type: StructureType,
2836    ///Optional, may be null.
2837    pub p_next: *const core::ffi::c_void,
2838    pub flags: PipelineCreateFlags,
2839    pub stage: PipelineShaderStageCreateInfo,
2840    pub layout: PipelineLayout,
2841    pub base_pipeline_handle: Pipeline,
2842    pub base_pipeline_index: i32,
2843}
2844impl Default for ComputePipelineCreateInfo {
2845    #[inline]
2846    fn default() -> Self {
2847        Self {
2848            s_type: StructureType::from_raw(29i32),
2849            p_next: core::ptr::null(),
2850            flags: Default::default(),
2851            stage: Default::default(),
2852            layout: Default::default(),
2853            base_pipeline_handle: Default::default(),
2854            base_pipeline_index: Default::default(),
2855        }
2856    }
2857}
2858///[`VkComputePipelineIndirectBufferInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkComputePipelineIndirectBufferInfoNV.html)
2859/**
2860Provided by **VK_NV_device_generated_commands_compute**.*/
2861///
2862///# Extends
2863///- [`ComputePipelineCreateInfo`]
2864#[repr(C)]
2865#[derive(Copy, Clone, Debug)]
2866#[doc(alias = "VkComputePipelineIndirectBufferInfoNV")]
2867pub struct ComputePipelineIndirectBufferInfoNV {
2868    ///Must be `VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV`.
2869    pub s_type: StructureType,
2870    ///Optional, may be null.
2871    pub p_next: *const core::ffi::c_void,
2872    pub device_address: u64,
2873    pub size: u64,
2874    pub pipeline_device_address_capture_replay: u64,
2875}
2876impl Default for ComputePipelineIndirectBufferInfoNV {
2877    #[inline]
2878    fn default() -> Self {
2879        Self {
2880            s_type: StructureType::from_raw(1000428001i32),
2881            p_next: core::ptr::null(),
2882            device_address: Default::default(),
2883            size: Default::default(),
2884            pipeline_device_address_capture_replay: Default::default(),
2885        }
2886    }
2887}
2888///[`VkPipelineCreateFlags2CreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCreateFlags2CreateInfo.html)
2889/**
2890Provided by **VK_COMPUTE_VERSION_1_4**.*/
2891///
2892///# Extends
2893///- [`ComputePipelineCreateInfo`]
2894///- [`GraphicsPipelineCreateInfo`]
2895///- [`RayTracingPipelineCreateInfoNV`]
2896///- [`RayTracingPipelineCreateInfoKHR`]
2897#[repr(C)]
2898#[derive(Copy, Clone, Debug)]
2899#[doc(alias = "VkPipelineCreateFlags2CreateInfo")]
2900pub struct PipelineCreateFlags2CreateInfo {
2901    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO`.
2902    pub s_type: StructureType,
2903    ///Optional, may be null.
2904    pub p_next: *const core::ffi::c_void,
2905    pub flags: PipelineCreateFlags2,
2906}
2907impl Default for PipelineCreateFlags2CreateInfo {
2908    #[inline]
2909    fn default() -> Self {
2910        Self {
2911            s_type: StructureType::from_raw(1000470005i32),
2912            p_next: core::ptr::null(),
2913            flags: Default::default(),
2914        }
2915    }
2916}
2917///[`VkVertexInputBindingDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputBindingDescription.html)
2918/**
2919Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2920#[repr(C)]
2921#[derive(Copy, Clone, Debug)]
2922#[doc(alias = "VkVertexInputBindingDescription")]
2923pub struct VertexInputBindingDescription {
2924    pub binding: u32,
2925    pub stride: u32,
2926    pub input_rate: VertexInputRate,
2927}
2928impl Default for VertexInputBindingDescription {
2929    #[inline]
2930    fn default() -> Self {
2931        unsafe { core::mem::zeroed() }
2932    }
2933}
2934///[`VkVertexInputAttributeDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputAttributeDescription.html)
2935/**
2936Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2937#[repr(C)]
2938#[derive(Copy, Clone, Debug)]
2939#[doc(alias = "VkVertexInputAttributeDescription")]
2940pub struct VertexInputAttributeDescription {
2941    pub location: u32,
2942    pub binding: u32,
2943    pub format: Format,
2944    pub offset: u32,
2945}
2946impl Default for VertexInputAttributeDescription {
2947    #[inline]
2948    fn default() -> Self {
2949        unsafe { core::mem::zeroed() }
2950    }
2951}
2952///[`VkPipelineVertexInputStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineVertexInputStateCreateInfo.html)
2953/**
2954Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2955///
2956///# Extended By
2957///- [`PipelineVertexInputDivisorStateCreateInfo`]
2958#[repr(C)]
2959#[derive(Copy, Clone, Debug)]
2960#[doc(alias = "VkPipelineVertexInputStateCreateInfo")]
2961pub struct PipelineVertexInputStateCreateInfo {
2962    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO`.
2963    pub s_type: StructureType,
2964    ///Optional, may be null.
2965    pub p_next: *const core::ffi::c_void,
2966    pub flags: PipelineVertexInputStateCreateFlags,
2967    ///Length of `p_vertex_binding_descriptions`.
2968    pub vertex_binding_description_count: u32,
2969    pub p_vertex_binding_descriptions: *const VertexInputBindingDescription,
2970    ///Length of `p_vertex_attribute_descriptions`.
2971    pub vertex_attribute_description_count: u32,
2972    pub p_vertex_attribute_descriptions: *const VertexInputAttributeDescription,
2973}
2974impl Default for PipelineVertexInputStateCreateInfo {
2975    #[inline]
2976    fn default() -> Self {
2977        Self {
2978            s_type: StructureType::from_raw(19i32),
2979            p_next: core::ptr::null(),
2980            flags: Default::default(),
2981            vertex_binding_description_count: Default::default(),
2982            p_vertex_binding_descriptions: core::ptr::null(),
2983            vertex_attribute_description_count: Default::default(),
2984            p_vertex_attribute_descriptions: core::ptr::null(),
2985        }
2986    }
2987}
2988///[`VkPipelineInputAssemblyStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineInputAssemblyStateCreateInfo.html)
2989/**
2990Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2991#[repr(C)]
2992#[derive(Copy, Clone, Debug)]
2993#[doc(alias = "VkPipelineInputAssemblyStateCreateInfo")]
2994pub struct PipelineInputAssemblyStateCreateInfo {
2995    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO`.
2996    pub s_type: StructureType,
2997    ///Optional, may be null.
2998    pub p_next: *const core::ffi::c_void,
2999    pub flags: PipelineInputAssemblyStateCreateFlags,
3000    pub topology: PrimitiveTopology,
3001    pub primitive_restart_enable: u32,
3002}
3003impl Default for PipelineInputAssemblyStateCreateInfo {
3004    #[inline]
3005    fn default() -> Self {
3006        Self {
3007            s_type: StructureType::from_raw(20i32),
3008            p_next: core::ptr::null(),
3009            flags: Default::default(),
3010            topology: Default::default(),
3011            primitive_restart_enable: Default::default(),
3012        }
3013    }
3014}
3015///[`VkPipelineTessellationStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineTessellationStateCreateInfo.html)
3016/**
3017Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3018///
3019///# Extended By
3020///- [`PipelineTessellationDomainOriginStateCreateInfo`]
3021#[repr(C)]
3022#[derive(Copy, Clone, Debug)]
3023#[doc(alias = "VkPipelineTessellationStateCreateInfo")]
3024pub struct PipelineTessellationStateCreateInfo {
3025    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO`.
3026    pub s_type: StructureType,
3027    ///Optional, may be null.
3028    pub p_next: *const core::ffi::c_void,
3029    pub flags: PipelineTessellationStateCreateFlags,
3030    pub patch_control_points: u32,
3031}
3032impl Default for PipelineTessellationStateCreateInfo {
3033    #[inline]
3034    fn default() -> Self {
3035        Self {
3036            s_type: StructureType::from_raw(21i32),
3037            p_next: core::ptr::null(),
3038            flags: Default::default(),
3039            patch_control_points: Default::default(),
3040        }
3041    }
3042}
3043///[`VkPipelineViewportStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportStateCreateInfo.html)
3044/**
3045Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3046///
3047///# Extended By
3048///- [`PipelineViewportCoarseSampleOrderStateCreateInfoNV`]
3049///- [`PipelineViewportDepthClampControlCreateInfoEXT`]
3050///- [`PipelineViewportDepthClipControlCreateInfoEXT`]
3051///- [`PipelineViewportExclusiveScissorStateCreateInfoNV`]
3052///- [`PipelineViewportShadingRateImageStateCreateInfoNV`]
3053///- [`PipelineViewportSwizzleStateCreateInfoNV`]
3054///- [`PipelineViewportWScalingStateCreateInfoNV`]
3055#[repr(C)]
3056#[derive(Copy, Clone, Debug)]
3057#[doc(alias = "VkPipelineViewportStateCreateInfo")]
3058pub struct PipelineViewportStateCreateInfo {
3059    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO`.
3060    pub s_type: StructureType,
3061    ///Optional, may be null.
3062    pub p_next: *const core::ffi::c_void,
3063    pub flags: PipelineViewportStateCreateFlags,
3064    ///Length of `p_viewports`.
3065    pub viewport_count: u32,
3066    ///Optional, may be null.
3067    pub p_viewports: *const Viewport,
3068    ///Length of `p_scissors`.
3069    pub scissor_count: u32,
3070    ///Optional, may be null.
3071    pub p_scissors: *const Rect2D,
3072}
3073impl Default for PipelineViewportStateCreateInfo {
3074    #[inline]
3075    fn default() -> Self {
3076        Self {
3077            s_type: StructureType::from_raw(22i32),
3078            p_next: core::ptr::null(),
3079            flags: Default::default(),
3080            viewport_count: Default::default(),
3081            p_viewports: core::ptr::null(),
3082            scissor_count: Default::default(),
3083            p_scissors: core::ptr::null(),
3084        }
3085    }
3086}
3087///[`VkPipelineRasterizationStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationStateCreateInfo.html)
3088/**
3089Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3090///
3091///# Extended By
3092///- [`DepthBiasRepresentationInfoEXT`]
3093///- [`PipelineRasterizationConservativeStateCreateInfoEXT`]
3094///- [`PipelineRasterizationDepthClipStateCreateInfoEXT`]
3095///- [`PipelineRasterizationLineStateCreateInfo`]
3096///- [`PipelineRasterizationProvokingVertexStateCreateInfoEXT`]
3097///- [`PipelineRasterizationStateRasterizationOrderAMD`]
3098///- [`PipelineRasterizationStateStreamCreateInfoEXT`]
3099#[repr(C)]
3100#[derive(Copy, Clone, Debug)]
3101#[doc(alias = "VkPipelineRasterizationStateCreateInfo")]
3102pub struct PipelineRasterizationStateCreateInfo {
3103    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO`.
3104    pub s_type: StructureType,
3105    ///Optional, may be null.
3106    pub p_next: *const core::ffi::c_void,
3107    pub flags: PipelineRasterizationStateCreateFlags,
3108    pub depth_clamp_enable: u32,
3109    pub rasterizer_discard_enable: u32,
3110    pub polygon_mode: PolygonMode,
3111    pub cull_mode: CullModeFlags,
3112    pub front_face: FrontFace,
3113    pub depth_bias_enable: u32,
3114    pub depth_bias_constant_factor: f32,
3115    pub depth_bias_clamp: f32,
3116    pub depth_bias_slope_factor: f32,
3117    pub line_width: f32,
3118}
3119impl Default for PipelineRasterizationStateCreateInfo {
3120    #[inline]
3121    fn default() -> Self {
3122        Self {
3123            s_type: StructureType::from_raw(23i32),
3124            p_next: core::ptr::null(),
3125            flags: Default::default(),
3126            depth_clamp_enable: Default::default(),
3127            rasterizer_discard_enable: Default::default(),
3128            polygon_mode: Default::default(),
3129            cull_mode: Default::default(),
3130            front_face: Default::default(),
3131            depth_bias_enable: Default::default(),
3132            depth_bias_constant_factor: Default::default(),
3133            depth_bias_clamp: Default::default(),
3134            depth_bias_slope_factor: Default::default(),
3135            line_width: Default::default(),
3136        }
3137    }
3138}
3139///[`VkPipelineMultisampleStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineMultisampleStateCreateInfo.html)
3140/**
3141Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3142///
3143///# Extended By
3144///- [`PipelineCoverageModulationStateCreateInfoNV`]
3145///- [`PipelineCoverageReductionStateCreateInfoNV`]
3146///- [`PipelineCoverageToColorStateCreateInfoNV`]
3147///- [`PipelineSampleLocationsStateCreateInfoEXT`]
3148#[repr(C)]
3149#[derive(Copy, Clone, Debug)]
3150#[doc(alias = "VkPipelineMultisampleStateCreateInfo")]
3151pub struct PipelineMultisampleStateCreateInfo {
3152    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO`.
3153    pub s_type: StructureType,
3154    ///Optional, may be null.
3155    pub p_next: *const core::ffi::c_void,
3156    pub flags: PipelineMultisampleStateCreateFlags,
3157    pub rasterization_samples: SampleCountFlagBits,
3158    pub sample_shading_enable: u32,
3159    pub min_sample_shading: f32,
3160    ///Optional, may be null.
3161    pub p_sample_mask: *const u32,
3162    pub alpha_to_coverage_enable: u32,
3163    pub alpha_to_one_enable: u32,
3164}
3165impl Default for PipelineMultisampleStateCreateInfo {
3166    #[inline]
3167    fn default() -> Self {
3168        Self {
3169            s_type: StructureType::from_raw(24i32),
3170            p_next: core::ptr::null(),
3171            flags: Default::default(),
3172            rasterization_samples: Default::default(),
3173            sample_shading_enable: Default::default(),
3174            min_sample_shading: Default::default(),
3175            p_sample_mask: core::ptr::null(),
3176            alpha_to_coverage_enable: Default::default(),
3177            alpha_to_one_enable: Default::default(),
3178        }
3179    }
3180}
3181///[`VkPipelineColorBlendAttachmentState`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineColorBlendAttachmentState.html)
3182/**
3183Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3184#[repr(C)]
3185#[derive(Copy, Clone, Debug)]
3186#[doc(alias = "VkPipelineColorBlendAttachmentState")]
3187pub struct PipelineColorBlendAttachmentState {
3188    pub blend_enable: u32,
3189    pub src_color_blend_factor: BlendFactor,
3190    pub dst_color_blend_factor: BlendFactor,
3191    pub color_blend_op: BlendOp,
3192    pub src_alpha_blend_factor: BlendFactor,
3193    pub dst_alpha_blend_factor: BlendFactor,
3194    pub alpha_blend_op: BlendOp,
3195    pub color_write_mask: ColorComponentFlags,
3196}
3197impl Default for PipelineColorBlendAttachmentState {
3198    #[inline]
3199    fn default() -> Self {
3200        unsafe { core::mem::zeroed() }
3201    }
3202}
3203///[`VkPipelineColorBlendStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineColorBlendStateCreateInfo.html)
3204/**
3205Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3206///
3207///# Extended By
3208///- [`PipelineColorBlendAdvancedStateCreateInfoEXT`]
3209///- [`PipelineColorWriteCreateInfoEXT`]
3210#[repr(C)]
3211#[derive(Copy, Clone, Debug)]
3212#[doc(alias = "VkPipelineColorBlendStateCreateInfo")]
3213pub struct PipelineColorBlendStateCreateInfo {
3214    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO`.
3215    pub s_type: StructureType,
3216    ///Optional, may be null.
3217    pub p_next: *const core::ffi::c_void,
3218    pub flags: PipelineColorBlendStateCreateFlags,
3219    pub logic_op_enable: u32,
3220    pub logic_op: LogicOp,
3221    ///Length of `p_attachments`.
3222    pub attachment_count: u32,
3223    ///Optional, may be null.
3224    pub p_attachments: *const PipelineColorBlendAttachmentState,
3225    pub blend_constants: [f32; 4usize],
3226}
3227impl Default for PipelineColorBlendStateCreateInfo {
3228    #[inline]
3229    fn default() -> Self {
3230        Self {
3231            s_type: StructureType::from_raw(26i32),
3232            p_next: core::ptr::null(),
3233            flags: Default::default(),
3234            logic_op_enable: Default::default(),
3235            logic_op: Default::default(),
3236            attachment_count: Default::default(),
3237            p_attachments: core::ptr::null(),
3238            blend_constants: unsafe { core::mem::zeroed() },
3239        }
3240    }
3241}
3242///[`VkPipelineDynamicStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineDynamicStateCreateInfo.html)
3243/**
3244Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3245#[repr(C)]
3246#[derive(Copy, Clone, Debug)]
3247#[doc(alias = "VkPipelineDynamicStateCreateInfo")]
3248pub struct PipelineDynamicStateCreateInfo {
3249    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO`.
3250    pub s_type: StructureType,
3251    ///Optional, may be null.
3252    pub p_next: *const core::ffi::c_void,
3253    pub flags: PipelineDynamicStateCreateFlags,
3254    ///Length of `p_dynamic_states`.
3255    pub dynamic_state_count: u32,
3256    pub p_dynamic_states: *const DynamicState,
3257}
3258impl Default for PipelineDynamicStateCreateInfo {
3259    #[inline]
3260    fn default() -> Self {
3261        Self {
3262            s_type: StructureType::from_raw(27i32),
3263            p_next: core::ptr::null(),
3264            flags: Default::default(),
3265            dynamic_state_count: Default::default(),
3266            p_dynamic_states: core::ptr::null(),
3267        }
3268    }
3269}
3270///[`VkStencilOpState`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStencilOpState.html)
3271/**
3272Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3273#[repr(C)]
3274#[derive(Copy, Clone, Debug)]
3275#[doc(alias = "VkStencilOpState")]
3276pub struct StencilOpState {
3277    pub fail_op: StencilOp,
3278    pub pass_op: StencilOp,
3279    pub depth_fail_op: StencilOp,
3280    pub compare_op: CompareOp,
3281    pub compare_mask: u32,
3282    pub write_mask: u32,
3283    pub reference: u32,
3284}
3285impl Default for StencilOpState {
3286    #[inline]
3287    fn default() -> Self {
3288        unsafe { core::mem::zeroed() }
3289    }
3290}
3291///[`VkPipelineDepthStencilStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineDepthStencilStateCreateInfo.html)
3292/**
3293Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3294#[repr(C)]
3295#[derive(Copy, Clone, Debug)]
3296#[doc(alias = "VkPipelineDepthStencilStateCreateInfo")]
3297pub struct PipelineDepthStencilStateCreateInfo {
3298    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO`.
3299    pub s_type: StructureType,
3300    ///Optional, may be null.
3301    pub p_next: *const core::ffi::c_void,
3302    pub flags: PipelineDepthStencilStateCreateFlags,
3303    pub depth_test_enable: u32,
3304    pub depth_write_enable: u32,
3305    pub depth_compare_op: CompareOp,
3306    pub depth_bounds_test_enable: u32,
3307    pub stencil_test_enable: u32,
3308    pub front: StencilOpState,
3309    pub back: StencilOpState,
3310    pub min_depth_bounds: f32,
3311    pub max_depth_bounds: f32,
3312}
3313impl Default for PipelineDepthStencilStateCreateInfo {
3314    #[inline]
3315    fn default() -> Self {
3316        Self {
3317            s_type: StructureType::from_raw(25i32),
3318            p_next: core::ptr::null(),
3319            flags: Default::default(),
3320            depth_test_enable: Default::default(),
3321            depth_write_enable: Default::default(),
3322            depth_compare_op: Default::default(),
3323            depth_bounds_test_enable: Default::default(),
3324            stencil_test_enable: Default::default(),
3325            front: Default::default(),
3326            back: Default::default(),
3327            min_depth_bounds: Default::default(),
3328            max_depth_bounds: Default::default(),
3329        }
3330    }
3331}
3332///[`VkGraphicsPipelineCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineCreateInfo.html)
3333/**
3334Provided by **VK_GRAPHICS_VERSION_1_0**.*/
3335///
3336///# Extended By
3337///- [`AttachmentSampleCountInfoAMD`]
3338///- [`CustomResolveCreateInfoEXT`]
3339///- [`ExternalFormatANDROID`]
3340///- [`ExternalFormatOHOS`]
3341///- [`GraphicsPipelineLibraryCreateInfoEXT`]
3342///- [`GraphicsPipelineShaderGroupsCreateInfoNV`]
3343///- [`MultiviewPerViewAttributesInfoNVX`]
3344///- [`PipelineBinaryInfoKHR`]
3345///- [`PipelineCompilerControlCreateInfoAMD`]
3346///- [`PipelineCreateFlags2CreateInfo`]
3347///- [`PipelineCreationFeedbackCreateInfo`]
3348///- [`PipelineDiscardRectangleStateCreateInfoEXT`]
3349///- [`PipelineFragmentDensityMapLayeredCreateInfoVALVE`]
3350///- [`PipelineFragmentShadingRateEnumStateCreateInfoNV`]
3351///- [`PipelineFragmentShadingRateStateCreateInfoKHR`]
3352///- [`PipelineLibraryCreateInfoKHR`]
3353///- [`PipelineOfflineCreateInfo`]
3354///- [`PipelineRenderingCreateInfo`]
3355///- [`PipelineRepresentativeFragmentTestStateCreateInfoNV`]
3356///- [`PipelineRobustnessCreateInfo`]
3357///- [`RenderingAttachmentLocationInfo`]
3358///- [`RenderingInputAttachmentIndexInfo`]
3359#[repr(C)]
3360#[derive(Copy, Clone, Debug)]
3361#[doc(alias = "VkGraphicsPipelineCreateInfo")]
3362pub struct GraphicsPipelineCreateInfo {
3363    ///Must be `VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO`.
3364    pub s_type: StructureType,
3365    ///Optional, may be null.
3366    pub p_next: *const core::ffi::c_void,
3367    pub flags: PipelineCreateFlags,
3368    ///Length of `p_stages`.
3369    pub stage_count: u32,
3370    ///Optional, may be null.
3371    pub p_stages: *const PipelineShaderStageCreateInfo,
3372    ///Optional, may be null.
3373    pub p_vertex_input_state: *const PipelineVertexInputStateCreateInfo,
3374    ///Optional, may be null.
3375    pub p_input_assembly_state: *const PipelineInputAssemblyStateCreateInfo,
3376    ///Optional, may be null.
3377    pub p_tessellation_state: *const PipelineTessellationStateCreateInfo,
3378    ///Optional, may be null.
3379    pub p_viewport_state: *const PipelineViewportStateCreateInfo,
3380    ///Optional, may be null.
3381    pub p_rasterization_state: *const PipelineRasterizationStateCreateInfo,
3382    ///Optional, may be null.
3383    pub p_multisample_state: *const PipelineMultisampleStateCreateInfo,
3384    ///Optional, may be null.
3385    pub p_depth_stencil_state: *const PipelineDepthStencilStateCreateInfo,
3386    ///Optional, may be null.
3387    pub p_color_blend_state: *const PipelineColorBlendStateCreateInfo,
3388    ///Optional, may be null.
3389    pub p_dynamic_state: *const PipelineDynamicStateCreateInfo,
3390    pub layout: PipelineLayout,
3391    pub render_pass: RenderPass,
3392    pub subpass: u32,
3393    pub base_pipeline_handle: Pipeline,
3394    pub base_pipeline_index: i32,
3395}
3396impl Default for GraphicsPipelineCreateInfo {
3397    #[inline]
3398    fn default() -> Self {
3399        Self {
3400            s_type: StructureType::from_raw(28i32),
3401            p_next: core::ptr::null(),
3402            flags: Default::default(),
3403            stage_count: Default::default(),
3404            p_stages: core::ptr::null(),
3405            p_vertex_input_state: core::ptr::null(),
3406            p_input_assembly_state: core::ptr::null(),
3407            p_tessellation_state: core::ptr::null(),
3408            p_viewport_state: core::ptr::null(),
3409            p_rasterization_state: core::ptr::null(),
3410            p_multisample_state: core::ptr::null(),
3411            p_depth_stencil_state: core::ptr::null(),
3412            p_color_blend_state: core::ptr::null(),
3413            p_dynamic_state: core::ptr::null(),
3414            layout: Default::default(),
3415            render_pass: Default::default(),
3416            subpass: Default::default(),
3417            base_pipeline_handle: Default::default(),
3418            base_pipeline_index: Default::default(),
3419        }
3420    }
3421}
3422///[`VkPipelineCacheCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheCreateInfo.html)
3423/**
3424Provided by **VK_COMPUTE_VERSION_1_0**.*/
3425#[repr(C)]
3426#[derive(Copy, Clone, Debug)]
3427#[doc(alias = "VkPipelineCacheCreateInfo")]
3428pub struct PipelineCacheCreateInfo {
3429    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO`.
3430    pub s_type: StructureType,
3431    ///Optional, may be null.
3432    pub p_next: *const core::ffi::c_void,
3433    pub flags: PipelineCacheCreateFlags,
3434    ///Length of `p_initial_data`.
3435    pub initial_data_size: usize,
3436    pub p_initial_data: *const core::ffi::c_void,
3437}
3438impl Default for PipelineCacheCreateInfo {
3439    #[inline]
3440    fn default() -> Self {
3441        Self {
3442            s_type: StructureType::from_raw(17i32),
3443            p_next: core::ptr::null(),
3444            flags: Default::default(),
3445            initial_data_size: Default::default(),
3446            p_initial_data: core::ptr::null(),
3447        }
3448    }
3449}
3450///[`VkPipelineCacheHeaderVersionOne`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheHeaderVersionOne.html)
3451/**
3452Provided by **VK_COMPUTE_VERSION_1_0**.*/
3453#[repr(C)]
3454#[derive(Copy, Clone, Debug)]
3455#[doc(alias = "VkPipelineCacheHeaderVersionOne")]
3456pub struct PipelineCacheHeaderVersionOne {
3457    pub header_size: u32,
3458    pub header_version: PipelineCacheHeaderVersion,
3459    pub vendor_id: u32,
3460    pub device_id: u32,
3461    pub pipeline_cache_uuid: [u8; UUID_SIZE as usize],
3462}
3463impl Default for PipelineCacheHeaderVersionOne {
3464    #[inline]
3465    fn default() -> Self {
3466        unsafe { core::mem::zeroed() }
3467    }
3468}
3469///[`VkPipelineCacheStageValidationIndexEntry`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheStageValidationIndexEntry.html)
3470/**
3471Provided by **VKSC_VERSION_1_0**.*/
3472#[repr(C)]
3473#[derive(Copy, Clone, Debug)]
3474#[doc(alias = "VkPipelineCacheStageValidationIndexEntry")]
3475pub struct PipelineCacheStageValidationIndexEntry {
3476    pub code_size: u64,
3477    pub code_offset: u64,
3478}
3479impl Default for PipelineCacheStageValidationIndexEntry {
3480    #[inline]
3481    fn default() -> Self {
3482        unsafe { core::mem::zeroed() }
3483    }
3484}
3485///[`VkPipelineCacheSafetyCriticalIndexEntry`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheSafetyCriticalIndexEntry.html)
3486/**
3487Provided by **VKSC_VERSION_1_0**.*/
3488#[repr(C)]
3489#[derive(Copy, Clone, Debug)]
3490#[doc(alias = "VkPipelineCacheSafetyCriticalIndexEntry")]
3491pub struct PipelineCacheSafetyCriticalIndexEntry {
3492    pub pipeline_identifier: [u8; UUID_SIZE as usize],
3493    pub pipeline_memory_size: u64,
3494    pub json_size: u64,
3495    pub json_offset: u64,
3496    pub stage_index_count: u32,
3497    pub stage_index_stride: u32,
3498    pub stage_index_offset: u64,
3499}
3500impl Default for PipelineCacheSafetyCriticalIndexEntry {
3501    #[inline]
3502    fn default() -> Self {
3503        unsafe { core::mem::zeroed() }
3504    }
3505}
3506///[`VkPipelineCacheHeaderVersionSafetyCriticalOne`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheHeaderVersionSafetyCriticalOne.html)
3507/**
3508Provided by **VKSC_VERSION_1_0**.*/
3509#[repr(C)]
3510#[derive(Copy, Clone, Debug)]
3511#[doc(alias = "VkPipelineCacheHeaderVersionSafetyCriticalOne")]
3512pub struct PipelineCacheHeaderVersionSafetyCriticalOne {
3513    pub header_version_one: PipelineCacheHeaderVersionOne,
3514    pub validation_version: PipelineCacheValidationVersion,
3515    pub implementation_data: u32,
3516    pub pipeline_index_count: u32,
3517    pub pipeline_index_stride: u32,
3518    pub pipeline_index_offset: u64,
3519}
3520impl Default for PipelineCacheHeaderVersionSafetyCriticalOne {
3521    #[inline]
3522    fn default() -> Self {
3523        unsafe { core::mem::zeroed() }
3524    }
3525}
3526///[`VkPipelineCacheHeaderVersionDataGraphQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCacheHeaderVersionDataGraphQCOM.html)
3527/**
3528Provided by **VK_QCOM_data_graph_model**.*/
3529#[repr(C)]
3530#[derive(Copy, Clone, Debug)]
3531#[doc(alias = "VkPipelineCacheHeaderVersionDataGraphQCOM")]
3532pub struct PipelineCacheHeaderVersionDataGraphQCOM {
3533    pub header_size: u32,
3534    pub header_version: PipelineCacheHeaderVersion,
3535    pub cache_type: DataGraphModelCacheTypeQCOM,
3536    pub cache_version: u32,
3537    pub toolchain_version: [u32; DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM
3538        as usize],
3539}
3540impl Default for PipelineCacheHeaderVersionDataGraphQCOM {
3541    #[inline]
3542    fn default() -> Self {
3543        unsafe { core::mem::zeroed() }
3544    }
3545}
3546///[`VkPushConstantRange`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushConstantRange.html)
3547/**
3548Provided by **VK_COMPUTE_VERSION_1_0**.*/
3549#[repr(C)]
3550#[derive(Copy, Clone, Debug)]
3551#[doc(alias = "VkPushConstantRange")]
3552pub struct PushConstantRange {
3553    pub stage_flags: ShaderStageFlags,
3554    pub offset: u32,
3555    pub size: u32,
3556}
3557impl Default for PushConstantRange {
3558    #[inline]
3559    fn default() -> Self {
3560        unsafe { core::mem::zeroed() }
3561    }
3562}
3563///[`VkPipelineBinaryCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryCreateInfoKHR.html)
3564/**
3565Provided by **VK_KHR_pipeline_binary**.*/
3566#[repr(C)]
3567#[derive(Copy, Clone, Debug)]
3568#[doc(alias = "VkPipelineBinaryCreateInfoKHR")]
3569pub struct PipelineBinaryCreateInfoKHR {
3570    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR`.
3571    pub s_type: StructureType,
3572    ///Optional, may be null.
3573    pub p_next: *const core::ffi::c_void,
3574    ///Optional, may be null.
3575    pub p_keys_and_data_info: *const PipelineBinaryKeysAndDataKHR,
3576    pub pipeline: Pipeline,
3577    ///Optional, may be null.
3578    pub p_pipeline_create_info: *const PipelineCreateInfoKHR,
3579}
3580impl Default for PipelineBinaryCreateInfoKHR {
3581    #[inline]
3582    fn default() -> Self {
3583        Self {
3584            s_type: StructureType::from_raw(1000483001i32),
3585            p_next: core::ptr::null(),
3586            p_keys_and_data_info: core::ptr::null(),
3587            pipeline: Default::default(),
3588            p_pipeline_create_info: core::ptr::null(),
3589        }
3590    }
3591}
3592///[`VkPipelineBinaryHandlesInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryHandlesInfoKHR.html)
3593/**
3594Provided by **VK_KHR_pipeline_binary**.*/
3595#[repr(C)]
3596#[derive(Copy, Clone, Debug)]
3597#[doc(alias = "VkPipelineBinaryHandlesInfoKHR")]
3598pub struct PipelineBinaryHandlesInfoKHR {
3599    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR`.
3600    pub s_type: StructureType,
3601    ///Optional, may be null.
3602    pub p_next: *const core::ffi::c_void,
3603    ///Length of `p_pipeline_binaries`.
3604    pub pipeline_binary_count: u32,
3605    ///Optional, may be null.
3606    pub p_pipeline_binaries: *mut PipelineBinaryKHR,
3607}
3608impl Default for PipelineBinaryHandlesInfoKHR {
3609    #[inline]
3610    fn default() -> Self {
3611        Self {
3612            s_type: StructureType::from_raw(1000483009i32),
3613            p_next: core::ptr::null(),
3614            pipeline_binary_count: Default::default(),
3615            p_pipeline_binaries: core::ptr::null_mut(),
3616        }
3617    }
3618}
3619///[`VkPipelineBinaryDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryDataKHR.html)
3620/**
3621Provided by **VK_KHR_pipeline_binary**.*/
3622#[repr(C)]
3623#[derive(Copy, Clone, Debug)]
3624#[doc(alias = "VkPipelineBinaryDataKHR")]
3625pub struct PipelineBinaryDataKHR {
3626    ///Length of `p_data`.
3627    pub data_size: usize,
3628    pub p_data: *mut core::ffi::c_void,
3629}
3630impl Default for PipelineBinaryDataKHR {
3631    #[inline]
3632    fn default() -> Self {
3633        unsafe { core::mem::zeroed() }
3634    }
3635}
3636///[`VkPipelineBinaryKeysAndDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryKeysAndDataKHR.html)
3637/**
3638Provided by **VK_KHR_pipeline_binary**.*/
3639#[repr(C)]
3640#[derive(Copy, Clone, Debug)]
3641#[doc(alias = "VkPipelineBinaryKeysAndDataKHR")]
3642pub struct PipelineBinaryKeysAndDataKHR {
3643    ///Length of `p_pipeline_binary_data`.
3644    pub binary_count: u32,
3645    pub p_pipeline_binary_keys: *const PipelineBinaryKeyKHR,
3646    pub p_pipeline_binary_data: *const PipelineBinaryDataKHR,
3647}
3648impl Default for PipelineBinaryKeysAndDataKHR {
3649    #[inline]
3650    fn default() -> Self {
3651        unsafe { core::mem::zeroed() }
3652    }
3653}
3654///[`VkPipelineBinaryKeyKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryKeyKHR.html)
3655/**
3656Provided by **VK_KHR_pipeline_binary**.*/
3657#[repr(C)]
3658#[derive(Copy, Clone, Debug)]
3659#[doc(alias = "VkPipelineBinaryKeyKHR")]
3660pub struct PipelineBinaryKeyKHR {
3661    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR`.
3662    pub s_type: StructureType,
3663    ///Optional, may be null.
3664    pub p_next: *mut core::ffi::c_void,
3665    pub key_size: u32,
3666    pub key: [u8; MAX_PIPELINE_BINARY_KEY_SIZE_KHR as usize],
3667}
3668impl Default for PipelineBinaryKeyKHR {
3669    #[inline]
3670    fn default() -> Self {
3671        Self {
3672            s_type: StructureType::from_raw(1000483003i32),
3673            p_next: core::ptr::null_mut(),
3674            key_size: Default::default(),
3675            key: unsafe { core::mem::zeroed() },
3676        }
3677    }
3678}
3679///[`VkPipelineBinaryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryInfoKHR.html)
3680/**
3681Provided by **VK_KHR_pipeline_binary**.*/
3682///
3683///# Extends
3684///- [`GraphicsPipelineCreateInfo`]
3685///- [`ComputePipelineCreateInfo`]
3686///- [`RayTracingPipelineCreateInfoKHR`]
3687#[repr(C)]
3688#[derive(Copy, Clone, Debug)]
3689#[doc(alias = "VkPipelineBinaryInfoKHR")]
3690pub struct PipelineBinaryInfoKHR {
3691    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR`.
3692    pub s_type: StructureType,
3693    ///Optional, may be null.
3694    pub p_next: *const core::ffi::c_void,
3695    ///Length of `p_pipeline_binaries`.
3696    pub binary_count: u32,
3697    pub p_pipeline_binaries: *const PipelineBinaryKHR,
3698}
3699impl Default for PipelineBinaryInfoKHR {
3700    #[inline]
3701    fn default() -> Self {
3702        Self {
3703            s_type: StructureType::from_raw(1000483002i32),
3704            p_next: core::ptr::null(),
3705            binary_count: Default::default(),
3706            p_pipeline_binaries: core::ptr::null(),
3707        }
3708    }
3709}
3710///[`VkReleaseCapturedPipelineDataInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkReleaseCapturedPipelineDataInfoKHR.html)
3711/**
3712Provided by **VK_KHR_pipeline_binary**.*/
3713#[repr(C)]
3714#[derive(Copy, Clone, Debug)]
3715#[doc(alias = "VkReleaseCapturedPipelineDataInfoKHR")]
3716pub struct ReleaseCapturedPipelineDataInfoKHR {
3717    ///Must be `VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR`.
3718    pub s_type: StructureType,
3719    ///Optional, may be null.
3720    pub p_next: *mut core::ffi::c_void,
3721    ///**Thread safety:** must be externally synchronized.
3722    pub pipeline: Pipeline,
3723}
3724impl Default for ReleaseCapturedPipelineDataInfoKHR {
3725    #[inline]
3726    fn default() -> Self {
3727        Self {
3728            s_type: StructureType::from_raw(1000483005i32),
3729            p_next: core::ptr::null_mut(),
3730            pipeline: Default::default(),
3731        }
3732    }
3733}
3734///[`VkPipelineBinaryDataInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineBinaryDataInfoKHR.html)
3735/**
3736Provided by **VK_KHR_pipeline_binary**.*/
3737#[repr(C)]
3738#[derive(Copy, Clone, Debug)]
3739#[doc(alias = "VkPipelineBinaryDataInfoKHR")]
3740pub struct PipelineBinaryDataInfoKHR {
3741    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR`.
3742    pub s_type: StructureType,
3743    ///Optional, may be null.
3744    pub p_next: *mut core::ffi::c_void,
3745    pub pipeline_binary: PipelineBinaryKHR,
3746}
3747impl Default for PipelineBinaryDataInfoKHR {
3748    #[inline]
3749    fn default() -> Self {
3750        Self {
3751            s_type: StructureType::from_raw(1000483006i32),
3752            p_next: core::ptr::null_mut(),
3753            pipeline_binary: Default::default(),
3754        }
3755    }
3756}
3757///[`VkPipelineCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCreateInfoKHR.html)
3758/**
3759Provided by **VK_KHR_pipeline_binary**.*/
3760#[repr(C)]
3761#[derive(Copy, Clone, Debug)]
3762#[doc(alias = "VkPipelineCreateInfoKHR")]
3763pub struct PipelineCreateInfoKHR {
3764    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR`.
3765    pub s_type: StructureType,
3766    ///Optional, may be null.
3767    pub p_next: *mut core::ffi::c_void,
3768}
3769impl Default for PipelineCreateInfoKHR {
3770    #[inline]
3771    fn default() -> Self {
3772        Self {
3773            s_type: StructureType::from_raw(1000483007i32),
3774            p_next: core::ptr::null_mut(),
3775        }
3776    }
3777}
3778///[`VkPipelineLayoutCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineLayoutCreateInfo.html)
3779/**
3780Provided by **VK_COMPUTE_VERSION_1_0**.*/
3781///
3782///# Extends
3783///- [`BindDescriptorSetsInfo`]
3784///- [`PushConstantsInfo`]
3785///- [`PushDescriptorSetInfo`]
3786///- [`PushDescriptorSetWithTemplateInfo`]
3787///- [`SetDescriptorBufferOffsetsInfoEXT`]
3788///- [`BindDescriptorBufferEmbeddedSamplersInfoEXT`]
3789///- [`IndirectCommandsLayoutCreateInfoEXT`]
3790#[repr(C)]
3791#[derive(Copy, Clone, Debug)]
3792#[doc(alias = "VkPipelineLayoutCreateInfo")]
3793pub struct PipelineLayoutCreateInfo {
3794    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO`.
3795    pub s_type: StructureType,
3796    ///Optional, may be null.
3797    pub p_next: *const core::ffi::c_void,
3798    pub flags: PipelineLayoutCreateFlags,
3799    ///Length of `p_set_layouts`.
3800    pub set_layout_count: u32,
3801    ///Optional, may be null.
3802    pub p_set_layouts: *const DescriptorSetLayout,
3803    ///Length of `p_push_constant_ranges`.
3804    pub push_constant_range_count: u32,
3805    pub p_push_constant_ranges: *const PushConstantRange,
3806}
3807impl Default for PipelineLayoutCreateInfo {
3808    #[inline]
3809    fn default() -> Self {
3810        Self {
3811            s_type: StructureType::from_raw(30i32),
3812            p_next: core::ptr::null(),
3813            flags: Default::default(),
3814            set_layout_count: Default::default(),
3815            p_set_layouts: core::ptr::null(),
3816            push_constant_range_count: Default::default(),
3817            p_push_constant_ranges: core::ptr::null(),
3818        }
3819    }
3820}
3821///[`VkSamplerCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCreateInfo.html)
3822/**
3823Provided by **VK_COMPUTE_VERSION_1_0**.*/
3824///
3825///# Extended By
3826///- [`DebugUtilsObjectNameInfoEXT`]
3827///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
3828///- [`SamplerBlockMatchWindowCreateInfoQCOM`]
3829///- [`SamplerBorderColorComponentMappingCreateInfoEXT`]
3830///- [`SamplerCubicWeightsCreateInfoQCOM`]
3831///- [`SamplerCustomBorderColorCreateInfoEXT`]
3832///- [`SamplerCustomBorderColorIndexCreateInfoEXT`]
3833///- [`SamplerReductionModeCreateInfo`]
3834///- [`SamplerYcbcrConversionInfo`]
3835#[repr(C)]
3836#[derive(Copy, Clone, Debug)]
3837#[doc(alias = "VkSamplerCreateInfo")]
3838pub struct SamplerCreateInfo {
3839    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO`.
3840    pub s_type: StructureType,
3841    ///Optional, may be null.
3842    pub p_next: *const core::ffi::c_void,
3843    pub flags: SamplerCreateFlags,
3844    pub mag_filter: Filter,
3845    pub min_filter: Filter,
3846    pub mipmap_mode: SamplerMipmapMode,
3847    pub address_mode_u: SamplerAddressMode,
3848    pub address_mode_v: SamplerAddressMode,
3849    pub address_mode_w: SamplerAddressMode,
3850    pub mip_lod_bias: f32,
3851    pub anisotropy_enable: u32,
3852    pub max_anisotropy: f32,
3853    pub compare_enable: u32,
3854    pub compare_op: CompareOp,
3855    pub min_lod: f32,
3856    pub max_lod: f32,
3857    pub border_color: BorderColor,
3858    pub unnormalized_coordinates: u32,
3859}
3860impl Default for SamplerCreateInfo {
3861    #[inline]
3862    fn default() -> Self {
3863        Self {
3864            s_type: StructureType::from_raw(31i32),
3865            p_next: core::ptr::null(),
3866            flags: Default::default(),
3867            mag_filter: Default::default(),
3868            min_filter: Default::default(),
3869            mipmap_mode: Default::default(),
3870            address_mode_u: Default::default(),
3871            address_mode_v: Default::default(),
3872            address_mode_w: Default::default(),
3873            mip_lod_bias: Default::default(),
3874            anisotropy_enable: Default::default(),
3875            max_anisotropy: Default::default(),
3876            compare_enable: Default::default(),
3877            compare_op: Default::default(),
3878            min_lod: Default::default(),
3879            max_lod: Default::default(),
3880            border_color: Default::default(),
3881            unnormalized_coordinates: Default::default(),
3882        }
3883    }
3884}
3885///[`VkCommandPoolCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandPoolCreateInfo.html)
3886/**
3887Provided by **VK_BASE_VERSION_1_0**.*/
3888///
3889///# Extended By
3890///- [`CommandPoolMemoryReservationCreateInfo`]
3891///- [`DataGraphProcessingEngineCreateInfoARM`]
3892#[repr(C)]
3893#[derive(Copy, Clone, Debug)]
3894#[doc(alias = "VkCommandPoolCreateInfo")]
3895pub struct CommandPoolCreateInfo {
3896    ///Must be `VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO`.
3897    pub s_type: StructureType,
3898    ///Optional, may be null.
3899    pub p_next: *const core::ffi::c_void,
3900    pub flags: CommandPoolCreateFlags,
3901    pub queue_family_index: u32,
3902}
3903impl Default for CommandPoolCreateInfo {
3904    #[inline]
3905    fn default() -> Self {
3906        Self {
3907            s_type: StructureType::from_raw(39i32),
3908            p_next: core::ptr::null(),
3909            flags: Default::default(),
3910            queue_family_index: Default::default(),
3911        }
3912    }
3913}
3914///[`VkCommandBufferAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferAllocateInfo.html)
3915/**
3916Provided by **VK_BASE_VERSION_1_0**.*/
3917#[repr(C)]
3918#[derive(Copy, Clone, Debug)]
3919#[doc(alias = "VkCommandBufferAllocateInfo")]
3920pub struct CommandBufferAllocateInfo {
3921    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO`.
3922    pub s_type: StructureType,
3923    ///Optional, may be null.
3924    pub p_next: *const core::ffi::c_void,
3925    ///**Thread safety:** must be externally synchronized.
3926    pub command_pool: CommandPool,
3927    pub level: CommandBufferLevel,
3928    pub command_buffer_count: u32,
3929}
3930impl Default for CommandBufferAllocateInfo {
3931    #[inline]
3932    fn default() -> Self {
3933        Self {
3934            s_type: StructureType::from_raw(40i32),
3935            p_next: core::ptr::null(),
3936            command_pool: Default::default(),
3937            level: Default::default(),
3938            command_buffer_count: Default::default(),
3939        }
3940    }
3941}
3942///[`VkCommandBufferInheritanceInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceInfo.html)
3943/**
3944Provided by **VK_BASE_VERSION_1_0**.*/
3945///
3946///# Extended By
3947///- [`AttachmentSampleCountInfoAMD`]
3948///- [`CommandBufferInheritanceConditionalRenderingInfoEXT`]
3949///- [`CommandBufferInheritanceDescriptorHeapInfoEXT`]
3950///- [`CommandBufferInheritanceRenderPassTransformInfoQCOM`]
3951///- [`CommandBufferInheritanceRenderingInfo`]
3952///- [`CommandBufferInheritanceViewportScissorInfoNV`]
3953///- [`CustomResolveCreateInfoEXT`]
3954///- [`ExternalFormatANDROID`]
3955///- [`ExternalFormatOHOS`]
3956///- [`MultiviewPerViewAttributesInfoNVX`]
3957///- [`RenderPassTileShadingCreateInfoQCOM`]
3958///- [`RenderingAttachmentLocationInfo`]
3959///- [`RenderingInputAttachmentIndexInfo`]
3960///- [`TileMemoryBindInfoQCOM`]
3961#[repr(C)]
3962#[derive(Copy, Clone, Debug)]
3963#[doc(alias = "VkCommandBufferInheritanceInfo")]
3964pub struct CommandBufferInheritanceInfo {
3965    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO`.
3966    pub s_type: StructureType,
3967    ///Optional, may be null.
3968    pub p_next: *const core::ffi::c_void,
3969    pub render_pass: RenderPass,
3970    pub subpass: u32,
3971    pub framebuffer: Framebuffer,
3972    pub occlusion_query_enable: u32,
3973    pub query_flags: QueryControlFlags,
3974    pub pipeline_statistics: QueryPipelineStatisticFlags,
3975}
3976impl Default for CommandBufferInheritanceInfo {
3977    #[inline]
3978    fn default() -> Self {
3979        Self {
3980            s_type: StructureType::from_raw(41i32),
3981            p_next: core::ptr::null(),
3982            render_pass: Default::default(),
3983            subpass: Default::default(),
3984            framebuffer: Default::default(),
3985            occlusion_query_enable: Default::default(),
3986            query_flags: Default::default(),
3987            pipeline_statistics: Default::default(),
3988        }
3989    }
3990}
3991///[`VkCommandBufferBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferBeginInfo.html)
3992/**
3993Provided by **VK_BASE_VERSION_1_0**.*/
3994///
3995///# Extended By
3996///- [`DeviceGroupCommandBufferBeginInfo`]
3997#[repr(C)]
3998#[derive(Copy, Clone, Debug)]
3999#[doc(alias = "VkCommandBufferBeginInfo")]
4000pub struct CommandBufferBeginInfo {
4001    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO`.
4002    pub s_type: StructureType,
4003    ///Optional, may be null.
4004    pub p_next: *const core::ffi::c_void,
4005    pub flags: CommandBufferUsageFlags,
4006    ///Optional, may be null.
4007    pub p_inheritance_info: *const CommandBufferInheritanceInfo,
4008}
4009impl Default for CommandBufferBeginInfo {
4010    #[inline]
4011    fn default() -> Self {
4012        Self {
4013            s_type: StructureType::from_raw(42i32),
4014            p_next: core::ptr::null(),
4015            flags: Default::default(),
4016            p_inheritance_info: core::ptr::null(),
4017        }
4018    }
4019}
4020///[`VkRenderPassBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassBeginInfo.html)
4021/**
4022Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4023///
4024///# Extended By
4025///- [`DeviceGroupRenderPassBeginInfo`]
4026///- [`MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM`]
4027///- [`RenderPassAttachmentBeginInfo`]
4028///- [`RenderPassPerformanceCountersByRegionBeginInfoARM`]
4029///- [`RenderPassSampleLocationsBeginInfoEXT`]
4030///- [`RenderPassStripeBeginInfoARM`]
4031///- [`RenderPassTransformBeginInfoQCOM`]
4032#[repr(C)]
4033#[derive(Copy, Clone, Debug)]
4034#[doc(alias = "VkRenderPassBeginInfo")]
4035pub struct RenderPassBeginInfo {
4036    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO`.
4037    pub s_type: StructureType,
4038    ///Optional, may be null.
4039    pub p_next: *const core::ffi::c_void,
4040    pub render_pass: RenderPass,
4041    pub framebuffer: Framebuffer,
4042    pub render_area: Rect2D,
4043    ///Length of `p_clear_values`.
4044    pub clear_value_count: u32,
4045    pub p_clear_values: *const ClearValue,
4046}
4047impl Default for RenderPassBeginInfo {
4048    #[inline]
4049    fn default() -> Self {
4050        Self {
4051            s_type: StructureType::from_raw(43i32),
4052            p_next: core::ptr::null(),
4053            render_pass: Default::default(),
4054            framebuffer: Default::default(),
4055            render_area: Default::default(),
4056            clear_value_count: Default::default(),
4057            p_clear_values: core::ptr::null(),
4058        }
4059    }
4060}
4061///[`VkClearColorValue`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearColorValue.html)
4062/**
4063Provided by **VK_COMPUTE_VERSION_1_0**.*/
4064#[repr(C)]
4065#[derive(Copy, Clone)]
4066#[doc(alias = "VkClearColorValue")]
4067pub union ClearColorValue {
4068    pub float32: [f32; 4usize],
4069    pub int32: [i32; 4usize],
4070    pub uint32: [u32; 4usize],
4071}
4072impl Default for ClearColorValue {
4073    #[inline]
4074    fn default() -> Self {
4075        unsafe { core::mem::zeroed() }
4076    }
4077}
4078impl core::fmt::Debug for ClearColorValue {
4079    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4080        f.write_str(stringify!(ClearColorValue))
4081    }
4082}
4083///[`VkClearDepthStencilValue`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearDepthStencilValue.html)
4084/**
4085Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4086#[repr(C)]
4087#[derive(Copy, Clone, Debug)]
4088#[doc(alias = "VkClearDepthStencilValue")]
4089pub struct ClearDepthStencilValue {
4090    pub depth: f32,
4091    pub stencil: u32,
4092}
4093impl Default for ClearDepthStencilValue {
4094    #[inline]
4095    fn default() -> Self {
4096        unsafe { core::mem::zeroed() }
4097    }
4098}
4099///[`VkClearValue`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearValue.html)
4100/**
4101Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4102#[repr(C)]
4103#[derive(Copy, Clone)]
4104#[doc(alias = "VkClearValue")]
4105pub union ClearValue {
4106    pub color: ClearColorValue,
4107    pub depth_stencil: ClearDepthStencilValue,
4108}
4109impl Default for ClearValue {
4110    #[inline]
4111    fn default() -> Self {
4112        unsafe { core::mem::zeroed() }
4113    }
4114}
4115impl core::fmt::Debug for ClearValue {
4116    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4117        f.write_str(stringify!(ClearValue))
4118    }
4119}
4120///[`VkClearAttachment`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClearAttachment.html)
4121/**
4122Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4123#[repr(C)]
4124#[derive(Copy, Clone, Debug)]
4125#[doc(alias = "VkClearAttachment")]
4126pub struct ClearAttachment {
4127    pub aspect_mask: ImageAspectFlags,
4128    pub color_attachment: u32,
4129    pub clear_value: ClearValue,
4130}
4131impl Default for ClearAttachment {
4132    #[inline]
4133    fn default() -> Self {
4134        unsafe { core::mem::zeroed() }
4135    }
4136}
4137///[`VkAttachmentDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentDescription.html)
4138/**
4139Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4140#[repr(C)]
4141#[derive(Copy, Clone, Debug)]
4142#[doc(alias = "VkAttachmentDescription")]
4143pub struct AttachmentDescription {
4144    pub flags: AttachmentDescriptionFlags,
4145    pub format: Format,
4146    pub samples: SampleCountFlagBits,
4147    pub load_op: AttachmentLoadOp,
4148    pub store_op: AttachmentStoreOp,
4149    pub stencil_load_op: AttachmentLoadOp,
4150    pub stencil_store_op: AttachmentStoreOp,
4151    pub initial_layout: ImageLayout,
4152    pub final_layout: ImageLayout,
4153}
4154impl Default for AttachmentDescription {
4155    #[inline]
4156    fn default() -> Self {
4157        unsafe { core::mem::zeroed() }
4158    }
4159}
4160///[`VkAttachmentReference`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentReference.html)
4161/**
4162Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4163#[repr(C)]
4164#[derive(Copy, Clone, Debug)]
4165#[doc(alias = "VkAttachmentReference")]
4166pub struct AttachmentReference {
4167    pub attachment: u32,
4168    pub layout: ImageLayout,
4169}
4170impl Default for AttachmentReference {
4171    #[inline]
4172    fn default() -> Self {
4173        unsafe { core::mem::zeroed() }
4174    }
4175}
4176///[`VkSubpassDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDescription.html)
4177/**
4178Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4179#[repr(C)]
4180#[derive(Copy, Clone, Debug)]
4181#[doc(alias = "VkSubpassDescription")]
4182pub struct SubpassDescription {
4183    pub flags: SubpassDescriptionFlags,
4184    pub pipeline_bind_point: PipelineBindPoint,
4185    ///Length of `p_input_attachments`.
4186    pub input_attachment_count: u32,
4187    pub p_input_attachments: *const AttachmentReference,
4188    ///Length of `p_resolve_attachments`.
4189    pub color_attachment_count: u32,
4190    pub p_color_attachments: *const AttachmentReference,
4191    ///Optional, may be null.
4192    pub p_resolve_attachments: *const AttachmentReference,
4193    ///Optional, may be null.
4194    pub p_depth_stencil_attachment: *const AttachmentReference,
4195    ///Length of `p_preserve_attachments`.
4196    pub preserve_attachment_count: u32,
4197    pub p_preserve_attachments: *const u32,
4198}
4199impl Default for SubpassDescription {
4200    #[inline]
4201    fn default() -> Self {
4202        unsafe { core::mem::zeroed() }
4203    }
4204}
4205///[`VkSubpassDependency`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDependency.html)
4206/**
4207Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4208#[repr(C)]
4209#[derive(Copy, Clone, Debug)]
4210#[doc(alias = "VkSubpassDependency")]
4211pub struct SubpassDependency {
4212    pub src_subpass: u32,
4213    pub dst_subpass: u32,
4214    pub src_stage_mask: PipelineStageFlags,
4215    pub dst_stage_mask: PipelineStageFlags,
4216    pub src_access_mask: AccessFlags,
4217    pub dst_access_mask: AccessFlags,
4218    pub dependency_flags: DependencyFlags,
4219}
4220impl Default for SubpassDependency {
4221    #[inline]
4222    fn default() -> Self {
4223        unsafe { core::mem::zeroed() }
4224    }
4225}
4226///[`VkRenderPassCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreateInfo.html)
4227/**
4228Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4229///
4230///# Extended By
4231///- [`RenderPassFragmentDensityMapCreateInfoEXT`]
4232///- [`RenderPassInputAttachmentAspectCreateInfo`]
4233///- [`RenderPassMultiviewCreateInfo`]
4234///- [`RenderPassTileShadingCreateInfoQCOM`]
4235///- [`TileMemorySizeInfoQCOM`]
4236#[repr(C)]
4237#[derive(Copy, Clone, Debug)]
4238#[doc(alias = "VkRenderPassCreateInfo")]
4239pub struct RenderPassCreateInfo {
4240    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO`.
4241    pub s_type: StructureType,
4242    ///Optional, may be null.
4243    pub p_next: *const core::ffi::c_void,
4244    pub flags: RenderPassCreateFlags,
4245    ///Length of `p_attachments`.
4246    pub attachment_count: u32,
4247    pub p_attachments: *const AttachmentDescription,
4248    ///Length of `p_subpasses`.
4249    pub subpass_count: u32,
4250    pub p_subpasses: *const SubpassDescription,
4251    ///Length of `p_dependencies`.
4252    pub dependency_count: u32,
4253    pub p_dependencies: *const SubpassDependency,
4254}
4255impl Default for RenderPassCreateInfo {
4256    #[inline]
4257    fn default() -> Self {
4258        Self {
4259            s_type: StructureType::from_raw(38i32),
4260            p_next: core::ptr::null(),
4261            flags: Default::default(),
4262            attachment_count: Default::default(),
4263            p_attachments: core::ptr::null(),
4264            subpass_count: Default::default(),
4265            p_subpasses: core::ptr::null(),
4266            dependency_count: Default::default(),
4267            p_dependencies: core::ptr::null(),
4268        }
4269    }
4270}
4271///[`VkEventCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkEventCreateInfo.html)
4272/**
4273Provided by **VK_COMPUTE_VERSION_1_0**.*/
4274///
4275///# Extended By
4276///- [`ExportMetalObjectCreateInfoEXT`]
4277///- [`ImportMetalSharedEventInfoEXT`]
4278#[repr(C)]
4279#[derive(Copy, Clone, Debug)]
4280#[doc(alias = "VkEventCreateInfo")]
4281pub struct EventCreateInfo {
4282    ///Must be `VK_STRUCTURE_TYPE_EVENT_CREATE_INFO`.
4283    pub s_type: StructureType,
4284    ///Optional, may be null.
4285    pub p_next: *const core::ffi::c_void,
4286    pub flags: EventCreateFlags,
4287}
4288impl Default for EventCreateInfo {
4289    #[inline]
4290    fn default() -> Self {
4291        Self {
4292            s_type: StructureType::from_raw(10i32),
4293            p_next: core::ptr::null(),
4294            flags: Default::default(),
4295        }
4296    }
4297}
4298///[`VkFenceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceCreateInfo.html)
4299/**
4300Provided by **VK_BASE_VERSION_1_0**.*/
4301///
4302///# Extended By
4303///- [`ExportFenceCreateInfo`]
4304///- [`ExportFenceSciSyncInfoNV`]
4305///- [`ExportFenceWin32HandleInfoKHR`]
4306#[repr(C)]
4307#[derive(Copy, Clone, Debug)]
4308#[doc(alias = "VkFenceCreateInfo")]
4309pub struct FenceCreateInfo {
4310    ///Must be `VK_STRUCTURE_TYPE_FENCE_CREATE_INFO`.
4311    pub s_type: StructureType,
4312    ///Optional, may be null.
4313    pub p_next: *const core::ffi::c_void,
4314    pub flags: FenceCreateFlags,
4315}
4316impl Default for FenceCreateInfo {
4317    #[inline]
4318    fn default() -> Self {
4319        Self {
4320            s_type: StructureType::from_raw(8i32),
4321            p_next: core::ptr::null(),
4322            flags: Default::default(),
4323        }
4324    }
4325}
4326///[`VkPhysicalDeviceFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFeatures.html)
4327/**
4328Provided by **VK_BASE_VERSION_1_0**.*/
4329#[repr(C)]
4330#[derive(Copy, Clone, Debug)]
4331#[doc(alias = "VkPhysicalDeviceFeatures")]
4332pub struct PhysicalDeviceFeatures {
4333    pub robust_buffer_access: u32,
4334    pub full_draw_index_uint32: u32,
4335    pub image_cube_array: u32,
4336    pub independent_blend: u32,
4337    pub geometry_shader: u32,
4338    pub tessellation_shader: u32,
4339    pub sample_rate_shading: u32,
4340    pub dual_src_blend: u32,
4341    pub logic_op: u32,
4342    pub multi_draw_indirect: u32,
4343    pub draw_indirect_first_instance: u32,
4344    pub depth_clamp: u32,
4345    pub depth_bias_clamp: u32,
4346    pub fill_mode_non_solid: u32,
4347    pub depth_bounds: u32,
4348    pub wide_lines: u32,
4349    pub large_points: u32,
4350    pub alpha_to_one: u32,
4351    pub multi_viewport: u32,
4352    pub sampler_anisotropy: u32,
4353    pub texture_compression_etc2: u32,
4354    pub texture_compression_astc_ldr: u32,
4355    pub texture_compression_bc: u32,
4356    pub occlusion_query_precise: u32,
4357    pub pipeline_statistics_query: u32,
4358    pub vertex_pipeline_stores_and_atomics: u32,
4359    pub fragment_stores_and_atomics: u32,
4360    pub shader_tessellation_and_geometry_point_size: u32,
4361    pub shader_image_gather_extended: u32,
4362    pub shader_storage_image_extended_formats: u32,
4363    pub shader_storage_image_multisample: u32,
4364    pub shader_storage_image_read_without_format: u32,
4365    pub shader_storage_image_write_without_format: u32,
4366    pub shader_uniform_buffer_array_dynamic_indexing: u32,
4367    pub shader_sampled_image_array_dynamic_indexing: u32,
4368    pub shader_storage_buffer_array_dynamic_indexing: u32,
4369    pub shader_storage_image_array_dynamic_indexing: u32,
4370    pub shader_clip_distance: u32,
4371    pub shader_cull_distance: u32,
4372    pub shader_float64: u32,
4373    pub shader_int64: u32,
4374    pub shader_int16: u32,
4375    pub shader_resource_residency: u32,
4376    pub shader_resource_min_lod: u32,
4377    pub sparse_binding: u32,
4378    pub sparse_residency_buffer: u32,
4379    pub sparse_residency_image2_d: u32,
4380    pub sparse_residency_image3_d: u32,
4381    pub sparse_residency2_samples: u32,
4382    pub sparse_residency4_samples: u32,
4383    pub sparse_residency8_samples: u32,
4384    pub sparse_residency16_samples: u32,
4385    pub sparse_residency_aliased: u32,
4386    pub variable_multisample_rate: u32,
4387    pub inherited_queries: u32,
4388}
4389impl Default for PhysicalDeviceFeatures {
4390    #[inline]
4391    fn default() -> Self {
4392        unsafe { core::mem::zeroed() }
4393    }
4394}
4395///[`VkPhysicalDeviceSparseProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSparseProperties.html)
4396/**
4397Provided by **VK_BASE_VERSION_1_0**.*/
4398/**
4399**Returned only**, filled by Vulkan, not constructed by the application.*/
4400#[repr(C)]
4401#[derive(Copy, Clone, Debug)]
4402#[doc(alias = "VkPhysicalDeviceSparseProperties")]
4403pub struct PhysicalDeviceSparseProperties {
4404    pub residency_standard2_d_block_shape: u32,
4405    pub residency_standard2_d_multisample_block_shape: u32,
4406    pub residency_standard3_d_block_shape: u32,
4407    pub residency_aligned_mip_size: u32,
4408    pub residency_non_resident_strict: u32,
4409}
4410impl Default for PhysicalDeviceSparseProperties {
4411    #[inline]
4412    fn default() -> Self {
4413        unsafe { core::mem::zeroed() }
4414    }
4415}
4416///[`VkPhysicalDeviceLimits`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLimits.html)
4417/**
4418Provided by **VK_BASE_VERSION_1_0**.*/
4419/**
4420**Returned only**, filled by Vulkan, not constructed by the application.*/
4421#[repr(C)]
4422#[derive(Copy, Clone, Debug)]
4423#[doc(alias = "VkPhysicalDeviceLimits")]
4424pub struct PhysicalDeviceLimits {
4425    pub max_image_dimension1_d: u32,
4426    pub max_image_dimension2_d: u32,
4427    pub max_image_dimension3_d: u32,
4428    pub max_image_dimension_cube: u32,
4429    pub max_image_array_layers: u32,
4430    pub max_texel_buffer_elements: u32,
4431    pub max_uniform_buffer_range: u32,
4432    pub max_storage_buffer_range: u32,
4433    pub max_push_constants_size: u32,
4434    pub max_memory_allocation_count: u32,
4435    pub max_sampler_allocation_count: u32,
4436    pub buffer_image_granularity: u64,
4437    pub sparse_address_space_size: u64,
4438    pub max_bound_descriptor_sets: u32,
4439    pub max_per_stage_descriptor_samplers: u32,
4440    pub max_per_stage_descriptor_uniform_buffers: u32,
4441    pub max_per_stage_descriptor_storage_buffers: u32,
4442    pub max_per_stage_descriptor_sampled_images: u32,
4443    pub max_per_stage_descriptor_storage_images: u32,
4444    pub max_per_stage_descriptor_input_attachments: u32,
4445    pub max_per_stage_resources: u32,
4446    pub max_descriptor_set_samplers: u32,
4447    pub max_descriptor_set_uniform_buffers: u32,
4448    pub max_descriptor_set_uniform_buffers_dynamic: u32,
4449    pub max_descriptor_set_storage_buffers: u32,
4450    pub max_descriptor_set_storage_buffers_dynamic: u32,
4451    pub max_descriptor_set_sampled_images: u32,
4452    pub max_descriptor_set_storage_images: u32,
4453    pub max_descriptor_set_input_attachments: u32,
4454    pub max_vertex_input_attributes: u32,
4455    pub max_vertex_input_bindings: u32,
4456    pub max_vertex_input_attribute_offset: u32,
4457    pub max_vertex_input_binding_stride: u32,
4458    pub max_vertex_output_components: u32,
4459    pub max_tessellation_generation_level: u32,
4460    pub max_tessellation_patch_size: u32,
4461    pub max_tessellation_control_per_vertex_input_components: u32,
4462    pub max_tessellation_control_per_vertex_output_components: u32,
4463    pub max_tessellation_control_per_patch_output_components: u32,
4464    pub max_tessellation_control_total_output_components: u32,
4465    pub max_tessellation_evaluation_input_components: u32,
4466    pub max_tessellation_evaluation_output_components: u32,
4467    pub max_geometry_shader_invocations: u32,
4468    pub max_geometry_input_components: u32,
4469    pub max_geometry_output_components: u32,
4470    pub max_geometry_output_vertices: u32,
4471    pub max_geometry_total_output_components: u32,
4472    pub max_fragment_input_components: u32,
4473    pub max_fragment_output_attachments: u32,
4474    pub max_fragment_dual_src_attachments: u32,
4475    pub max_fragment_combined_output_resources: u32,
4476    pub max_compute_shared_memory_size: u32,
4477    pub max_compute_work_group_count: [u32; 3usize],
4478    pub max_compute_work_group_invocations: u32,
4479    pub max_compute_work_group_size: [u32; 3usize],
4480    pub sub_pixel_precision_bits: u32,
4481    pub sub_texel_precision_bits: u32,
4482    pub mipmap_precision_bits: u32,
4483    pub max_draw_indexed_index_value: u32,
4484    pub max_draw_indirect_count: u32,
4485    pub max_sampler_lod_bias: f32,
4486    pub max_sampler_anisotropy: f32,
4487    pub max_viewports: u32,
4488    pub max_viewport_dimensions: [u32; 2usize],
4489    pub viewport_bounds_range: [f32; 2usize],
4490    pub viewport_sub_pixel_bits: u32,
4491    pub min_memory_map_alignment: usize,
4492    pub min_texel_buffer_offset_alignment: u64,
4493    pub min_uniform_buffer_offset_alignment: u64,
4494    pub min_storage_buffer_offset_alignment: u64,
4495    pub min_texel_offset: i32,
4496    pub max_texel_offset: u32,
4497    pub min_texel_gather_offset: i32,
4498    pub max_texel_gather_offset: u32,
4499    pub min_interpolation_offset: f32,
4500    pub max_interpolation_offset: f32,
4501    pub sub_pixel_interpolation_offset_bits: u32,
4502    pub max_framebuffer_width: u32,
4503    pub max_framebuffer_height: u32,
4504    pub max_framebuffer_layers: u32,
4505    pub framebuffer_color_sample_counts: SampleCountFlags,
4506    pub framebuffer_depth_sample_counts: SampleCountFlags,
4507    pub framebuffer_stencil_sample_counts: SampleCountFlags,
4508    pub framebuffer_no_attachments_sample_counts: SampleCountFlags,
4509    pub max_color_attachments: u32,
4510    pub sampled_image_color_sample_counts: SampleCountFlags,
4511    pub sampled_image_integer_sample_counts: SampleCountFlags,
4512    pub sampled_image_depth_sample_counts: SampleCountFlags,
4513    pub sampled_image_stencil_sample_counts: SampleCountFlags,
4514    pub storage_image_sample_counts: SampleCountFlags,
4515    pub max_sample_mask_words: u32,
4516    pub timestamp_compute_and_graphics: u32,
4517    pub timestamp_period: f32,
4518    pub max_clip_distances: u32,
4519    pub max_cull_distances: u32,
4520    pub max_combined_clip_and_cull_distances: u32,
4521    pub discrete_queue_priorities: u32,
4522    pub point_size_range: [f32; 2usize],
4523    pub line_width_range: [f32; 2usize],
4524    pub point_size_granularity: f32,
4525    pub line_width_granularity: f32,
4526    pub strict_lines: u32,
4527    pub standard_sample_locations: u32,
4528    pub optimal_buffer_copy_offset_alignment: u64,
4529    pub optimal_buffer_copy_row_pitch_alignment: u64,
4530    pub non_coherent_atom_size: u64,
4531}
4532impl Default for PhysicalDeviceLimits {
4533    #[inline]
4534    fn default() -> Self {
4535        unsafe { core::mem::zeroed() }
4536    }
4537}
4538///[`VkSemaphoreCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreCreateInfo.html)
4539/**
4540Provided by **VK_BASE_VERSION_1_0**.*/
4541///
4542///# Extended By
4543///- [`ExportMetalObjectCreateInfoEXT`]
4544///- [`ExportSemaphoreCreateInfo`]
4545///- [`ExportSemaphoreSciSyncInfoNV`]
4546///- [`ExportSemaphoreWin32HandleInfoKHR`]
4547///- [`ImportMetalSharedEventInfoEXT`]
4548///- [`QueryLowLatencySupportNV`]
4549///- [`SemaphoreSciSyncCreateInfoNV`]
4550///- [`SemaphoreTypeCreateInfo`]
4551#[repr(C)]
4552#[derive(Copy, Clone, Debug)]
4553#[doc(alias = "VkSemaphoreCreateInfo")]
4554pub struct SemaphoreCreateInfo {
4555    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO`.
4556    pub s_type: StructureType,
4557    ///Optional, may be null.
4558    pub p_next: *const core::ffi::c_void,
4559    pub flags: SemaphoreCreateFlags,
4560}
4561impl Default for SemaphoreCreateInfo {
4562    #[inline]
4563    fn default() -> Self {
4564        Self {
4565            s_type: StructureType::from_raw(9i32),
4566            p_next: core::ptr::null(),
4567            flags: Default::default(),
4568        }
4569    }
4570}
4571///[`VkQueryPoolCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolCreateInfo.html)
4572/**
4573Provided by **VK_BASE_VERSION_1_0**.*/
4574///
4575///# Extended By
4576///- [`QueryPoolPerformanceCreateInfoKHR`]
4577///- [`QueryPoolPerformanceQueryCreateInfoINTEL`]
4578///- [`QueryPoolVideoEncodeFeedbackCreateInfoKHR`]
4579///- [`VideoDecodeAV1ProfileInfoKHR`]
4580///- [`VideoDecodeH264ProfileInfoKHR`]
4581///- [`VideoDecodeH265ProfileInfoKHR`]
4582///- [`VideoDecodeUsageInfoKHR`]
4583///- [`VideoDecodeVP9ProfileInfoKHR`]
4584///- [`VideoEncodeAV1ProfileInfoKHR`]
4585///- [`VideoEncodeH264ProfileInfoKHR`]
4586///- [`VideoEncodeH265ProfileInfoKHR`]
4587///- [`VideoEncodeUsageInfoKHR`]
4588///- [`VideoProfileInfoKHR`]
4589#[repr(C)]
4590#[derive(Copy, Clone, Debug)]
4591#[doc(alias = "VkQueryPoolCreateInfo")]
4592pub struct QueryPoolCreateInfo {
4593    ///Must be `VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO`.
4594    pub s_type: StructureType,
4595    ///Optional, may be null.
4596    pub p_next: *const core::ffi::c_void,
4597    pub flags: QueryPoolCreateFlags,
4598    pub query_type: QueryType,
4599    pub query_count: u32,
4600    pub pipeline_statistics: QueryPipelineStatisticFlags,
4601}
4602impl Default for QueryPoolCreateInfo {
4603    #[inline]
4604    fn default() -> Self {
4605        Self {
4606            s_type: StructureType::from_raw(11i32),
4607            p_next: core::ptr::null(),
4608            flags: Default::default(),
4609            query_type: Default::default(),
4610            query_count: Default::default(),
4611            pipeline_statistics: Default::default(),
4612        }
4613    }
4614}
4615///[`VkFramebufferCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferCreateInfo.html)
4616/**
4617Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4618///
4619///# Extended By
4620///- [`FramebufferAttachmentsCreateInfo`]
4621#[repr(C)]
4622#[derive(Copy, Clone, Debug)]
4623#[doc(alias = "VkFramebufferCreateInfo")]
4624pub struct FramebufferCreateInfo {
4625    ///Must be `VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO`.
4626    pub s_type: StructureType,
4627    ///Optional, may be null.
4628    pub p_next: *const core::ffi::c_void,
4629    pub flags: FramebufferCreateFlags,
4630    pub render_pass: RenderPass,
4631    ///Length of `p_attachments`.
4632    pub attachment_count: u32,
4633    pub p_attachments: *const ImageView,
4634    pub width: u32,
4635    pub height: u32,
4636    pub layers: u32,
4637}
4638impl Default for FramebufferCreateInfo {
4639    #[inline]
4640    fn default() -> Self {
4641        Self {
4642            s_type: StructureType::from_raw(37i32),
4643            p_next: core::ptr::null(),
4644            flags: Default::default(),
4645            render_pass: Default::default(),
4646            attachment_count: Default::default(),
4647            p_attachments: core::ptr::null(),
4648            width: Default::default(),
4649            height: Default::default(),
4650            layers: Default::default(),
4651        }
4652    }
4653}
4654///[`VkDrawIndirectCommand`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndirectCommand.html)
4655/**
4656Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4657#[repr(C)]
4658#[derive(Copy, Clone, Debug)]
4659#[doc(alias = "VkDrawIndirectCommand")]
4660pub struct DrawIndirectCommand {
4661    pub vertex_count: u32,
4662    pub instance_count: u32,
4663    pub first_vertex: u32,
4664    pub first_instance: u32,
4665}
4666impl Default for DrawIndirectCommand {
4667    #[inline]
4668    fn default() -> Self {
4669        unsafe { core::mem::zeroed() }
4670    }
4671}
4672///[`VkDrawIndexedIndirectCommand`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndexedIndirectCommand.html)
4673/**
4674Provided by **VK_GRAPHICS_VERSION_1_0**.*/
4675#[repr(C)]
4676#[derive(Copy, Clone, Debug)]
4677#[doc(alias = "VkDrawIndexedIndirectCommand")]
4678pub struct DrawIndexedIndirectCommand {
4679    pub index_count: u32,
4680    pub instance_count: u32,
4681    pub first_index: u32,
4682    pub vertex_offset: i32,
4683    pub first_instance: u32,
4684}
4685impl Default for DrawIndexedIndirectCommand {
4686    #[inline]
4687    fn default() -> Self {
4688        unsafe { core::mem::zeroed() }
4689    }
4690}
4691///[`VkDispatchIndirectCommand`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchIndirectCommand.html)
4692/**
4693Provided by **VK_COMPUTE_VERSION_1_0**.*/
4694#[repr(C)]
4695#[derive(Copy, Clone, Debug)]
4696#[doc(alias = "VkDispatchIndirectCommand")]
4697pub struct DispatchIndirectCommand {
4698    pub x: u32,
4699    pub y: u32,
4700    pub z: u32,
4701}
4702impl Default for DispatchIndirectCommand {
4703    #[inline]
4704    fn default() -> Self {
4705        unsafe { core::mem::zeroed() }
4706    }
4707}
4708///[`VkMultiDrawInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultiDrawInfoEXT.html)
4709/**
4710Provided by **VK_EXT_multi_draw**.*/
4711#[repr(C)]
4712#[derive(Copy, Clone, Debug)]
4713#[doc(alias = "VkMultiDrawInfoEXT")]
4714pub struct MultiDrawInfoEXT {
4715    pub first_vertex: u32,
4716    pub vertex_count: u32,
4717}
4718impl Default for MultiDrawInfoEXT {
4719    #[inline]
4720    fn default() -> Self {
4721        unsafe { core::mem::zeroed() }
4722    }
4723}
4724///[`VkMultiDrawIndexedInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultiDrawIndexedInfoEXT.html)
4725/**
4726Provided by **VK_EXT_multi_draw**.*/
4727#[repr(C)]
4728#[derive(Copy, Clone, Debug)]
4729#[doc(alias = "VkMultiDrawIndexedInfoEXT")]
4730pub struct MultiDrawIndexedInfoEXT {
4731    pub first_index: u32,
4732    pub index_count: u32,
4733    pub vertex_offset: i32,
4734}
4735impl Default for MultiDrawIndexedInfoEXT {
4736    #[inline]
4737    fn default() -> Self {
4738        unsafe { core::mem::zeroed() }
4739    }
4740}
4741///[`VkSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubmitInfo.html)
4742/**
4743Provided by **VK_BASE_VERSION_1_0**.*/
4744///
4745///# Extended By
4746///- [`AmigoProfilingSubmitInfoSEC`]
4747///- [`D3D12FenceSubmitInfoKHR`]
4748///- [`DeviceGroupSubmitInfo`]
4749///- [`FrameBoundaryEXT`]
4750///- [`FrameBoundaryTensorsARM`]
4751///- [`LatencySubmissionPresentIdNV`]
4752///- [`PerformanceQuerySubmitInfoKHR`]
4753///- [`ProtectedSubmitInfo`]
4754///- [`TimelineSemaphoreSubmitInfo`]
4755///- [`Win32KeyedMutexAcquireReleaseInfoKHR`]
4756///- [`Win32KeyedMutexAcquireReleaseInfoNV`]
4757#[repr(C)]
4758#[derive(Copy, Clone, Debug)]
4759#[doc(alias = "VkSubmitInfo")]
4760pub struct SubmitInfo {
4761    ///Must be `VK_STRUCTURE_TYPE_SUBMIT_INFO`.
4762    pub s_type: StructureType,
4763    ///Optional, may be null.
4764    pub p_next: *const core::ffi::c_void,
4765    ///Length of `p_wait_dst_stage_mask`.
4766    pub wait_semaphore_count: u32,
4767    pub p_wait_semaphores: *const Semaphore,
4768    ///Optional, may be null.
4769    pub p_wait_dst_stage_mask: *const PipelineStageFlags,
4770    ///Length of `p_command_buffers`.
4771    pub command_buffer_count: u32,
4772    pub p_command_buffers: *const CommandBuffer,
4773    ///Length of `p_signal_semaphores`.
4774    pub signal_semaphore_count: u32,
4775    pub p_signal_semaphores: *const Semaphore,
4776}
4777impl Default for SubmitInfo {
4778    #[inline]
4779    fn default() -> Self {
4780        Self {
4781            s_type: StructureType::from_raw(4i32),
4782            p_next: core::ptr::null(),
4783            wait_semaphore_count: Default::default(),
4784            p_wait_semaphores: core::ptr::null(),
4785            p_wait_dst_stage_mask: core::ptr::null(),
4786            command_buffer_count: Default::default(),
4787            p_command_buffers: core::ptr::null(),
4788            signal_semaphore_count: Default::default(),
4789            p_signal_semaphores: core::ptr::null(),
4790        }
4791    }
4792}
4793///[`VkDisplayPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPropertiesKHR.html)
4794/**
4795Provided by **VK_KHR_display**.*/
4796/**
4797**Returned only**, filled by Vulkan, not constructed by the application.*/
4798#[repr(C)]
4799#[derive(Copy, Clone, Debug)]
4800#[doc(alias = "VkDisplayPropertiesKHR")]
4801pub struct DisplayPropertiesKHR {
4802    pub display: DisplayKHR,
4803    pub display_name: *const core::ffi::c_char,
4804    pub physical_dimensions: Extent2D,
4805    pub physical_resolution: Extent2D,
4806    pub supported_transforms: SurfaceTransformFlagsKHR,
4807    pub plane_reorder_possible: u32,
4808    pub persistent_content: u32,
4809}
4810impl Default for DisplayPropertiesKHR {
4811    #[inline]
4812    fn default() -> Self {
4813        unsafe { core::mem::zeroed() }
4814    }
4815}
4816///[`VkDisplayPlanePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlanePropertiesKHR.html)
4817/**
4818Provided by **VK_KHR_display**.*/
4819/**
4820**Returned only**, filled by Vulkan, not constructed by the application.*/
4821#[repr(C)]
4822#[derive(Copy, Clone, Debug)]
4823#[doc(alias = "VkDisplayPlanePropertiesKHR")]
4824pub struct DisplayPlanePropertiesKHR {
4825    pub current_display: DisplayKHR,
4826    pub current_stack_index: u32,
4827}
4828impl Default for DisplayPlanePropertiesKHR {
4829    #[inline]
4830    fn default() -> Self {
4831        unsafe { core::mem::zeroed() }
4832    }
4833}
4834///[`VkDisplayModeParametersKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModeParametersKHR.html)
4835/**
4836Provided by **VK_KHR_display**.*/
4837#[repr(C)]
4838#[derive(Copy, Clone, Debug)]
4839#[doc(alias = "VkDisplayModeParametersKHR")]
4840pub struct DisplayModeParametersKHR {
4841    pub visible_region: Extent2D,
4842    pub refresh_rate: u32,
4843}
4844impl Default for DisplayModeParametersKHR {
4845    #[inline]
4846    fn default() -> Self {
4847        unsafe { core::mem::zeroed() }
4848    }
4849}
4850///[`VkDisplayModePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModePropertiesKHR.html)
4851/**
4852Provided by **VK_KHR_display**.*/
4853/**
4854**Returned only**, filled by Vulkan, not constructed by the application.*/
4855#[repr(C)]
4856#[derive(Copy, Clone, Debug)]
4857#[doc(alias = "VkDisplayModePropertiesKHR")]
4858pub struct DisplayModePropertiesKHR {
4859    pub display_mode: DisplayModeKHR,
4860    pub parameters: DisplayModeParametersKHR,
4861}
4862impl Default for DisplayModePropertiesKHR {
4863    #[inline]
4864    fn default() -> Self {
4865        unsafe { core::mem::zeroed() }
4866    }
4867}
4868///[`VkDisplayModeCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModeCreateInfoKHR.html)
4869/**
4870Provided by **VK_KHR_display**.*/
4871#[repr(C)]
4872#[derive(Copy, Clone, Debug)]
4873#[doc(alias = "VkDisplayModeCreateInfoKHR")]
4874pub struct DisplayModeCreateInfoKHR {
4875    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR`.
4876    pub s_type: StructureType,
4877    ///Optional, may be null.
4878    pub p_next: *const core::ffi::c_void,
4879    pub flags: DisplayModeCreateFlagsKHR,
4880    pub parameters: DisplayModeParametersKHR,
4881}
4882impl Default for DisplayModeCreateInfoKHR {
4883    #[inline]
4884    fn default() -> Self {
4885        Self {
4886            s_type: StructureType::from_raw(1000002000i32),
4887            p_next: core::ptr::null(),
4888            flags: Default::default(),
4889            parameters: Default::default(),
4890        }
4891    }
4892}
4893///[`VkDisplayPlaneCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlaneCapabilitiesKHR.html)
4894/**
4895Provided by **VK_KHR_display**.*/
4896/**
4897**Returned only**, filled by Vulkan, not constructed by the application.*/
4898#[repr(C)]
4899#[derive(Copy, Clone, Debug)]
4900#[doc(alias = "VkDisplayPlaneCapabilitiesKHR")]
4901pub struct DisplayPlaneCapabilitiesKHR {
4902    pub supported_alpha: DisplayPlaneAlphaFlagsKHR,
4903    pub min_src_position: Offset2D,
4904    pub max_src_position: Offset2D,
4905    pub min_src_extent: Extent2D,
4906    pub max_src_extent: Extent2D,
4907    pub min_dst_position: Offset2D,
4908    pub max_dst_position: Offset2D,
4909    pub min_dst_extent: Extent2D,
4910    pub max_dst_extent: Extent2D,
4911}
4912impl Default for DisplayPlaneCapabilitiesKHR {
4913    #[inline]
4914    fn default() -> Self {
4915        unsafe { core::mem::zeroed() }
4916    }
4917}
4918///[`VkDisplaySurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplaySurfaceCreateInfoKHR.html)
4919/**
4920Provided by **VK_KHR_display**.*/
4921///
4922///# Extended By
4923///- [`DisplaySurfaceStereoCreateInfoNV`]
4924#[repr(C)]
4925#[derive(Copy, Clone, Debug)]
4926#[doc(alias = "VkDisplaySurfaceCreateInfoKHR")]
4927pub struct DisplaySurfaceCreateInfoKHR {
4928    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR`.
4929    pub s_type: StructureType,
4930    ///Optional, may be null.
4931    pub p_next: *const core::ffi::c_void,
4932    pub flags: DisplaySurfaceCreateFlagsKHR,
4933    pub display_mode: DisplayModeKHR,
4934    pub plane_index: u32,
4935    pub plane_stack_index: u32,
4936    pub transform: SurfaceTransformFlagBitsKHR,
4937    pub global_alpha: f32,
4938    pub alpha_mode: DisplayPlaneAlphaFlagBitsKHR,
4939    pub image_extent: Extent2D,
4940}
4941impl Default for DisplaySurfaceCreateInfoKHR {
4942    #[inline]
4943    fn default() -> Self {
4944        Self {
4945            s_type: StructureType::from_raw(1000002001i32),
4946            p_next: core::ptr::null(),
4947            flags: Default::default(),
4948            display_mode: Default::default(),
4949            plane_index: Default::default(),
4950            plane_stack_index: Default::default(),
4951            transform: Default::default(),
4952            global_alpha: Default::default(),
4953            alpha_mode: Default::default(),
4954            image_extent: Default::default(),
4955        }
4956    }
4957}
4958///[`VkDisplaySurfaceStereoCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplaySurfaceStereoCreateInfoNV.html)
4959/**
4960Provided by **VK_NV_display_stereo**.*/
4961///
4962///# Extends
4963///- [`DisplaySurfaceCreateInfoKHR`]
4964#[repr(C)]
4965#[derive(Copy, Clone, Debug)]
4966#[doc(alias = "VkDisplaySurfaceStereoCreateInfoNV")]
4967pub struct DisplaySurfaceStereoCreateInfoNV {
4968    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV`.
4969    pub s_type: StructureType,
4970    ///Optional, may be null.
4971    pub p_next: *const core::ffi::c_void,
4972    pub stereo_type: DisplaySurfaceStereoTypeNV,
4973}
4974impl Default for DisplaySurfaceStereoCreateInfoNV {
4975    #[inline]
4976    fn default() -> Self {
4977        Self {
4978            s_type: StructureType::from_raw(1000551000i32),
4979            p_next: core::ptr::null(),
4980            stereo_type: Default::default(),
4981        }
4982    }
4983}
4984///[`VkDisplayPresentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPresentInfoKHR.html)
4985/**
4986Provided by **VK_KHR_display_swapchain**.*/
4987///
4988///# Extends
4989///- [`PresentInfoKHR`]
4990#[repr(C)]
4991#[derive(Copy, Clone, Debug)]
4992#[doc(alias = "VkDisplayPresentInfoKHR")]
4993pub struct DisplayPresentInfoKHR {
4994    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR`.
4995    pub s_type: StructureType,
4996    ///Optional, may be null.
4997    pub p_next: *const core::ffi::c_void,
4998    pub src_rect: Rect2D,
4999    pub dst_rect: Rect2D,
5000    pub persistent: u32,
5001}
5002impl Default for DisplayPresentInfoKHR {
5003    #[inline]
5004    fn default() -> Self {
5005        Self {
5006            s_type: StructureType::from_raw(1000003000i32),
5007            p_next: core::ptr::null(),
5008            src_rect: Default::default(),
5009            dst_rect: Default::default(),
5010            persistent: Default::default(),
5011        }
5012    }
5013}
5014///[`VkSurfaceCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesKHR.html)
5015/**
5016Provided by **VK_KHR_surface**.*/
5017/**
5018**Returned only**, filled by Vulkan, not constructed by the application.*/
5019#[repr(C)]
5020#[derive(Copy, Clone, Debug)]
5021#[doc(alias = "VkSurfaceCapabilitiesKHR")]
5022pub struct SurfaceCapabilitiesKHR {
5023    pub min_image_count: u32,
5024    pub max_image_count: u32,
5025    pub current_extent: Extent2D,
5026    pub min_image_extent: Extent2D,
5027    pub max_image_extent: Extent2D,
5028    pub max_image_array_layers: u32,
5029    pub supported_transforms: SurfaceTransformFlagsKHR,
5030    pub current_transform: SurfaceTransformFlagBitsKHR,
5031    pub supported_composite_alpha: CompositeAlphaFlagsKHR,
5032    pub supported_usage_flags: ImageUsageFlags,
5033}
5034impl Default for SurfaceCapabilitiesKHR {
5035    #[inline]
5036    fn default() -> Self {
5037        unsafe { core::mem::zeroed() }
5038    }
5039}
5040///[`VkAndroidSurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidSurfaceCreateInfoKHR.html)
5041/**
5042Provided by **VK_KHR_android_surface**.*/
5043#[repr(C)]
5044#[derive(Copy, Clone, Debug)]
5045#[doc(alias = "VkAndroidSurfaceCreateInfoKHR")]
5046pub struct AndroidSurfaceCreateInfoKHR {
5047    ///Must be `VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR`.
5048    pub s_type: StructureType,
5049    ///Optional, may be null.
5050    pub p_next: *const core::ffi::c_void,
5051    pub flags: AndroidSurfaceCreateFlagsKHR,
5052    pub window: *mut core::ffi::c_void,
5053}
5054impl Default for AndroidSurfaceCreateInfoKHR {
5055    #[inline]
5056    fn default() -> Self {
5057        Self {
5058            s_type: StructureType::from_raw(1000008000i32),
5059            p_next: core::ptr::null(),
5060            flags: Default::default(),
5061            window: core::ptr::null_mut(),
5062        }
5063    }
5064}
5065///[`VkViSurfaceCreateInfoNN`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkViSurfaceCreateInfoNN.html)
5066/**
5067Provided by **VK_NN_vi_surface**.*/
5068#[repr(C)]
5069#[derive(Copy, Clone, Debug)]
5070#[doc(alias = "VkViSurfaceCreateInfoNN")]
5071pub struct ViSurfaceCreateInfoNN {
5072    ///Must be `VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN`.
5073    pub s_type: StructureType,
5074    ///Optional, may be null.
5075    pub p_next: *const core::ffi::c_void,
5076    pub flags: ViSurfaceCreateFlagsNN,
5077    pub window: *mut core::ffi::c_void,
5078}
5079impl Default for ViSurfaceCreateInfoNN {
5080    #[inline]
5081    fn default() -> Self {
5082        Self {
5083            s_type: StructureType::from_raw(1000062000i32),
5084            p_next: core::ptr::null(),
5085            flags: Default::default(),
5086            window: core::ptr::null_mut(),
5087        }
5088    }
5089}
5090///[`VkWaylandSurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWaylandSurfaceCreateInfoKHR.html)
5091/**
5092Provided by **VK_KHR_wayland_surface**.*/
5093#[repr(C)]
5094#[derive(Copy, Clone, Debug)]
5095#[doc(alias = "VkWaylandSurfaceCreateInfoKHR")]
5096pub struct WaylandSurfaceCreateInfoKHR {
5097    ///Must be `VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR`.
5098    pub s_type: StructureType,
5099    ///Optional, may be null.
5100    pub p_next: *const core::ffi::c_void,
5101    pub flags: WaylandSurfaceCreateFlagsKHR,
5102    pub display: *mut core::ffi::c_void,
5103    pub surface: *mut core::ffi::c_void,
5104}
5105impl Default for WaylandSurfaceCreateInfoKHR {
5106    #[inline]
5107    fn default() -> Self {
5108        Self {
5109            s_type: StructureType::from_raw(1000006000i32),
5110            p_next: core::ptr::null(),
5111            flags: Default::default(),
5112            display: core::ptr::null_mut(),
5113            surface: core::ptr::null_mut(),
5114        }
5115    }
5116}
5117///[`VkUbmSurfaceCreateInfoSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkUbmSurfaceCreateInfoSEC.html)
5118/**
5119Provided by **VK_SEC_ubm_surface**.*/
5120#[repr(C)]
5121#[derive(Copy, Clone, Debug)]
5122#[doc(alias = "VkUbmSurfaceCreateInfoSEC")]
5123pub struct UbmSurfaceCreateInfoSEC {
5124    ///Must be `VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC`.
5125    pub s_type: StructureType,
5126    ///Optional, may be null.
5127    pub p_next: *const core::ffi::c_void,
5128    pub flags: UbmSurfaceCreateFlagsSEC,
5129    pub device: *mut core::ffi::c_void,
5130    pub surface: *mut core::ffi::c_void,
5131}
5132impl Default for UbmSurfaceCreateInfoSEC {
5133    #[inline]
5134    fn default() -> Self {
5135        Self {
5136            s_type: StructureType::from_raw(1000664000i32),
5137            p_next: core::ptr::null(),
5138            flags: Default::default(),
5139            device: core::ptr::null_mut(),
5140            surface: core::ptr::null_mut(),
5141        }
5142    }
5143}
5144///[`VkWin32SurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWin32SurfaceCreateInfoKHR.html)
5145/**
5146Provided by **VK_KHR_win32_surface**.*/
5147#[repr(C)]
5148#[derive(Copy, Clone, Debug)]
5149#[doc(alias = "VkWin32SurfaceCreateInfoKHR")]
5150pub struct Win32SurfaceCreateInfoKHR {
5151    ///Must be `VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR`.
5152    pub s_type: StructureType,
5153    ///Optional, may be null.
5154    pub p_next: *const core::ffi::c_void,
5155    pub flags: Win32SurfaceCreateFlagsKHR,
5156    pub hinstance: isize,
5157    pub hwnd: isize,
5158}
5159impl Default for Win32SurfaceCreateInfoKHR {
5160    #[inline]
5161    fn default() -> Self {
5162        Self {
5163            s_type: StructureType::from_raw(1000009000i32),
5164            p_next: core::ptr::null(),
5165            flags: Default::default(),
5166            hinstance: Default::default(),
5167            hwnd: Default::default(),
5168        }
5169    }
5170}
5171///[`VkXlibSurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkXlibSurfaceCreateInfoKHR.html)
5172/**
5173Provided by **VK_KHR_xlib_surface**.*/
5174#[repr(C)]
5175#[derive(Copy, Clone, Debug)]
5176#[doc(alias = "VkXlibSurfaceCreateInfoKHR")]
5177pub struct XlibSurfaceCreateInfoKHR {
5178    ///Must be `VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR`.
5179    pub s_type: StructureType,
5180    ///Optional, may be null.
5181    pub p_next: *const core::ffi::c_void,
5182    pub flags: XlibSurfaceCreateFlagsKHR,
5183    pub dpy: *mut core::ffi::c_void,
5184    pub window: core::ffi::c_ulong,
5185}
5186impl Default for XlibSurfaceCreateInfoKHR {
5187    #[inline]
5188    fn default() -> Self {
5189        Self {
5190            s_type: StructureType::from_raw(1000004000i32),
5191            p_next: core::ptr::null(),
5192            flags: Default::default(),
5193            dpy: core::ptr::null_mut(),
5194            window: Default::default(),
5195        }
5196    }
5197}
5198///[`VkXcbSurfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkXcbSurfaceCreateInfoKHR.html)
5199/**
5200Provided by **VK_KHR_xcb_surface**.*/
5201#[repr(C)]
5202#[derive(Copy, Clone, Debug)]
5203#[doc(alias = "VkXcbSurfaceCreateInfoKHR")]
5204pub struct XcbSurfaceCreateInfoKHR {
5205    ///Must be `VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR`.
5206    pub s_type: StructureType,
5207    ///Optional, may be null.
5208    pub p_next: *const core::ffi::c_void,
5209    pub flags: XcbSurfaceCreateFlagsKHR,
5210    pub connection: *mut core::ffi::c_void,
5211    pub window: u32,
5212}
5213impl Default for XcbSurfaceCreateInfoKHR {
5214    #[inline]
5215    fn default() -> Self {
5216        Self {
5217            s_type: StructureType::from_raw(1000005000i32),
5218            p_next: core::ptr::null(),
5219            flags: Default::default(),
5220            connection: core::ptr::null_mut(),
5221            window: Default::default(),
5222        }
5223    }
5224}
5225///[`VkDirectFBSurfaceCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDirectFBSurfaceCreateInfoEXT.html)
5226/**
5227Provided by **VK_EXT_directfb_surface**.*/
5228#[repr(C)]
5229#[derive(Copy, Clone, Debug)]
5230#[doc(alias = "VkDirectFBSurfaceCreateInfoEXT")]
5231pub struct DirectFBSurfaceCreateInfoEXT {
5232    ///Must be `VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT`.
5233    pub s_type: StructureType,
5234    ///Optional, may be null.
5235    pub p_next: *const core::ffi::c_void,
5236    pub flags: DirectFBSurfaceCreateFlagsEXT,
5237    pub dfb: *mut core::ffi::c_void,
5238    pub surface: *mut core::ffi::c_void,
5239}
5240impl Default for DirectFBSurfaceCreateInfoEXT {
5241    #[inline]
5242    fn default() -> Self {
5243        Self {
5244            s_type: StructureType::from_raw(1000346000i32),
5245            p_next: core::ptr::null(),
5246            flags: Default::default(),
5247            dfb: core::ptr::null_mut(),
5248            surface: core::ptr::null_mut(),
5249        }
5250    }
5251}
5252///[`VkImagePipeSurfaceCreateInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImagePipeSurfaceCreateInfoFUCHSIA.html)
5253/**
5254Provided by **VK_FUCHSIA_imagepipe_surface**.*/
5255#[repr(C)]
5256#[derive(Copy, Clone, Debug)]
5257#[doc(alias = "VkImagePipeSurfaceCreateInfoFUCHSIA")]
5258pub struct ImagePipeSurfaceCreateInfoFUCHSIA {
5259    ///Must be `VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA`.
5260    pub s_type: StructureType,
5261    ///Optional, may be null.
5262    pub p_next: *const core::ffi::c_void,
5263    pub flags: ImagePipeSurfaceCreateFlagsFUCHSIA,
5264    pub image_pipe_handle: u32,
5265}
5266impl Default for ImagePipeSurfaceCreateInfoFUCHSIA {
5267    #[inline]
5268    fn default() -> Self {
5269        Self {
5270            s_type: StructureType::from_raw(1000214000i32),
5271            p_next: core::ptr::null(),
5272            flags: Default::default(),
5273            image_pipe_handle: Default::default(),
5274        }
5275    }
5276}
5277///[`VkStreamDescriptorSurfaceCreateInfoGGP`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStreamDescriptorSurfaceCreateInfoGGP.html)
5278/**
5279Provided by **VK_GGP_stream_descriptor_surface**.*/
5280#[repr(C)]
5281#[derive(Copy, Clone, Debug)]
5282#[doc(alias = "VkStreamDescriptorSurfaceCreateInfoGGP")]
5283pub struct StreamDescriptorSurfaceCreateInfoGGP {
5284    ///Must be `VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP`.
5285    pub s_type: StructureType,
5286    ///Optional, may be null.
5287    pub p_next: *const core::ffi::c_void,
5288    pub flags: StreamDescriptorSurfaceCreateFlagsGGP,
5289    pub stream_descriptor: u32,
5290}
5291impl Default for StreamDescriptorSurfaceCreateInfoGGP {
5292    #[inline]
5293    fn default() -> Self {
5294        Self {
5295            s_type: StructureType::from_raw(1000049000i32),
5296            p_next: core::ptr::null(),
5297            flags: Default::default(),
5298            stream_descriptor: Default::default(),
5299        }
5300    }
5301}
5302///[`VkScreenSurfaceCreateInfoQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkScreenSurfaceCreateInfoQNX.html)
5303/**
5304Provided by **VK_QNX_screen_surface**.*/
5305#[repr(C)]
5306#[derive(Copy, Clone, Debug)]
5307#[doc(alias = "VkScreenSurfaceCreateInfoQNX")]
5308pub struct ScreenSurfaceCreateInfoQNX {
5309    ///Must be `VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX`.
5310    pub s_type: StructureType,
5311    ///Optional, may be null.
5312    pub p_next: *const core::ffi::c_void,
5313    pub flags: ScreenSurfaceCreateFlagsQNX,
5314    pub context: *mut core::ffi::c_void,
5315    pub window: *mut core::ffi::c_void,
5316}
5317impl Default for ScreenSurfaceCreateInfoQNX {
5318    #[inline]
5319    fn default() -> Self {
5320        Self {
5321            s_type: StructureType::from_raw(1000378000i32),
5322            p_next: core::ptr::null(),
5323            flags: Default::default(),
5324            context: core::ptr::null_mut(),
5325            window: core::ptr::null_mut(),
5326        }
5327    }
5328}
5329///[`VkSurfaceFormatKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFormatKHR.html)
5330/**
5331Provided by **VK_KHR_surface**.*/
5332/**
5333**Returned only**, filled by Vulkan, not constructed by the application.*/
5334#[repr(C)]
5335#[derive(Copy, Clone, Debug)]
5336#[doc(alias = "VkSurfaceFormatKHR")]
5337pub struct SurfaceFormatKHR {
5338    pub format: Format,
5339    pub color_space: ColorSpaceKHR,
5340}
5341impl Default for SurfaceFormatKHR {
5342    #[inline]
5343    fn default() -> Self {
5344        unsafe { core::mem::zeroed() }
5345    }
5346}
5347///[`VkSwapchainCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainCreateInfoKHR.html)
5348/**
5349Provided by **VK_KHR_swapchain**.*/
5350///
5351///# Extended By
5352///- [`DeviceGroupSwapchainCreateInfoKHR`]
5353///- [`ImageCompressionControlEXT`]
5354///- [`ImageFormatListCreateInfo`]
5355///- [`SurfaceFullScreenExclusiveInfoEXT`]
5356///- [`SurfaceFullScreenExclusiveWin32InfoEXT`]
5357///- [`SwapchainCounterCreateInfoEXT`]
5358///- [`SwapchainDisplayNativeHdrCreateInfoAMD`]
5359///- [`SwapchainLatencyCreateInfoNV`]
5360///- [`SwapchainPresentBarrierCreateInfoNV`]
5361///- [`SwapchainPresentModesCreateInfoKHR`]
5362///- [`SwapchainPresentScalingCreateInfoKHR`]
5363#[repr(C)]
5364#[derive(Copy, Clone, Debug)]
5365#[doc(alias = "VkSwapchainCreateInfoKHR")]
5366pub struct SwapchainCreateInfoKHR {
5367    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR`.
5368    pub s_type: StructureType,
5369    ///Optional, may be null.
5370    pub p_next: *const core::ffi::c_void,
5371    pub flags: SwapchainCreateFlagsKHR,
5372    ///**Thread safety:** must be externally synchronized.
5373    pub surface: SurfaceKHR,
5374    pub min_image_count: u32,
5375    pub image_format: Format,
5376    pub image_color_space: ColorSpaceKHR,
5377    pub image_extent: Extent2D,
5378    pub image_array_layers: u32,
5379    pub image_usage: ImageUsageFlags,
5380    pub image_sharing_mode: SharingMode,
5381    ///Length of `p_queue_family_indices`.
5382    pub queue_family_index_count: u32,
5383    pub p_queue_family_indices: *const u32,
5384    pub pre_transform: SurfaceTransformFlagBitsKHR,
5385    pub composite_alpha: CompositeAlphaFlagBitsKHR,
5386    pub present_mode: PresentModeKHR,
5387    pub clipped: u32,
5388    ///**Thread safety:** must be externally synchronized.
5389    pub old_swapchain: SwapchainKHR,
5390}
5391impl Default for SwapchainCreateInfoKHR {
5392    #[inline]
5393    fn default() -> Self {
5394        Self {
5395            s_type: StructureType::from_raw(1000001000i32),
5396            p_next: core::ptr::null(),
5397            flags: Default::default(),
5398            surface: Default::default(),
5399            min_image_count: Default::default(),
5400            image_format: Default::default(),
5401            image_color_space: Default::default(),
5402            image_extent: Default::default(),
5403            image_array_layers: Default::default(),
5404            image_usage: Default::default(),
5405            image_sharing_mode: Default::default(),
5406            queue_family_index_count: Default::default(),
5407            p_queue_family_indices: core::ptr::null(),
5408            pre_transform: Default::default(),
5409            composite_alpha: Default::default(),
5410            present_mode: Default::default(),
5411            clipped: Default::default(),
5412            old_swapchain: Default::default(),
5413        }
5414    }
5415}
5416///[`VkPresentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentInfoKHR.html)
5417/**
5418Provided by **VK_KHR_swapchain**.*/
5419///
5420///# Extended By
5421///- [`DeviceGroupPresentInfoKHR`]
5422///- [`DisplayPresentInfoKHR`]
5423///- [`FrameBoundaryEXT`]
5424///- [`FrameBoundaryTensorsARM`]
5425///- [`PresentFrameTokenGGP`]
5426///- [`PresentId2KHR`]
5427///- [`PresentIdKHR`]
5428///- [`PresentRegionsKHR`]
5429///- [`PresentTimesInfoGOOGLE`]
5430///- [`PresentTimingsInfoEXT`]
5431///- [`SetPresentConfigNV`]
5432///- [`SwapchainPresentFenceInfoKHR`]
5433///- [`SwapchainPresentModeInfoKHR`]
5434#[repr(C)]
5435#[derive(Copy, Clone, Debug)]
5436#[doc(alias = "VkPresentInfoKHR")]
5437pub struct PresentInfoKHR {
5438    ///Must be `VK_STRUCTURE_TYPE_PRESENT_INFO_KHR`.
5439    pub s_type: StructureType,
5440    ///Optional, may be null.
5441    pub p_next: *const core::ffi::c_void,
5442    ///Length of `p_wait_semaphores`.
5443    pub wait_semaphore_count: u32,
5444    ///**Thread safety:** must be externally synchronized.
5445    pub p_wait_semaphores: *const Semaphore,
5446    ///Length of `p_results`.
5447    pub swapchain_count: u32,
5448    ///**Thread safety:** must be externally synchronized.
5449    pub p_swapchains: *const SwapchainKHR,
5450    pub p_image_indices: *const u32,
5451    ///Optional, may be null.
5452    pub p_results: *mut Result,
5453}
5454impl Default for PresentInfoKHR {
5455    #[inline]
5456    fn default() -> Self {
5457        Self {
5458            s_type: StructureType::from_raw(1000001001i32),
5459            p_next: core::ptr::null(),
5460            wait_semaphore_count: Default::default(),
5461            p_wait_semaphores: core::ptr::null(),
5462            swapchain_count: Default::default(),
5463            p_swapchains: core::ptr::null(),
5464            p_image_indices: core::ptr::null(),
5465            p_results: core::ptr::null_mut(),
5466        }
5467    }
5468}
5469///[`VkDebugReportCallbackCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugReportCallbackCreateInfoEXT.html)
5470/**
5471Provided by **VK_EXT_debug_report**.*/
5472///
5473///# Extends
5474///- [`InstanceCreateInfo`]
5475#[repr(C)]
5476#[derive(Copy, Clone, Debug)]
5477#[doc(alias = "VkDebugReportCallbackCreateInfoEXT")]
5478pub struct DebugReportCallbackCreateInfoEXT {
5479    ///Must be `VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT`.
5480    pub s_type: StructureType,
5481    ///Optional, may be null.
5482    pub p_next: *const core::ffi::c_void,
5483    pub flags: DebugReportFlagsEXT,
5484    pub pfn_callback: PFN_vkDebugReportCallbackEXT,
5485    ///Optional, may be null.
5486    pub p_user_data: *mut core::ffi::c_void,
5487}
5488impl Default for DebugReportCallbackCreateInfoEXT {
5489    #[inline]
5490    fn default() -> Self {
5491        Self {
5492            s_type: StructureType::from_raw(1000011000i32),
5493            p_next: core::ptr::null(),
5494            flags: Default::default(),
5495            pfn_callback: Default::default(),
5496            p_user_data: core::ptr::null_mut(),
5497        }
5498    }
5499}
5500///[`VkValidationFlagsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkValidationFlagsEXT.html)
5501/**
5502Provided by **VK_EXT_validation_flags**.*/
5503///
5504///# Extends
5505///- [`InstanceCreateInfo`]
5506#[repr(C)]
5507#[derive(Copy, Clone, Debug)]
5508#[doc(alias = "VkValidationFlagsEXT")]
5509pub struct ValidationFlagsEXT {
5510    ///Must be `VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT`.
5511    pub s_type: StructureType,
5512    ///Optional, may be null.
5513    pub p_next: *const core::ffi::c_void,
5514    ///Length of `p_disabled_validation_checks`.
5515    pub disabled_validation_check_count: u32,
5516    pub p_disabled_validation_checks: *const ValidationCheckEXT,
5517}
5518impl Default for ValidationFlagsEXT {
5519    #[inline]
5520    fn default() -> Self {
5521        Self {
5522            s_type: StructureType::from_raw(1000061000i32),
5523            p_next: core::ptr::null(),
5524            disabled_validation_check_count: Default::default(),
5525            p_disabled_validation_checks: core::ptr::null(),
5526        }
5527    }
5528}
5529///[`VkValidationFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkValidationFeaturesEXT.html)
5530/**
5531Provided by **VK_EXT_validation_features**.*/
5532///
5533///# Extends
5534///- [`InstanceCreateInfo`]
5535///- [`ShaderModuleCreateInfo`]
5536///- [`ShaderCreateInfoEXT`]
5537#[repr(C)]
5538#[derive(Copy, Clone, Debug)]
5539#[doc(alias = "VkValidationFeaturesEXT")]
5540pub struct ValidationFeaturesEXT {
5541    ///Must be `VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT`.
5542    pub s_type: StructureType,
5543    ///Optional, may be null.
5544    pub p_next: *const core::ffi::c_void,
5545    ///Length of `p_enabled_validation_features`.
5546    pub enabled_validation_feature_count: u32,
5547    pub p_enabled_validation_features: *const ValidationFeatureEnableEXT,
5548    ///Length of `p_disabled_validation_features`.
5549    pub disabled_validation_feature_count: u32,
5550    pub p_disabled_validation_features: *const ValidationFeatureDisableEXT,
5551}
5552impl Default for ValidationFeaturesEXT {
5553    #[inline]
5554    fn default() -> Self {
5555        Self {
5556            s_type: StructureType::from_raw(1000247000i32),
5557            p_next: core::ptr::null(),
5558            enabled_validation_feature_count: Default::default(),
5559            p_enabled_validation_features: core::ptr::null(),
5560            disabled_validation_feature_count: Default::default(),
5561            p_disabled_validation_features: core::ptr::null(),
5562        }
5563    }
5564}
5565///[`VkLayerSettingsCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLayerSettingsCreateInfoEXT.html)
5566/**
5567Provided by **VK_EXT_layer_settings**.*/
5568///
5569///# Extends
5570///- [`InstanceCreateInfo`]
5571#[repr(C)]
5572#[derive(Copy, Clone, Debug)]
5573#[doc(alias = "VkLayerSettingsCreateInfoEXT")]
5574pub struct LayerSettingsCreateInfoEXT {
5575    ///Must be `VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT`.
5576    pub s_type: StructureType,
5577    ///Optional, may be null.
5578    pub p_next: *const core::ffi::c_void,
5579    ///Length of `p_settings`.
5580    pub setting_count: u32,
5581    pub p_settings: *const LayerSettingEXT,
5582}
5583impl Default for LayerSettingsCreateInfoEXT {
5584    #[inline]
5585    fn default() -> Self {
5586        Self {
5587            s_type: StructureType::from_raw(1000496000i32),
5588            p_next: core::ptr::null(),
5589            setting_count: Default::default(),
5590            p_settings: core::ptr::null(),
5591        }
5592    }
5593}
5594///[`VkLayerSettingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLayerSettingEXT.html)
5595/**
5596Provided by **VK_EXT_layer_settings**.*/
5597#[repr(C)]
5598#[derive(Copy, Clone, Debug)]
5599#[doc(alias = "VkLayerSettingEXT")]
5600pub struct LayerSettingEXT {
5601    pub p_layer_name: *const core::ffi::c_char,
5602    pub p_setting_name: *const core::ffi::c_char,
5603    pub r#type: LayerSettingTypeEXT,
5604    ///Length of `p_values`.
5605    pub value_count: u32,
5606    pub p_values: *const core::ffi::c_void,
5607}
5608impl Default for LayerSettingEXT {
5609    #[inline]
5610    fn default() -> Self {
5611        unsafe { core::mem::zeroed() }
5612    }
5613}
5614///[`VkApplicationParametersEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkApplicationParametersEXT.html)
5615///
5616///# Extends
5617///- [`ApplicationInfo`]
5618///- [`DeviceCreateInfo`]
5619#[repr(C)]
5620#[derive(Copy, Clone, Debug)]
5621#[doc(alias = "VkApplicationParametersEXT")]
5622pub struct ApplicationParametersEXT {
5623    ///Must be `VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT`.
5624    pub s_type: StructureType,
5625    ///Optional, may be null.
5626    pub p_next: *const core::ffi::c_void,
5627    pub vendor_id: u32,
5628    pub device_id: u32,
5629    pub key: u32,
5630    pub value: u64,
5631}
5632impl Default for ApplicationParametersEXT {
5633    #[inline]
5634    fn default() -> Self {
5635        Self {
5636            s_type: Default::default(),
5637            p_next: core::ptr::null(),
5638            vendor_id: Default::default(),
5639            device_id: Default::default(),
5640            key: Default::default(),
5641            value: Default::default(),
5642        }
5643    }
5644}
5645///[`VkPipelineRasterizationStateRasterizationOrderAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationStateRasterizationOrderAMD.html)
5646/**
5647Provided by **VK_AMD_rasterization_order**.*/
5648///
5649///# Extends
5650///- [`PipelineRasterizationStateCreateInfo`]
5651#[repr(C)]
5652#[derive(Copy, Clone, Debug)]
5653#[doc(alias = "VkPipelineRasterizationStateRasterizationOrderAMD")]
5654pub struct PipelineRasterizationStateRasterizationOrderAMD {
5655    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD`.
5656    pub s_type: StructureType,
5657    ///Optional, may be null.
5658    pub p_next: *const core::ffi::c_void,
5659    pub rasterization_order: RasterizationOrderAMD,
5660}
5661impl Default for PipelineRasterizationStateRasterizationOrderAMD {
5662    #[inline]
5663    fn default() -> Self {
5664        Self {
5665            s_type: StructureType::from_raw(1000018000i32),
5666            p_next: core::ptr::null(),
5667            rasterization_order: Default::default(),
5668        }
5669    }
5670}
5671///[`VkDebugMarkerObjectNameInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugMarkerObjectNameInfoEXT.html)
5672/**
5673Provided by **VK_EXT_debug_marker**.*/
5674#[repr(C)]
5675#[derive(Copy, Clone, Debug)]
5676#[doc(alias = "VkDebugMarkerObjectNameInfoEXT")]
5677pub struct DebugMarkerObjectNameInfoEXT {
5678    ///Must be `VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT`.
5679    pub s_type: StructureType,
5680    ///Optional, may be null.
5681    pub p_next: *const core::ffi::c_void,
5682    pub object_type: DebugReportObjectTypeEXT,
5683    ///**Thread safety:** must be externally synchronized.
5684    pub object: u64,
5685    pub p_object_name: *const core::ffi::c_char,
5686}
5687impl Default for DebugMarkerObjectNameInfoEXT {
5688    #[inline]
5689    fn default() -> Self {
5690        Self {
5691            s_type: StructureType::from_raw(1000022000i32),
5692            p_next: core::ptr::null(),
5693            object_type: Default::default(),
5694            object: Default::default(),
5695            p_object_name: core::ptr::null(),
5696        }
5697    }
5698}
5699///[`VkDebugMarkerObjectTagInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugMarkerObjectTagInfoEXT.html)
5700/**
5701Provided by **VK_EXT_debug_marker**.*/
5702#[repr(C)]
5703#[derive(Copy, Clone, Debug)]
5704#[doc(alias = "VkDebugMarkerObjectTagInfoEXT")]
5705pub struct DebugMarkerObjectTagInfoEXT {
5706    ///Must be `VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT`.
5707    pub s_type: StructureType,
5708    ///Optional, may be null.
5709    pub p_next: *const core::ffi::c_void,
5710    pub object_type: DebugReportObjectTypeEXT,
5711    ///**Thread safety:** must be externally synchronized.
5712    pub object: u64,
5713    pub tag_name: u64,
5714    ///Length of `p_tag`.
5715    pub tag_size: usize,
5716    pub p_tag: *const core::ffi::c_void,
5717}
5718impl Default for DebugMarkerObjectTagInfoEXT {
5719    #[inline]
5720    fn default() -> Self {
5721        Self {
5722            s_type: StructureType::from_raw(1000022001i32),
5723            p_next: core::ptr::null(),
5724            object_type: Default::default(),
5725            object: Default::default(),
5726            tag_name: Default::default(),
5727            tag_size: Default::default(),
5728            p_tag: core::ptr::null(),
5729        }
5730    }
5731}
5732///[`VkDebugMarkerMarkerInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugMarkerMarkerInfoEXT.html)
5733/**
5734Provided by **VK_EXT_debug_marker**.*/
5735#[repr(C)]
5736#[derive(Copy, Clone, Debug)]
5737#[doc(alias = "VkDebugMarkerMarkerInfoEXT")]
5738pub struct DebugMarkerMarkerInfoEXT {
5739    ///Must be `VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT`.
5740    pub s_type: StructureType,
5741    ///Optional, may be null.
5742    pub p_next: *const core::ffi::c_void,
5743    pub p_marker_name: *const core::ffi::c_char,
5744    pub color: [f32; 4usize],
5745}
5746impl Default for DebugMarkerMarkerInfoEXT {
5747    #[inline]
5748    fn default() -> Self {
5749        Self {
5750            s_type: StructureType::from_raw(1000022002i32),
5751            p_next: core::ptr::null(),
5752            p_marker_name: core::ptr::null(),
5753            color: unsafe { core::mem::zeroed() },
5754        }
5755    }
5756}
5757///[`VkDedicatedAllocationImageCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDedicatedAllocationImageCreateInfoNV.html)
5758/**
5759Provided by **VK_NV_dedicated_allocation**.*/
5760///
5761///# Extends
5762///- [`ImageCreateInfo`]
5763#[repr(C)]
5764#[derive(Copy, Clone, Debug)]
5765#[doc(alias = "VkDedicatedAllocationImageCreateInfoNV")]
5766pub struct DedicatedAllocationImageCreateInfoNV {
5767    ///Must be `VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV`.
5768    pub s_type: StructureType,
5769    ///Optional, may be null.
5770    pub p_next: *const core::ffi::c_void,
5771    pub dedicated_allocation: u32,
5772}
5773impl Default for DedicatedAllocationImageCreateInfoNV {
5774    #[inline]
5775    fn default() -> Self {
5776        Self {
5777            s_type: StructureType::from_raw(1000026000i32),
5778            p_next: core::ptr::null(),
5779            dedicated_allocation: Default::default(),
5780        }
5781    }
5782}
5783///[`VkDedicatedAllocationBufferCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDedicatedAllocationBufferCreateInfoNV.html)
5784/**
5785Provided by **VK_NV_dedicated_allocation**.*/
5786///
5787///# Extends
5788///- [`BufferCreateInfo`]
5789#[repr(C)]
5790#[derive(Copy, Clone, Debug)]
5791#[doc(alias = "VkDedicatedAllocationBufferCreateInfoNV")]
5792pub struct DedicatedAllocationBufferCreateInfoNV {
5793    ///Must be `VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV`.
5794    pub s_type: StructureType,
5795    ///Optional, may be null.
5796    pub p_next: *const core::ffi::c_void,
5797    pub dedicated_allocation: u32,
5798}
5799impl Default for DedicatedAllocationBufferCreateInfoNV {
5800    #[inline]
5801    fn default() -> Self {
5802        Self {
5803            s_type: StructureType::from_raw(1000026001i32),
5804            p_next: core::ptr::null(),
5805            dedicated_allocation: Default::default(),
5806        }
5807    }
5808}
5809///[`VkDedicatedAllocationMemoryAllocateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDedicatedAllocationMemoryAllocateInfoNV.html)
5810/**
5811Provided by **VK_NV_dedicated_allocation**.*/
5812///
5813///# Extends
5814///- [`MemoryAllocateInfo`]
5815#[repr(C)]
5816#[derive(Copy, Clone, Debug)]
5817#[doc(alias = "VkDedicatedAllocationMemoryAllocateInfoNV")]
5818pub struct DedicatedAllocationMemoryAllocateInfoNV {
5819    ///Must be `VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV`.
5820    pub s_type: StructureType,
5821    ///Optional, may be null.
5822    pub p_next: *const core::ffi::c_void,
5823    pub image: Image,
5824    pub buffer: Buffer,
5825}
5826impl Default for DedicatedAllocationMemoryAllocateInfoNV {
5827    #[inline]
5828    fn default() -> Self {
5829        Self {
5830            s_type: StructureType::from_raw(1000026002i32),
5831            p_next: core::ptr::null(),
5832            image: Default::default(),
5833            buffer: Default::default(),
5834        }
5835    }
5836}
5837///[`VkExternalImageFormatPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalImageFormatPropertiesNV.html)
5838/**
5839Provided by **VK_NV_external_memory_capabilities**.*/
5840/**
5841**Returned only**, filled by Vulkan, not constructed by the application.*/
5842#[repr(C)]
5843#[derive(Copy, Clone, Debug)]
5844#[doc(alias = "VkExternalImageFormatPropertiesNV")]
5845pub struct ExternalImageFormatPropertiesNV {
5846    pub image_format_properties: ImageFormatProperties,
5847    pub external_memory_features: ExternalMemoryFeatureFlagsNV,
5848    pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlagsNV,
5849    pub compatible_handle_types: ExternalMemoryHandleTypeFlagsNV,
5850}
5851impl Default for ExternalImageFormatPropertiesNV {
5852    #[inline]
5853    fn default() -> Self {
5854        unsafe { core::mem::zeroed() }
5855    }
5856}
5857///[`VkExternalMemoryImageCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryImageCreateInfoNV.html)
5858/**
5859Provided by **VK_NV_external_memory**.*/
5860///
5861///# Extends
5862///- [`ImageCreateInfo`]
5863#[repr(C)]
5864#[derive(Copy, Clone, Debug)]
5865#[doc(alias = "VkExternalMemoryImageCreateInfoNV")]
5866pub struct ExternalMemoryImageCreateInfoNV {
5867    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV`.
5868    pub s_type: StructureType,
5869    ///Optional, may be null.
5870    pub p_next: *const core::ffi::c_void,
5871    pub handle_types: ExternalMemoryHandleTypeFlagsNV,
5872}
5873impl Default for ExternalMemoryImageCreateInfoNV {
5874    #[inline]
5875    fn default() -> Self {
5876        Self {
5877            s_type: StructureType::from_raw(1000056000i32),
5878            p_next: core::ptr::null(),
5879            handle_types: Default::default(),
5880        }
5881    }
5882}
5883///[`VkExportMemoryAllocateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemoryAllocateInfoNV.html)
5884/**
5885Provided by **VK_NV_external_memory**.*/
5886///
5887///# Extends
5888///- [`MemoryAllocateInfo`]
5889#[repr(C)]
5890#[derive(Copy, Clone, Debug)]
5891#[doc(alias = "VkExportMemoryAllocateInfoNV")]
5892pub struct ExportMemoryAllocateInfoNV {
5893    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV`.
5894    pub s_type: StructureType,
5895    ///Optional, may be null.
5896    pub p_next: *const core::ffi::c_void,
5897    pub handle_types: ExternalMemoryHandleTypeFlagsNV,
5898}
5899impl Default for ExportMemoryAllocateInfoNV {
5900    #[inline]
5901    fn default() -> Self {
5902        Self {
5903            s_type: StructureType::from_raw(1000056001i32),
5904            p_next: core::ptr::null(),
5905            handle_types: Default::default(),
5906        }
5907    }
5908}
5909///[`VkImportMemoryWin32HandleInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryWin32HandleInfoNV.html)
5910/**
5911Provided by **VK_NV_external_memory_win32**.*/
5912///
5913///# Extends
5914///- [`MemoryAllocateInfo`]
5915#[repr(C)]
5916#[derive(Copy, Clone, Debug)]
5917#[doc(alias = "VkImportMemoryWin32HandleInfoNV")]
5918pub struct ImportMemoryWin32HandleInfoNV {
5919    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV`.
5920    pub s_type: StructureType,
5921    ///Optional, may be null.
5922    pub p_next: *const core::ffi::c_void,
5923    pub handle_type: ExternalMemoryHandleTypeFlagsNV,
5924    pub handle: isize,
5925}
5926impl Default for ImportMemoryWin32HandleInfoNV {
5927    #[inline]
5928    fn default() -> Self {
5929        Self {
5930            s_type: StructureType::from_raw(1000057000i32),
5931            p_next: core::ptr::null(),
5932            handle_type: Default::default(),
5933            handle: Default::default(),
5934        }
5935    }
5936}
5937///[`VkExportMemoryWin32HandleInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemoryWin32HandleInfoNV.html)
5938/**
5939Provided by **VK_NV_external_memory_win32**.*/
5940///
5941///# Extends
5942///- [`MemoryAllocateInfo`]
5943#[repr(C)]
5944#[derive(Copy, Clone, Debug)]
5945#[doc(alias = "VkExportMemoryWin32HandleInfoNV")]
5946pub struct ExportMemoryWin32HandleInfoNV {
5947    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV`.
5948    pub s_type: StructureType,
5949    ///Optional, may be null.
5950    pub p_next: *const core::ffi::c_void,
5951    ///Optional, may be null.
5952    pub p_attributes: *const core::ffi::c_void,
5953    pub dw_access: u32,
5954}
5955impl Default for ExportMemoryWin32HandleInfoNV {
5956    #[inline]
5957    fn default() -> Self {
5958        Self {
5959            s_type: StructureType::from_raw(1000057001i32),
5960            p_next: core::ptr::null(),
5961            p_attributes: core::ptr::null(),
5962            dw_access: Default::default(),
5963        }
5964    }
5965}
5966///[`VkExportMemorySciBufInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemorySciBufInfoNV.html)
5967///
5968///# Extends
5969///- [`MemoryAllocateInfo`]
5970#[repr(C)]
5971#[derive(Copy, Clone, Debug)]
5972#[doc(alias = "VkExportMemorySciBufInfoNV")]
5973pub struct ExportMemorySciBufInfoNV {
5974    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV`.
5975    pub s_type: StructureType,
5976    ///Optional, may be null.
5977    pub p_next: *const core::ffi::c_void,
5978    pub p_attributes: *const core::ffi::c_void,
5979}
5980impl Default for ExportMemorySciBufInfoNV {
5981    #[inline]
5982    fn default() -> Self {
5983        Self {
5984            s_type: Default::default(),
5985            p_next: core::ptr::null(),
5986            p_attributes: core::ptr::null(),
5987        }
5988    }
5989}
5990///[`VkImportMemorySciBufInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemorySciBufInfoNV.html)
5991///
5992///# Extends
5993///- [`MemoryAllocateInfo`]
5994#[repr(C)]
5995#[derive(Copy, Clone, Debug)]
5996#[doc(alias = "VkImportMemorySciBufInfoNV")]
5997pub struct ImportMemorySciBufInfoNV {
5998    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV`.
5999    pub s_type: StructureType,
6000    ///Optional, may be null.
6001    pub p_next: *const core::ffi::c_void,
6002    pub handle_type: ExternalMemoryHandleTypeFlagBits,
6003    pub handle: *const core::ffi::c_void,
6004}
6005impl Default for ImportMemorySciBufInfoNV {
6006    #[inline]
6007    fn default() -> Self {
6008        Self {
6009            s_type: Default::default(),
6010            p_next: core::ptr::null(),
6011            handle_type: Default::default(),
6012            handle: core::ptr::null(),
6013        }
6014    }
6015}
6016///[`VkMemoryGetSciBufInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetSciBufInfoNV.html)
6017#[repr(C)]
6018#[derive(Copy, Clone, Debug)]
6019#[doc(alias = "VkMemoryGetSciBufInfoNV")]
6020pub struct MemoryGetSciBufInfoNV {
6021    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV`.
6022    pub s_type: StructureType,
6023    ///Optional, may be null.
6024    pub p_next: *const core::ffi::c_void,
6025    pub memory: DeviceMemory,
6026    pub handle_type: ExternalMemoryHandleTypeFlagBits,
6027}
6028impl Default for MemoryGetSciBufInfoNV {
6029    #[inline]
6030    fn default() -> Self {
6031        Self {
6032            s_type: Default::default(),
6033            p_next: core::ptr::null(),
6034            memory: Default::default(),
6035            handle_type: Default::default(),
6036        }
6037    }
6038}
6039///[`VkMemorySciBufPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemorySciBufPropertiesNV.html)
6040#[repr(C)]
6041#[derive(Copy, Clone, Debug)]
6042#[doc(alias = "VkMemorySciBufPropertiesNV")]
6043pub struct MemorySciBufPropertiesNV {
6044    ///Must be `VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV`.
6045    pub s_type: StructureType,
6046    ///Optional, may be null.
6047    pub p_next: *const core::ffi::c_void,
6048    pub memory_type_bits: u32,
6049}
6050impl Default for MemorySciBufPropertiesNV {
6051    #[inline]
6052    fn default() -> Self {
6053        Self {
6054            s_type: Default::default(),
6055            p_next: core::ptr::null(),
6056            memory_type_bits: Default::default(),
6057        }
6058    }
6059}
6060///[`VkPhysicalDeviceExternalMemorySciBufFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalMemorySciBufFeaturesNV.html)
6061///
6062///# Extends
6063///- [`PhysicalDeviceFeatures2`]
6064///- [`DeviceCreateInfo`]
6065#[repr(C)]
6066#[derive(Copy, Clone, Debug)]
6067#[doc(alias = "VkPhysicalDeviceExternalMemorySciBufFeaturesNV")]
6068pub struct PhysicalDeviceExternalMemorySciBufFeaturesNV {
6069    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV`.
6070    pub s_type: StructureType,
6071    ///Optional, may be null.
6072    pub p_next: *mut core::ffi::c_void,
6073    pub sci_buf_import: u32,
6074    pub sci_buf_export: u32,
6075}
6076impl Default for PhysicalDeviceExternalMemorySciBufFeaturesNV {
6077    #[inline]
6078    fn default() -> Self {
6079        Self {
6080            s_type: Default::default(),
6081            p_next: core::ptr::null_mut(),
6082            sci_buf_import: Default::default(),
6083            sci_buf_export: Default::default(),
6084        }
6085    }
6086}
6087///[`VkWin32KeyedMutexAcquireReleaseInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWin32KeyedMutexAcquireReleaseInfoNV.html)
6088/**
6089Provided by **VK_NV_win32_keyed_mutex**.*/
6090///
6091///# Extends
6092///- [`SubmitInfo`]
6093///- [`SubmitInfo2`]
6094#[repr(C)]
6095#[derive(Copy, Clone, Debug)]
6096#[doc(alias = "VkWin32KeyedMutexAcquireReleaseInfoNV")]
6097pub struct Win32KeyedMutexAcquireReleaseInfoNV {
6098    ///Must be `VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV`.
6099    pub s_type: StructureType,
6100    ///Optional, may be null.
6101    pub p_next: *const core::ffi::c_void,
6102    ///Length of `p_acquire_timeout_milliseconds`.
6103    pub acquire_count: u32,
6104    pub p_acquire_syncs: *const DeviceMemory,
6105    pub p_acquire_keys: *const u64,
6106    pub p_acquire_timeout_milliseconds: *const u32,
6107    ///Length of `p_release_keys`.
6108    pub release_count: u32,
6109    pub p_release_syncs: *const DeviceMemory,
6110    pub p_release_keys: *const u64,
6111}
6112impl Default for Win32KeyedMutexAcquireReleaseInfoNV {
6113    #[inline]
6114    fn default() -> Self {
6115        Self {
6116            s_type: StructureType::from_raw(1000058000i32),
6117            p_next: core::ptr::null(),
6118            acquire_count: Default::default(),
6119            p_acquire_syncs: core::ptr::null(),
6120            p_acquire_keys: core::ptr::null(),
6121            p_acquire_timeout_milliseconds: core::ptr::null(),
6122            release_count: Default::default(),
6123            p_release_syncs: core::ptr::null(),
6124            p_release_keys: core::ptr::null(),
6125        }
6126    }
6127}
6128///[`VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.html)
6129/**
6130Provided by **VK_NV_device_generated_commands**.*/
6131///
6132///# Extends
6133///- [`PhysicalDeviceFeatures2`]
6134///- [`DeviceCreateInfo`]
6135#[repr(C)]
6136#[derive(Copy, Clone, Debug)]
6137#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV")]
6138pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
6139    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV`.
6140    pub s_type: StructureType,
6141    ///Optional, may be null.
6142    pub p_next: *mut core::ffi::c_void,
6143    pub device_generated_commands: u32,
6144}
6145impl Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
6146    #[inline]
6147    fn default() -> Self {
6148        Self {
6149            s_type: StructureType::from_raw(1000277007i32),
6150            p_next: core::ptr::null_mut(),
6151            device_generated_commands: Default::default(),
6152        }
6153    }
6154}
6155///[`VkPushConstantBankInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushConstantBankInfoNV.html)
6156/**
6157Provided by **VK_NV_push_constant_bank**.*/
6158///
6159///# Extends
6160///- [`DescriptorSetAndBindingMappingEXT`]
6161///- [`PushDataInfoEXT`]
6162///- [`PushConstantsInfo`]
6163///- [`IndirectCommandsLayoutTokenEXT`]
6164#[repr(C)]
6165#[derive(Copy, Clone, Debug)]
6166#[doc(alias = "VkPushConstantBankInfoNV")]
6167pub struct PushConstantBankInfoNV {
6168    ///Must be `VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV`.
6169    pub s_type: StructureType,
6170    ///Optional, may be null.
6171    pub p_next: *const core::ffi::c_void,
6172    pub bank: u32,
6173}
6174impl Default for PushConstantBankInfoNV {
6175    #[inline]
6176    fn default() -> Self {
6177        Self {
6178            s_type: StructureType::from_raw(1000580000i32),
6179            p_next: core::ptr::null(),
6180            bank: Default::default(),
6181        }
6182    }
6183}
6184///[`VkPhysicalDevicePushConstantBankFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePushConstantBankFeaturesNV.html)
6185/**
6186Provided by **VK_NV_push_constant_bank**.*/
6187///
6188///# Extends
6189///- [`PhysicalDeviceFeatures2`]
6190///- [`DeviceCreateInfo`]
6191#[repr(C)]
6192#[derive(Copy, Clone, Debug)]
6193#[doc(alias = "VkPhysicalDevicePushConstantBankFeaturesNV")]
6194pub struct PhysicalDevicePushConstantBankFeaturesNV {
6195    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV`.
6196    pub s_type: StructureType,
6197    ///Optional, may be null.
6198    pub p_next: *mut core::ffi::c_void,
6199    pub push_constant_bank: u32,
6200}
6201impl Default for PhysicalDevicePushConstantBankFeaturesNV {
6202    #[inline]
6203    fn default() -> Self {
6204        Self {
6205            s_type: StructureType::from_raw(1000580001i32),
6206            p_next: core::ptr::null_mut(),
6207            push_constant_bank: Default::default(),
6208        }
6209    }
6210}
6211///[`VkPhysicalDevicePushConstantBankPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePushConstantBankPropertiesNV.html)
6212/**
6213Provided by **VK_NV_push_constant_bank**.*/
6214/**
6215**Returned only**, filled by Vulkan, not constructed by the application.*/
6216///
6217///# Extends
6218///- [`PhysicalDeviceProperties2`]
6219#[repr(C)]
6220#[derive(Copy, Clone, Debug)]
6221#[doc(alias = "VkPhysicalDevicePushConstantBankPropertiesNV")]
6222pub struct PhysicalDevicePushConstantBankPropertiesNV {
6223    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV`.
6224    pub s_type: StructureType,
6225    ///Optional, may be null.
6226    pub p_next: *mut core::ffi::c_void,
6227    pub max_graphics_push_constant_banks: u32,
6228    pub max_compute_push_constant_banks: u32,
6229    pub max_graphics_push_data_banks: u32,
6230    pub max_compute_push_data_banks: u32,
6231}
6232impl Default for PhysicalDevicePushConstantBankPropertiesNV {
6233    #[inline]
6234    fn default() -> Self {
6235        Self {
6236            s_type: StructureType::from_raw(1000580002i32),
6237            p_next: core::ptr::null_mut(),
6238            max_graphics_push_constant_banks: Default::default(),
6239            max_compute_push_constant_banks: Default::default(),
6240            max_graphics_push_data_banks: Default::default(),
6241            max_compute_push_data_banks: Default::default(),
6242        }
6243    }
6244}
6245///[`VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.html)
6246/**
6247Provided by **VK_NV_device_generated_commands_compute**.*/
6248///
6249///# Extends
6250///- [`PhysicalDeviceFeatures2`]
6251///- [`DeviceCreateInfo`]
6252#[repr(C)]
6253#[derive(Copy, Clone, Debug)]
6254#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV")]
6255pub struct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
6256    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV`.
6257    pub s_type: StructureType,
6258    ///Optional, may be null.
6259    pub p_next: *mut core::ffi::c_void,
6260    pub device_generated_compute: u32,
6261    pub device_generated_compute_pipelines: u32,
6262    pub device_generated_compute_capture_replay: u32,
6263}
6264impl Default for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
6265    #[inline]
6266    fn default() -> Self {
6267        Self {
6268            s_type: StructureType::from_raw(1000428000i32),
6269            p_next: core::ptr::null_mut(),
6270            device_generated_compute: Default::default(),
6271            device_generated_compute_pipelines: Default::default(),
6272            device_generated_compute_capture_replay: Default::default(),
6273        }
6274    }
6275}
6276///[`VkDevicePrivateDataCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDevicePrivateDataCreateInfo.html)
6277/**
6278Provided by **VK_BASE_VERSION_1_3**.*/
6279///
6280///# Extends
6281///- [`DeviceCreateInfo`]
6282#[repr(C)]
6283#[derive(Copy, Clone, Debug)]
6284#[doc(alias = "VkDevicePrivateDataCreateInfo")]
6285pub struct DevicePrivateDataCreateInfo {
6286    ///Must be `VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO`.
6287    pub s_type: StructureType,
6288    ///Optional, may be null.
6289    pub p_next: *const core::ffi::c_void,
6290    pub private_data_slot_request_count: u32,
6291}
6292impl Default for DevicePrivateDataCreateInfo {
6293    #[inline]
6294    fn default() -> Self {
6295        Self {
6296            s_type: StructureType::from_raw(1000295001i32),
6297            p_next: core::ptr::null(),
6298            private_data_slot_request_count: Default::default(),
6299        }
6300    }
6301}
6302///[`VkPrivateDataSlotCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPrivateDataSlotCreateInfo.html)
6303/**
6304Provided by **VK_BASE_VERSION_1_3**.*/
6305#[repr(C)]
6306#[derive(Copy, Clone, Debug)]
6307#[doc(alias = "VkPrivateDataSlotCreateInfo")]
6308pub struct PrivateDataSlotCreateInfo {
6309    ///Must be `VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO`.
6310    pub s_type: StructureType,
6311    ///Optional, may be null.
6312    pub p_next: *const core::ffi::c_void,
6313    pub flags: PrivateDataSlotCreateFlags,
6314}
6315impl Default for PrivateDataSlotCreateInfo {
6316    #[inline]
6317    fn default() -> Self {
6318        Self {
6319            s_type: StructureType::from_raw(1000295002i32),
6320            p_next: core::ptr::null(),
6321            flags: Default::default(),
6322        }
6323    }
6324}
6325///[`VkPhysicalDevicePrivateDataFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePrivateDataFeatures.html)
6326/**
6327Provided by **VK_BASE_VERSION_1_3**.*/
6328///
6329///# Extends
6330///- [`PhysicalDeviceFeatures2`]
6331///- [`DeviceCreateInfo`]
6332#[repr(C)]
6333#[derive(Copy, Clone, Debug)]
6334#[doc(alias = "VkPhysicalDevicePrivateDataFeatures")]
6335pub struct PhysicalDevicePrivateDataFeatures {
6336    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES`.
6337    pub s_type: StructureType,
6338    ///Optional, may be null.
6339    pub p_next: *mut core::ffi::c_void,
6340    pub private_data: u32,
6341}
6342impl Default for PhysicalDevicePrivateDataFeatures {
6343    #[inline]
6344    fn default() -> Self {
6345        Self {
6346            s_type: StructureType::from_raw(1000295000i32),
6347            p_next: core::ptr::null_mut(),
6348            private_data: Default::default(),
6349        }
6350    }
6351}
6352///[`VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV.html)
6353/**
6354Provided by **VK_NV_device_generated_commands**.*/
6355/**
6356**Returned only**, filled by Vulkan, not constructed by the application.*/
6357///
6358///# Extends
6359///- [`PhysicalDeviceProperties2`]
6360#[repr(C)]
6361#[derive(Copy, Clone, Debug)]
6362#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV")]
6363pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
6364    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV`.
6365    pub s_type: StructureType,
6366    ///Optional, may be null.
6367    pub p_next: *mut core::ffi::c_void,
6368    pub max_graphics_shader_group_count: u32,
6369    pub max_indirect_sequence_count: u32,
6370    pub max_indirect_commands_token_count: u32,
6371    pub max_indirect_commands_stream_count: u32,
6372    pub max_indirect_commands_token_offset: u32,
6373    pub max_indirect_commands_stream_stride: u32,
6374    pub min_sequences_count_buffer_offset_alignment: u32,
6375    pub min_sequences_index_buffer_offset_alignment: u32,
6376    pub min_indirect_commands_buffer_offset_alignment: u32,
6377}
6378impl Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
6379    #[inline]
6380    fn default() -> Self {
6381        Self {
6382            s_type: StructureType::from_raw(1000277000i32),
6383            p_next: core::ptr::null_mut(),
6384            max_graphics_shader_group_count: Default::default(),
6385            max_indirect_sequence_count: Default::default(),
6386            max_indirect_commands_token_count: Default::default(),
6387            max_indirect_commands_stream_count: Default::default(),
6388            max_indirect_commands_token_offset: Default::default(),
6389            max_indirect_commands_stream_stride: Default::default(),
6390            min_sequences_count_buffer_offset_alignment: Default::default(),
6391            min_sequences_index_buffer_offset_alignment: Default::default(),
6392            min_indirect_commands_buffer_offset_alignment: Default::default(),
6393        }
6394    }
6395}
6396///[`VkPhysicalDeviceClusterAccelerationStructureFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterAccelerationStructureFeaturesNV.html)
6397/**
6398Provided by **VK_NV_cluster_acceleration_structure**.*/
6399///
6400///# Extends
6401///- [`PhysicalDeviceFeatures2`]
6402///- [`DeviceCreateInfo`]
6403#[repr(C)]
6404#[derive(Copy, Clone, Debug)]
6405#[doc(alias = "VkPhysicalDeviceClusterAccelerationStructureFeaturesNV")]
6406pub struct PhysicalDeviceClusterAccelerationStructureFeaturesNV {
6407    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV`.
6408    pub s_type: StructureType,
6409    ///Optional, may be null.
6410    pub p_next: *mut core::ffi::c_void,
6411    pub cluster_acceleration_structure: u32,
6412}
6413impl Default for PhysicalDeviceClusterAccelerationStructureFeaturesNV {
6414    #[inline]
6415    fn default() -> Self {
6416        Self {
6417            s_type: StructureType::from_raw(1000569000i32),
6418            p_next: core::ptr::null_mut(),
6419            cluster_acceleration_structure: Default::default(),
6420        }
6421    }
6422}
6423///[`VkPhysicalDeviceClusterAccelerationStructurePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterAccelerationStructurePropertiesNV.html)
6424/**
6425Provided by **VK_NV_cluster_acceleration_structure**.*/
6426/**
6427**Returned only**, filled by Vulkan, not constructed by the application.*/
6428///
6429///# Extends
6430///- [`PhysicalDeviceProperties2`]
6431#[repr(C)]
6432#[derive(Copy, Clone, Debug)]
6433#[doc(alias = "VkPhysicalDeviceClusterAccelerationStructurePropertiesNV")]
6434pub struct PhysicalDeviceClusterAccelerationStructurePropertiesNV {
6435    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV`.
6436    pub s_type: StructureType,
6437    ///Optional, may be null.
6438    pub p_next: *mut core::ffi::c_void,
6439    pub max_vertices_per_cluster: u32,
6440    pub max_triangles_per_cluster: u32,
6441    pub cluster_scratch_byte_alignment: u32,
6442    pub cluster_byte_alignment: u32,
6443    pub cluster_template_byte_alignment: u32,
6444    pub cluster_bottom_level_byte_alignment: u32,
6445    pub cluster_template_bounds_byte_alignment: u32,
6446    pub max_cluster_geometry_index: u32,
6447}
6448impl Default for PhysicalDeviceClusterAccelerationStructurePropertiesNV {
6449    #[inline]
6450    fn default() -> Self {
6451        Self {
6452            s_type: StructureType::from_raw(1000569001i32),
6453            p_next: core::ptr::null_mut(),
6454            max_vertices_per_cluster: Default::default(),
6455            max_triangles_per_cluster: Default::default(),
6456            cluster_scratch_byte_alignment: Default::default(),
6457            cluster_byte_alignment: Default::default(),
6458            cluster_template_byte_alignment: Default::default(),
6459            cluster_bottom_level_byte_alignment: Default::default(),
6460            cluster_template_bounds_byte_alignment: Default::default(),
6461            max_cluster_geometry_index: Default::default(),
6462        }
6463    }
6464}
6465///[`VkStridedDeviceAddressNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStridedDeviceAddressNV.html)
6466/**
6467Provided by **VK_NV_cluster_acceleration_structure**.*/
6468#[repr(C)]
6469#[derive(Copy, Clone, Debug)]
6470#[doc(alias = "VkStridedDeviceAddressNV")]
6471pub struct StridedDeviceAddressNV {
6472    pub start_address: u64,
6473    pub stride_in_bytes: u64,
6474}
6475impl Default for StridedDeviceAddressNV {
6476    #[inline]
6477    fn default() -> Self {
6478        unsafe { core::mem::zeroed() }
6479    }
6480}
6481///[`VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV.html)
6482/**
6483Provided by **VK_NV_cluster_acceleration_structure**.*/
6484///
6485///# Extends
6486///- [`RayTracingPipelineCreateInfoKHR`]
6487#[repr(C)]
6488#[derive(Copy, Clone, Debug)]
6489#[doc(alias = "VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV")]
6490pub struct RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
6491    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV`.
6492    pub s_type: StructureType,
6493    ///Optional, may be null.
6494    pub p_next: *mut core::ffi::c_void,
6495    pub allow_cluster_acceleration_structure: u32,
6496}
6497impl Default for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
6498    #[inline]
6499    fn default() -> Self {
6500        Self {
6501            s_type: StructureType::from_raw(1000569007i32),
6502            p_next: core::ptr::null_mut(),
6503            allow_cluster_acceleration_structure: Default::default(),
6504        }
6505    }
6506}
6507///[`VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV.html)
6508/**
6509Provided by **VK_NV_cluster_acceleration_structure**.*/
6510#[repr(C)]
6511#[derive(Copy, Clone, Debug)]
6512#[doc(alias = "VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV")]
6513pub struct ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
6514    pub bitfield_0: u32,
6515}
6516impl Default for ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
6517    #[inline]
6518    fn default() -> Self {
6519        unsafe { core::mem::zeroed() }
6520    }
6521}
6522impl ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
6523    #[inline]
6524    pub fn geometry_index(&self) -> u32 {
6525        self.bitfield_0 & 16777215u32
6526    }
6527    #[inline]
6528    pub fn set_geometry_index(&mut self, val: u32) {
6529        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
6530    }
6531    #[inline]
6532    pub fn geometry_flags(&self) -> u32 {
6533        (self.bitfield_0 >> 29u32) & 7u32
6534    }
6535    #[inline]
6536    pub fn set_geometry_flags(&mut self, val: u32) {
6537        self.bitfield_0 = (self.bitfield_0 & !(7u32 << 29u32)) | ((val & 7u32) << 29u32);
6538    }
6539}
6540///[`VkClusterAccelerationStructureMoveObjectsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureMoveObjectsInfoNV.html)
6541/**
6542Provided by **VK_NV_cluster_acceleration_structure**.*/
6543#[repr(C)]
6544#[derive(Copy, Clone, Debug)]
6545#[doc(alias = "VkClusterAccelerationStructureMoveObjectsInfoNV")]
6546pub struct ClusterAccelerationStructureMoveObjectsInfoNV {
6547    pub src_acceleration_structure: u64,
6548}
6549impl Default for ClusterAccelerationStructureMoveObjectsInfoNV {
6550    #[inline]
6551    fn default() -> Self {
6552        unsafe { core::mem::zeroed() }
6553    }
6554}
6555///[`VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV.html)
6556/**
6557Provided by **VK_NV_cluster_acceleration_structure**.*/
6558#[repr(C)]
6559#[derive(Copy, Clone, Debug)]
6560#[doc(alias = "VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV")]
6561pub struct ClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
6562    pub cluster_references_count: u32,
6563    pub cluster_references_stride: u32,
6564    pub cluster_references: u64,
6565}
6566impl Default for ClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
6567    #[inline]
6568    fn default() -> Self {
6569        unsafe { core::mem::zeroed() }
6570    }
6571}
6572///[`VkClusterAccelerationStructureGetTemplateIndicesInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureGetTemplateIndicesInfoNV.html)
6573/**
6574Provided by **VK_NV_cluster_acceleration_structure**.*/
6575#[repr(C)]
6576#[derive(Copy, Clone, Debug)]
6577#[doc(alias = "VkClusterAccelerationStructureGetTemplateIndicesInfoNV")]
6578pub struct ClusterAccelerationStructureGetTemplateIndicesInfoNV {
6579    pub cluster_template_address: u64,
6580}
6581impl Default for ClusterAccelerationStructureGetTemplateIndicesInfoNV {
6582    #[inline]
6583    fn default() -> Self {
6584        unsafe { core::mem::zeroed() }
6585    }
6586}
6587///[`VkClusterAccelerationStructureBuildTriangleClusterInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureBuildTriangleClusterInfoNV.html)
6588/**
6589Provided by **VK_NV_cluster_acceleration_structure**.*/
6590#[repr(C)]
6591#[derive(Copy, Clone, Debug)]
6592#[doc(alias = "VkClusterAccelerationStructureBuildTriangleClusterInfoNV")]
6593pub struct ClusterAccelerationStructureBuildTriangleClusterInfoNV {
6594    pub cluster_id: u32,
6595    pub cluster_flags: ClusterAccelerationStructureClusterFlagsNV,
6596    pub bitfield_0: u32,
6597    pub base_geometry_index_and_geometry_flags: ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV,
6598    pub index_buffer_stride: u16,
6599    pub vertex_buffer_stride: u16,
6600    pub geometry_index_and_flags_buffer_stride: u16,
6601    pub opacity_micromap_index_buffer_stride: u16,
6602    pub index_buffer: u64,
6603    pub vertex_buffer: u64,
6604    pub geometry_index_and_flags_buffer: u64,
6605    pub opacity_micromap_array: u64,
6606    pub opacity_micromap_index_buffer: u64,
6607}
6608impl Default for ClusterAccelerationStructureBuildTriangleClusterInfoNV {
6609    #[inline]
6610    fn default() -> Self {
6611        unsafe { core::mem::zeroed() }
6612    }
6613}
6614impl ClusterAccelerationStructureBuildTriangleClusterInfoNV {
6615    #[inline]
6616    pub fn triangle_count(&self) -> u32 {
6617        self.bitfield_0 & 511u32
6618    }
6619    #[inline]
6620    pub fn set_triangle_count(&mut self, val: u32) {
6621        self.bitfield_0 = (self.bitfield_0 & !511u32) | (val & 511u32);
6622    }
6623    #[inline]
6624    pub fn vertex_count(&self) -> u32 {
6625        (self.bitfield_0 >> 9u32) & 511u32
6626    }
6627    #[inline]
6628    pub fn set_vertex_count(&mut self, val: u32) {
6629        self.bitfield_0 = (self.bitfield_0 & !(511u32 << 9u32))
6630            | ((val & 511u32) << 9u32);
6631    }
6632    #[inline]
6633    pub fn position_truncate_bit_count(&self) -> u32 {
6634        (self.bitfield_0 >> 18u32) & 63u32
6635    }
6636    #[inline]
6637    pub fn set_position_truncate_bit_count(&mut self, val: u32) {
6638        self.bitfield_0 = (self.bitfield_0 & !(63u32 << 18u32))
6639            | ((val & 63u32) << 18u32);
6640    }
6641    #[inline]
6642    pub fn index_type(&self) -> u32 {
6643        (self.bitfield_0 >> 24u32) & 15u32
6644    }
6645    #[inline]
6646    pub fn set_index_type(&mut self, val: u32) {
6647        self.bitfield_0 = (self.bitfield_0 & !(15u32 << 24u32))
6648            | ((val & 15u32) << 24u32);
6649    }
6650    #[inline]
6651    pub fn opacity_micromap_index_type(&self) -> u32 {
6652        (self.bitfield_0 >> 28u32) & 15u32
6653    }
6654    #[inline]
6655    pub fn set_opacity_micromap_index_type(&mut self, val: u32) {
6656        self.bitfield_0 = (self.bitfield_0 & !(15u32 << 28u32))
6657            | ((val & 15u32) << 28u32);
6658    }
6659}
6660///[`VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV.html)
6661/**
6662Provided by **VK_NV_cluster_acceleration_structure**.*/
6663#[repr(C)]
6664#[derive(Copy, Clone, Debug)]
6665#[doc(alias = "VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV")]
6666pub struct ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
6667    pub cluster_id: u32,
6668    pub cluster_flags: ClusterAccelerationStructureClusterFlagsNV,
6669    pub bitfield_0: u32,
6670    pub base_geometry_index_and_geometry_flags: ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV,
6671    pub index_buffer_stride: u16,
6672    pub vertex_buffer_stride: u16,
6673    pub geometry_index_and_flags_buffer_stride: u16,
6674    pub opacity_micromap_index_buffer_stride: u16,
6675    pub index_buffer: u64,
6676    pub vertex_buffer: u64,
6677    pub geometry_index_and_flags_buffer: u64,
6678    pub opacity_micromap_array: u64,
6679    pub opacity_micromap_index_buffer: u64,
6680    pub instantiation_bounding_box_limit: u64,
6681}
6682impl Default for ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
6683    #[inline]
6684    fn default() -> Self {
6685        unsafe { core::mem::zeroed() }
6686    }
6687}
6688impl ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
6689    #[inline]
6690    pub fn triangle_count(&self) -> u32 {
6691        self.bitfield_0 & 511u32
6692    }
6693    #[inline]
6694    pub fn set_triangle_count(&mut self, val: u32) {
6695        self.bitfield_0 = (self.bitfield_0 & !511u32) | (val & 511u32);
6696    }
6697    #[inline]
6698    pub fn vertex_count(&self) -> u32 {
6699        (self.bitfield_0 >> 9u32) & 511u32
6700    }
6701    #[inline]
6702    pub fn set_vertex_count(&mut self, val: u32) {
6703        self.bitfield_0 = (self.bitfield_0 & !(511u32 << 9u32))
6704            | ((val & 511u32) << 9u32);
6705    }
6706    #[inline]
6707    pub fn position_truncate_bit_count(&self) -> u32 {
6708        (self.bitfield_0 >> 18u32) & 63u32
6709    }
6710    #[inline]
6711    pub fn set_position_truncate_bit_count(&mut self, val: u32) {
6712        self.bitfield_0 = (self.bitfield_0 & !(63u32 << 18u32))
6713            | ((val & 63u32) << 18u32);
6714    }
6715    #[inline]
6716    pub fn index_type(&self) -> u32 {
6717        (self.bitfield_0 >> 24u32) & 15u32
6718    }
6719    #[inline]
6720    pub fn set_index_type(&mut self, val: u32) {
6721        self.bitfield_0 = (self.bitfield_0 & !(15u32 << 24u32))
6722            | ((val & 15u32) << 24u32);
6723    }
6724    #[inline]
6725    pub fn opacity_micromap_index_type(&self) -> u32 {
6726        (self.bitfield_0 >> 28u32) & 15u32
6727    }
6728    #[inline]
6729    pub fn set_opacity_micromap_index_type(&mut self, val: u32) {
6730        self.bitfield_0 = (self.bitfield_0 & !(15u32 << 28u32))
6731            | ((val & 15u32) << 28u32);
6732    }
6733}
6734///[`VkClusterAccelerationStructureInstantiateClusterInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureInstantiateClusterInfoNV.html)
6735/**
6736Provided by **VK_NV_cluster_acceleration_structure**.*/
6737#[repr(C)]
6738#[derive(Copy, Clone, Debug)]
6739#[doc(alias = "VkClusterAccelerationStructureInstantiateClusterInfoNV")]
6740pub struct ClusterAccelerationStructureInstantiateClusterInfoNV {
6741    pub cluster_id_offset: u32,
6742    pub bitfield_0: u32,
6743    pub cluster_template_address: u64,
6744    pub vertex_buffer: StridedDeviceAddressNV,
6745}
6746impl Default for ClusterAccelerationStructureInstantiateClusterInfoNV {
6747    #[inline]
6748    fn default() -> Self {
6749        unsafe { core::mem::zeroed() }
6750    }
6751}
6752impl ClusterAccelerationStructureInstantiateClusterInfoNV {
6753    #[inline]
6754    pub fn geometry_index_offset(&self) -> u32 {
6755        self.bitfield_0 & 16777215u32
6756    }
6757    #[inline]
6758    pub fn set_geometry_index_offset(&mut self, val: u32) {
6759        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
6760    }
6761}
6762///[`VkClusterAccelerationStructureClustersBottomLevelInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureClustersBottomLevelInputNV.html)
6763/**
6764Provided by **VK_NV_cluster_acceleration_structure**.*/
6765#[repr(C)]
6766#[derive(Copy, Clone, Debug)]
6767#[doc(alias = "VkClusterAccelerationStructureClustersBottomLevelInputNV")]
6768pub struct ClusterAccelerationStructureClustersBottomLevelInputNV {
6769    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV`.
6770    pub s_type: StructureType,
6771    ///Optional, may be null.
6772    pub p_next: *mut core::ffi::c_void,
6773    pub max_total_cluster_count: u32,
6774    pub max_cluster_count_per_acceleration_structure: u32,
6775}
6776impl Default for ClusterAccelerationStructureClustersBottomLevelInputNV {
6777    #[inline]
6778    fn default() -> Self {
6779        Self {
6780            s_type: StructureType::from_raw(1000569002i32),
6781            p_next: core::ptr::null_mut(),
6782            max_total_cluster_count: Default::default(),
6783            max_cluster_count_per_acceleration_structure: Default::default(),
6784        }
6785    }
6786}
6787///[`VkClusterAccelerationStructureTriangleClusterInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureTriangleClusterInputNV.html)
6788/**
6789Provided by **VK_NV_cluster_acceleration_structure**.*/
6790#[repr(C)]
6791#[derive(Copy, Clone, Debug)]
6792#[doc(alias = "VkClusterAccelerationStructureTriangleClusterInputNV")]
6793pub struct ClusterAccelerationStructureTriangleClusterInputNV {
6794    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV`.
6795    pub s_type: StructureType,
6796    ///Optional, may be null.
6797    pub p_next: *mut core::ffi::c_void,
6798    pub vertex_format: Format,
6799    pub max_geometry_index_value: u32,
6800    pub max_cluster_unique_geometry_count: u32,
6801    pub max_cluster_triangle_count: u32,
6802    pub max_cluster_vertex_count: u32,
6803    pub max_total_triangle_count: u32,
6804    pub max_total_vertex_count: u32,
6805    pub min_position_truncate_bit_count: u32,
6806}
6807impl Default for ClusterAccelerationStructureTriangleClusterInputNV {
6808    #[inline]
6809    fn default() -> Self {
6810        Self {
6811            s_type: StructureType::from_raw(1000569003i32),
6812            p_next: core::ptr::null_mut(),
6813            vertex_format: Default::default(),
6814            max_geometry_index_value: Default::default(),
6815            max_cluster_unique_geometry_count: Default::default(),
6816            max_cluster_triangle_count: Default::default(),
6817            max_cluster_vertex_count: Default::default(),
6818            max_total_triangle_count: Default::default(),
6819            max_total_vertex_count: Default::default(),
6820            min_position_truncate_bit_count: Default::default(),
6821        }
6822    }
6823}
6824///[`VkClusterAccelerationStructureMoveObjectsInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureMoveObjectsInputNV.html)
6825/**
6826Provided by **VK_NV_cluster_acceleration_structure**.*/
6827#[repr(C)]
6828#[derive(Copy, Clone, Debug)]
6829#[doc(alias = "VkClusterAccelerationStructureMoveObjectsInputNV")]
6830pub struct ClusterAccelerationStructureMoveObjectsInputNV {
6831    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV`.
6832    pub s_type: StructureType,
6833    ///Optional, may be null.
6834    pub p_next: *mut core::ffi::c_void,
6835    pub r#type: ClusterAccelerationStructureTypeNV,
6836    pub no_move_overlap: u32,
6837    pub max_moved_bytes: u64,
6838}
6839impl Default for ClusterAccelerationStructureMoveObjectsInputNV {
6840    #[inline]
6841    fn default() -> Self {
6842        Self {
6843            s_type: StructureType::from_raw(1000569004i32),
6844            p_next: core::ptr::null_mut(),
6845            r#type: Default::default(),
6846            no_move_overlap: Default::default(),
6847            max_moved_bytes: Default::default(),
6848        }
6849    }
6850}
6851///[`VkClusterAccelerationStructureOpInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureOpInputNV.html)
6852/**
6853Provided by **VK_NV_cluster_acceleration_structure**.*/
6854#[repr(C)]
6855#[derive(Copy, Clone)]
6856#[doc(alias = "VkClusterAccelerationStructureOpInputNV")]
6857pub union ClusterAccelerationStructureOpInputNV {
6858    pub p_clusters_bottom_level: *mut ClusterAccelerationStructureClustersBottomLevelInputNV,
6859    pub p_triangle_clusters: *mut ClusterAccelerationStructureTriangleClusterInputNV,
6860    pub p_move_objects: *mut ClusterAccelerationStructureMoveObjectsInputNV,
6861}
6862impl Default for ClusterAccelerationStructureOpInputNV {
6863    #[inline]
6864    fn default() -> Self {
6865        unsafe { core::mem::zeroed() }
6866    }
6867}
6868impl core::fmt::Debug for ClusterAccelerationStructureOpInputNV {
6869    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6870        f.write_str(stringify!(ClusterAccelerationStructureOpInputNV))
6871    }
6872}
6873///[`VkClusterAccelerationStructureInputInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureInputInfoNV.html)
6874/**
6875Provided by **VK_NV_cluster_acceleration_structure**.*/
6876#[repr(C)]
6877#[derive(Copy, Clone, Debug)]
6878#[doc(alias = "VkClusterAccelerationStructureInputInfoNV")]
6879pub struct ClusterAccelerationStructureInputInfoNV {
6880    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV`.
6881    pub s_type: StructureType,
6882    ///Optional, may be null.
6883    pub p_next: *mut core::ffi::c_void,
6884    pub max_acceleration_structure_count: u32,
6885    pub flags: BuildAccelerationStructureFlagsKHR,
6886    pub op_type: ClusterAccelerationStructureOpTypeNV,
6887    pub op_mode: ClusterAccelerationStructureOpModeNV,
6888    pub op_input: ClusterAccelerationStructureOpInputNV,
6889}
6890impl Default for ClusterAccelerationStructureInputInfoNV {
6891    #[inline]
6892    fn default() -> Self {
6893        Self {
6894            s_type: StructureType::from_raw(1000569005i32),
6895            p_next: core::ptr::null_mut(),
6896            max_acceleration_structure_count: Default::default(),
6897            flags: Default::default(),
6898            op_type: Default::default(),
6899            op_mode: Default::default(),
6900            op_input: Default::default(),
6901        }
6902    }
6903}
6904///[`VkClusterAccelerationStructureCommandsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkClusterAccelerationStructureCommandsInfoNV.html)
6905/**
6906Provided by **VK_NV_cluster_acceleration_structure**.*/
6907#[repr(C)]
6908#[derive(Copy, Clone, Debug)]
6909#[doc(alias = "VkClusterAccelerationStructureCommandsInfoNV")]
6910pub struct ClusterAccelerationStructureCommandsInfoNV {
6911    ///Must be `VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV`.
6912    pub s_type: StructureType,
6913    ///Optional, may be null.
6914    pub p_next: *mut core::ffi::c_void,
6915    pub input: ClusterAccelerationStructureInputInfoNV,
6916    pub dst_implicit_data: u64,
6917    pub scratch_data: u64,
6918    pub dst_addresses_array: StridedDeviceAddressRegionKHR,
6919    pub dst_sizes_array: StridedDeviceAddressRegionKHR,
6920    pub src_infos_array: StridedDeviceAddressRegionKHR,
6921    pub src_infos_count: u64,
6922    pub address_resolution_flags: ClusterAccelerationStructureAddressResolutionFlagsNV,
6923}
6924impl Default for ClusterAccelerationStructureCommandsInfoNV {
6925    #[inline]
6926    fn default() -> Self {
6927        Self {
6928            s_type: StructureType::from_raw(1000569006i32),
6929            p_next: core::ptr::null_mut(),
6930            input: Default::default(),
6931            dst_implicit_data: Default::default(),
6932            scratch_data: Default::default(),
6933            dst_addresses_array: Default::default(),
6934            dst_sizes_array: Default::default(),
6935            src_infos_array: Default::default(),
6936            src_infos_count: Default::default(),
6937            address_resolution_flags: Default::default(),
6938        }
6939    }
6940}
6941///[`VkPhysicalDeviceMultiDrawPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiDrawPropertiesEXT.html)
6942/**
6943Provided by **VK_EXT_multi_draw**.*/
6944/**
6945**Returned only**, filled by Vulkan, not constructed by the application.*/
6946///
6947///# Extends
6948///- [`PhysicalDeviceProperties2`]
6949#[repr(C)]
6950#[derive(Copy, Clone, Debug)]
6951#[doc(alias = "VkPhysicalDeviceMultiDrawPropertiesEXT")]
6952pub struct PhysicalDeviceMultiDrawPropertiesEXT {
6953    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT`.
6954    pub s_type: StructureType,
6955    ///Optional, may be null.
6956    pub p_next: *mut core::ffi::c_void,
6957    pub max_multi_draw_count: u32,
6958}
6959impl Default for PhysicalDeviceMultiDrawPropertiesEXT {
6960    #[inline]
6961    fn default() -> Self {
6962        Self {
6963            s_type: StructureType::from_raw(1000392001i32),
6964            p_next: core::ptr::null_mut(),
6965            max_multi_draw_count: Default::default(),
6966        }
6967    }
6968}
6969///[`VkGraphicsShaderGroupCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsShaderGroupCreateInfoNV.html)
6970/**
6971Provided by **VK_NV_device_generated_commands**.*/
6972#[repr(C)]
6973#[derive(Copy, Clone, Debug)]
6974#[doc(alias = "VkGraphicsShaderGroupCreateInfoNV")]
6975pub struct GraphicsShaderGroupCreateInfoNV {
6976    ///Must be `VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV`.
6977    pub s_type: StructureType,
6978    ///Optional, may be null.
6979    pub p_next: *const core::ffi::c_void,
6980    ///Length of `p_stages`.
6981    pub stage_count: u32,
6982    pub p_stages: *const PipelineShaderStageCreateInfo,
6983    ///Optional, may be null.
6984    pub p_vertex_input_state: *const PipelineVertexInputStateCreateInfo,
6985    ///Optional, may be null.
6986    pub p_tessellation_state: *const PipelineTessellationStateCreateInfo,
6987}
6988impl Default for GraphicsShaderGroupCreateInfoNV {
6989    #[inline]
6990    fn default() -> Self {
6991        Self {
6992            s_type: StructureType::from_raw(1000277001i32),
6993            p_next: core::ptr::null(),
6994            stage_count: Default::default(),
6995            p_stages: core::ptr::null(),
6996            p_vertex_input_state: core::ptr::null(),
6997            p_tessellation_state: core::ptr::null(),
6998        }
6999    }
7000}
7001///[`VkGraphicsPipelineShaderGroupsCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineShaderGroupsCreateInfoNV.html)
7002/**
7003Provided by **VK_NV_device_generated_commands**.*/
7004///
7005///# Extends
7006///- [`GraphicsPipelineCreateInfo`]
7007#[repr(C)]
7008#[derive(Copy, Clone, Debug)]
7009#[doc(alias = "VkGraphicsPipelineShaderGroupsCreateInfoNV")]
7010pub struct GraphicsPipelineShaderGroupsCreateInfoNV {
7011    ///Must be `VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV`.
7012    pub s_type: StructureType,
7013    ///Optional, may be null.
7014    pub p_next: *const core::ffi::c_void,
7015    ///Length of `p_groups`.
7016    pub group_count: u32,
7017    pub p_groups: *const GraphicsShaderGroupCreateInfoNV,
7018    ///Length of `p_pipelines`.
7019    pub pipeline_count: u32,
7020    pub p_pipelines: *const Pipeline,
7021}
7022impl Default for GraphicsPipelineShaderGroupsCreateInfoNV {
7023    #[inline]
7024    fn default() -> Self {
7025        Self {
7026            s_type: StructureType::from_raw(1000277002i32),
7027            p_next: core::ptr::null(),
7028            group_count: Default::default(),
7029            p_groups: core::ptr::null(),
7030            pipeline_count: Default::default(),
7031            p_pipelines: core::ptr::null(),
7032        }
7033    }
7034}
7035///[`VkBindShaderGroupIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindShaderGroupIndirectCommandNV.html)
7036/**
7037Provided by **VK_NV_device_generated_commands**.*/
7038#[repr(C)]
7039#[derive(Copy, Clone, Debug)]
7040#[doc(alias = "VkBindShaderGroupIndirectCommandNV")]
7041pub struct BindShaderGroupIndirectCommandNV {
7042    pub group_index: u32,
7043}
7044impl Default for BindShaderGroupIndirectCommandNV {
7045    #[inline]
7046    fn default() -> Self {
7047        unsafe { core::mem::zeroed() }
7048    }
7049}
7050///[`VkBindIndexBufferIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindIndexBufferIndirectCommandNV.html)
7051/**
7052Provided by **VK_NV_device_generated_commands**.*/
7053#[repr(C)]
7054#[derive(Copy, Clone, Debug)]
7055#[doc(alias = "VkBindIndexBufferIndirectCommandNV")]
7056pub struct BindIndexBufferIndirectCommandNV {
7057    pub buffer_address: u64,
7058    pub size: u32,
7059    pub index_type: IndexType,
7060}
7061impl Default for BindIndexBufferIndirectCommandNV {
7062    #[inline]
7063    fn default() -> Self {
7064        unsafe { core::mem::zeroed() }
7065    }
7066}
7067///[`VkBindVertexBufferIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVertexBufferIndirectCommandNV.html)
7068/**
7069Provided by **VK_NV_device_generated_commands**.*/
7070#[repr(C)]
7071#[derive(Copy, Clone, Debug)]
7072#[doc(alias = "VkBindVertexBufferIndirectCommandNV")]
7073pub struct BindVertexBufferIndirectCommandNV {
7074    pub buffer_address: u64,
7075    pub size: u32,
7076    pub stride: u32,
7077}
7078impl Default for BindVertexBufferIndirectCommandNV {
7079    #[inline]
7080    fn default() -> Self {
7081        unsafe { core::mem::zeroed() }
7082    }
7083}
7084///[`VkSetStateFlagsIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSetStateFlagsIndirectCommandNV.html)
7085/**
7086Provided by **VK_NV_device_generated_commands**.*/
7087#[repr(C)]
7088#[derive(Copy, Clone, Debug)]
7089#[doc(alias = "VkSetStateFlagsIndirectCommandNV")]
7090pub struct SetStateFlagsIndirectCommandNV {
7091    pub data: u32,
7092}
7093impl Default for SetStateFlagsIndirectCommandNV {
7094    #[inline]
7095    fn default() -> Self {
7096        unsafe { core::mem::zeroed() }
7097    }
7098}
7099///[`VkIndirectCommandsStreamNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsStreamNV.html)
7100/**
7101Provided by **VK_NV_device_generated_commands**.*/
7102#[repr(C)]
7103#[derive(Copy, Clone, Debug)]
7104#[doc(alias = "VkIndirectCommandsStreamNV")]
7105pub struct IndirectCommandsStreamNV {
7106    pub buffer: Buffer,
7107    pub offset: u64,
7108}
7109impl Default for IndirectCommandsStreamNV {
7110    #[inline]
7111    fn default() -> Self {
7112        unsafe { core::mem::zeroed() }
7113    }
7114}
7115///[`VkIndirectCommandsLayoutTokenNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutTokenNV.html)
7116/**
7117Provided by **VK_NV_device_generated_commands**.*/
7118///
7119///# Extended By
7120///- [`IndirectCommandsLayoutPushDataTokenNV`]
7121#[repr(C)]
7122#[derive(Copy, Clone, Debug)]
7123#[doc(alias = "VkIndirectCommandsLayoutTokenNV")]
7124pub struct IndirectCommandsLayoutTokenNV {
7125    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV`.
7126    pub s_type: StructureType,
7127    ///Optional, may be null.
7128    pub p_next: *const core::ffi::c_void,
7129    pub token_type: IndirectCommandsTokenTypeNV,
7130    pub stream: u32,
7131    pub offset: u32,
7132    pub vertex_binding_unit: u32,
7133    pub vertex_dynamic_stride: u32,
7134    pub pushconstant_pipeline_layout: PipelineLayout,
7135    pub pushconstant_shader_stage_flags: ShaderStageFlags,
7136    pub pushconstant_offset: u32,
7137    pub pushconstant_size: u32,
7138    pub indirect_state_flags: IndirectStateFlagsNV,
7139    ///Length of `p_index_type_values`.
7140    pub index_type_count: u32,
7141    pub p_index_types: *const IndexType,
7142    pub p_index_type_values: *const u32,
7143}
7144impl Default for IndirectCommandsLayoutTokenNV {
7145    #[inline]
7146    fn default() -> Self {
7147        Self {
7148            s_type: StructureType::from_raw(1000277003i32),
7149            p_next: core::ptr::null(),
7150            token_type: Default::default(),
7151            stream: Default::default(),
7152            offset: Default::default(),
7153            vertex_binding_unit: Default::default(),
7154            vertex_dynamic_stride: Default::default(),
7155            pushconstant_pipeline_layout: Default::default(),
7156            pushconstant_shader_stage_flags: Default::default(),
7157            pushconstant_offset: Default::default(),
7158            pushconstant_size: Default::default(),
7159            indirect_state_flags: Default::default(),
7160            index_type_count: Default::default(),
7161            p_index_types: core::ptr::null(),
7162            p_index_type_values: core::ptr::null(),
7163        }
7164    }
7165}
7166///[`VkIndirectCommandsLayoutCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutCreateInfoNV.html)
7167/**
7168Provided by **VK_NV_device_generated_commands**.*/
7169#[repr(C)]
7170#[derive(Copy, Clone, Debug)]
7171#[doc(alias = "VkIndirectCommandsLayoutCreateInfoNV")]
7172pub struct IndirectCommandsLayoutCreateInfoNV {
7173    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV`.
7174    pub s_type: StructureType,
7175    ///Optional, may be null.
7176    pub p_next: *const core::ffi::c_void,
7177    pub flags: IndirectCommandsLayoutUsageFlagsNV,
7178    pub pipeline_bind_point: PipelineBindPoint,
7179    ///Length of `p_tokens`.
7180    pub token_count: u32,
7181    pub p_tokens: *const IndirectCommandsLayoutTokenNV,
7182    ///Length of `p_stream_strides`.
7183    pub stream_count: u32,
7184    pub p_stream_strides: *const u32,
7185}
7186impl Default for IndirectCommandsLayoutCreateInfoNV {
7187    #[inline]
7188    fn default() -> Self {
7189        Self {
7190            s_type: StructureType::from_raw(1000277004i32),
7191            p_next: core::ptr::null(),
7192            flags: Default::default(),
7193            pipeline_bind_point: Default::default(),
7194            token_count: Default::default(),
7195            p_tokens: core::ptr::null(),
7196            stream_count: Default::default(),
7197            p_stream_strides: core::ptr::null(),
7198        }
7199    }
7200}
7201///[`VkGeneratedCommandsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsInfoNV.html)
7202/**
7203Provided by **VK_NV_device_generated_commands**.*/
7204#[repr(C)]
7205#[derive(Copy, Clone, Debug)]
7206#[doc(alias = "VkGeneratedCommandsInfoNV")]
7207pub struct GeneratedCommandsInfoNV {
7208    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV`.
7209    pub s_type: StructureType,
7210    ///Optional, may be null.
7211    pub p_next: *const core::ffi::c_void,
7212    pub pipeline_bind_point: PipelineBindPoint,
7213    pub pipeline: Pipeline,
7214    pub indirect_commands_layout: IndirectCommandsLayoutNV,
7215    ///Length of `p_streams`.
7216    pub stream_count: u32,
7217    pub p_streams: *const IndirectCommandsStreamNV,
7218    pub sequences_count: u32,
7219    pub preprocess_buffer: Buffer,
7220    pub preprocess_offset: u64,
7221    pub preprocess_size: u64,
7222    pub sequences_count_buffer: Buffer,
7223    pub sequences_count_offset: u64,
7224    pub sequences_index_buffer: Buffer,
7225    pub sequences_index_offset: u64,
7226}
7227impl Default for GeneratedCommandsInfoNV {
7228    #[inline]
7229    fn default() -> Self {
7230        Self {
7231            s_type: StructureType::from_raw(1000277005i32),
7232            p_next: core::ptr::null(),
7233            pipeline_bind_point: Default::default(),
7234            pipeline: Default::default(),
7235            indirect_commands_layout: Default::default(),
7236            stream_count: Default::default(),
7237            p_streams: core::ptr::null(),
7238            sequences_count: Default::default(),
7239            preprocess_buffer: Default::default(),
7240            preprocess_offset: Default::default(),
7241            preprocess_size: Default::default(),
7242            sequences_count_buffer: Default::default(),
7243            sequences_count_offset: Default::default(),
7244            sequences_index_buffer: Default::default(),
7245            sequences_index_offset: Default::default(),
7246        }
7247    }
7248}
7249///[`VkGeneratedCommandsMemoryRequirementsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsMemoryRequirementsInfoNV.html)
7250/**
7251Provided by **VK_NV_device_generated_commands**.*/
7252#[repr(C)]
7253#[derive(Copy, Clone, Debug)]
7254#[doc(alias = "VkGeneratedCommandsMemoryRequirementsInfoNV")]
7255pub struct GeneratedCommandsMemoryRequirementsInfoNV {
7256    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV`.
7257    pub s_type: StructureType,
7258    ///Optional, may be null.
7259    pub p_next: *const core::ffi::c_void,
7260    pub pipeline_bind_point: PipelineBindPoint,
7261    pub pipeline: Pipeline,
7262    pub indirect_commands_layout: IndirectCommandsLayoutNV,
7263    pub max_sequences_count: u32,
7264}
7265impl Default for GeneratedCommandsMemoryRequirementsInfoNV {
7266    #[inline]
7267    fn default() -> Self {
7268        Self {
7269            s_type: StructureType::from_raw(1000277006i32),
7270            p_next: core::ptr::null(),
7271            pipeline_bind_point: Default::default(),
7272            pipeline: Default::default(),
7273            indirect_commands_layout: Default::default(),
7274            max_sequences_count: Default::default(),
7275        }
7276    }
7277}
7278///[`VkPipelineIndirectDeviceAddressInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineIndirectDeviceAddressInfoNV.html)
7279/**
7280Provided by **VK_NV_device_generated_commands_compute**.*/
7281#[repr(C)]
7282#[derive(Copy, Clone, Debug)]
7283#[doc(alias = "VkPipelineIndirectDeviceAddressInfoNV")]
7284pub struct PipelineIndirectDeviceAddressInfoNV {
7285    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV`.
7286    pub s_type: StructureType,
7287    ///Optional, may be null.
7288    pub p_next: *const core::ffi::c_void,
7289    pub pipeline_bind_point: PipelineBindPoint,
7290    pub pipeline: Pipeline,
7291}
7292impl Default for PipelineIndirectDeviceAddressInfoNV {
7293    #[inline]
7294    fn default() -> Self {
7295        Self {
7296            s_type: StructureType::from_raw(1000428002i32),
7297            p_next: core::ptr::null(),
7298            pipeline_bind_point: Default::default(),
7299            pipeline: Default::default(),
7300        }
7301    }
7302}
7303///[`VkBindPipelineIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindPipelineIndirectCommandNV.html)
7304/**
7305Provided by **VK_NV_device_generated_commands_compute**.*/
7306#[repr(C)]
7307#[derive(Copy, Clone, Debug)]
7308#[doc(alias = "VkBindPipelineIndirectCommandNV")]
7309pub struct BindPipelineIndirectCommandNV {
7310    pub pipeline_address: u64,
7311}
7312impl Default for BindPipelineIndirectCommandNV {
7313    #[inline]
7314    fn default() -> Self {
7315        unsafe { core::mem::zeroed() }
7316    }
7317}
7318///[`VkPhysicalDeviceFeatures2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFeatures2.html)
7319/**
7320Provided by **VK_BASE_VERSION_1_1**.*/
7321///
7322///# Extends
7323///- [`DeviceCreateInfo`]
7324///
7325///# Extended By
7326///- [`PhysicalDevice16BitStorageFeatures`]
7327///- [`PhysicalDevice4444FormatsFeaturesEXT`]
7328///- [`PhysicalDevice8BitStorageFeatures`]
7329///- [`PhysicalDeviceASTCDecodeFeaturesEXT`]
7330///- [`PhysicalDeviceAccelerationStructureFeaturesKHR`]
7331///- [`PhysicalDeviceAddressBindingReportFeaturesEXT`]
7332///- [`PhysicalDeviceAmigoProfilingFeaturesSEC`]
7333///- [`PhysicalDeviceAntiLagFeaturesAMD`]
7334///- [`PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT`]
7335///- [`PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT`]
7336///- [`PhysicalDeviceBlendOperationAdvancedFeaturesEXT`]
7337///- [`PhysicalDeviceBorderColorSwizzleFeaturesEXT`]
7338///- [`PhysicalDeviceBufferDeviceAddressFeatures`]
7339///- [`PhysicalDeviceBufferDeviceAddressFeaturesEXT`]
7340///- [`PhysicalDeviceClusterAccelerationStructureFeaturesNV`]
7341///- [`PhysicalDeviceClusterCullingShaderFeaturesHUAWEI`]
7342///- [`PhysicalDeviceCoherentMemoryFeaturesAMD`]
7343///- [`PhysicalDeviceColorWriteEnableFeaturesEXT`]
7344///- [`PhysicalDeviceCommandBufferInheritanceFeaturesNV`]
7345///- [`PhysicalDeviceComputeOccupancyPriorityFeaturesNV`]
7346///- [`PhysicalDeviceComputeShaderDerivativesFeaturesKHR`]
7347///- [`PhysicalDeviceConditionalRenderingFeaturesEXT`]
7348///- [`PhysicalDeviceCooperativeMatrix2FeaturesNV`]
7349///- [`PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM`]
7350///- [`PhysicalDeviceCooperativeMatrixFeaturesKHR`]
7351///- [`PhysicalDeviceCooperativeMatrixFeaturesNV`]
7352///- [`PhysicalDeviceCooperativeVectorFeaturesNV`]
7353///- [`PhysicalDeviceCopyMemoryIndirectFeaturesKHR`]
7354///- [`PhysicalDeviceCopyMemoryIndirectFeaturesNV`]
7355///- [`PhysicalDeviceCornerSampledImageFeaturesNV`]
7356///- [`PhysicalDeviceCoverageReductionModeFeaturesNV`]
7357///- [`PhysicalDeviceCubicClampFeaturesQCOM`]
7358///- [`PhysicalDeviceCubicWeightsFeaturesQCOM`]
7359///- [`PhysicalDeviceCudaKernelLaunchFeaturesNV`]
7360///- [`PhysicalDeviceCustomBorderColorFeaturesEXT`]
7361///- [`PhysicalDeviceCustomResolveFeaturesEXT`]
7362///- [`PhysicalDeviceDataGraphFeaturesARM`]
7363///- [`PhysicalDeviceDataGraphModelFeaturesQCOM`]
7364///- [`PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV`]
7365///- [`PhysicalDeviceDenseGeometryFormatFeaturesAMDX`]
7366///- [`PhysicalDeviceDepthBiasControlFeaturesEXT`]
7367///- [`PhysicalDeviceDepthClampControlFeaturesEXT`]
7368///- [`PhysicalDeviceDepthClampZeroOneFeaturesKHR`]
7369///- [`PhysicalDeviceDepthClipControlFeaturesEXT`]
7370///- [`PhysicalDeviceDepthClipEnableFeaturesEXT`]
7371///- [`PhysicalDeviceDescriptorBufferFeaturesEXT`]
7372///- [`PhysicalDeviceDescriptorBufferTensorFeaturesARM`]
7373///- [`PhysicalDeviceDescriptorHeapFeaturesEXT`]
7374///- [`PhysicalDeviceDescriptorIndexingFeatures`]
7375///- [`PhysicalDeviceDescriptorPoolOverallocationFeaturesNV`]
7376///- [`PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE`]
7377///- [`PhysicalDeviceDeviceAddressCommandsFeaturesKHR`]
7378///- [`PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV`]
7379///- [`PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT`]
7380///- [`PhysicalDeviceDeviceGeneratedCommandsFeaturesNV`]
7381///- [`PhysicalDeviceDeviceMemoryReportFeaturesEXT`]
7382///- [`PhysicalDeviceDiagnosticsConfigFeaturesNV`]
7383///- [`PhysicalDeviceDisplacementMicromapFeaturesNV`]
7384///- [`PhysicalDeviceDynamicRenderingFeatures`]
7385///- [`PhysicalDeviceDynamicRenderingLocalReadFeatures`]
7386///- [`PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT`]
7387///- [`PhysicalDeviceExclusiveScissorFeaturesNV`]
7388///- [`PhysicalDeviceExtendedDynamicState2FeaturesEXT`]
7389///- [`PhysicalDeviceExtendedDynamicState3FeaturesEXT`]
7390///- [`PhysicalDeviceExtendedDynamicStateFeaturesEXT`]
7391///- [`PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV`]
7392///- [`PhysicalDeviceExternalFormatResolveFeaturesANDROID`]
7393///- [`PhysicalDeviceExternalMemoryRDMAFeaturesNV`]
7394///- [`PhysicalDeviceExternalMemorySciBufFeaturesNV`]
7395///- [`PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX`]
7396///- [`PhysicalDeviceExternalSciSync2FeaturesNV`]
7397///- [`PhysicalDeviceExternalSciSyncFeaturesNV`]
7398///- [`PhysicalDeviceFaultFeaturesEXT`]
7399///- [`PhysicalDeviceFaultFeaturesKHR`]
7400///- [`PhysicalDeviceFormatPackFeaturesARM`]
7401///- [`PhysicalDeviceFragmentDensityMap2FeaturesEXT`]
7402///- [`PhysicalDeviceFragmentDensityMapFeaturesEXT`]
7403///- [`PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE`]
7404///- [`PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT`]
7405///- [`PhysicalDeviceFragmentShaderBarycentricFeaturesKHR`]
7406///- [`PhysicalDeviceFragmentShaderInterlockFeaturesEXT`]
7407///- [`PhysicalDeviceFragmentShadingRateEnumsFeaturesNV`]
7408///- [`PhysicalDeviceFragmentShadingRateFeaturesKHR`]
7409///- [`PhysicalDeviceFrameBoundaryFeaturesEXT`]
7410///- [`PhysicalDeviceGlobalPriorityQueryFeatures`]
7411///- [`PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT`]
7412///- [`PhysicalDeviceHdrVividFeaturesHUAWEI`]
7413///- [`PhysicalDeviceHostImageCopyFeatures`]
7414///- [`PhysicalDeviceHostQueryResetFeatures`]
7415///- [`PhysicalDeviceImage2DViewOf3DFeaturesEXT`]
7416///- [`PhysicalDeviceImageAlignmentControlFeaturesMESA`]
7417///- [`PhysicalDeviceImageCompressionControlFeaturesEXT`]
7418///- [`PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT`]
7419///- [`PhysicalDeviceImageProcessing2FeaturesQCOM`]
7420///- [`PhysicalDeviceImageProcessingFeaturesQCOM`]
7421///- [`PhysicalDeviceImageRobustnessFeatures`]
7422///- [`PhysicalDeviceImageSlicedViewOf3DFeaturesEXT`]
7423///- [`PhysicalDeviceImageViewMinLodFeaturesEXT`]
7424///- [`PhysicalDeviceImagelessFramebufferFeatures`]
7425///- [`PhysicalDeviceIndexTypeUint8Features`]
7426///- [`PhysicalDeviceInheritedViewportScissorFeaturesNV`]
7427///- [`PhysicalDeviceInlineUniformBlockFeatures`]
7428///- [`PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR`]
7429///- [`PhysicalDeviceInvocationMaskFeaturesHUAWEI`]
7430///- [`PhysicalDeviceLegacyDitheringFeaturesEXT`]
7431///- [`PhysicalDeviceLegacyVertexAttributesFeaturesEXT`]
7432///- [`PhysicalDeviceLineRasterizationFeatures`]
7433///- [`PhysicalDeviceLinearColorAttachmentFeaturesNV`]
7434///- [`PhysicalDeviceMaintenance10FeaturesKHR`]
7435///- [`PhysicalDeviceMaintenance4Features`]
7436///- [`PhysicalDeviceMaintenance5Features`]
7437///- [`PhysicalDeviceMaintenance6Features`]
7438///- [`PhysicalDeviceMaintenance7FeaturesKHR`]
7439///- [`PhysicalDeviceMaintenance8FeaturesKHR`]
7440///- [`PhysicalDeviceMaintenance9FeaturesKHR`]
7441///- [`PhysicalDeviceMapMemoryPlacedFeaturesEXT`]
7442///- [`PhysicalDeviceMemoryDecompressionFeaturesEXT`]
7443///- [`PhysicalDeviceMemoryPriorityFeaturesEXT`]
7444///- [`PhysicalDeviceMeshShaderFeaturesEXT`]
7445///- [`PhysicalDeviceMeshShaderFeaturesNV`]
7446///- [`PhysicalDeviceMultiDrawFeaturesEXT`]
7447///- [`PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT`]
7448///- [`PhysicalDeviceMultiviewFeatures`]
7449///- [`PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM`]
7450///- [`PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM`]
7451///- [`PhysicalDeviceMutableDescriptorTypeFeaturesEXT`]
7452///- [`PhysicalDeviceNestedCommandBufferFeaturesEXT`]
7453///- [`PhysicalDeviceNonSeamlessCubeMapFeaturesEXT`]
7454///- [`PhysicalDeviceOpacityMicromapFeaturesEXT`]
7455///- [`PhysicalDeviceOpticalFlowFeaturesNV`]
7456///- [`PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT`]
7457///- [`PhysicalDevicePartitionedAccelerationStructureFeaturesNV`]
7458///- [`PhysicalDevicePerStageDescriptorSetFeaturesNV`]
7459///- [`PhysicalDevicePerformanceCountersByRegionFeaturesARM`]
7460///- [`PhysicalDevicePerformanceQueryFeaturesKHR`]
7461///- [`PhysicalDevicePipelineBinaryFeaturesKHR`]
7462///- [`PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC`]
7463///- [`PhysicalDevicePipelineCreationCacheControlFeatures`]
7464///- [`PhysicalDevicePipelineExecutablePropertiesFeaturesKHR`]
7465///- [`PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT`]
7466///- [`PhysicalDevicePipelineOpacityMicromapFeaturesARM`]
7467///- [`PhysicalDevicePipelinePropertiesFeaturesEXT`]
7468///- [`PhysicalDevicePipelineProtectedAccessFeatures`]
7469///- [`PhysicalDevicePipelineRobustnessFeatures`]
7470///- [`PhysicalDevicePortabilitySubsetFeaturesKHR`]
7471///- [`PhysicalDevicePresentBarrierFeaturesNV`]
7472///- [`PhysicalDevicePresentId2FeaturesKHR`]
7473///- [`PhysicalDevicePresentIdFeaturesKHR`]
7474///- [`PhysicalDevicePresentMeteringFeaturesNV`]
7475///- [`PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR`]
7476///- [`PhysicalDevicePresentTimingFeaturesEXT`]
7477///- [`PhysicalDevicePresentWait2FeaturesKHR`]
7478///- [`PhysicalDevicePresentWaitFeaturesKHR`]
7479///- [`PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT`]
7480///- [`PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT`]
7481///- [`PhysicalDevicePrivateDataFeatures`]
7482///- [`PhysicalDeviceProtectedMemoryFeatures`]
7483///- [`PhysicalDeviceProvokingVertexFeaturesEXT`]
7484///- [`PhysicalDevicePushConstantBankFeaturesNV`]
7485///- [`PhysicalDeviceRGBA10X6FormatsFeaturesEXT`]
7486///- [`PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT`]
7487///- [`PhysicalDeviceRawAccessChainsFeaturesNV`]
7488///- [`PhysicalDeviceRayQueryFeaturesKHR`]
7489///- [`PhysicalDeviceRayTracingInvocationReorderFeaturesEXT`]
7490///- [`PhysicalDeviceRayTracingInvocationReorderFeaturesNV`]
7491///- [`PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV`]
7492///- [`PhysicalDeviceRayTracingMaintenance1FeaturesKHR`]
7493///- [`PhysicalDeviceRayTracingMotionBlurFeaturesNV`]
7494///- [`PhysicalDeviceRayTracingPipelineFeaturesKHR`]
7495///- [`PhysicalDeviceRayTracingPositionFetchFeaturesKHR`]
7496///- [`PhysicalDeviceRayTracingValidationFeaturesNV`]
7497///- [`PhysicalDeviceRelaxedLineRasterizationFeaturesIMG`]
7498///- [`PhysicalDeviceRenderPassStripedFeaturesARM`]
7499///- [`PhysicalDeviceRepresentativeFragmentTestFeaturesNV`]
7500///- [`PhysicalDeviceRobustness2FeaturesKHR`]
7501///- [`PhysicalDeviceSamplerYcbcrConversionFeatures`]
7502///- [`PhysicalDeviceScalarBlockLayoutFeatures`]
7503///- [`PhysicalDeviceSchedulingControlsFeaturesARM`]
7504///- [`PhysicalDeviceSeparateDepthStencilLayoutsFeatures`]
7505///- [`PhysicalDeviceShader64BitIndexingFeaturesEXT`]
7506///- [`PhysicalDeviceShaderAbortFeaturesKHR`]
7507///- [`PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV`]
7508///- [`PhysicalDeviceShaderAtomicFloat2FeaturesEXT`]
7509///- [`PhysicalDeviceShaderAtomicFloatFeaturesEXT`]
7510///- [`PhysicalDeviceShaderAtomicInt64Features`]
7511///- [`PhysicalDeviceShaderBfloat16FeaturesKHR`]
7512///- [`PhysicalDeviceShaderClockFeaturesKHR`]
7513///- [`PhysicalDeviceShaderConstantDataFeaturesKHR`]
7514///- [`PhysicalDeviceShaderCoreBuiltinsFeaturesARM`]
7515///- [`PhysicalDeviceShaderDemoteToHelperInvocationFeatures`]
7516///- [`PhysicalDeviceShaderDrawParametersFeatures`]
7517///- [`PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD`]
7518///- [`PhysicalDeviceShaderEnqueueFeaturesAMDX`]
7519///- [`PhysicalDeviceShaderExpectAssumeFeatures`]
7520///- [`PhysicalDeviceShaderFloat16Int8Features`]
7521///- [`PhysicalDeviceShaderFloat8FeaturesEXT`]
7522///- [`PhysicalDeviceShaderFloatControls2Features`]
7523///- [`PhysicalDeviceShaderFmaFeaturesKHR`]
7524///- [`PhysicalDeviceShaderImageAtomicInt64FeaturesEXT`]
7525///- [`PhysicalDeviceShaderImageFootprintFeaturesNV`]
7526///- [`PhysicalDeviceShaderInstrumentationFeaturesARM`]
7527///- [`PhysicalDeviceShaderIntegerDotProductFeatures`]
7528///- [`PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL`]
7529///- [`PhysicalDeviceShaderLongVectorFeaturesEXT`]
7530///- [`PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR`]
7531///- [`PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE`]
7532///- [`PhysicalDeviceShaderModuleIdentifierFeaturesEXT`]
7533///- [`PhysicalDeviceShaderObjectFeaturesEXT`]
7534///- [`PhysicalDeviceShaderQuadControlFeaturesKHR`]
7535///- [`PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR`]
7536///- [`PhysicalDeviceShaderReplicatedCompositesFeaturesEXT`]
7537///- [`PhysicalDeviceShaderSMBuiltinsFeaturesNV`]
7538///- [`PhysicalDeviceShaderSubgroupExtendedTypesFeatures`]
7539///- [`PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT`]
7540///- [`PhysicalDeviceShaderSubgroupRotateFeatures`]
7541///- [`PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR`]
7542///- [`PhysicalDeviceShaderTerminateInvocationFeatures`]
7543///- [`PhysicalDeviceShaderTileImageFeaturesEXT`]
7544///- [`PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT`]
7545///- [`PhysicalDeviceShaderUntypedPointersFeaturesKHR`]
7546///- [`PhysicalDeviceShadingRateImageFeaturesNV`]
7547///- [`PhysicalDeviceSubgroupSizeControlFeatures`]
7548///- [`PhysicalDeviceSubpassMergeFeedbackFeaturesEXT`]
7549///- [`PhysicalDeviceSubpassShadingFeaturesHUAWEI`]
7550///- [`PhysicalDeviceSwapchainMaintenance1FeaturesKHR`]
7551///- [`PhysicalDeviceSynchronization2Features`]
7552///- [`PhysicalDeviceTensorFeaturesARM`]
7553///- [`PhysicalDeviceTexelBufferAlignmentFeaturesEXT`]
7554///- [`PhysicalDeviceTextureCompressionASTC3DFeaturesEXT`]
7555///- [`PhysicalDeviceTextureCompressionASTCHDRFeatures`]
7556///- [`PhysicalDeviceTileMemoryHeapFeaturesQCOM`]
7557///- [`PhysicalDeviceTilePropertiesFeaturesQCOM`]
7558///- [`PhysicalDeviceTileShadingFeaturesQCOM`]
7559///- [`PhysicalDeviceTimelineSemaphoreFeatures`]
7560///- [`PhysicalDeviceTransformFeedbackFeaturesEXT`]
7561///- [`PhysicalDeviceUnifiedImageLayoutsFeaturesKHR`]
7562///- [`PhysicalDeviceUniformBufferStandardLayoutFeatures`]
7563///- [`PhysicalDeviceVariablePointersFeatures`]
7564///- [`PhysicalDeviceVertexAttributeDivisorFeatures`]
7565///- [`PhysicalDeviceVertexAttributeRobustnessFeaturesEXT`]
7566///- [`PhysicalDeviceVertexInputDynamicStateFeaturesEXT`]
7567///- [`PhysicalDeviceVideoDecodeVP9FeaturesKHR`]
7568///- [`PhysicalDeviceVideoEncodeAV1FeaturesKHR`]
7569///- [`PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR`]
7570///- [`PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR`]
7571///- [`PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE`]
7572///- [`PhysicalDeviceVideoMaintenance1FeaturesKHR`]
7573///- [`PhysicalDeviceVideoMaintenance2FeaturesKHR`]
7574///- [`PhysicalDeviceVulkan11Features`]
7575///- [`PhysicalDeviceVulkan12Features`]
7576///- [`PhysicalDeviceVulkan13Features`]
7577///- [`PhysicalDeviceVulkan14Features`]
7578///- [`PhysicalDeviceVulkanMemoryModelFeatures`]
7579///- [`PhysicalDeviceVulkanSC10Features`]
7580///- [`PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR`]
7581///- [`PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT`]
7582///- [`PhysicalDeviceYcbcrDegammaFeaturesQCOM`]
7583///- [`PhysicalDeviceYcbcrImageArraysFeaturesEXT`]
7584///- [`PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT`]
7585///- [`PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures`]
7586#[repr(C)]
7587#[derive(Copy, Clone, Debug)]
7588#[doc(alias = "VkPhysicalDeviceFeatures2")]
7589pub struct PhysicalDeviceFeatures2 {
7590    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2`.
7591    pub s_type: StructureType,
7592    ///Optional, may be null.
7593    pub p_next: *mut core::ffi::c_void,
7594    pub features: PhysicalDeviceFeatures,
7595}
7596impl Default for PhysicalDeviceFeatures2 {
7597    #[inline]
7598    fn default() -> Self {
7599        Self {
7600            s_type: StructureType::from_raw(1000059000i32),
7601            p_next: core::ptr::null_mut(),
7602            features: Default::default(),
7603        }
7604    }
7605}
7606///[`VkPhysicalDeviceProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProperties2.html)
7607/**
7608Provided by **VK_BASE_VERSION_1_1**.*/
7609/**
7610**Returned only**, filled by Vulkan, not constructed by the application.*/
7611///
7612///# Extended By
7613///- [`PhysicalDeviceAccelerationStructurePropertiesKHR`]
7614///- [`PhysicalDeviceBlendOperationAdvancedPropertiesEXT`]
7615///- [`PhysicalDeviceClusterAccelerationStructurePropertiesNV`]
7616///- [`PhysicalDeviceClusterCullingShaderPropertiesHUAWEI`]
7617///- [`PhysicalDeviceComputeShaderDerivativesPropertiesKHR`]
7618///- [`PhysicalDeviceConservativeRasterizationPropertiesEXT`]
7619///- [`PhysicalDeviceCooperativeMatrix2PropertiesNV`]
7620///- [`PhysicalDeviceCooperativeMatrixPropertiesKHR`]
7621///- [`PhysicalDeviceCooperativeMatrixPropertiesNV`]
7622///- [`PhysicalDeviceCooperativeVectorPropertiesNV`]
7623///- [`PhysicalDeviceCopyMemoryIndirectPropertiesKHR`]
7624///- [`PhysicalDeviceCudaKernelLaunchPropertiesNV`]
7625///- [`PhysicalDeviceCustomBorderColorPropertiesEXT`]
7626///- [`PhysicalDeviceDepthStencilResolveProperties`]
7627///- [`PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT`]
7628///- [`PhysicalDeviceDescriptorBufferPropertiesEXT`]
7629///- [`PhysicalDeviceDescriptorBufferTensorPropertiesARM`]
7630///- [`PhysicalDeviceDescriptorHeapPropertiesEXT`]
7631///- [`PhysicalDeviceDescriptorHeapTensorPropertiesARM`]
7632///- [`PhysicalDeviceDescriptorIndexingProperties`]
7633///- [`PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT`]
7634///- [`PhysicalDeviceDeviceGeneratedCommandsPropertiesNV`]
7635///- [`PhysicalDeviceDiscardRectanglePropertiesEXT`]
7636///- [`PhysicalDeviceDisplacementMicromapPropertiesNV`]
7637///- [`PhysicalDeviceDriverProperties`]
7638///- [`PhysicalDeviceDrmPropertiesEXT`]
7639///- [`PhysicalDeviceExtendedDynamicState3PropertiesEXT`]
7640///- [`PhysicalDeviceExtendedSparseAddressSpacePropertiesNV`]
7641///- [`PhysicalDeviceExternalComputeQueuePropertiesNV`]
7642///- [`PhysicalDeviceExternalFormatResolvePropertiesANDROID`]
7643///- [`PhysicalDeviceExternalMemoryHostPropertiesEXT`]
7644///- [`PhysicalDeviceFaultPropertiesKHR`]
7645///- [`PhysicalDeviceFloatControlsProperties`]
7646///- [`PhysicalDeviceFragmentDensityMap2PropertiesEXT`]
7647///- [`PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE`]
7648///- [`PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT`]
7649///- [`PhysicalDeviceFragmentDensityMapPropertiesEXT`]
7650///- [`PhysicalDeviceFragmentShaderBarycentricPropertiesKHR`]
7651///- [`PhysicalDeviceFragmentShadingRateEnumsPropertiesNV`]
7652///- [`PhysicalDeviceFragmentShadingRatePropertiesKHR`]
7653///- [`PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT`]
7654///- [`PhysicalDeviceHostImageCopyProperties`]
7655///- [`PhysicalDeviceIDProperties`]
7656///- [`PhysicalDeviceImageAlignmentControlPropertiesMESA`]
7657///- [`PhysicalDeviceImageProcessing2PropertiesQCOM`]
7658///- [`PhysicalDeviceImageProcessingPropertiesQCOM`]
7659///- [`PhysicalDeviceInlineUniformBlockProperties`]
7660///- [`PhysicalDeviceLayeredApiPropertiesListKHR`]
7661///- [`PhysicalDeviceLayeredDriverPropertiesMSFT`]
7662///- [`PhysicalDeviceLegacyVertexAttributesPropertiesEXT`]
7663///- [`PhysicalDeviceLineRasterizationProperties`]
7664///- [`PhysicalDeviceMaintenance10PropertiesKHR`]
7665///- [`PhysicalDeviceMaintenance3Properties`]
7666///- [`PhysicalDeviceMaintenance4Properties`]
7667///- [`PhysicalDeviceMaintenance5Properties`]
7668///- [`PhysicalDeviceMaintenance6Properties`]
7669///- [`PhysicalDeviceMaintenance7PropertiesKHR`]
7670///- [`PhysicalDeviceMaintenance9PropertiesKHR`]
7671///- [`PhysicalDeviceMapMemoryPlacedPropertiesEXT`]
7672///- [`PhysicalDeviceMemoryDecompressionPropertiesEXT`]
7673///- [`PhysicalDeviceMeshShaderPropertiesEXT`]
7674///- [`PhysicalDeviceMeshShaderPropertiesNV`]
7675///- [`PhysicalDeviceMultiDrawPropertiesEXT`]
7676///- [`PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX`]
7677///- [`PhysicalDeviceMultiviewProperties`]
7678///- [`PhysicalDeviceNestedCommandBufferPropertiesEXT`]
7679///- [`PhysicalDeviceOpacityMicromapPropertiesEXT`]
7680///- [`PhysicalDeviceOpticalFlowPropertiesNV`]
7681///- [`PhysicalDevicePCIBusInfoPropertiesEXT`]
7682///- [`PhysicalDevicePartitionedAccelerationStructurePropertiesNV`]
7683///- [`PhysicalDevicePerformanceCountersByRegionPropertiesARM`]
7684///- [`PhysicalDevicePerformanceQueryPropertiesKHR`]
7685///- [`PhysicalDevicePipelineBinaryPropertiesKHR`]
7686///- [`PhysicalDevicePipelineRobustnessProperties`]
7687///- [`PhysicalDevicePointClippingProperties`]
7688///- [`PhysicalDevicePortabilitySubsetPropertiesKHR`]
7689///- [`PhysicalDevicePresentationPropertiesANDROID`]
7690///- [`PhysicalDevicePresentationPropertiesOHOS`]
7691///- [`PhysicalDeviceProtectedMemoryProperties`]
7692///- [`PhysicalDeviceProvokingVertexPropertiesEXT`]
7693///- [`PhysicalDevicePushConstantBankPropertiesNV`]
7694///- [`PhysicalDevicePushDescriptorProperties`]
7695///- [`PhysicalDeviceRayTracingInvocationReorderPropertiesEXT`]
7696///- [`PhysicalDeviceRayTracingInvocationReorderPropertiesNV`]
7697///- [`PhysicalDeviceRayTracingPipelinePropertiesKHR`]
7698///- [`PhysicalDeviceRayTracingPropertiesNV`]
7699///- [`PhysicalDeviceRenderPassStripedPropertiesARM`]
7700///- [`PhysicalDeviceRobustness2PropertiesKHR`]
7701///- [`PhysicalDeviceSampleLocationsPropertiesEXT`]
7702///- [`PhysicalDeviceSamplerFilterMinmaxProperties`]
7703///- [`PhysicalDeviceSchedulingControlsPropertiesARM`]
7704///- [`PhysicalDeviceShaderAbortPropertiesKHR`]
7705///- [`PhysicalDeviceShaderCoreBuiltinsPropertiesARM`]
7706///- [`PhysicalDeviceShaderCoreProperties2AMD`]
7707///- [`PhysicalDeviceShaderCorePropertiesAMD`]
7708///- [`PhysicalDeviceShaderCorePropertiesARM`]
7709///- [`PhysicalDeviceShaderEnqueuePropertiesAMDX`]
7710///- [`PhysicalDeviceShaderInstrumentationPropertiesARM`]
7711///- [`PhysicalDeviceShaderIntegerDotProductProperties`]
7712///- [`PhysicalDeviceShaderLongVectorPropertiesEXT`]
7713///- [`PhysicalDeviceShaderModuleIdentifierPropertiesEXT`]
7714///- [`PhysicalDeviceShaderObjectPropertiesEXT`]
7715///- [`PhysicalDeviceShaderSMBuiltinsPropertiesNV`]
7716///- [`PhysicalDeviceShaderTileImagePropertiesEXT`]
7717///- [`PhysicalDeviceShadingRateImagePropertiesNV`]
7718///- [`PhysicalDeviceSubgroupProperties`]
7719///- [`PhysicalDeviceSubgroupSizeControlProperties`]
7720///- [`PhysicalDeviceSubpassShadingPropertiesHUAWEI`]
7721///- [`PhysicalDeviceTensorPropertiesARM`]
7722///- [`PhysicalDeviceTexelBufferAlignmentProperties`]
7723///- [`PhysicalDeviceTileMemoryHeapPropertiesQCOM`]
7724///- [`PhysicalDeviceTileShadingPropertiesQCOM`]
7725///- [`PhysicalDeviceTimelineSemaphoreProperties`]
7726///- [`PhysicalDeviceTransformFeedbackPropertiesEXT`]
7727///- [`PhysicalDeviceVertexAttributeDivisorProperties`]
7728///- [`PhysicalDeviceVertexAttributeDivisorPropertiesEXT`]
7729///- [`PhysicalDeviceVulkan11Properties`]
7730///- [`PhysicalDeviceVulkan12Properties`]
7731///- [`PhysicalDeviceVulkan13Properties`]
7732///- [`PhysicalDeviceVulkan14Properties`]
7733///- [`PhysicalDeviceVulkanSC10Properties`]
7734#[repr(C)]
7735#[derive(Copy, Clone, Debug)]
7736#[doc(alias = "VkPhysicalDeviceProperties2")]
7737pub struct PhysicalDeviceProperties2 {
7738    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2`.
7739    pub s_type: StructureType,
7740    ///Optional, may be null.
7741    pub p_next: *mut core::ffi::c_void,
7742    pub properties: PhysicalDeviceProperties,
7743}
7744impl Default for PhysicalDeviceProperties2 {
7745    #[inline]
7746    fn default() -> Self {
7747        Self {
7748            s_type: StructureType::from_raw(1000059001i32),
7749            p_next: core::ptr::null_mut(),
7750            properties: Default::default(),
7751        }
7752    }
7753}
7754///[`VkFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFormatProperties2.html)
7755/**
7756Provided by **VK_BASE_VERSION_1_1**.*/
7757/**
7758**Returned only**, filled by Vulkan, not constructed by the application.*/
7759///
7760///# Extended By
7761///- [`DrmFormatModifierPropertiesList2EXT`]
7762///- [`DrmFormatModifierPropertiesListEXT`]
7763///- [`FormatProperties3`]
7764///- [`SubpassResolvePerformanceQueryEXT`]
7765///- [`TensorFormatPropertiesARM`]
7766#[repr(C)]
7767#[derive(Copy, Clone, Debug)]
7768#[doc(alias = "VkFormatProperties2")]
7769pub struct FormatProperties2 {
7770    ///Must be `VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2`.
7771    pub s_type: StructureType,
7772    ///Optional, may be null.
7773    pub p_next: *mut core::ffi::c_void,
7774    pub format_properties: FormatProperties,
7775}
7776impl Default for FormatProperties2 {
7777    #[inline]
7778    fn default() -> Self {
7779        Self {
7780            s_type: StructureType::from_raw(1000059002i32),
7781            p_next: core::ptr::null_mut(),
7782            format_properties: Default::default(),
7783        }
7784    }
7785}
7786///[`VkImageFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageFormatProperties2.html)
7787/**
7788Provided by **VK_BASE_VERSION_1_1**.*/
7789/**
7790**Returned only**, filled by Vulkan, not constructed by the application.*/
7791///
7792///# Extended By
7793///- [`AndroidHardwareBufferUsageANDROID`]
7794///- [`ExternalImageFormatProperties`]
7795///- [`FilterCubicImageViewImageFormatPropertiesEXT`]
7796///- [`HostImageCopyDevicePerformanceQuery`]
7797///- [`ImageCompressionPropertiesEXT`]
7798///- [`NativeBufferUsageOHOS`]
7799///- [`SamplerYcbcrConversionImageFormatProperties`]
7800///- [`SubsampledImageFormatPropertiesEXT`]
7801///- [`TextureLODGatherFormatPropertiesAMD`]
7802#[repr(C)]
7803#[derive(Copy, Clone, Debug)]
7804#[doc(alias = "VkImageFormatProperties2")]
7805pub struct ImageFormatProperties2 {
7806    ///Must be `VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2`.
7807    pub s_type: StructureType,
7808    ///Optional, may be null.
7809    pub p_next: *mut core::ffi::c_void,
7810    pub image_format_properties: ImageFormatProperties,
7811}
7812impl Default for ImageFormatProperties2 {
7813    #[inline]
7814    fn default() -> Self {
7815        Self {
7816            s_type: StructureType::from_raw(1000059003i32),
7817            p_next: core::ptr::null_mut(),
7818            image_format_properties: Default::default(),
7819        }
7820    }
7821}
7822///[`VkPhysicalDeviceImageFormatInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageFormatInfo2.html)
7823/**
7824Provided by **VK_BASE_VERSION_1_1**.*/
7825///
7826///# Extended By
7827///- [`ImageCompressionControlEXT`]
7828///- [`ImageFormatListCreateInfo`]
7829///- [`ImageStencilUsageCreateInfo`]
7830///- [`OpticalFlowImageFormatInfoNV`]
7831///- [`PhysicalDeviceExternalImageFormatInfo`]
7832///- [`PhysicalDeviceImageDrmFormatModifierInfoEXT`]
7833///- [`PhysicalDeviceImageViewImageFormatInfoEXT`]
7834///- [`VideoProfileListInfoKHR`]
7835#[repr(C)]
7836#[derive(Copy, Clone, Debug)]
7837#[doc(alias = "VkPhysicalDeviceImageFormatInfo2")]
7838pub struct PhysicalDeviceImageFormatInfo2 {
7839    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2`.
7840    pub s_type: StructureType,
7841    ///Optional, may be null.
7842    pub p_next: *const core::ffi::c_void,
7843    pub format: Format,
7844    pub r#type: ImageType,
7845    pub tiling: ImageTiling,
7846    pub usage: ImageUsageFlags,
7847    pub flags: ImageCreateFlags,
7848}
7849impl Default for PhysicalDeviceImageFormatInfo2 {
7850    #[inline]
7851    fn default() -> Self {
7852        Self {
7853            s_type: StructureType::from_raw(1000059004i32),
7854            p_next: core::ptr::null(),
7855            format: Default::default(),
7856            r#type: Default::default(),
7857            tiling: Default::default(),
7858            usage: Default::default(),
7859            flags: Default::default(),
7860        }
7861    }
7862}
7863///[`VkQueueFamilyProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyProperties2.html)
7864/**
7865Provided by **VK_BASE_VERSION_1_1**.*/
7866/**
7867**Returned only**, filled by Vulkan, not constructed by the application.*/
7868///
7869///# Extended By
7870///- [`QueueFamilyCheckpointProperties2NV`]
7871///- [`QueueFamilyCheckpointPropertiesNV`]
7872///- [`QueueFamilyGlobalPriorityProperties`]
7873///- [`QueueFamilyOwnershipTransferPropertiesKHR`]
7874///- [`QueueFamilyQueryResultStatusPropertiesKHR`]
7875///- [`QueueFamilyVideoPropertiesKHR`]
7876#[repr(C)]
7877#[derive(Copy, Clone, Debug)]
7878#[doc(alias = "VkQueueFamilyProperties2")]
7879pub struct QueueFamilyProperties2 {
7880    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2`.
7881    pub s_type: StructureType,
7882    ///Optional, may be null.
7883    pub p_next: *mut core::ffi::c_void,
7884    pub queue_family_properties: QueueFamilyProperties,
7885}
7886impl Default for QueueFamilyProperties2 {
7887    #[inline]
7888    fn default() -> Self {
7889        Self {
7890            s_type: StructureType::from_raw(1000059005i32),
7891            p_next: core::ptr::null_mut(),
7892            queue_family_properties: Default::default(),
7893        }
7894    }
7895}
7896///[`VkPhysicalDeviceMemoryProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryProperties2.html)
7897/**
7898Provided by **VK_BASE_VERSION_1_1**.*/
7899/**
7900**Returned only**, filled by Vulkan, not constructed by the application.*/
7901///
7902///# Extended By
7903///- [`PhysicalDeviceMemoryBudgetPropertiesEXT`]
7904#[repr(C)]
7905#[derive(Copy, Clone, Debug)]
7906#[doc(alias = "VkPhysicalDeviceMemoryProperties2")]
7907pub struct PhysicalDeviceMemoryProperties2 {
7908    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2`.
7909    pub s_type: StructureType,
7910    ///Optional, may be null.
7911    pub p_next: *mut core::ffi::c_void,
7912    pub memory_properties: PhysicalDeviceMemoryProperties,
7913}
7914impl Default for PhysicalDeviceMemoryProperties2 {
7915    #[inline]
7916    fn default() -> Self {
7917        Self {
7918            s_type: StructureType::from_raw(1000059006i32),
7919            p_next: core::ptr::null_mut(),
7920            memory_properties: Default::default(),
7921        }
7922    }
7923}
7924///[`VkSparseImageFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageFormatProperties2.html)
7925/**
7926Provided by **VK_BASE_VERSION_1_1**.*/
7927/**
7928**Returned only**, filled by Vulkan, not constructed by the application.*/
7929#[repr(C)]
7930#[derive(Copy, Clone, Debug)]
7931#[doc(alias = "VkSparseImageFormatProperties2")]
7932pub struct SparseImageFormatProperties2 {
7933    ///Must be `VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2`.
7934    pub s_type: StructureType,
7935    ///Optional, may be null.
7936    pub p_next: *mut core::ffi::c_void,
7937    pub properties: SparseImageFormatProperties,
7938}
7939impl Default for SparseImageFormatProperties2 {
7940    #[inline]
7941    fn default() -> Self {
7942        Self {
7943            s_type: StructureType::from_raw(1000059007i32),
7944            p_next: core::ptr::null_mut(),
7945            properties: Default::default(),
7946        }
7947    }
7948}
7949///[`VkPhysicalDeviceSparseImageFormatInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSparseImageFormatInfo2.html)
7950/**
7951Provided by **VK_BASE_VERSION_1_1**.*/
7952#[repr(C)]
7953#[derive(Copy, Clone, Debug)]
7954#[doc(alias = "VkPhysicalDeviceSparseImageFormatInfo2")]
7955pub struct PhysicalDeviceSparseImageFormatInfo2 {
7956    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2`.
7957    pub s_type: StructureType,
7958    ///Optional, may be null.
7959    pub p_next: *const core::ffi::c_void,
7960    pub format: Format,
7961    pub r#type: ImageType,
7962    pub samples: SampleCountFlagBits,
7963    pub usage: ImageUsageFlags,
7964    pub tiling: ImageTiling,
7965}
7966impl Default for PhysicalDeviceSparseImageFormatInfo2 {
7967    #[inline]
7968    fn default() -> Self {
7969        Self {
7970            s_type: StructureType::from_raw(1000059008i32),
7971            p_next: core::ptr::null(),
7972            format: Default::default(),
7973            r#type: Default::default(),
7974            samples: Default::default(),
7975            usage: Default::default(),
7976            tiling: Default::default(),
7977        }
7978    }
7979}
7980///[`VkPhysicalDevicePushDescriptorProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePushDescriptorProperties.html)
7981/**
7982Provided by **VK_COMPUTE_VERSION_1_4**.*/
7983/**
7984**Returned only**, filled by Vulkan, not constructed by the application.*/
7985///
7986///# Extends
7987///- [`PhysicalDeviceProperties2`]
7988#[repr(C)]
7989#[derive(Copy, Clone, Debug)]
7990#[doc(alias = "VkPhysicalDevicePushDescriptorProperties")]
7991pub struct PhysicalDevicePushDescriptorProperties {
7992    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES`.
7993    pub s_type: StructureType,
7994    ///Optional, may be null.
7995    pub p_next: *mut core::ffi::c_void,
7996    pub max_push_descriptors: u32,
7997}
7998impl Default for PhysicalDevicePushDescriptorProperties {
7999    #[inline]
8000    fn default() -> Self {
8001        Self {
8002            s_type: StructureType::from_raw(1000080000i32),
8003            p_next: core::ptr::null_mut(),
8004            max_push_descriptors: Default::default(),
8005        }
8006    }
8007}
8008///[`VkConformanceVersion`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkConformanceVersion.html)
8009/**
8010Provided by **VK_BASE_VERSION_1_2**.*/
8011#[repr(C)]
8012#[derive(Copy, Clone, Debug)]
8013#[doc(alias = "VkConformanceVersion")]
8014pub struct ConformanceVersion {
8015    pub major: u8,
8016    pub minor: u8,
8017    pub subminor: u8,
8018    pub patch: u8,
8019}
8020impl Default for ConformanceVersion {
8021    #[inline]
8022    fn default() -> Self {
8023        unsafe { core::mem::zeroed() }
8024    }
8025}
8026///[`VkPhysicalDeviceDriverProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDriverProperties.html)
8027/**
8028Provided by **VK_BASE_VERSION_1_2**.*/
8029/**
8030**Returned only**, filled by Vulkan, not constructed by the application.*/
8031///
8032///# Extends
8033///- [`PhysicalDeviceProperties2`]
8034#[repr(C)]
8035#[derive(Copy, Clone, Debug)]
8036#[doc(alias = "VkPhysicalDeviceDriverProperties")]
8037pub struct PhysicalDeviceDriverProperties {
8038    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES`.
8039    pub s_type: StructureType,
8040    ///Optional, may be null.
8041    pub p_next: *mut core::ffi::c_void,
8042    pub driver_id: DriverId,
8043    pub driver_name: crate::StringArray<{ MAX_DRIVER_NAME_SIZE as usize }>,
8044    pub driver_info: crate::StringArray<{ MAX_DRIVER_INFO_SIZE as usize }>,
8045    pub conformance_version: ConformanceVersion,
8046}
8047impl Default for PhysicalDeviceDriverProperties {
8048    #[inline]
8049    fn default() -> Self {
8050        Self {
8051            s_type: StructureType::from_raw(1000196000i32),
8052            p_next: core::ptr::null_mut(),
8053            driver_id: Default::default(),
8054            driver_name: unsafe { core::mem::zeroed() },
8055            driver_info: unsafe { core::mem::zeroed() },
8056            conformance_version: Default::default(),
8057        }
8058    }
8059}
8060///[`VkPresentRegionsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentRegionsKHR.html)
8061/**
8062Provided by **VK_KHR_incremental_present**.*/
8063///
8064///# Extends
8065///- [`PresentInfoKHR`]
8066#[repr(C)]
8067#[derive(Copy, Clone, Debug)]
8068#[doc(alias = "VkPresentRegionsKHR")]
8069pub struct PresentRegionsKHR {
8070    ///Must be `VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR`.
8071    pub s_type: StructureType,
8072    ///Optional, may be null.
8073    pub p_next: *const core::ffi::c_void,
8074    ///Length of `p_regions`.
8075    pub swapchain_count: u32,
8076    ///Optional, may be null.
8077    pub p_regions: *const PresentRegionKHR,
8078}
8079impl Default for PresentRegionsKHR {
8080    #[inline]
8081    fn default() -> Self {
8082        Self {
8083            s_type: StructureType::from_raw(1000084000i32),
8084            p_next: core::ptr::null(),
8085            swapchain_count: Default::default(),
8086            p_regions: core::ptr::null(),
8087        }
8088    }
8089}
8090///[`VkPresentRegionKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentRegionKHR.html)
8091/**
8092Provided by **VK_KHR_incremental_present**.*/
8093#[repr(C)]
8094#[derive(Copy, Clone, Debug)]
8095#[doc(alias = "VkPresentRegionKHR")]
8096pub struct PresentRegionKHR {
8097    ///Length of `p_rectangles`.
8098    pub rectangle_count: u32,
8099    ///Optional, may be null.
8100    pub p_rectangles: *const RectLayerKHR,
8101}
8102impl Default for PresentRegionKHR {
8103    #[inline]
8104    fn default() -> Self {
8105        unsafe { core::mem::zeroed() }
8106    }
8107}
8108///[`VkRectLayerKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRectLayerKHR.html)
8109/**
8110Provided by **VK_KHR_incremental_present**.*/
8111#[repr(C)]
8112#[derive(Copy, Clone, Debug)]
8113#[doc(alias = "VkRectLayerKHR")]
8114pub struct RectLayerKHR {
8115    pub offset: Offset2D,
8116    pub extent: Extent2D,
8117    pub layer: u32,
8118}
8119impl Default for RectLayerKHR {
8120    #[inline]
8121    fn default() -> Self {
8122        unsafe { core::mem::zeroed() }
8123    }
8124}
8125///[`VkPhysicalDeviceVariablePointersFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVariablePointersFeatures.html)
8126/**
8127Provided by **VK_COMPUTE_VERSION_1_1**.*/
8128///
8129///# Extends
8130///- [`PhysicalDeviceFeatures2`]
8131///- [`DeviceCreateInfo`]
8132#[repr(C)]
8133#[derive(Copy, Clone, Debug)]
8134#[doc(alias = "VkPhysicalDeviceVariablePointersFeatures")]
8135pub struct PhysicalDeviceVariablePointersFeatures {
8136    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES`.
8137    pub s_type: StructureType,
8138    ///Optional, may be null.
8139    pub p_next: *mut core::ffi::c_void,
8140    pub variable_pointers_storage_buffer: u32,
8141    pub variable_pointers: u32,
8142}
8143impl Default for PhysicalDeviceVariablePointersFeatures {
8144    #[inline]
8145    fn default() -> Self {
8146        Self {
8147            s_type: StructureType::from_raw(1000120000i32),
8148            p_next: core::ptr::null_mut(),
8149            variable_pointers_storage_buffer: Default::default(),
8150            variable_pointers: Default::default(),
8151        }
8152    }
8153}
8154///[`VkExternalMemoryProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryProperties.html)
8155/**
8156Provided by **VK_BASE_VERSION_1_1**.*/
8157/**
8158**Returned only**, filled by Vulkan, not constructed by the application.*/
8159#[repr(C)]
8160#[derive(Copy, Clone, Debug)]
8161#[doc(alias = "VkExternalMemoryProperties")]
8162pub struct ExternalMemoryProperties {
8163    pub external_memory_features: ExternalMemoryFeatureFlags,
8164    pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlags,
8165    pub compatible_handle_types: ExternalMemoryHandleTypeFlags,
8166}
8167impl Default for ExternalMemoryProperties {
8168    #[inline]
8169    fn default() -> Self {
8170        unsafe { core::mem::zeroed() }
8171    }
8172}
8173///[`VkPhysicalDeviceExternalImageFormatInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalImageFormatInfo.html)
8174/**
8175Provided by **VK_BASE_VERSION_1_1**.*/
8176///
8177///# Extends
8178///- [`PhysicalDeviceImageFormatInfo2`]
8179#[repr(C)]
8180#[derive(Copy, Clone, Debug)]
8181#[doc(alias = "VkPhysicalDeviceExternalImageFormatInfo")]
8182pub struct PhysicalDeviceExternalImageFormatInfo {
8183    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO`.
8184    pub s_type: StructureType,
8185    ///Optional, may be null.
8186    pub p_next: *const core::ffi::c_void,
8187    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8188}
8189impl Default for PhysicalDeviceExternalImageFormatInfo {
8190    #[inline]
8191    fn default() -> Self {
8192        Self {
8193            s_type: StructureType::from_raw(1000071000i32),
8194            p_next: core::ptr::null(),
8195            handle_type: Default::default(),
8196        }
8197    }
8198}
8199///[`VkExternalImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalImageFormatProperties.html)
8200/**
8201Provided by **VK_BASE_VERSION_1_1**.*/
8202/**
8203**Returned only**, filled by Vulkan, not constructed by the application.*/
8204///
8205///# Extends
8206///- [`ImageFormatProperties2`]
8207#[repr(C)]
8208#[derive(Copy, Clone, Debug)]
8209#[doc(alias = "VkExternalImageFormatProperties")]
8210pub struct ExternalImageFormatProperties {
8211    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES`.
8212    pub s_type: StructureType,
8213    ///Optional, may be null.
8214    pub p_next: *mut core::ffi::c_void,
8215    pub external_memory_properties: ExternalMemoryProperties,
8216}
8217impl Default for ExternalImageFormatProperties {
8218    #[inline]
8219    fn default() -> Self {
8220        Self {
8221            s_type: StructureType::from_raw(1000071001i32),
8222            p_next: core::ptr::null_mut(),
8223            external_memory_properties: Default::default(),
8224        }
8225    }
8226}
8227///[`VkPhysicalDeviceExternalBufferInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalBufferInfo.html)
8228/**
8229Provided by **VK_BASE_VERSION_1_1**.*/
8230///
8231///# Extended By
8232///- [`BufferUsageFlags2CreateInfo`]
8233#[repr(C)]
8234#[derive(Copy, Clone, Debug)]
8235#[doc(alias = "VkPhysicalDeviceExternalBufferInfo")]
8236pub struct PhysicalDeviceExternalBufferInfo {
8237    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO`.
8238    pub s_type: StructureType,
8239    ///Optional, may be null.
8240    pub p_next: *const core::ffi::c_void,
8241    pub flags: BufferCreateFlags,
8242    pub usage: BufferUsageFlags,
8243    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8244}
8245impl Default for PhysicalDeviceExternalBufferInfo {
8246    #[inline]
8247    fn default() -> Self {
8248        Self {
8249            s_type: StructureType::from_raw(1000071002i32),
8250            p_next: core::ptr::null(),
8251            flags: Default::default(),
8252            usage: Default::default(),
8253            handle_type: Default::default(),
8254        }
8255    }
8256}
8257///[`VkExternalBufferProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalBufferProperties.html)
8258/**
8259Provided by **VK_BASE_VERSION_1_1**.*/
8260/**
8261**Returned only**, filled by Vulkan, not constructed by the application.*/
8262#[repr(C)]
8263#[derive(Copy, Clone, Debug)]
8264#[doc(alias = "VkExternalBufferProperties")]
8265pub struct ExternalBufferProperties {
8266    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES`.
8267    pub s_type: StructureType,
8268    ///Optional, may be null.
8269    pub p_next: *mut core::ffi::c_void,
8270    pub external_memory_properties: ExternalMemoryProperties,
8271}
8272impl Default for ExternalBufferProperties {
8273    #[inline]
8274    fn default() -> Self {
8275        Self {
8276            s_type: StructureType::from_raw(1000071003i32),
8277            p_next: core::ptr::null_mut(),
8278            external_memory_properties: Default::default(),
8279        }
8280    }
8281}
8282///[`VkPhysicalDeviceIDProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceIDProperties.html)
8283/**
8284Provided by **VK_BASE_VERSION_1_1**.*/
8285/**
8286**Returned only**, filled by Vulkan, not constructed by the application.*/
8287///
8288///# Extends
8289///- [`PhysicalDeviceProperties2`]
8290#[repr(C)]
8291#[derive(Copy, Clone, Debug)]
8292#[doc(alias = "VkPhysicalDeviceIDProperties")]
8293pub struct PhysicalDeviceIDProperties {
8294    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES`.
8295    pub s_type: StructureType,
8296    ///Optional, may be null.
8297    pub p_next: *mut core::ffi::c_void,
8298    pub device_uuid: [u8; UUID_SIZE as usize],
8299    pub driver_uuid: [u8; UUID_SIZE as usize],
8300    pub device_luid: [u8; LUID_SIZE as usize],
8301    pub device_node_mask: u32,
8302    pub device_luid_valid: u32,
8303}
8304impl Default for PhysicalDeviceIDProperties {
8305    #[inline]
8306    fn default() -> Self {
8307        Self {
8308            s_type: StructureType::from_raw(1000071004i32),
8309            p_next: core::ptr::null_mut(),
8310            device_uuid: unsafe { core::mem::zeroed() },
8311            driver_uuid: unsafe { core::mem::zeroed() },
8312            device_luid: unsafe { core::mem::zeroed() },
8313            device_node_mask: Default::default(),
8314            device_luid_valid: Default::default(),
8315        }
8316    }
8317}
8318///[`VkExternalMemoryImageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryImageCreateInfo.html)
8319/**
8320Provided by **VK_BASE_VERSION_1_1**.*/
8321///
8322///# Extends
8323///- [`ImageCreateInfo`]
8324#[repr(C)]
8325#[derive(Copy, Clone, Debug)]
8326#[doc(alias = "VkExternalMemoryImageCreateInfo")]
8327pub struct ExternalMemoryImageCreateInfo {
8328    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO`.
8329    pub s_type: StructureType,
8330    ///Optional, may be null.
8331    pub p_next: *const core::ffi::c_void,
8332    pub handle_types: ExternalMemoryHandleTypeFlags,
8333}
8334impl Default for ExternalMemoryImageCreateInfo {
8335    #[inline]
8336    fn default() -> Self {
8337        Self {
8338            s_type: StructureType::from_raw(1000072001i32),
8339            p_next: core::ptr::null(),
8340            handle_types: Default::default(),
8341        }
8342    }
8343}
8344///[`VkExternalMemoryBufferCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryBufferCreateInfo.html)
8345/**
8346Provided by **VK_BASE_VERSION_1_1**.*/
8347///
8348///# Extends
8349///- [`BufferCreateInfo`]
8350#[repr(C)]
8351#[derive(Copy, Clone, Debug)]
8352#[doc(alias = "VkExternalMemoryBufferCreateInfo")]
8353pub struct ExternalMemoryBufferCreateInfo {
8354    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO`.
8355    pub s_type: StructureType,
8356    ///Optional, may be null.
8357    pub p_next: *const core::ffi::c_void,
8358    pub handle_types: ExternalMemoryHandleTypeFlags,
8359}
8360impl Default for ExternalMemoryBufferCreateInfo {
8361    #[inline]
8362    fn default() -> Self {
8363        Self {
8364            s_type: StructureType::from_raw(1000072000i32),
8365            p_next: core::ptr::null(),
8366            handle_types: Default::default(),
8367        }
8368    }
8369}
8370///[`VkExportMemoryAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemoryAllocateInfo.html)
8371/**
8372Provided by **VK_BASE_VERSION_1_1**.*/
8373///
8374///# Extends
8375///- [`MemoryAllocateInfo`]
8376#[repr(C)]
8377#[derive(Copy, Clone, Debug)]
8378#[doc(alias = "VkExportMemoryAllocateInfo")]
8379pub struct ExportMemoryAllocateInfo {
8380    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO`.
8381    pub s_type: StructureType,
8382    ///Optional, may be null.
8383    pub p_next: *const core::ffi::c_void,
8384    pub handle_types: ExternalMemoryHandleTypeFlags,
8385}
8386impl Default for ExportMemoryAllocateInfo {
8387    #[inline]
8388    fn default() -> Self {
8389        Self {
8390            s_type: StructureType::from_raw(1000072002i32),
8391            p_next: core::ptr::null(),
8392            handle_types: Default::default(),
8393        }
8394    }
8395}
8396///[`VkImportMemoryWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryWin32HandleInfoKHR.html)
8397/**
8398Provided by **VK_KHR_external_memory_win32**.*/
8399///
8400///# Extends
8401///- [`MemoryAllocateInfo`]
8402#[repr(C)]
8403#[derive(Copy, Clone, Debug)]
8404#[doc(alias = "VkImportMemoryWin32HandleInfoKHR")]
8405pub struct ImportMemoryWin32HandleInfoKHR {
8406    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR`.
8407    pub s_type: StructureType,
8408    ///Optional, may be null.
8409    pub p_next: *const core::ffi::c_void,
8410    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8411    pub handle: isize,
8412    pub name: *const u16,
8413}
8414impl Default for ImportMemoryWin32HandleInfoKHR {
8415    #[inline]
8416    fn default() -> Self {
8417        Self {
8418            s_type: StructureType::from_raw(1000073000i32),
8419            p_next: core::ptr::null(),
8420            handle_type: Default::default(),
8421            handle: Default::default(),
8422            name: core::ptr::null(),
8423        }
8424    }
8425}
8426///[`VkExportMemoryWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMemoryWin32HandleInfoKHR.html)
8427/**
8428Provided by **VK_KHR_external_memory_win32**.*/
8429///
8430///# Extends
8431///- [`MemoryAllocateInfo`]
8432#[repr(C)]
8433#[derive(Copy, Clone, Debug)]
8434#[doc(alias = "VkExportMemoryWin32HandleInfoKHR")]
8435pub struct ExportMemoryWin32HandleInfoKHR {
8436    ///Must be `VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR`.
8437    pub s_type: StructureType,
8438    ///Optional, may be null.
8439    pub p_next: *const core::ffi::c_void,
8440    ///Optional, may be null.
8441    pub p_attributes: *const core::ffi::c_void,
8442    pub dw_access: u32,
8443    pub name: *const u16,
8444}
8445impl Default for ExportMemoryWin32HandleInfoKHR {
8446    #[inline]
8447    fn default() -> Self {
8448        Self {
8449            s_type: StructureType::from_raw(1000073001i32),
8450            p_next: core::ptr::null(),
8451            p_attributes: core::ptr::null(),
8452            dw_access: Default::default(),
8453            name: core::ptr::null(),
8454        }
8455    }
8456}
8457///[`VkImportMemoryZirconHandleInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryZirconHandleInfoFUCHSIA.html)
8458/**
8459Provided by **VK_FUCHSIA_external_memory**.*/
8460///
8461///# Extends
8462///- [`MemoryAllocateInfo`]
8463#[repr(C)]
8464#[derive(Copy, Clone, Debug)]
8465#[doc(alias = "VkImportMemoryZirconHandleInfoFUCHSIA")]
8466pub struct ImportMemoryZirconHandleInfoFUCHSIA {
8467    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA`.
8468    pub s_type: StructureType,
8469    ///Optional, may be null.
8470    pub p_next: *const core::ffi::c_void,
8471    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8472    pub handle: u32,
8473}
8474impl Default for ImportMemoryZirconHandleInfoFUCHSIA {
8475    #[inline]
8476    fn default() -> Self {
8477        Self {
8478            s_type: StructureType::from_raw(1000364000i32),
8479            p_next: core::ptr::null(),
8480            handle_type: Default::default(),
8481            handle: Default::default(),
8482        }
8483    }
8484}
8485///[`VkMemoryZirconHandlePropertiesFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryZirconHandlePropertiesFUCHSIA.html)
8486/**
8487Provided by **VK_FUCHSIA_external_memory**.*/
8488/**
8489**Returned only**, filled by Vulkan, not constructed by the application.*/
8490#[repr(C)]
8491#[derive(Copy, Clone, Debug)]
8492#[doc(alias = "VkMemoryZirconHandlePropertiesFUCHSIA")]
8493pub struct MemoryZirconHandlePropertiesFUCHSIA {
8494    ///Must be `VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA`.
8495    pub s_type: StructureType,
8496    ///Optional, may be null.
8497    pub p_next: *mut core::ffi::c_void,
8498    pub memory_type_bits: u32,
8499}
8500impl Default for MemoryZirconHandlePropertiesFUCHSIA {
8501    #[inline]
8502    fn default() -> Self {
8503        Self {
8504            s_type: StructureType::from_raw(1000364001i32),
8505            p_next: core::ptr::null_mut(),
8506            memory_type_bits: Default::default(),
8507        }
8508    }
8509}
8510///[`VkMemoryGetZirconHandleInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetZirconHandleInfoFUCHSIA.html)
8511/**
8512Provided by **VK_FUCHSIA_external_memory**.*/
8513#[repr(C)]
8514#[derive(Copy, Clone, Debug)]
8515#[doc(alias = "VkMemoryGetZirconHandleInfoFUCHSIA")]
8516pub struct MemoryGetZirconHandleInfoFUCHSIA {
8517    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA`.
8518    pub s_type: StructureType,
8519    ///Optional, may be null.
8520    pub p_next: *const core::ffi::c_void,
8521    pub memory: DeviceMemory,
8522    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8523}
8524impl Default for MemoryGetZirconHandleInfoFUCHSIA {
8525    #[inline]
8526    fn default() -> Self {
8527        Self {
8528            s_type: StructureType::from_raw(1000364002i32),
8529            p_next: core::ptr::null(),
8530            memory: Default::default(),
8531            handle_type: Default::default(),
8532        }
8533    }
8534}
8535///[`VkMemoryWin32HandlePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryWin32HandlePropertiesKHR.html)
8536/**
8537Provided by **VK_KHR_external_memory_win32**.*/
8538/**
8539**Returned only**, filled by Vulkan, not constructed by the application.*/
8540#[repr(C)]
8541#[derive(Copy, Clone, Debug)]
8542#[doc(alias = "VkMemoryWin32HandlePropertiesKHR")]
8543pub struct MemoryWin32HandlePropertiesKHR {
8544    ///Must be `VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR`.
8545    pub s_type: StructureType,
8546    ///Optional, may be null.
8547    pub p_next: *mut core::ffi::c_void,
8548    pub memory_type_bits: u32,
8549}
8550impl Default for MemoryWin32HandlePropertiesKHR {
8551    #[inline]
8552    fn default() -> Self {
8553        Self {
8554            s_type: StructureType::from_raw(1000073002i32),
8555            p_next: core::ptr::null_mut(),
8556            memory_type_bits: Default::default(),
8557        }
8558    }
8559}
8560///[`VkMemoryGetWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetWin32HandleInfoKHR.html)
8561/**
8562Provided by **VK_KHR_external_memory_win32**.*/
8563#[repr(C)]
8564#[derive(Copy, Clone, Debug)]
8565#[doc(alias = "VkMemoryGetWin32HandleInfoKHR")]
8566pub struct MemoryGetWin32HandleInfoKHR {
8567    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR`.
8568    pub s_type: StructureType,
8569    ///Optional, may be null.
8570    pub p_next: *const core::ffi::c_void,
8571    pub memory: DeviceMemory,
8572    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8573}
8574impl Default for MemoryGetWin32HandleInfoKHR {
8575    #[inline]
8576    fn default() -> Self {
8577        Self {
8578            s_type: StructureType::from_raw(1000073003i32),
8579            p_next: core::ptr::null(),
8580            memory: Default::default(),
8581            handle_type: Default::default(),
8582        }
8583    }
8584}
8585///[`VkImportMemoryFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryFdInfoKHR.html)
8586/**
8587Provided by **VK_KHR_external_memory_fd**.*/
8588///
8589///# Extends
8590///- [`MemoryAllocateInfo`]
8591#[repr(C)]
8592#[derive(Copy, Clone, Debug)]
8593#[doc(alias = "VkImportMemoryFdInfoKHR")]
8594pub struct ImportMemoryFdInfoKHR {
8595    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR`.
8596    pub s_type: StructureType,
8597    ///Optional, may be null.
8598    pub p_next: *const core::ffi::c_void,
8599    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8600    pub fd: core::ffi::c_int,
8601}
8602impl Default for ImportMemoryFdInfoKHR {
8603    #[inline]
8604    fn default() -> Self {
8605        Self {
8606            s_type: StructureType::from_raw(1000074000i32),
8607            p_next: core::ptr::null(),
8608            handle_type: Default::default(),
8609            fd: Default::default(),
8610        }
8611    }
8612}
8613///[`VkMemoryFdPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryFdPropertiesKHR.html)
8614/**
8615Provided by **VK_KHR_external_memory_fd**.*/
8616/**
8617**Returned only**, filled by Vulkan, not constructed by the application.*/
8618#[repr(C)]
8619#[derive(Copy, Clone, Debug)]
8620#[doc(alias = "VkMemoryFdPropertiesKHR")]
8621pub struct MemoryFdPropertiesKHR {
8622    ///Must be `VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR`.
8623    pub s_type: StructureType,
8624    ///Optional, may be null.
8625    pub p_next: *mut core::ffi::c_void,
8626    pub memory_type_bits: u32,
8627}
8628impl Default for MemoryFdPropertiesKHR {
8629    #[inline]
8630    fn default() -> Self {
8631        Self {
8632            s_type: StructureType::from_raw(1000074001i32),
8633            p_next: core::ptr::null_mut(),
8634            memory_type_bits: Default::default(),
8635        }
8636    }
8637}
8638///[`VkMemoryGetFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetFdInfoKHR.html)
8639/**
8640Provided by **VK_KHR_external_memory_fd**.*/
8641#[repr(C)]
8642#[derive(Copy, Clone, Debug)]
8643#[doc(alias = "VkMemoryGetFdInfoKHR")]
8644pub struct MemoryGetFdInfoKHR {
8645    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR`.
8646    pub s_type: StructureType,
8647    ///Optional, may be null.
8648    pub p_next: *const core::ffi::c_void,
8649    pub memory: DeviceMemory,
8650    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8651}
8652impl Default for MemoryGetFdInfoKHR {
8653    #[inline]
8654    fn default() -> Self {
8655        Self {
8656            s_type: StructureType::from_raw(1000074002i32),
8657            p_next: core::ptr::null(),
8658            memory: Default::default(),
8659            handle_type: Default::default(),
8660        }
8661    }
8662}
8663///[`VkWin32KeyedMutexAcquireReleaseInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWin32KeyedMutexAcquireReleaseInfoKHR.html)
8664/**
8665Provided by **VK_KHR_win32_keyed_mutex**.*/
8666///
8667///# Extends
8668///- [`SubmitInfo`]
8669///- [`SubmitInfo2`]
8670#[repr(C)]
8671#[derive(Copy, Clone, Debug)]
8672#[doc(alias = "VkWin32KeyedMutexAcquireReleaseInfoKHR")]
8673pub struct Win32KeyedMutexAcquireReleaseInfoKHR {
8674    ///Must be `VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR`.
8675    pub s_type: StructureType,
8676    ///Optional, may be null.
8677    pub p_next: *const core::ffi::c_void,
8678    ///Length of `p_acquire_timeouts`.
8679    pub acquire_count: u32,
8680    pub p_acquire_syncs: *const DeviceMemory,
8681    pub p_acquire_keys: *const u64,
8682    pub p_acquire_timeouts: *const u32,
8683    ///Length of `p_release_keys`.
8684    pub release_count: u32,
8685    pub p_release_syncs: *const DeviceMemory,
8686    pub p_release_keys: *const u64,
8687}
8688impl Default for Win32KeyedMutexAcquireReleaseInfoKHR {
8689    #[inline]
8690    fn default() -> Self {
8691        Self {
8692            s_type: StructureType::from_raw(1000075000i32),
8693            p_next: core::ptr::null(),
8694            acquire_count: Default::default(),
8695            p_acquire_syncs: core::ptr::null(),
8696            p_acquire_keys: core::ptr::null(),
8697            p_acquire_timeouts: core::ptr::null(),
8698            release_count: Default::default(),
8699            p_release_syncs: core::ptr::null(),
8700            p_release_keys: core::ptr::null(),
8701        }
8702    }
8703}
8704///[`VkImportMemoryMetalHandleInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryMetalHandleInfoEXT.html)
8705/**
8706Provided by **VK_EXT_external_memory_metal**.*/
8707///
8708///# Extends
8709///- [`MemoryAllocateInfo`]
8710#[repr(C)]
8711#[derive(Copy, Clone, Debug)]
8712#[doc(alias = "VkImportMemoryMetalHandleInfoEXT")]
8713pub struct ImportMemoryMetalHandleInfoEXT {
8714    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT`.
8715    pub s_type: StructureType,
8716    ///Optional, may be null.
8717    pub p_next: *const core::ffi::c_void,
8718    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8719    ///Optional, may be null.
8720    pub handle: *mut core::ffi::c_void,
8721}
8722impl Default for ImportMemoryMetalHandleInfoEXT {
8723    #[inline]
8724    fn default() -> Self {
8725        Self {
8726            s_type: StructureType::from_raw(1000602000i32),
8727            p_next: core::ptr::null(),
8728            handle_type: Default::default(),
8729            handle: core::ptr::null_mut(),
8730        }
8731    }
8732}
8733///[`VkMemoryMetalHandlePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryMetalHandlePropertiesEXT.html)
8734/**
8735Provided by **VK_EXT_external_memory_metal**.*/
8736/**
8737**Returned only**, filled by Vulkan, not constructed by the application.*/
8738#[repr(C)]
8739#[derive(Copy, Clone, Debug)]
8740#[doc(alias = "VkMemoryMetalHandlePropertiesEXT")]
8741pub struct MemoryMetalHandlePropertiesEXT {
8742    ///Must be `VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT`.
8743    pub s_type: StructureType,
8744    ///Optional, may be null.
8745    pub p_next: *mut core::ffi::c_void,
8746    pub memory_type_bits: u32,
8747}
8748impl Default for MemoryMetalHandlePropertiesEXT {
8749    #[inline]
8750    fn default() -> Self {
8751        Self {
8752            s_type: StructureType::from_raw(1000602001i32),
8753            p_next: core::ptr::null_mut(),
8754            memory_type_bits: Default::default(),
8755        }
8756    }
8757}
8758///[`VkMemoryGetMetalHandleInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetMetalHandleInfoEXT.html)
8759/**
8760Provided by **VK_EXT_external_memory_metal**.*/
8761#[repr(C)]
8762#[derive(Copy, Clone, Debug)]
8763#[doc(alias = "VkMemoryGetMetalHandleInfoEXT")]
8764pub struct MemoryGetMetalHandleInfoEXT {
8765    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT`.
8766    pub s_type: StructureType,
8767    ///Optional, may be null.
8768    pub p_next: *const core::ffi::c_void,
8769    pub memory: DeviceMemory,
8770    pub handle_type: ExternalMemoryHandleTypeFlagBits,
8771}
8772impl Default for MemoryGetMetalHandleInfoEXT {
8773    #[inline]
8774    fn default() -> Self {
8775        Self {
8776            s_type: StructureType::from_raw(1000602002i32),
8777            p_next: core::ptr::null(),
8778            memory: Default::default(),
8779            handle_type: Default::default(),
8780        }
8781    }
8782}
8783///[`VkPhysicalDeviceExternalSemaphoreInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html)
8784/**
8785Provided by **VK_BASE_VERSION_1_1**.*/
8786///
8787///# Extended By
8788///- [`SemaphoreTypeCreateInfo`]
8789#[repr(C)]
8790#[derive(Copy, Clone, Debug)]
8791#[doc(alias = "VkPhysicalDeviceExternalSemaphoreInfo")]
8792pub struct PhysicalDeviceExternalSemaphoreInfo {
8793    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO`.
8794    pub s_type: StructureType,
8795    ///Optional, may be null.
8796    pub p_next: *const core::ffi::c_void,
8797    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
8798}
8799impl Default for PhysicalDeviceExternalSemaphoreInfo {
8800    #[inline]
8801    fn default() -> Self {
8802        Self {
8803            s_type: StructureType::from_raw(1000076000i32),
8804            p_next: core::ptr::null(),
8805            handle_type: Default::default(),
8806        }
8807    }
8808}
8809///[`VkExternalSemaphoreProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalSemaphoreProperties.html)
8810/**
8811Provided by **VK_BASE_VERSION_1_1**.*/
8812/**
8813**Returned only**, filled by Vulkan, not constructed by the application.*/
8814#[repr(C)]
8815#[derive(Copy, Clone, Debug)]
8816#[doc(alias = "VkExternalSemaphoreProperties")]
8817pub struct ExternalSemaphoreProperties {
8818    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES`.
8819    pub s_type: StructureType,
8820    ///Optional, may be null.
8821    pub p_next: *mut core::ffi::c_void,
8822    pub export_from_imported_handle_types: ExternalSemaphoreHandleTypeFlags,
8823    pub compatible_handle_types: ExternalSemaphoreHandleTypeFlags,
8824    pub external_semaphore_features: ExternalSemaphoreFeatureFlags,
8825}
8826impl Default for ExternalSemaphoreProperties {
8827    #[inline]
8828    fn default() -> Self {
8829        Self {
8830            s_type: StructureType::from_raw(1000076001i32),
8831            p_next: core::ptr::null_mut(),
8832            export_from_imported_handle_types: Default::default(),
8833            compatible_handle_types: Default::default(),
8834            external_semaphore_features: Default::default(),
8835        }
8836    }
8837}
8838///[`VkExportSemaphoreCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportSemaphoreCreateInfo.html)
8839/**
8840Provided by **VK_BASE_VERSION_1_1**.*/
8841///
8842///# Extends
8843///- [`SemaphoreCreateInfo`]
8844#[repr(C)]
8845#[derive(Copy, Clone, Debug)]
8846#[doc(alias = "VkExportSemaphoreCreateInfo")]
8847pub struct ExportSemaphoreCreateInfo {
8848    ///Must be `VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO`.
8849    pub s_type: StructureType,
8850    ///Optional, may be null.
8851    pub p_next: *const core::ffi::c_void,
8852    pub handle_types: ExternalSemaphoreHandleTypeFlags,
8853}
8854impl Default for ExportSemaphoreCreateInfo {
8855    #[inline]
8856    fn default() -> Self {
8857        Self {
8858            s_type: StructureType::from_raw(1000077000i32),
8859            p_next: core::ptr::null(),
8860            handle_types: Default::default(),
8861        }
8862    }
8863}
8864///[`VkImportSemaphoreWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportSemaphoreWin32HandleInfoKHR.html)
8865/**
8866Provided by **VK_KHR_external_semaphore_win32**.*/
8867#[repr(C)]
8868#[derive(Copy, Clone, Debug)]
8869#[doc(alias = "VkImportSemaphoreWin32HandleInfoKHR")]
8870pub struct ImportSemaphoreWin32HandleInfoKHR {
8871    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR`.
8872    pub s_type: StructureType,
8873    ///Optional, may be null.
8874    pub p_next: *const core::ffi::c_void,
8875    ///**Thread safety:** must be externally synchronized.
8876    pub semaphore: Semaphore,
8877    pub flags: SemaphoreImportFlags,
8878    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
8879    pub handle: isize,
8880    pub name: *const u16,
8881}
8882impl Default for ImportSemaphoreWin32HandleInfoKHR {
8883    #[inline]
8884    fn default() -> Self {
8885        Self {
8886            s_type: StructureType::from_raw(1000078000i32),
8887            p_next: core::ptr::null(),
8888            semaphore: Default::default(),
8889            flags: Default::default(),
8890            handle_type: Default::default(),
8891            handle: Default::default(),
8892            name: core::ptr::null(),
8893        }
8894    }
8895}
8896///[`VkExportSemaphoreWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportSemaphoreWin32HandleInfoKHR.html)
8897/**
8898Provided by **VK_KHR_external_semaphore_win32**.*/
8899///
8900///# Extends
8901///- [`SemaphoreCreateInfo`]
8902#[repr(C)]
8903#[derive(Copy, Clone, Debug)]
8904#[doc(alias = "VkExportSemaphoreWin32HandleInfoKHR")]
8905pub struct ExportSemaphoreWin32HandleInfoKHR {
8906    ///Must be `VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR`.
8907    pub s_type: StructureType,
8908    ///Optional, may be null.
8909    pub p_next: *const core::ffi::c_void,
8910    ///Optional, may be null.
8911    pub p_attributes: *const core::ffi::c_void,
8912    pub dw_access: u32,
8913    pub name: *const u16,
8914}
8915impl Default for ExportSemaphoreWin32HandleInfoKHR {
8916    #[inline]
8917    fn default() -> Self {
8918        Self {
8919            s_type: StructureType::from_raw(1000078001i32),
8920            p_next: core::ptr::null(),
8921            p_attributes: core::ptr::null(),
8922            dw_access: Default::default(),
8923            name: core::ptr::null(),
8924        }
8925    }
8926}
8927///[`VkD3D12FenceSubmitInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkD3D12FenceSubmitInfoKHR.html)
8928/**
8929Provided by **VK_KHR_external_semaphore_win32**.*/
8930///
8931///# Extends
8932///- [`SubmitInfo`]
8933#[repr(C)]
8934#[derive(Copy, Clone, Debug)]
8935#[doc(alias = "VkD3D12FenceSubmitInfoKHR")]
8936pub struct D3D12FenceSubmitInfoKHR {
8937    ///Must be `VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR`.
8938    pub s_type: StructureType,
8939    ///Optional, may be null.
8940    pub p_next: *const core::ffi::c_void,
8941    ///Length of `p_wait_semaphore_values`.
8942    pub wait_semaphore_values_count: u32,
8943    ///Optional, may be null.
8944    pub p_wait_semaphore_values: *const u64,
8945    ///Length of `p_signal_semaphore_values`.
8946    pub signal_semaphore_values_count: u32,
8947    ///Optional, may be null.
8948    pub p_signal_semaphore_values: *const u64,
8949}
8950impl Default for D3D12FenceSubmitInfoKHR {
8951    #[inline]
8952    fn default() -> Self {
8953        Self {
8954            s_type: StructureType::from_raw(1000078002i32),
8955            p_next: core::ptr::null(),
8956            wait_semaphore_values_count: Default::default(),
8957            p_wait_semaphore_values: core::ptr::null(),
8958            signal_semaphore_values_count: Default::default(),
8959            p_signal_semaphore_values: core::ptr::null(),
8960        }
8961    }
8962}
8963///[`VkSemaphoreGetWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreGetWin32HandleInfoKHR.html)
8964/**
8965Provided by **VK_KHR_external_semaphore_win32**.*/
8966#[repr(C)]
8967#[derive(Copy, Clone, Debug)]
8968#[doc(alias = "VkSemaphoreGetWin32HandleInfoKHR")]
8969pub struct SemaphoreGetWin32HandleInfoKHR {
8970    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR`.
8971    pub s_type: StructureType,
8972    ///Optional, may be null.
8973    pub p_next: *const core::ffi::c_void,
8974    pub semaphore: Semaphore,
8975    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
8976}
8977impl Default for SemaphoreGetWin32HandleInfoKHR {
8978    #[inline]
8979    fn default() -> Self {
8980        Self {
8981            s_type: StructureType::from_raw(1000078003i32),
8982            p_next: core::ptr::null(),
8983            semaphore: Default::default(),
8984            handle_type: Default::default(),
8985        }
8986    }
8987}
8988///[`VkImportSemaphoreFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportSemaphoreFdInfoKHR.html)
8989/**
8990Provided by **VK_KHR_external_semaphore_fd**.*/
8991#[repr(C)]
8992#[derive(Copy, Clone, Debug)]
8993#[doc(alias = "VkImportSemaphoreFdInfoKHR")]
8994pub struct ImportSemaphoreFdInfoKHR {
8995    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR`.
8996    pub s_type: StructureType,
8997    ///Optional, may be null.
8998    pub p_next: *const core::ffi::c_void,
8999    ///**Thread safety:** must be externally synchronized.
9000    pub semaphore: Semaphore,
9001    pub flags: SemaphoreImportFlags,
9002    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9003    pub fd: core::ffi::c_int,
9004}
9005impl Default for ImportSemaphoreFdInfoKHR {
9006    #[inline]
9007    fn default() -> Self {
9008        Self {
9009            s_type: StructureType::from_raw(1000079000i32),
9010            p_next: core::ptr::null(),
9011            semaphore: Default::default(),
9012            flags: Default::default(),
9013            handle_type: Default::default(),
9014            fd: Default::default(),
9015        }
9016    }
9017}
9018///[`VkSemaphoreGetFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreGetFdInfoKHR.html)
9019/**
9020Provided by **VK_KHR_external_semaphore_fd**.*/
9021#[repr(C)]
9022#[derive(Copy, Clone, Debug)]
9023#[doc(alias = "VkSemaphoreGetFdInfoKHR")]
9024pub struct SemaphoreGetFdInfoKHR {
9025    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR`.
9026    pub s_type: StructureType,
9027    ///Optional, may be null.
9028    pub p_next: *const core::ffi::c_void,
9029    pub semaphore: Semaphore,
9030    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9031}
9032impl Default for SemaphoreGetFdInfoKHR {
9033    #[inline]
9034    fn default() -> Self {
9035        Self {
9036            s_type: StructureType::from_raw(1000079001i32),
9037            p_next: core::ptr::null(),
9038            semaphore: Default::default(),
9039            handle_type: Default::default(),
9040        }
9041    }
9042}
9043///[`VkImportSemaphoreZirconHandleInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportSemaphoreZirconHandleInfoFUCHSIA.html)
9044/**
9045Provided by **VK_FUCHSIA_external_semaphore**.*/
9046#[repr(C)]
9047#[derive(Copy, Clone, Debug)]
9048#[doc(alias = "VkImportSemaphoreZirconHandleInfoFUCHSIA")]
9049pub struct ImportSemaphoreZirconHandleInfoFUCHSIA {
9050    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA`.
9051    pub s_type: StructureType,
9052    ///Optional, may be null.
9053    pub p_next: *const core::ffi::c_void,
9054    ///**Thread safety:** must be externally synchronized.
9055    pub semaphore: Semaphore,
9056    pub flags: SemaphoreImportFlags,
9057    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9058    pub zircon_handle: u32,
9059}
9060impl Default for ImportSemaphoreZirconHandleInfoFUCHSIA {
9061    #[inline]
9062    fn default() -> Self {
9063        Self {
9064            s_type: StructureType::from_raw(1000365000i32),
9065            p_next: core::ptr::null(),
9066            semaphore: Default::default(),
9067            flags: Default::default(),
9068            handle_type: Default::default(),
9069            zircon_handle: Default::default(),
9070        }
9071    }
9072}
9073///[`VkSemaphoreGetZirconHandleInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreGetZirconHandleInfoFUCHSIA.html)
9074/**
9075Provided by **VK_FUCHSIA_external_semaphore**.*/
9076#[repr(C)]
9077#[derive(Copy, Clone, Debug)]
9078#[doc(alias = "VkSemaphoreGetZirconHandleInfoFUCHSIA")]
9079pub struct SemaphoreGetZirconHandleInfoFUCHSIA {
9080    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA`.
9081    pub s_type: StructureType,
9082    ///Optional, may be null.
9083    pub p_next: *const core::ffi::c_void,
9084    pub semaphore: Semaphore,
9085    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9086}
9087impl Default for SemaphoreGetZirconHandleInfoFUCHSIA {
9088    #[inline]
9089    fn default() -> Self {
9090        Self {
9091            s_type: StructureType::from_raw(1000365001i32),
9092            p_next: core::ptr::null(),
9093            semaphore: Default::default(),
9094            handle_type: Default::default(),
9095        }
9096    }
9097}
9098///[`VkPhysicalDeviceExternalFenceInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalFenceInfo.html)
9099/**
9100Provided by **VK_BASE_VERSION_1_1**.*/
9101#[repr(C)]
9102#[derive(Copy, Clone, Debug)]
9103#[doc(alias = "VkPhysicalDeviceExternalFenceInfo")]
9104pub struct PhysicalDeviceExternalFenceInfo {
9105    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO`.
9106    pub s_type: StructureType,
9107    ///Optional, may be null.
9108    pub p_next: *const core::ffi::c_void,
9109    pub handle_type: ExternalFenceHandleTypeFlagBits,
9110}
9111impl Default for PhysicalDeviceExternalFenceInfo {
9112    #[inline]
9113    fn default() -> Self {
9114        Self {
9115            s_type: StructureType::from_raw(1000112000i32),
9116            p_next: core::ptr::null(),
9117            handle_type: Default::default(),
9118        }
9119    }
9120}
9121///[`VkExternalFenceProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalFenceProperties.html)
9122/**
9123Provided by **VK_BASE_VERSION_1_1**.*/
9124/**
9125**Returned only**, filled by Vulkan, not constructed by the application.*/
9126#[repr(C)]
9127#[derive(Copy, Clone, Debug)]
9128#[doc(alias = "VkExternalFenceProperties")]
9129pub struct ExternalFenceProperties {
9130    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES`.
9131    pub s_type: StructureType,
9132    ///Optional, may be null.
9133    pub p_next: *mut core::ffi::c_void,
9134    pub export_from_imported_handle_types: ExternalFenceHandleTypeFlags,
9135    pub compatible_handle_types: ExternalFenceHandleTypeFlags,
9136    pub external_fence_features: ExternalFenceFeatureFlags,
9137}
9138impl Default for ExternalFenceProperties {
9139    #[inline]
9140    fn default() -> Self {
9141        Self {
9142            s_type: StructureType::from_raw(1000112001i32),
9143            p_next: core::ptr::null_mut(),
9144            export_from_imported_handle_types: Default::default(),
9145            compatible_handle_types: Default::default(),
9146            external_fence_features: Default::default(),
9147        }
9148    }
9149}
9150///[`VkExportFenceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportFenceCreateInfo.html)
9151/**
9152Provided by **VK_BASE_VERSION_1_1**.*/
9153///
9154///# Extends
9155///- [`FenceCreateInfo`]
9156#[repr(C)]
9157#[derive(Copy, Clone, Debug)]
9158#[doc(alias = "VkExportFenceCreateInfo")]
9159pub struct ExportFenceCreateInfo {
9160    ///Must be `VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO`.
9161    pub s_type: StructureType,
9162    ///Optional, may be null.
9163    pub p_next: *const core::ffi::c_void,
9164    pub handle_types: ExternalFenceHandleTypeFlags,
9165}
9166impl Default for ExportFenceCreateInfo {
9167    #[inline]
9168    fn default() -> Self {
9169        Self {
9170            s_type: StructureType::from_raw(1000113000i32),
9171            p_next: core::ptr::null(),
9172            handle_types: Default::default(),
9173        }
9174    }
9175}
9176///[`VkImportFenceWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportFenceWin32HandleInfoKHR.html)
9177/**
9178Provided by **VK_KHR_external_fence_win32**.*/
9179#[repr(C)]
9180#[derive(Copy, Clone, Debug)]
9181#[doc(alias = "VkImportFenceWin32HandleInfoKHR")]
9182pub struct ImportFenceWin32HandleInfoKHR {
9183    ///Must be `VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR`.
9184    pub s_type: StructureType,
9185    ///Optional, may be null.
9186    pub p_next: *const core::ffi::c_void,
9187    ///**Thread safety:** must be externally synchronized.
9188    pub fence: Fence,
9189    pub flags: FenceImportFlags,
9190    pub handle_type: ExternalFenceHandleTypeFlagBits,
9191    pub handle: isize,
9192    pub name: *const u16,
9193}
9194impl Default for ImportFenceWin32HandleInfoKHR {
9195    #[inline]
9196    fn default() -> Self {
9197        Self {
9198            s_type: StructureType::from_raw(1000114000i32),
9199            p_next: core::ptr::null(),
9200            fence: Default::default(),
9201            flags: Default::default(),
9202            handle_type: Default::default(),
9203            handle: Default::default(),
9204            name: core::ptr::null(),
9205        }
9206    }
9207}
9208///[`VkExportFenceWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportFenceWin32HandleInfoKHR.html)
9209/**
9210Provided by **VK_KHR_external_fence_win32**.*/
9211///
9212///# Extends
9213///- [`FenceCreateInfo`]
9214#[repr(C)]
9215#[derive(Copy, Clone, Debug)]
9216#[doc(alias = "VkExportFenceWin32HandleInfoKHR")]
9217pub struct ExportFenceWin32HandleInfoKHR {
9218    ///Must be `VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR`.
9219    pub s_type: StructureType,
9220    ///Optional, may be null.
9221    pub p_next: *const core::ffi::c_void,
9222    ///Optional, may be null.
9223    pub p_attributes: *const core::ffi::c_void,
9224    pub dw_access: u32,
9225    pub name: *const u16,
9226}
9227impl Default for ExportFenceWin32HandleInfoKHR {
9228    #[inline]
9229    fn default() -> Self {
9230        Self {
9231            s_type: StructureType::from_raw(1000114001i32),
9232            p_next: core::ptr::null(),
9233            p_attributes: core::ptr::null(),
9234            dw_access: Default::default(),
9235            name: core::ptr::null(),
9236        }
9237    }
9238}
9239///[`VkFenceGetWin32HandleInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceGetWin32HandleInfoKHR.html)
9240/**
9241Provided by **VK_KHR_external_fence_win32**.*/
9242#[repr(C)]
9243#[derive(Copy, Clone, Debug)]
9244#[doc(alias = "VkFenceGetWin32HandleInfoKHR")]
9245pub struct FenceGetWin32HandleInfoKHR {
9246    ///Must be `VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR`.
9247    pub s_type: StructureType,
9248    ///Optional, may be null.
9249    pub p_next: *const core::ffi::c_void,
9250    pub fence: Fence,
9251    pub handle_type: ExternalFenceHandleTypeFlagBits,
9252}
9253impl Default for FenceGetWin32HandleInfoKHR {
9254    #[inline]
9255    fn default() -> Self {
9256        Self {
9257            s_type: StructureType::from_raw(1000114002i32),
9258            p_next: core::ptr::null(),
9259            fence: Default::default(),
9260            handle_type: Default::default(),
9261        }
9262    }
9263}
9264///[`VkImportFenceFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportFenceFdInfoKHR.html)
9265/**
9266Provided by **VK_KHR_external_fence_fd**.*/
9267#[repr(C)]
9268#[derive(Copy, Clone, Debug)]
9269#[doc(alias = "VkImportFenceFdInfoKHR")]
9270pub struct ImportFenceFdInfoKHR {
9271    ///Must be `VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR`.
9272    pub s_type: StructureType,
9273    ///Optional, may be null.
9274    pub p_next: *const core::ffi::c_void,
9275    ///**Thread safety:** must be externally synchronized.
9276    pub fence: Fence,
9277    pub flags: FenceImportFlags,
9278    pub handle_type: ExternalFenceHandleTypeFlagBits,
9279    pub fd: core::ffi::c_int,
9280}
9281impl Default for ImportFenceFdInfoKHR {
9282    #[inline]
9283    fn default() -> Self {
9284        Self {
9285            s_type: StructureType::from_raw(1000115000i32),
9286            p_next: core::ptr::null(),
9287            fence: Default::default(),
9288            flags: Default::default(),
9289            handle_type: Default::default(),
9290            fd: Default::default(),
9291        }
9292    }
9293}
9294///[`VkFenceGetFdInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceGetFdInfoKHR.html)
9295/**
9296Provided by **VK_KHR_external_fence_fd**.*/
9297#[repr(C)]
9298#[derive(Copy, Clone, Debug)]
9299#[doc(alias = "VkFenceGetFdInfoKHR")]
9300pub struct FenceGetFdInfoKHR {
9301    ///Must be `VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR`.
9302    pub s_type: StructureType,
9303    ///Optional, may be null.
9304    pub p_next: *const core::ffi::c_void,
9305    pub fence: Fence,
9306    pub handle_type: ExternalFenceHandleTypeFlagBits,
9307}
9308impl Default for FenceGetFdInfoKHR {
9309    #[inline]
9310    fn default() -> Self {
9311        Self {
9312            s_type: StructureType::from_raw(1000115001i32),
9313            p_next: core::ptr::null(),
9314            fence: Default::default(),
9315            handle_type: Default::default(),
9316        }
9317    }
9318}
9319///[`VkExportFenceSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportFenceSciSyncInfoNV.html)
9320///
9321///# Extends
9322///- [`FenceCreateInfo`]
9323#[repr(C)]
9324#[derive(Copy, Clone, Debug)]
9325#[doc(alias = "VkExportFenceSciSyncInfoNV")]
9326pub struct ExportFenceSciSyncInfoNV {
9327    ///Must be `VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV`.
9328    pub s_type: StructureType,
9329    ///Optional, may be null.
9330    pub p_next: *const core::ffi::c_void,
9331    pub p_attributes: *const core::ffi::c_void,
9332}
9333impl Default for ExportFenceSciSyncInfoNV {
9334    #[inline]
9335    fn default() -> Self {
9336        Self {
9337            s_type: Default::default(),
9338            p_next: core::ptr::null(),
9339            p_attributes: core::ptr::null(),
9340        }
9341    }
9342}
9343///[`VkImportFenceSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportFenceSciSyncInfoNV.html)
9344#[repr(C)]
9345#[derive(Copy, Clone, Debug)]
9346#[doc(alias = "VkImportFenceSciSyncInfoNV")]
9347pub struct ImportFenceSciSyncInfoNV {
9348    ///Must be `VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV`.
9349    pub s_type: StructureType,
9350    ///Optional, may be null.
9351    pub p_next: *const core::ffi::c_void,
9352    ///**Thread safety:** must be externally synchronized.
9353    pub fence: Fence,
9354    pub handle_type: ExternalFenceHandleTypeFlagBits,
9355    pub handle: *mut core::ffi::c_void,
9356}
9357impl Default for ImportFenceSciSyncInfoNV {
9358    #[inline]
9359    fn default() -> Self {
9360        Self {
9361            s_type: Default::default(),
9362            p_next: core::ptr::null(),
9363            fence: Default::default(),
9364            handle_type: Default::default(),
9365            handle: core::ptr::null_mut(),
9366        }
9367    }
9368}
9369///[`VkFenceGetSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceGetSciSyncInfoNV.html)
9370#[repr(C)]
9371#[derive(Copy, Clone, Debug)]
9372#[doc(alias = "VkFenceGetSciSyncInfoNV")]
9373pub struct FenceGetSciSyncInfoNV {
9374    ///Must be `VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV`.
9375    pub s_type: StructureType,
9376    ///Optional, may be null.
9377    pub p_next: *const core::ffi::c_void,
9378    pub fence: Fence,
9379    pub handle_type: ExternalFenceHandleTypeFlagBits,
9380}
9381impl Default for FenceGetSciSyncInfoNV {
9382    #[inline]
9383    fn default() -> Self {
9384        Self {
9385            s_type: Default::default(),
9386            p_next: core::ptr::null(),
9387            fence: Default::default(),
9388            handle_type: Default::default(),
9389        }
9390    }
9391}
9392///[`VkExportSemaphoreSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportSemaphoreSciSyncInfoNV.html)
9393///
9394///# Extends
9395///- [`SemaphoreCreateInfo`]
9396#[repr(C)]
9397#[derive(Copy, Clone, Debug)]
9398#[doc(alias = "VkExportSemaphoreSciSyncInfoNV")]
9399pub struct ExportSemaphoreSciSyncInfoNV {
9400    ///Must be `VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV`.
9401    pub s_type: StructureType,
9402    ///Optional, may be null.
9403    pub p_next: *const core::ffi::c_void,
9404    pub p_attributes: *const core::ffi::c_void,
9405}
9406impl Default for ExportSemaphoreSciSyncInfoNV {
9407    #[inline]
9408    fn default() -> Self {
9409        Self {
9410            s_type: Default::default(),
9411            p_next: core::ptr::null(),
9412            p_attributes: core::ptr::null(),
9413        }
9414    }
9415}
9416///[`VkImportSemaphoreSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportSemaphoreSciSyncInfoNV.html)
9417#[repr(C)]
9418#[derive(Copy, Clone, Debug)]
9419#[doc(alias = "VkImportSemaphoreSciSyncInfoNV")]
9420pub struct ImportSemaphoreSciSyncInfoNV {
9421    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV`.
9422    pub s_type: StructureType,
9423    ///Optional, may be null.
9424    pub p_next: *const core::ffi::c_void,
9425    ///**Thread safety:** must be externally synchronized.
9426    pub semaphore: Semaphore,
9427    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9428    pub handle: *mut core::ffi::c_void,
9429}
9430impl Default for ImportSemaphoreSciSyncInfoNV {
9431    #[inline]
9432    fn default() -> Self {
9433        Self {
9434            s_type: Default::default(),
9435            p_next: core::ptr::null(),
9436            semaphore: Default::default(),
9437            handle_type: Default::default(),
9438            handle: core::ptr::null_mut(),
9439        }
9440    }
9441}
9442///[`VkSemaphoreGetSciSyncInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreGetSciSyncInfoNV.html)
9443#[repr(C)]
9444#[derive(Copy, Clone, Debug)]
9445#[doc(alias = "VkSemaphoreGetSciSyncInfoNV")]
9446pub struct SemaphoreGetSciSyncInfoNV {
9447    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_GET_SCI_SYNC_INFO_NV`.
9448    pub s_type: StructureType,
9449    ///Optional, may be null.
9450    pub p_next: *const core::ffi::c_void,
9451    pub semaphore: Semaphore,
9452    pub handle_type: ExternalSemaphoreHandleTypeFlagBits,
9453}
9454impl Default for SemaphoreGetSciSyncInfoNV {
9455    #[inline]
9456    fn default() -> Self {
9457        Self {
9458            s_type: Default::default(),
9459            p_next: core::ptr::null(),
9460            semaphore: Default::default(),
9461            handle_type: Default::default(),
9462        }
9463    }
9464}
9465///[`VkSciSyncAttributesInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSciSyncAttributesInfoNV.html)
9466#[repr(C)]
9467#[derive(Copy, Clone, Debug)]
9468#[doc(alias = "VkSciSyncAttributesInfoNV")]
9469pub struct SciSyncAttributesInfoNV {
9470    ///Must be `VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV`.
9471    pub s_type: StructureType,
9472    ///Optional, may be null.
9473    pub p_next: *const core::ffi::c_void,
9474    pub client_type: SciSyncClientTypeNV,
9475    pub primitive_type: SciSyncPrimitiveTypeNV,
9476}
9477impl Default for SciSyncAttributesInfoNV {
9478    #[inline]
9479    fn default() -> Self {
9480        Self {
9481            s_type: Default::default(),
9482            p_next: core::ptr::null(),
9483            client_type: Default::default(),
9484            primitive_type: Default::default(),
9485        }
9486    }
9487}
9488///[`VkPhysicalDeviceExternalSciSyncFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalSciSyncFeaturesNV.html)
9489///
9490///# Extends
9491///- [`PhysicalDeviceFeatures2`]
9492///- [`DeviceCreateInfo`]
9493#[repr(C)]
9494#[derive(Copy, Clone, Debug)]
9495#[doc(alias = "VkPhysicalDeviceExternalSciSyncFeaturesNV")]
9496pub struct PhysicalDeviceExternalSciSyncFeaturesNV {
9497    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV`.
9498    pub s_type: StructureType,
9499    ///Optional, may be null.
9500    pub p_next: *mut core::ffi::c_void,
9501    pub sci_sync_fence: u32,
9502    pub sci_sync_semaphore: u32,
9503    pub sci_sync_import: u32,
9504    pub sci_sync_export: u32,
9505}
9506impl Default for PhysicalDeviceExternalSciSyncFeaturesNV {
9507    #[inline]
9508    fn default() -> Self {
9509        Self {
9510            s_type: Default::default(),
9511            p_next: core::ptr::null_mut(),
9512            sci_sync_fence: Default::default(),
9513            sci_sync_semaphore: Default::default(),
9514            sci_sync_import: Default::default(),
9515            sci_sync_export: Default::default(),
9516        }
9517    }
9518}
9519///[`VkPhysicalDeviceExternalSciSync2FeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalSciSync2FeaturesNV.html)
9520///
9521///# Extends
9522///- [`PhysicalDeviceFeatures2`]
9523///- [`DeviceCreateInfo`]
9524#[repr(C)]
9525#[derive(Copy, Clone, Debug)]
9526#[doc(alias = "VkPhysicalDeviceExternalSciSync2FeaturesNV")]
9527pub struct PhysicalDeviceExternalSciSync2FeaturesNV {
9528    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV`.
9529    pub s_type: StructureType,
9530    ///Optional, may be null.
9531    pub p_next: *mut core::ffi::c_void,
9532    pub sci_sync_fence: u32,
9533    pub sci_sync_semaphore2: u32,
9534    pub sci_sync_import: u32,
9535    pub sci_sync_export: u32,
9536}
9537impl Default for PhysicalDeviceExternalSciSync2FeaturesNV {
9538    #[inline]
9539    fn default() -> Self {
9540        Self {
9541            s_type: Default::default(),
9542            p_next: core::ptr::null_mut(),
9543            sci_sync_fence: Default::default(),
9544            sci_sync_semaphore2: Default::default(),
9545            sci_sync_import: Default::default(),
9546            sci_sync_export: Default::default(),
9547        }
9548    }
9549}
9550///[`VkSemaphoreSciSyncPoolCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreSciSyncPoolCreateInfoNV.html)
9551#[repr(C)]
9552#[derive(Copy, Clone, Debug)]
9553#[doc(alias = "VkSemaphoreSciSyncPoolCreateInfoNV")]
9554pub struct SemaphoreSciSyncPoolCreateInfoNV {
9555    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV`.
9556    pub s_type: StructureType,
9557    ///Optional, may be null.
9558    pub p_next: *const core::ffi::c_void,
9559    pub handle: *const core::ffi::c_void,
9560}
9561impl Default for SemaphoreSciSyncPoolCreateInfoNV {
9562    #[inline]
9563    fn default() -> Self {
9564        Self {
9565            s_type: Default::default(),
9566            p_next: core::ptr::null(),
9567            handle: core::ptr::null(),
9568        }
9569    }
9570}
9571///[`VkSemaphoreSciSyncCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreSciSyncCreateInfoNV.html)
9572///
9573///# Extends
9574///- [`SemaphoreCreateInfo`]
9575#[repr(C)]
9576#[derive(Copy, Clone, Debug)]
9577#[doc(alias = "VkSemaphoreSciSyncCreateInfoNV")]
9578pub struct SemaphoreSciSyncCreateInfoNV {
9579    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV`.
9580    pub s_type: StructureType,
9581    ///Optional, may be null.
9582    pub p_next: *const core::ffi::c_void,
9583    pub semaphore_pool: SemaphoreSciSyncPoolNV,
9584    pub p_fence: *const core::ffi::c_void,
9585}
9586impl Default for SemaphoreSciSyncCreateInfoNV {
9587    #[inline]
9588    fn default() -> Self {
9589        Self {
9590            s_type: Default::default(),
9591            p_next: core::ptr::null(),
9592            semaphore_pool: Default::default(),
9593            p_fence: core::ptr::null(),
9594        }
9595    }
9596}
9597///[`VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV.html)
9598///
9599///# Extends
9600///- [`DeviceCreateInfo`]
9601#[repr(C)]
9602#[derive(Copy, Clone, Debug)]
9603#[doc(alias = "VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV")]
9604pub struct DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
9605    ///Must be `VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV`.
9606    pub s_type: StructureType,
9607    ///Optional, may be null.
9608    pub p_next: *const core::ffi::c_void,
9609    pub semaphore_sci_sync_pool_request_count: u32,
9610}
9611impl Default for DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
9612    #[inline]
9613    fn default() -> Self {
9614        Self {
9615            s_type: Default::default(),
9616            p_next: core::ptr::null(),
9617            semaphore_sci_sync_pool_request_count: Default::default(),
9618        }
9619    }
9620}
9621///[`VkPhysicalDeviceMultiviewFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewFeatures.html)
9622/**
9623Provided by **VK_GRAPHICS_VERSION_1_1**.*/
9624///
9625///# Extends
9626///- [`PhysicalDeviceFeatures2`]
9627///- [`DeviceCreateInfo`]
9628#[repr(C)]
9629#[derive(Copy, Clone, Debug)]
9630#[doc(alias = "VkPhysicalDeviceMultiviewFeatures")]
9631pub struct PhysicalDeviceMultiviewFeatures {
9632    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES`.
9633    pub s_type: StructureType,
9634    ///Optional, may be null.
9635    pub p_next: *mut core::ffi::c_void,
9636    pub multiview: u32,
9637    pub multiview_geometry_shader: u32,
9638    pub multiview_tessellation_shader: u32,
9639}
9640impl Default for PhysicalDeviceMultiviewFeatures {
9641    #[inline]
9642    fn default() -> Self {
9643        Self {
9644            s_type: StructureType::from_raw(1000053001i32),
9645            p_next: core::ptr::null_mut(),
9646            multiview: Default::default(),
9647            multiview_geometry_shader: Default::default(),
9648            multiview_tessellation_shader: Default::default(),
9649        }
9650    }
9651}
9652///[`VkPhysicalDeviceMultiviewProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewProperties.html)
9653/**
9654Provided by **VK_GRAPHICS_VERSION_1_1**.*/
9655/**
9656**Returned only**, filled by Vulkan, not constructed by the application.*/
9657///
9658///# Extends
9659///- [`PhysicalDeviceProperties2`]
9660#[repr(C)]
9661#[derive(Copy, Clone, Debug)]
9662#[doc(alias = "VkPhysicalDeviceMultiviewProperties")]
9663pub struct PhysicalDeviceMultiviewProperties {
9664    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES`.
9665    pub s_type: StructureType,
9666    ///Optional, may be null.
9667    pub p_next: *mut core::ffi::c_void,
9668    pub max_multiview_view_count: u32,
9669    pub max_multiview_instance_index: u32,
9670}
9671impl Default for PhysicalDeviceMultiviewProperties {
9672    #[inline]
9673    fn default() -> Self {
9674        Self {
9675            s_type: StructureType::from_raw(1000053002i32),
9676            p_next: core::ptr::null_mut(),
9677            max_multiview_view_count: Default::default(),
9678            max_multiview_instance_index: Default::default(),
9679        }
9680    }
9681}
9682///[`VkRenderPassMultiviewCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassMultiviewCreateInfo.html)
9683/**
9684Provided by **VK_GRAPHICS_VERSION_1_1**.*/
9685///
9686///# Extends
9687///- [`RenderPassCreateInfo`]
9688#[repr(C)]
9689#[derive(Copy, Clone, Debug)]
9690#[doc(alias = "VkRenderPassMultiviewCreateInfo")]
9691pub struct RenderPassMultiviewCreateInfo {
9692    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO`.
9693    pub s_type: StructureType,
9694    ///Optional, may be null.
9695    pub p_next: *const core::ffi::c_void,
9696    ///Length of `p_view_masks`.
9697    pub subpass_count: u32,
9698    pub p_view_masks: *const u32,
9699    ///Length of `p_view_offsets`.
9700    pub dependency_count: u32,
9701    pub p_view_offsets: *const i32,
9702    ///Length of `p_correlation_masks`.
9703    pub correlation_mask_count: u32,
9704    pub p_correlation_masks: *const u32,
9705}
9706impl Default for RenderPassMultiviewCreateInfo {
9707    #[inline]
9708    fn default() -> Self {
9709        Self {
9710            s_type: StructureType::from_raw(1000053000i32),
9711            p_next: core::ptr::null(),
9712            subpass_count: Default::default(),
9713            p_view_masks: core::ptr::null(),
9714            dependency_count: Default::default(),
9715            p_view_offsets: core::ptr::null(),
9716            correlation_mask_count: Default::default(),
9717            p_correlation_masks: core::ptr::null(),
9718        }
9719    }
9720}
9721///[`VkSurfaceCapabilities2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilities2EXT.html)
9722/**
9723Provided by **VK_EXT_display_surface_counter**.*/
9724/**
9725**Returned only**, filled by Vulkan, not constructed by the application.*/
9726#[repr(C)]
9727#[derive(Copy, Clone, Debug)]
9728#[doc(alias = "VkSurfaceCapabilities2EXT")]
9729pub struct SurfaceCapabilities2EXT {
9730    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT`.
9731    pub s_type: StructureType,
9732    ///Optional, may be null.
9733    pub p_next: *mut core::ffi::c_void,
9734    pub min_image_count: u32,
9735    pub max_image_count: u32,
9736    pub current_extent: Extent2D,
9737    pub min_image_extent: Extent2D,
9738    pub max_image_extent: Extent2D,
9739    pub max_image_array_layers: u32,
9740    pub supported_transforms: SurfaceTransformFlagsKHR,
9741    pub current_transform: SurfaceTransformFlagBitsKHR,
9742    pub supported_composite_alpha: CompositeAlphaFlagsKHR,
9743    pub supported_usage_flags: ImageUsageFlags,
9744    pub supported_surface_counters: SurfaceCounterFlagsEXT,
9745}
9746impl Default for SurfaceCapabilities2EXT {
9747    #[inline]
9748    fn default() -> Self {
9749        Self {
9750            s_type: StructureType::from_raw(1000090000i32),
9751            p_next: core::ptr::null_mut(),
9752            min_image_count: Default::default(),
9753            max_image_count: Default::default(),
9754            current_extent: Default::default(),
9755            min_image_extent: Default::default(),
9756            max_image_extent: Default::default(),
9757            max_image_array_layers: Default::default(),
9758            supported_transforms: Default::default(),
9759            current_transform: Default::default(),
9760            supported_composite_alpha: Default::default(),
9761            supported_usage_flags: Default::default(),
9762            supported_surface_counters: Default::default(),
9763        }
9764    }
9765}
9766///[`VkDisplayPowerInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPowerInfoEXT.html)
9767/**
9768Provided by **VK_EXT_display_control**.*/
9769#[repr(C)]
9770#[derive(Copy, Clone, Debug)]
9771#[doc(alias = "VkDisplayPowerInfoEXT")]
9772pub struct DisplayPowerInfoEXT {
9773    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT`.
9774    pub s_type: StructureType,
9775    ///Optional, may be null.
9776    pub p_next: *const core::ffi::c_void,
9777    pub power_state: DisplayPowerStateEXT,
9778}
9779impl Default for DisplayPowerInfoEXT {
9780    #[inline]
9781    fn default() -> Self {
9782        Self {
9783            s_type: StructureType::from_raw(1000091000i32),
9784            p_next: core::ptr::null(),
9785            power_state: Default::default(),
9786        }
9787    }
9788}
9789///[`VkDeviceEventInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceEventInfoEXT.html)
9790/**
9791Provided by **VK_EXT_display_control**.*/
9792#[repr(C)]
9793#[derive(Copy, Clone, Debug)]
9794#[doc(alias = "VkDeviceEventInfoEXT")]
9795pub struct DeviceEventInfoEXT {
9796    ///Must be `VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT`.
9797    pub s_type: StructureType,
9798    ///Optional, may be null.
9799    pub p_next: *const core::ffi::c_void,
9800    pub device_event: DeviceEventTypeEXT,
9801}
9802impl Default for DeviceEventInfoEXT {
9803    #[inline]
9804    fn default() -> Self {
9805        Self {
9806            s_type: StructureType::from_raw(1000091001i32),
9807            p_next: core::ptr::null(),
9808            device_event: Default::default(),
9809        }
9810    }
9811}
9812///[`VkDisplayEventInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayEventInfoEXT.html)
9813/**
9814Provided by **VK_EXT_display_control**.*/
9815#[repr(C)]
9816#[derive(Copy, Clone, Debug)]
9817#[doc(alias = "VkDisplayEventInfoEXT")]
9818pub struct DisplayEventInfoEXT {
9819    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT`.
9820    pub s_type: StructureType,
9821    ///Optional, may be null.
9822    pub p_next: *const core::ffi::c_void,
9823    pub display_event: DisplayEventTypeEXT,
9824}
9825impl Default for DisplayEventInfoEXT {
9826    #[inline]
9827    fn default() -> Self {
9828        Self {
9829            s_type: StructureType::from_raw(1000091002i32),
9830            p_next: core::ptr::null(),
9831            display_event: Default::default(),
9832        }
9833    }
9834}
9835///[`VkSwapchainCounterCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainCounterCreateInfoEXT.html)
9836/**
9837Provided by **VK_EXT_display_control**.*/
9838///
9839///# Extends
9840///- [`SwapchainCreateInfoKHR`]
9841#[repr(C)]
9842#[derive(Copy, Clone, Debug)]
9843#[doc(alias = "VkSwapchainCounterCreateInfoEXT")]
9844pub struct SwapchainCounterCreateInfoEXT {
9845    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT`.
9846    pub s_type: StructureType,
9847    ///Optional, may be null.
9848    pub p_next: *const core::ffi::c_void,
9849    pub surface_counters: SurfaceCounterFlagsEXT,
9850}
9851impl Default for SwapchainCounterCreateInfoEXT {
9852    #[inline]
9853    fn default() -> Self {
9854        Self {
9855            s_type: StructureType::from_raw(1000091003i32),
9856            p_next: core::ptr::null(),
9857            surface_counters: Default::default(),
9858        }
9859    }
9860}
9861///[`VkPhysicalDeviceGroupProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceGroupProperties.html)
9862/**
9863Provided by **VK_BASE_VERSION_1_1**.*/
9864/**
9865**Returned only**, filled by Vulkan, not constructed by the application.*/
9866#[repr(C)]
9867#[derive(Copy, Clone, Debug)]
9868#[doc(alias = "VkPhysicalDeviceGroupProperties")]
9869pub struct PhysicalDeviceGroupProperties {
9870    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES`.
9871    pub s_type: StructureType,
9872    ///Optional, may be null.
9873    pub p_next: *mut core::ffi::c_void,
9874    pub physical_device_count: u32,
9875    pub physical_devices: [PhysicalDevice; MAX_DEVICE_GROUP_SIZE as usize],
9876    pub subset_allocation: u32,
9877}
9878impl Default for PhysicalDeviceGroupProperties {
9879    #[inline]
9880    fn default() -> Self {
9881        Self {
9882            s_type: StructureType::from_raw(1000070000i32),
9883            p_next: core::ptr::null_mut(),
9884            physical_device_count: Default::default(),
9885            physical_devices: unsafe { core::mem::zeroed() },
9886            subset_allocation: Default::default(),
9887        }
9888    }
9889}
9890///[`VkMemoryAllocateFlagsInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryAllocateFlagsInfo.html)
9891/**
9892Provided by **VK_BASE_VERSION_1_1**.*/
9893///
9894///# Extends
9895///- [`MemoryAllocateInfo`]
9896#[repr(C)]
9897#[derive(Copy, Clone, Debug)]
9898#[doc(alias = "VkMemoryAllocateFlagsInfo")]
9899pub struct MemoryAllocateFlagsInfo {
9900    ///Must be `VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO`.
9901    pub s_type: StructureType,
9902    ///Optional, may be null.
9903    pub p_next: *const core::ffi::c_void,
9904    pub flags: MemoryAllocateFlags,
9905    pub device_mask: u32,
9906}
9907impl Default for MemoryAllocateFlagsInfo {
9908    #[inline]
9909    fn default() -> Self {
9910        Self {
9911            s_type: StructureType::from_raw(1000060000i32),
9912            p_next: core::ptr::null(),
9913            flags: Default::default(),
9914            device_mask: Default::default(),
9915        }
9916    }
9917}
9918///[`VkBindBufferMemoryInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindBufferMemoryInfo.html)
9919/**
9920Provided by **VK_BASE_VERSION_1_1**.*/
9921///
9922///# Extended By
9923///- [`BindBufferMemoryDeviceGroupInfo`]
9924///- [`BindMemoryStatus`]
9925#[repr(C)]
9926#[derive(Copy, Clone, Debug)]
9927#[doc(alias = "VkBindBufferMemoryInfo")]
9928pub struct BindBufferMemoryInfo {
9929    ///Must be `VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO`.
9930    pub s_type: StructureType,
9931    ///Optional, may be null.
9932    pub p_next: *const core::ffi::c_void,
9933    ///**Thread safety:** must be externally synchronized.
9934    pub buffer: Buffer,
9935    pub memory: DeviceMemory,
9936    pub memory_offset: u64,
9937}
9938impl Default for BindBufferMemoryInfo {
9939    #[inline]
9940    fn default() -> Self {
9941        Self {
9942            s_type: StructureType::from_raw(1000157000i32),
9943            p_next: core::ptr::null(),
9944            buffer: Default::default(),
9945            memory: Default::default(),
9946            memory_offset: Default::default(),
9947        }
9948    }
9949}
9950///[`VkBindBufferMemoryDeviceGroupInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindBufferMemoryDeviceGroupInfo.html)
9951/**
9952Provided by **VK_BASE_VERSION_1_1**.*/
9953///
9954///# Extends
9955///- [`BindBufferMemoryInfo`]
9956#[repr(C)]
9957#[derive(Copy, Clone, Debug)]
9958#[doc(alias = "VkBindBufferMemoryDeviceGroupInfo")]
9959pub struct BindBufferMemoryDeviceGroupInfo {
9960    ///Must be `VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO`.
9961    pub s_type: StructureType,
9962    ///Optional, may be null.
9963    pub p_next: *const core::ffi::c_void,
9964    ///Length of `p_device_indices`.
9965    pub device_index_count: u32,
9966    pub p_device_indices: *const u32,
9967}
9968impl Default for BindBufferMemoryDeviceGroupInfo {
9969    #[inline]
9970    fn default() -> Self {
9971        Self {
9972            s_type: StructureType::from_raw(1000060013i32),
9973            p_next: core::ptr::null(),
9974            device_index_count: Default::default(),
9975            p_device_indices: core::ptr::null(),
9976        }
9977    }
9978}
9979///[`VkBindImageMemoryInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindImageMemoryInfo.html)
9980/**
9981Provided by **VK_BASE_VERSION_1_1**.*/
9982///
9983///# Extended By
9984///- [`BindImageMemoryDeviceGroupInfo`]
9985///- [`BindImageMemorySwapchainInfoKHR`]
9986///- [`BindImagePlaneMemoryInfo`]
9987///- [`BindMemoryStatus`]
9988///- [`NativeBufferANDROID`]
9989///- [`NativeBufferOHOS`]
9990#[repr(C)]
9991#[derive(Copy, Clone, Debug)]
9992#[doc(alias = "VkBindImageMemoryInfo")]
9993pub struct BindImageMemoryInfo {
9994    ///Must be `VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO`.
9995    pub s_type: StructureType,
9996    ///Optional, may be null.
9997    pub p_next: *const core::ffi::c_void,
9998    ///**Thread safety:** must be externally synchronized.
9999    pub image: Image,
10000    pub memory: DeviceMemory,
10001    pub memory_offset: u64,
10002}
10003impl Default for BindImageMemoryInfo {
10004    #[inline]
10005    fn default() -> Self {
10006        Self {
10007            s_type: StructureType::from_raw(1000157001i32),
10008            p_next: core::ptr::null(),
10009            image: Default::default(),
10010            memory: Default::default(),
10011            memory_offset: Default::default(),
10012        }
10013    }
10014}
10015///[`VkBindImageMemoryDeviceGroupInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindImageMemoryDeviceGroupInfo.html)
10016/**
10017Provided by **VK_BASE_VERSION_1_1**.*/
10018///
10019///# Extends
10020///- [`BindImageMemoryInfo`]
10021#[repr(C)]
10022#[derive(Copy, Clone, Debug)]
10023#[doc(alias = "VkBindImageMemoryDeviceGroupInfo")]
10024pub struct BindImageMemoryDeviceGroupInfo {
10025    ///Must be `VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO`.
10026    pub s_type: StructureType,
10027    ///Optional, may be null.
10028    pub p_next: *const core::ffi::c_void,
10029    ///Length of `p_device_indices`.
10030    pub device_index_count: u32,
10031    pub p_device_indices: *const u32,
10032    ///Length of `p_split_instance_bind_regions`.
10033    pub split_instance_bind_region_count: u32,
10034    pub p_split_instance_bind_regions: *const Rect2D,
10035}
10036impl Default for BindImageMemoryDeviceGroupInfo {
10037    #[inline]
10038    fn default() -> Self {
10039        Self {
10040            s_type: StructureType::from_raw(1000060014i32),
10041            p_next: core::ptr::null(),
10042            device_index_count: Default::default(),
10043            p_device_indices: core::ptr::null(),
10044            split_instance_bind_region_count: Default::default(),
10045            p_split_instance_bind_regions: core::ptr::null(),
10046        }
10047    }
10048}
10049///[`VkDeviceGroupRenderPassBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupRenderPassBeginInfo.html)
10050/**
10051Provided by **VK_GRAPHICS_VERSION_1_1**.*/
10052///
10053///# Extends
10054///- [`RenderPassBeginInfo`]
10055///- [`RenderingInfo`]
10056#[repr(C)]
10057#[derive(Copy, Clone, Debug)]
10058#[doc(alias = "VkDeviceGroupRenderPassBeginInfo")]
10059pub struct DeviceGroupRenderPassBeginInfo {
10060    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO`.
10061    pub s_type: StructureType,
10062    ///Optional, may be null.
10063    pub p_next: *const core::ffi::c_void,
10064    pub device_mask: u32,
10065    ///Length of `p_device_render_areas`.
10066    pub device_render_area_count: u32,
10067    pub p_device_render_areas: *const Rect2D,
10068}
10069impl Default for DeviceGroupRenderPassBeginInfo {
10070    #[inline]
10071    fn default() -> Self {
10072        Self {
10073            s_type: StructureType::from_raw(1000060003i32),
10074            p_next: core::ptr::null(),
10075            device_mask: Default::default(),
10076            device_render_area_count: Default::default(),
10077            p_device_render_areas: core::ptr::null(),
10078        }
10079    }
10080}
10081///[`VkDeviceGroupCommandBufferBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupCommandBufferBeginInfo.html)
10082/**
10083Provided by **VK_BASE_VERSION_1_1**.*/
10084///
10085///# Extends
10086///- [`CommandBufferBeginInfo`]
10087#[repr(C)]
10088#[derive(Copy, Clone, Debug)]
10089#[doc(alias = "VkDeviceGroupCommandBufferBeginInfo")]
10090pub struct DeviceGroupCommandBufferBeginInfo {
10091    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO`.
10092    pub s_type: StructureType,
10093    ///Optional, may be null.
10094    pub p_next: *const core::ffi::c_void,
10095    pub device_mask: u32,
10096}
10097impl Default for DeviceGroupCommandBufferBeginInfo {
10098    #[inline]
10099    fn default() -> Self {
10100        Self {
10101            s_type: StructureType::from_raw(1000060004i32),
10102            p_next: core::ptr::null(),
10103            device_mask: Default::default(),
10104        }
10105    }
10106}
10107///[`VkDeviceGroupSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupSubmitInfo.html)
10108/**
10109Provided by **VK_BASE_VERSION_1_1**.*/
10110///
10111///# Extends
10112///- [`SubmitInfo`]
10113#[repr(C)]
10114#[derive(Copy, Clone, Debug)]
10115#[doc(alias = "VkDeviceGroupSubmitInfo")]
10116pub struct DeviceGroupSubmitInfo {
10117    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO`.
10118    pub s_type: StructureType,
10119    ///Optional, may be null.
10120    pub p_next: *const core::ffi::c_void,
10121    ///Length of `p_wait_semaphore_device_indices`.
10122    pub wait_semaphore_count: u32,
10123    pub p_wait_semaphore_device_indices: *const u32,
10124    ///Length of `p_command_buffer_device_masks`.
10125    pub command_buffer_count: u32,
10126    pub p_command_buffer_device_masks: *const u32,
10127    ///Length of `p_signal_semaphore_device_indices`.
10128    pub signal_semaphore_count: u32,
10129    pub p_signal_semaphore_device_indices: *const u32,
10130}
10131impl Default for DeviceGroupSubmitInfo {
10132    #[inline]
10133    fn default() -> Self {
10134        Self {
10135            s_type: StructureType::from_raw(1000060005i32),
10136            p_next: core::ptr::null(),
10137            wait_semaphore_count: Default::default(),
10138            p_wait_semaphore_device_indices: core::ptr::null(),
10139            command_buffer_count: Default::default(),
10140            p_command_buffer_device_masks: core::ptr::null(),
10141            signal_semaphore_count: Default::default(),
10142            p_signal_semaphore_device_indices: core::ptr::null(),
10143        }
10144    }
10145}
10146///[`VkDeviceGroupBindSparseInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupBindSparseInfo.html)
10147/**
10148Provided by **VK_BASE_VERSION_1_1**.*/
10149///
10150///# Extends
10151///- [`BindSparseInfo`]
10152#[repr(C)]
10153#[derive(Copy, Clone, Debug)]
10154#[doc(alias = "VkDeviceGroupBindSparseInfo")]
10155pub struct DeviceGroupBindSparseInfo {
10156    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO`.
10157    pub s_type: StructureType,
10158    ///Optional, may be null.
10159    pub p_next: *const core::ffi::c_void,
10160    pub resource_device_index: u32,
10161    pub memory_device_index: u32,
10162}
10163impl Default for DeviceGroupBindSparseInfo {
10164    #[inline]
10165    fn default() -> Self {
10166        Self {
10167            s_type: StructureType::from_raw(1000060006i32),
10168            p_next: core::ptr::null(),
10169            resource_device_index: Default::default(),
10170            memory_device_index: Default::default(),
10171        }
10172    }
10173}
10174///[`VkDeviceGroupPresentCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupPresentCapabilitiesKHR.html)
10175/**
10176Provided by **VK_KHR_swapchain**.*/
10177/**
10178**Returned only**, filled by Vulkan, not constructed by the application.*/
10179#[repr(C)]
10180#[derive(Copy, Clone, Debug)]
10181#[doc(alias = "VkDeviceGroupPresentCapabilitiesKHR")]
10182pub struct DeviceGroupPresentCapabilitiesKHR {
10183    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR`.
10184    pub s_type: StructureType,
10185    ///Optional, may be null.
10186    pub p_next: *mut core::ffi::c_void,
10187    pub present_mask: [u32; MAX_DEVICE_GROUP_SIZE as usize],
10188    pub modes: DeviceGroupPresentModeFlagsKHR,
10189}
10190impl Default for DeviceGroupPresentCapabilitiesKHR {
10191    #[inline]
10192    fn default() -> Self {
10193        Self {
10194            s_type: StructureType::from_raw(1000060007i32),
10195            p_next: core::ptr::null_mut(),
10196            present_mask: unsafe { core::mem::zeroed() },
10197            modes: Default::default(),
10198        }
10199    }
10200}
10201///[`VkImageSwapchainCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSwapchainCreateInfoKHR.html)
10202/**
10203Provided by **VK_KHR_swapchain**.*/
10204///
10205///# Extends
10206///- [`ImageCreateInfo`]
10207#[repr(C)]
10208#[derive(Copy, Clone, Debug)]
10209#[doc(alias = "VkImageSwapchainCreateInfoKHR")]
10210pub struct ImageSwapchainCreateInfoKHR {
10211    ///Must be `VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR`.
10212    pub s_type: StructureType,
10213    ///Optional, may be null.
10214    pub p_next: *const core::ffi::c_void,
10215    pub swapchain: SwapchainKHR,
10216}
10217impl Default for ImageSwapchainCreateInfoKHR {
10218    #[inline]
10219    fn default() -> Self {
10220        Self {
10221            s_type: StructureType::from_raw(1000060008i32),
10222            p_next: core::ptr::null(),
10223            swapchain: Default::default(),
10224        }
10225    }
10226}
10227///[`VkBindImageMemorySwapchainInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindImageMemorySwapchainInfoKHR.html)
10228/**
10229Provided by **VK_KHR_swapchain**.*/
10230///
10231///# Extends
10232///- [`BindImageMemoryInfo`]
10233#[repr(C)]
10234#[derive(Copy, Clone, Debug)]
10235#[doc(alias = "VkBindImageMemorySwapchainInfoKHR")]
10236pub struct BindImageMemorySwapchainInfoKHR {
10237    ///Must be `VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR`.
10238    pub s_type: StructureType,
10239    ///Optional, may be null.
10240    pub p_next: *const core::ffi::c_void,
10241    ///**Thread safety:** must be externally synchronized.
10242    pub swapchain: SwapchainKHR,
10243    pub image_index: u32,
10244}
10245impl Default for BindImageMemorySwapchainInfoKHR {
10246    #[inline]
10247    fn default() -> Self {
10248        Self {
10249            s_type: StructureType::from_raw(1000060009i32),
10250            p_next: core::ptr::null(),
10251            swapchain: Default::default(),
10252            image_index: Default::default(),
10253        }
10254    }
10255}
10256///[`VkAcquireNextImageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAcquireNextImageInfoKHR.html)
10257/**
10258Provided by **VK_KHR_swapchain**.*/
10259#[repr(C)]
10260#[derive(Copy, Clone, Debug)]
10261#[doc(alias = "VkAcquireNextImageInfoKHR")]
10262pub struct AcquireNextImageInfoKHR {
10263    ///Must be `VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR`.
10264    pub s_type: StructureType,
10265    ///Optional, may be null.
10266    pub p_next: *const core::ffi::c_void,
10267    ///**Thread safety:** must be externally synchronized.
10268    pub swapchain: SwapchainKHR,
10269    pub timeout: u64,
10270    ///**Thread safety:** must be externally synchronized.
10271    pub semaphore: Semaphore,
10272    ///**Thread safety:** must be externally synchronized.
10273    pub fence: Fence,
10274    pub device_mask: u32,
10275}
10276impl Default for AcquireNextImageInfoKHR {
10277    #[inline]
10278    fn default() -> Self {
10279        Self {
10280            s_type: StructureType::from_raw(1000060010i32),
10281            p_next: core::ptr::null(),
10282            swapchain: Default::default(),
10283            timeout: Default::default(),
10284            semaphore: Default::default(),
10285            fence: Default::default(),
10286            device_mask: Default::default(),
10287        }
10288    }
10289}
10290///[`VkDeviceGroupPresentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupPresentInfoKHR.html)
10291/**
10292Provided by **VK_KHR_swapchain**.*/
10293///
10294///# Extends
10295///- [`PresentInfoKHR`]
10296#[repr(C)]
10297#[derive(Copy, Clone, Debug)]
10298#[doc(alias = "VkDeviceGroupPresentInfoKHR")]
10299pub struct DeviceGroupPresentInfoKHR {
10300    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR`.
10301    pub s_type: StructureType,
10302    ///Optional, may be null.
10303    pub p_next: *const core::ffi::c_void,
10304    ///Length of `p_device_masks`.
10305    pub swapchain_count: u32,
10306    pub p_device_masks: *const u32,
10307    pub mode: DeviceGroupPresentModeFlagBitsKHR,
10308}
10309impl Default for DeviceGroupPresentInfoKHR {
10310    #[inline]
10311    fn default() -> Self {
10312        Self {
10313            s_type: StructureType::from_raw(1000060011i32),
10314            p_next: core::ptr::null(),
10315            swapchain_count: Default::default(),
10316            p_device_masks: core::ptr::null(),
10317            mode: Default::default(),
10318        }
10319    }
10320}
10321///[`VkDeviceGroupDeviceCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupDeviceCreateInfo.html)
10322/**
10323Provided by **VK_BASE_VERSION_1_1**.*/
10324///
10325///# Extends
10326///- [`DeviceCreateInfo`]
10327#[repr(C)]
10328#[derive(Copy, Clone, Debug)]
10329#[doc(alias = "VkDeviceGroupDeviceCreateInfo")]
10330pub struct DeviceGroupDeviceCreateInfo {
10331    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO`.
10332    pub s_type: StructureType,
10333    ///Optional, may be null.
10334    pub p_next: *const core::ffi::c_void,
10335    ///Length of `p_physical_devices`.
10336    pub physical_device_count: u32,
10337    pub p_physical_devices: *const PhysicalDevice,
10338}
10339impl Default for DeviceGroupDeviceCreateInfo {
10340    #[inline]
10341    fn default() -> Self {
10342        Self {
10343            s_type: StructureType::from_raw(1000070001i32),
10344            p_next: core::ptr::null(),
10345            physical_device_count: Default::default(),
10346            p_physical_devices: core::ptr::null(),
10347        }
10348    }
10349}
10350///[`VkDeviceGroupSwapchainCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupSwapchainCreateInfoKHR.html)
10351/**
10352Provided by **VK_KHR_swapchain**.*/
10353///
10354///# Extends
10355///- [`SwapchainCreateInfoKHR`]
10356#[repr(C)]
10357#[derive(Copy, Clone, Debug)]
10358#[doc(alias = "VkDeviceGroupSwapchainCreateInfoKHR")]
10359pub struct DeviceGroupSwapchainCreateInfoKHR {
10360    ///Must be `VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR`.
10361    pub s_type: StructureType,
10362    ///Optional, may be null.
10363    pub p_next: *const core::ffi::c_void,
10364    pub modes: DeviceGroupPresentModeFlagsKHR,
10365}
10366impl Default for DeviceGroupSwapchainCreateInfoKHR {
10367    #[inline]
10368    fn default() -> Self {
10369        Self {
10370            s_type: StructureType::from_raw(1000060012i32),
10371            p_next: core::ptr::null(),
10372            modes: Default::default(),
10373        }
10374    }
10375}
10376///[`VkDescriptorUpdateTemplateEntry`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorUpdateTemplateEntry.html)
10377/**
10378Provided by **VK_COMPUTE_VERSION_1_1**.*/
10379#[repr(C)]
10380#[derive(Copy, Clone, Debug)]
10381#[doc(alias = "VkDescriptorUpdateTemplateEntry")]
10382pub struct DescriptorUpdateTemplateEntry {
10383    pub dst_binding: u32,
10384    pub dst_array_element: u32,
10385    pub descriptor_count: u32,
10386    pub descriptor_type: DescriptorType,
10387    pub offset: usize,
10388    pub stride: usize,
10389}
10390impl Default for DescriptorUpdateTemplateEntry {
10391    #[inline]
10392    fn default() -> Self {
10393        unsafe { core::mem::zeroed() }
10394    }
10395}
10396///[`VkDescriptorUpdateTemplateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorUpdateTemplateCreateInfo.html)
10397/**
10398Provided by **VK_COMPUTE_VERSION_1_1**.*/
10399#[repr(C)]
10400#[derive(Copy, Clone, Debug)]
10401#[doc(alias = "VkDescriptorUpdateTemplateCreateInfo")]
10402pub struct DescriptorUpdateTemplateCreateInfo {
10403    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO`.
10404    pub s_type: StructureType,
10405    ///Optional, may be null.
10406    pub p_next: *const core::ffi::c_void,
10407    pub flags: DescriptorUpdateTemplateCreateFlags,
10408    ///Length of `p_descriptor_update_entries`.
10409    pub descriptor_update_entry_count: u32,
10410    pub p_descriptor_update_entries: *const DescriptorUpdateTemplateEntry,
10411    pub template_type: DescriptorUpdateTemplateType,
10412    pub descriptor_set_layout: DescriptorSetLayout,
10413    pub pipeline_bind_point: PipelineBindPoint,
10414    pub pipeline_layout: PipelineLayout,
10415    pub set: u32,
10416}
10417impl Default for DescriptorUpdateTemplateCreateInfo {
10418    #[inline]
10419    fn default() -> Self {
10420        Self {
10421            s_type: StructureType::from_raw(1000085000i32),
10422            p_next: core::ptr::null(),
10423            flags: Default::default(),
10424            descriptor_update_entry_count: Default::default(),
10425            p_descriptor_update_entries: core::ptr::null(),
10426            template_type: Default::default(),
10427            descriptor_set_layout: Default::default(),
10428            pipeline_bind_point: Default::default(),
10429            pipeline_layout: Default::default(),
10430            set: Default::default(),
10431        }
10432    }
10433}
10434///[`VkXYColorEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkXYColorEXT.html)
10435/**
10436Provided by **VK_EXT_hdr_metadata**.*/
10437#[repr(C)]
10438#[derive(Copy, Clone, Debug)]
10439#[doc(alias = "VkXYColorEXT")]
10440pub struct XYColorEXT {
10441    pub x: f32,
10442    pub y: f32,
10443}
10444impl Default for XYColorEXT {
10445    #[inline]
10446    fn default() -> Self {
10447        unsafe { core::mem::zeroed() }
10448    }
10449}
10450///[`VkPhysicalDevicePresentIdFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentIdFeaturesKHR.html)
10451/**
10452Provided by **VK_KHR_present_id**.*/
10453///
10454///# Extends
10455///- [`PhysicalDeviceFeatures2`]
10456///- [`DeviceCreateInfo`]
10457#[repr(C)]
10458#[derive(Copy, Clone, Debug)]
10459#[doc(alias = "VkPhysicalDevicePresentIdFeaturesKHR")]
10460pub struct PhysicalDevicePresentIdFeaturesKHR {
10461    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR`.
10462    pub s_type: StructureType,
10463    ///Optional, may be null.
10464    pub p_next: *mut core::ffi::c_void,
10465    pub present_id: u32,
10466}
10467impl Default for PhysicalDevicePresentIdFeaturesKHR {
10468    #[inline]
10469    fn default() -> Self {
10470        Self {
10471            s_type: StructureType::from_raw(1000294001i32),
10472            p_next: core::ptr::null_mut(),
10473            present_id: Default::default(),
10474        }
10475    }
10476}
10477///[`VkPresentIdKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentIdKHR.html)
10478/**
10479Provided by **VK_KHR_present_id**.*/
10480///
10481///# Extends
10482///- [`PresentInfoKHR`]
10483#[repr(C)]
10484#[derive(Copy, Clone, Debug)]
10485#[doc(alias = "VkPresentIdKHR")]
10486pub struct PresentIdKHR {
10487    ///Must be `VK_STRUCTURE_TYPE_PRESENT_ID_KHR`.
10488    pub s_type: StructureType,
10489    ///Optional, may be null.
10490    pub p_next: *const core::ffi::c_void,
10491    ///Length of `p_present_ids`.
10492    pub swapchain_count: u32,
10493    ///Optional, may be null.
10494    pub p_present_ids: *const u64,
10495}
10496impl Default for PresentIdKHR {
10497    #[inline]
10498    fn default() -> Self {
10499        Self {
10500            s_type: StructureType::from_raw(1000294000i32),
10501            p_next: core::ptr::null(),
10502            swapchain_count: Default::default(),
10503            p_present_ids: core::ptr::null(),
10504        }
10505    }
10506}
10507///[`VkPhysicalDevicePresentId2FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentId2FeaturesKHR.html)
10508/**
10509Provided by **VK_KHR_present_id2**.*/
10510///
10511///# Extends
10512///- [`PhysicalDeviceFeatures2`]
10513///- [`DeviceCreateInfo`]
10514#[repr(C)]
10515#[derive(Copy, Clone, Debug)]
10516#[doc(alias = "VkPhysicalDevicePresentId2FeaturesKHR")]
10517pub struct PhysicalDevicePresentId2FeaturesKHR {
10518    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR`.
10519    pub s_type: StructureType,
10520    ///Optional, may be null.
10521    pub p_next: *mut core::ffi::c_void,
10522    pub present_id2: u32,
10523}
10524impl Default for PhysicalDevicePresentId2FeaturesKHR {
10525    #[inline]
10526    fn default() -> Self {
10527        Self {
10528            s_type: StructureType::from_raw(1000479002i32),
10529            p_next: core::ptr::null_mut(),
10530            present_id2: Default::default(),
10531        }
10532    }
10533}
10534///[`VkPresentId2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentId2KHR.html)
10535/**
10536Provided by **VK_KHR_present_id2**.*/
10537///
10538///# Extends
10539///- [`PresentInfoKHR`]
10540#[repr(C)]
10541#[derive(Copy, Clone, Debug)]
10542#[doc(alias = "VkPresentId2KHR")]
10543pub struct PresentId2KHR {
10544    ///Must be `VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR`.
10545    pub s_type: StructureType,
10546    ///Optional, may be null.
10547    pub p_next: *const core::ffi::c_void,
10548    ///Length of `p_present_ids`.
10549    pub swapchain_count: u32,
10550    ///Optional, may be null.
10551    pub p_present_ids: *const u64,
10552}
10553impl Default for PresentId2KHR {
10554    #[inline]
10555    fn default() -> Self {
10556        Self {
10557            s_type: StructureType::from_raw(1000479001i32),
10558            p_next: core::ptr::null(),
10559            swapchain_count: Default::default(),
10560            p_present_ids: core::ptr::null(),
10561        }
10562    }
10563}
10564///[`VkPresentWait2InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentWait2InfoKHR.html)
10565/**
10566Provided by **VK_KHR_present_wait2**.*/
10567#[repr(C)]
10568#[derive(Copy, Clone, Debug)]
10569#[doc(alias = "VkPresentWait2InfoKHR")]
10570pub struct PresentWait2InfoKHR {
10571    ///Must be `VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR`.
10572    pub s_type: StructureType,
10573    ///Optional, may be null.
10574    pub p_next: *const core::ffi::c_void,
10575    pub present_id: u64,
10576    pub timeout: u64,
10577}
10578impl Default for PresentWait2InfoKHR {
10579    #[inline]
10580    fn default() -> Self {
10581        Self {
10582            s_type: StructureType::from_raw(1000480002i32),
10583            p_next: core::ptr::null(),
10584            present_id: Default::default(),
10585            timeout: Default::default(),
10586        }
10587    }
10588}
10589///[`VkPhysicalDevicePresentWaitFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentWaitFeaturesKHR.html)
10590/**
10591Provided by **VK_KHR_present_wait**.*/
10592///
10593///# Extends
10594///- [`PhysicalDeviceFeatures2`]
10595///- [`DeviceCreateInfo`]
10596#[repr(C)]
10597#[derive(Copy, Clone, Debug)]
10598#[doc(alias = "VkPhysicalDevicePresentWaitFeaturesKHR")]
10599pub struct PhysicalDevicePresentWaitFeaturesKHR {
10600    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR`.
10601    pub s_type: StructureType,
10602    ///Optional, may be null.
10603    pub p_next: *mut core::ffi::c_void,
10604    pub present_wait: u32,
10605}
10606impl Default for PhysicalDevicePresentWaitFeaturesKHR {
10607    #[inline]
10608    fn default() -> Self {
10609        Self {
10610            s_type: StructureType::from_raw(1000248000i32),
10611            p_next: core::ptr::null_mut(),
10612            present_wait: Default::default(),
10613        }
10614    }
10615}
10616///[`VkPhysicalDevicePresentWait2FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentWait2FeaturesKHR.html)
10617/**
10618Provided by **VK_KHR_present_wait2**.*/
10619///
10620///# Extends
10621///- [`PhysicalDeviceFeatures2`]
10622///- [`DeviceCreateInfo`]
10623#[repr(C)]
10624#[derive(Copy, Clone, Debug)]
10625#[doc(alias = "VkPhysicalDevicePresentWait2FeaturesKHR")]
10626pub struct PhysicalDevicePresentWait2FeaturesKHR {
10627    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR`.
10628    pub s_type: StructureType,
10629    ///Optional, may be null.
10630    pub p_next: *mut core::ffi::c_void,
10631    pub present_wait2: u32,
10632}
10633impl Default for PhysicalDevicePresentWait2FeaturesKHR {
10634    #[inline]
10635    fn default() -> Self {
10636        Self {
10637            s_type: StructureType::from_raw(1000480001i32),
10638            p_next: core::ptr::null_mut(),
10639            present_wait2: Default::default(),
10640        }
10641    }
10642}
10643///[`VkPhysicalDevicePresentTimingFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentTimingFeaturesEXT.html)
10644/**
10645Provided by **VK_EXT_present_timing**.*/
10646///
10647///# Extends
10648///- [`PhysicalDeviceFeatures2`]
10649///- [`DeviceCreateInfo`]
10650#[repr(C)]
10651#[derive(Copy, Clone, Debug)]
10652#[doc(alias = "VkPhysicalDevicePresentTimingFeaturesEXT")]
10653pub struct PhysicalDevicePresentTimingFeaturesEXT {
10654    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT`.
10655    pub s_type: StructureType,
10656    ///Optional, may be null.
10657    pub p_next: *mut core::ffi::c_void,
10658    pub present_timing: u32,
10659    pub present_at_absolute_time: u32,
10660    pub present_at_relative_time: u32,
10661}
10662impl Default for PhysicalDevicePresentTimingFeaturesEXT {
10663    #[inline]
10664    fn default() -> Self {
10665        Self {
10666            s_type: StructureType::from_raw(1000208000i32),
10667            p_next: core::ptr::null_mut(),
10668            present_timing: Default::default(),
10669            present_at_absolute_time: Default::default(),
10670            present_at_relative_time: Default::default(),
10671        }
10672    }
10673}
10674///[`VkPresentTimingSurfaceCapabilitiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimingSurfaceCapabilitiesEXT.html)
10675/**
10676Provided by **VK_EXT_present_timing**.*/
10677/**
10678**Returned only**, filled by Vulkan, not constructed by the application.*/
10679///
10680///# Extends
10681///- [`SurfaceCapabilities2KHR`]
10682#[repr(C)]
10683#[derive(Copy, Clone, Debug)]
10684#[doc(alias = "VkPresentTimingSurfaceCapabilitiesEXT")]
10685pub struct PresentTimingSurfaceCapabilitiesEXT {
10686    ///Must be `VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT`.
10687    pub s_type: StructureType,
10688    ///Optional, may be null.
10689    pub p_next: *mut core::ffi::c_void,
10690    pub present_timing_supported: u32,
10691    pub present_at_absolute_time_supported: u32,
10692    pub present_at_relative_time_supported: u32,
10693    pub present_stage_queries: PresentStageFlagsEXT,
10694}
10695impl Default for PresentTimingSurfaceCapabilitiesEXT {
10696    #[inline]
10697    fn default() -> Self {
10698        Self {
10699            s_type: StructureType::from_raw(1000208008i32),
10700            p_next: core::ptr::null_mut(),
10701            present_timing_supported: Default::default(),
10702            present_at_absolute_time_supported: Default::default(),
10703            present_at_relative_time_supported: Default::default(),
10704            present_stage_queries: Default::default(),
10705        }
10706    }
10707}
10708///[`VkSwapchainTimingPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainTimingPropertiesEXT.html)
10709/**
10710Provided by **VK_EXT_present_timing**.*/
10711/**
10712**Returned only**, filled by Vulkan, not constructed by the application.*/
10713#[repr(C)]
10714#[derive(Copy, Clone, Debug)]
10715#[doc(alias = "VkSwapchainTimingPropertiesEXT")]
10716pub struct SwapchainTimingPropertiesEXT {
10717    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT`.
10718    pub s_type: StructureType,
10719    ///Optional, may be null.
10720    pub p_next: *mut core::ffi::c_void,
10721    pub refresh_duration: u64,
10722    pub refresh_interval: u64,
10723}
10724impl Default for SwapchainTimingPropertiesEXT {
10725    #[inline]
10726    fn default() -> Self {
10727        Self {
10728            s_type: StructureType::from_raw(1000208001i32),
10729            p_next: core::ptr::null_mut(),
10730            refresh_duration: Default::default(),
10731            refresh_interval: Default::default(),
10732        }
10733    }
10734}
10735///[`VkSwapchainTimeDomainPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainTimeDomainPropertiesEXT.html)
10736/**
10737Provided by **VK_EXT_present_timing**.*/
10738/**
10739**Returned only**, filled by Vulkan, not constructed by the application.*/
10740#[repr(C)]
10741#[derive(Copy, Clone, Debug)]
10742#[doc(alias = "VkSwapchainTimeDomainPropertiesEXT")]
10743pub struct SwapchainTimeDomainPropertiesEXT {
10744    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT`.
10745    pub s_type: StructureType,
10746    ///Optional, may be null.
10747    pub p_next: *mut core::ffi::c_void,
10748    ///Length of `p_time_domain_ids`.
10749    pub time_domain_count: u32,
10750    ///Optional, may be null.
10751    pub p_time_domains: *mut TimeDomainKHR,
10752    ///Optional, may be null.
10753    pub p_time_domain_ids: *mut u64,
10754}
10755impl Default for SwapchainTimeDomainPropertiesEXT {
10756    #[inline]
10757    fn default() -> Self {
10758        Self {
10759            s_type: StructureType::from_raw(1000208002i32),
10760            p_next: core::ptr::null_mut(),
10761            time_domain_count: Default::default(),
10762            p_time_domains: core::ptr::null_mut(),
10763            p_time_domain_ids: core::ptr::null_mut(),
10764        }
10765    }
10766}
10767///[`VkPresentStageTimeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentStageTimeEXT.html)
10768/**
10769Provided by **VK_EXT_present_timing**.*/
10770/**
10771**Returned only**, filled by Vulkan, not constructed by the application.*/
10772#[repr(C)]
10773#[derive(Copy, Clone, Debug)]
10774#[doc(alias = "VkPresentStageTimeEXT")]
10775pub struct PresentStageTimeEXT {
10776    pub stage: PresentStageFlagsEXT,
10777    pub time: u64,
10778}
10779impl Default for PresentStageTimeEXT {
10780    #[inline]
10781    fn default() -> Self {
10782        unsafe { core::mem::zeroed() }
10783    }
10784}
10785///[`VkPastPresentationTimingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPastPresentationTimingInfoEXT.html)
10786/**
10787Provided by **VK_EXT_present_timing**.*/
10788#[repr(C)]
10789#[derive(Copy, Clone, Debug)]
10790#[doc(alias = "VkPastPresentationTimingInfoEXT")]
10791pub struct PastPresentationTimingInfoEXT {
10792    ///Must be `VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT`.
10793    pub s_type: StructureType,
10794    ///Optional, may be null.
10795    pub p_next: *const core::ffi::c_void,
10796    pub flags: PastPresentationTimingFlagsEXT,
10797    ///**Thread safety:** must be externally synchronized.
10798    pub swapchain: SwapchainKHR,
10799}
10800impl Default for PastPresentationTimingInfoEXT {
10801    #[inline]
10802    fn default() -> Self {
10803        Self {
10804            s_type: StructureType::from_raw(1000208005i32),
10805            p_next: core::ptr::null(),
10806            flags: Default::default(),
10807            swapchain: Default::default(),
10808        }
10809    }
10810}
10811///[`VkPastPresentationTimingPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPastPresentationTimingPropertiesEXT.html)
10812/**
10813Provided by **VK_EXT_present_timing**.*/
10814/**
10815**Returned only**, filled by Vulkan, not constructed by the application.*/
10816#[repr(C)]
10817#[derive(Copy, Clone, Debug)]
10818#[doc(alias = "VkPastPresentationTimingPropertiesEXT")]
10819pub struct PastPresentationTimingPropertiesEXT {
10820    ///Must be `VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT`.
10821    pub s_type: StructureType,
10822    ///Optional, may be null.
10823    pub p_next: *mut core::ffi::c_void,
10824    pub timing_properties_counter: u64,
10825    pub time_domains_counter: u64,
10826    ///Length of `p_presentation_timings`.
10827    pub presentation_timing_count: u32,
10828    pub p_presentation_timings: *mut PastPresentationTimingEXT,
10829}
10830impl Default for PastPresentationTimingPropertiesEXT {
10831    #[inline]
10832    fn default() -> Self {
10833        Self {
10834            s_type: StructureType::from_raw(1000208006i32),
10835            p_next: core::ptr::null_mut(),
10836            timing_properties_counter: Default::default(),
10837            time_domains_counter: Default::default(),
10838            presentation_timing_count: Default::default(),
10839            p_presentation_timings: core::ptr::null_mut(),
10840        }
10841    }
10842}
10843///[`VkPastPresentationTimingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPastPresentationTimingEXT.html)
10844/**
10845Provided by **VK_EXT_present_timing**.*/
10846/**
10847**Returned only**, filled by Vulkan, not constructed by the application.*/
10848#[repr(C)]
10849#[derive(Copy, Clone, Debug)]
10850#[doc(alias = "VkPastPresentationTimingEXT")]
10851pub struct PastPresentationTimingEXT {
10852    ///Must be `VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT`.
10853    pub s_type: StructureType,
10854    ///Optional, may be null.
10855    pub p_next: *mut core::ffi::c_void,
10856    pub present_id: u64,
10857    pub target_time: u64,
10858    ///Length of `p_present_stages`.
10859    pub present_stage_count: u32,
10860    pub p_present_stages: *mut PresentStageTimeEXT,
10861    pub time_domain: TimeDomainKHR,
10862    pub time_domain_id: u64,
10863    pub report_complete: u32,
10864}
10865impl Default for PastPresentationTimingEXT {
10866    #[inline]
10867    fn default() -> Self {
10868        Self {
10869            s_type: StructureType::from_raw(1000208007i32),
10870            p_next: core::ptr::null_mut(),
10871            present_id: Default::default(),
10872            target_time: Default::default(),
10873            present_stage_count: Default::default(),
10874            p_present_stages: core::ptr::null_mut(),
10875            time_domain: Default::default(),
10876            time_domain_id: Default::default(),
10877            report_complete: Default::default(),
10878        }
10879    }
10880}
10881///[`VkPresentTimingsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimingsInfoEXT.html)
10882/**
10883Provided by **VK_EXT_present_timing**.*/
10884///
10885///# Extends
10886///- [`PresentInfoKHR`]
10887#[repr(C)]
10888#[derive(Copy, Clone, Debug)]
10889#[doc(alias = "VkPresentTimingsInfoEXT")]
10890pub struct PresentTimingsInfoEXT {
10891    ///Must be `VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT`.
10892    pub s_type: StructureType,
10893    ///Optional, may be null.
10894    pub p_next: *const core::ffi::c_void,
10895    ///Length of `p_timing_infos`.
10896    pub swapchain_count: u32,
10897    ///Optional, may be null.
10898    pub p_timing_infos: *const PresentTimingInfoEXT,
10899}
10900impl Default for PresentTimingsInfoEXT {
10901    #[inline]
10902    fn default() -> Self {
10903        Self {
10904            s_type: StructureType::from_raw(1000208003i32),
10905            p_next: core::ptr::null(),
10906            swapchain_count: Default::default(),
10907            p_timing_infos: core::ptr::null(),
10908        }
10909    }
10910}
10911///[`VkPresentTimingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimingInfoEXT.html)
10912/**
10913Provided by **VK_EXT_present_timing**.*/
10914#[repr(C)]
10915#[derive(Copy, Clone, Debug)]
10916#[doc(alias = "VkPresentTimingInfoEXT")]
10917pub struct PresentTimingInfoEXT {
10918    ///Must be `VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT`.
10919    pub s_type: StructureType,
10920    ///Optional, may be null.
10921    pub p_next: *const core::ffi::c_void,
10922    pub flags: PresentTimingInfoFlagsEXT,
10923    pub target_time: u64,
10924    pub time_domain_id: u64,
10925    pub present_stage_queries: PresentStageFlagsEXT,
10926    pub target_time_domain_present_stage: PresentStageFlagsEXT,
10927}
10928impl Default for PresentTimingInfoEXT {
10929    #[inline]
10930    fn default() -> Self {
10931        Self {
10932            s_type: StructureType::from_raw(1000208004i32),
10933            p_next: core::ptr::null(),
10934            flags: Default::default(),
10935            target_time: Default::default(),
10936            time_domain_id: Default::default(),
10937            present_stage_queries: Default::default(),
10938            target_time_domain_present_stage: Default::default(),
10939        }
10940    }
10941}
10942///[`VkSwapchainCalibratedTimestampInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainCalibratedTimestampInfoEXT.html)
10943/**
10944Provided by **VK_EXT_present_timing**.*/
10945///
10946///# Extends
10947///- [`CalibratedTimestampInfoKHR`]
10948#[repr(C)]
10949#[derive(Copy, Clone, Debug)]
10950#[doc(alias = "VkSwapchainCalibratedTimestampInfoEXT")]
10951pub struct SwapchainCalibratedTimestampInfoEXT {
10952    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT`.
10953    pub s_type: StructureType,
10954    ///Optional, may be null.
10955    pub p_next: *const core::ffi::c_void,
10956    pub swapchain: SwapchainKHR,
10957    pub present_stage: PresentStageFlagsEXT,
10958    pub time_domain_id: u64,
10959}
10960impl Default for SwapchainCalibratedTimestampInfoEXT {
10961    #[inline]
10962    fn default() -> Self {
10963        Self {
10964            s_type: StructureType::from_raw(1000208009i32),
10965            p_next: core::ptr::null(),
10966            swapchain: Default::default(),
10967            present_stage: Default::default(),
10968            time_domain_id: Default::default(),
10969        }
10970    }
10971}
10972///[`VkHdrMetadataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHdrMetadataEXT.html)
10973/**
10974Provided by **VK_EXT_hdr_metadata**.*/
10975///
10976///# Extended By
10977///- [`HdrVividDynamicMetadataHUAWEI`]
10978#[repr(C)]
10979#[derive(Copy, Clone, Debug)]
10980#[doc(alias = "VkHdrMetadataEXT")]
10981pub struct HdrMetadataEXT {
10982    ///Must be `VK_STRUCTURE_TYPE_HDR_METADATA_EXT`.
10983    pub s_type: StructureType,
10984    ///Optional, may be null.
10985    pub p_next: *const core::ffi::c_void,
10986    pub display_primary_red: XYColorEXT,
10987    pub display_primary_green: XYColorEXT,
10988    pub display_primary_blue: XYColorEXT,
10989    pub white_point: XYColorEXT,
10990    pub max_luminance: f32,
10991    pub min_luminance: f32,
10992    pub max_content_light_level: f32,
10993    pub max_frame_average_light_level: f32,
10994}
10995impl Default for HdrMetadataEXT {
10996    #[inline]
10997    fn default() -> Self {
10998        Self {
10999            s_type: StructureType::from_raw(1000105000i32),
11000            p_next: core::ptr::null(),
11001            display_primary_red: Default::default(),
11002            display_primary_green: Default::default(),
11003            display_primary_blue: Default::default(),
11004            white_point: Default::default(),
11005            max_luminance: Default::default(),
11006            min_luminance: Default::default(),
11007            max_content_light_level: Default::default(),
11008            max_frame_average_light_level: Default::default(),
11009        }
11010    }
11011}
11012///[`VkHdrVividDynamicMetadataHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHdrVividDynamicMetadataHUAWEI.html)
11013/**
11014Provided by **VK_HUAWEI_hdr_vivid**.*/
11015///
11016///# Extends
11017///- [`HdrMetadataEXT`]
11018#[repr(C)]
11019#[derive(Copy, Clone, Debug)]
11020#[doc(alias = "VkHdrVividDynamicMetadataHUAWEI")]
11021pub struct HdrVividDynamicMetadataHUAWEI {
11022    ///Must be `VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI`.
11023    pub s_type: StructureType,
11024    ///Optional, may be null.
11025    pub p_next: *const core::ffi::c_void,
11026    ///Length of `p_dynamic_metadata`.
11027    pub dynamic_metadata_size: usize,
11028    pub p_dynamic_metadata: *const core::ffi::c_void,
11029}
11030impl Default for HdrVividDynamicMetadataHUAWEI {
11031    #[inline]
11032    fn default() -> Self {
11033        Self {
11034            s_type: StructureType::from_raw(1000590001i32),
11035            p_next: core::ptr::null(),
11036            dynamic_metadata_size: Default::default(),
11037            p_dynamic_metadata: core::ptr::null(),
11038        }
11039    }
11040}
11041///[`VkDisplayNativeHdrSurfaceCapabilitiesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayNativeHdrSurfaceCapabilitiesAMD.html)
11042/**
11043Provided by **VK_AMD_display_native_hdr**.*/
11044/**
11045**Returned only**, filled by Vulkan, not constructed by the application.*/
11046///
11047///# Extends
11048///- [`SurfaceCapabilities2KHR`]
11049#[repr(C)]
11050#[derive(Copy, Clone, Debug)]
11051#[doc(alias = "VkDisplayNativeHdrSurfaceCapabilitiesAMD")]
11052pub struct DisplayNativeHdrSurfaceCapabilitiesAMD {
11053    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD`.
11054    pub s_type: StructureType,
11055    ///Optional, may be null.
11056    pub p_next: *mut core::ffi::c_void,
11057    pub local_dimming_support: u32,
11058}
11059impl Default for DisplayNativeHdrSurfaceCapabilitiesAMD {
11060    #[inline]
11061    fn default() -> Self {
11062        Self {
11063            s_type: StructureType::from_raw(1000213000i32),
11064            p_next: core::ptr::null_mut(),
11065            local_dimming_support: Default::default(),
11066        }
11067    }
11068}
11069///[`VkSwapchainDisplayNativeHdrCreateInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainDisplayNativeHdrCreateInfoAMD.html)
11070/**
11071Provided by **VK_AMD_display_native_hdr**.*/
11072///
11073///# Extends
11074///- [`SwapchainCreateInfoKHR`]
11075#[repr(C)]
11076#[derive(Copy, Clone, Debug)]
11077#[doc(alias = "VkSwapchainDisplayNativeHdrCreateInfoAMD")]
11078pub struct SwapchainDisplayNativeHdrCreateInfoAMD {
11079    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD`.
11080    pub s_type: StructureType,
11081    ///Optional, may be null.
11082    pub p_next: *const core::ffi::c_void,
11083    pub local_dimming_enable: u32,
11084}
11085impl Default for SwapchainDisplayNativeHdrCreateInfoAMD {
11086    #[inline]
11087    fn default() -> Self {
11088        Self {
11089            s_type: StructureType::from_raw(1000213001i32),
11090            p_next: core::ptr::null(),
11091            local_dimming_enable: Default::default(),
11092        }
11093    }
11094}
11095///[`VkRefreshCycleDurationGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRefreshCycleDurationGOOGLE.html)
11096/**
11097Provided by **VK_GOOGLE_display_timing**.*/
11098/**
11099**Returned only**, filled by Vulkan, not constructed by the application.*/
11100#[repr(C)]
11101#[derive(Copy, Clone, Debug)]
11102#[doc(alias = "VkRefreshCycleDurationGOOGLE")]
11103pub struct RefreshCycleDurationGOOGLE {
11104    pub refresh_duration: u64,
11105}
11106impl Default for RefreshCycleDurationGOOGLE {
11107    #[inline]
11108    fn default() -> Self {
11109        unsafe { core::mem::zeroed() }
11110    }
11111}
11112///[`VkPastPresentationTimingGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPastPresentationTimingGOOGLE.html)
11113/**
11114Provided by **VK_GOOGLE_display_timing**.*/
11115/**
11116**Returned only**, filled by Vulkan, not constructed by the application.*/
11117#[repr(C)]
11118#[derive(Copy, Clone, Debug)]
11119#[doc(alias = "VkPastPresentationTimingGOOGLE")]
11120pub struct PastPresentationTimingGOOGLE {
11121    pub present_id: u32,
11122    pub desired_present_time: u64,
11123    pub actual_present_time: u64,
11124    pub earliest_present_time: u64,
11125    pub present_margin: u64,
11126}
11127impl Default for PastPresentationTimingGOOGLE {
11128    #[inline]
11129    fn default() -> Self {
11130        unsafe { core::mem::zeroed() }
11131    }
11132}
11133///[`VkPresentTimesInfoGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimesInfoGOOGLE.html)
11134/**
11135Provided by **VK_GOOGLE_display_timing**.*/
11136///
11137///# Extends
11138///- [`PresentInfoKHR`]
11139#[repr(C)]
11140#[derive(Copy, Clone, Debug)]
11141#[doc(alias = "VkPresentTimesInfoGOOGLE")]
11142pub struct PresentTimesInfoGOOGLE {
11143    ///Must be `VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE`.
11144    pub s_type: StructureType,
11145    ///Optional, may be null.
11146    pub p_next: *const core::ffi::c_void,
11147    ///Length of `p_times`.
11148    pub swapchain_count: u32,
11149    ///Optional, may be null.
11150    pub p_times: *const PresentTimeGOOGLE,
11151}
11152impl Default for PresentTimesInfoGOOGLE {
11153    #[inline]
11154    fn default() -> Self {
11155        Self {
11156            s_type: StructureType::from_raw(1000092000i32),
11157            p_next: core::ptr::null(),
11158            swapchain_count: Default::default(),
11159            p_times: core::ptr::null(),
11160        }
11161    }
11162}
11163///[`VkPresentTimeGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentTimeGOOGLE.html)
11164/**
11165Provided by **VK_GOOGLE_display_timing**.*/
11166#[repr(C)]
11167#[derive(Copy, Clone, Debug)]
11168#[doc(alias = "VkPresentTimeGOOGLE")]
11169pub struct PresentTimeGOOGLE {
11170    pub present_id: u32,
11171    pub desired_present_time: u64,
11172}
11173impl Default for PresentTimeGOOGLE {
11174    #[inline]
11175    fn default() -> Self {
11176        unsafe { core::mem::zeroed() }
11177    }
11178}
11179///[`VkIOSSurfaceCreateInfoMVK`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIOSSurfaceCreateInfoMVK.html)
11180/**
11181Provided by **VK_MVK_ios_surface**.*/
11182#[repr(C)]
11183#[derive(Copy, Clone, Debug)]
11184#[doc(alias = "VkIOSSurfaceCreateInfoMVK")]
11185pub struct IOSSurfaceCreateInfoMVK {
11186    ///Must be `VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK`.
11187    pub s_type: StructureType,
11188    ///Optional, may be null.
11189    pub p_next: *const core::ffi::c_void,
11190    pub flags: IOSSurfaceCreateFlagsMVK,
11191    pub p_view: *const core::ffi::c_void,
11192}
11193impl Default for IOSSurfaceCreateInfoMVK {
11194    #[inline]
11195    fn default() -> Self {
11196        Self {
11197            s_type: StructureType::from_raw(1000122000i32),
11198            p_next: core::ptr::null(),
11199            flags: Default::default(),
11200            p_view: core::ptr::null(),
11201        }
11202    }
11203}
11204///[`VkMacOSSurfaceCreateInfoMVK`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMacOSSurfaceCreateInfoMVK.html)
11205/**
11206Provided by **VK_MVK_macos_surface**.*/
11207#[repr(C)]
11208#[derive(Copy, Clone, Debug)]
11209#[doc(alias = "VkMacOSSurfaceCreateInfoMVK")]
11210pub struct MacOSSurfaceCreateInfoMVK {
11211    ///Must be `VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK`.
11212    pub s_type: StructureType,
11213    ///Optional, may be null.
11214    pub p_next: *const core::ffi::c_void,
11215    pub flags: MacOSSurfaceCreateFlagsMVK,
11216    pub p_view: *const core::ffi::c_void,
11217}
11218impl Default for MacOSSurfaceCreateInfoMVK {
11219    #[inline]
11220    fn default() -> Self {
11221        Self {
11222            s_type: StructureType::from_raw(1000123000i32),
11223            p_next: core::ptr::null(),
11224            flags: Default::default(),
11225            p_view: core::ptr::null(),
11226        }
11227    }
11228}
11229///[`VkMetalSurfaceCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMetalSurfaceCreateInfoEXT.html)
11230/**
11231Provided by **VK_EXT_metal_surface**.*/
11232#[repr(C)]
11233#[derive(Copy, Clone, Debug)]
11234#[doc(alias = "VkMetalSurfaceCreateInfoEXT")]
11235pub struct MetalSurfaceCreateInfoEXT {
11236    ///Must be `VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT`.
11237    pub s_type: StructureType,
11238    ///Optional, may be null.
11239    pub p_next: *const core::ffi::c_void,
11240    pub flags: MetalSurfaceCreateFlagsEXT,
11241    pub p_layer: *const core::ffi::c_void,
11242}
11243impl Default for MetalSurfaceCreateInfoEXT {
11244    #[inline]
11245    fn default() -> Self {
11246        Self {
11247            s_type: StructureType::from_raw(1000217000i32),
11248            p_next: core::ptr::null(),
11249            flags: Default::default(),
11250            p_layer: core::ptr::null(),
11251        }
11252    }
11253}
11254///[`VkViewportWScalingNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkViewportWScalingNV.html)
11255/**
11256Provided by **VK_NV_clip_space_w_scaling**.*/
11257#[repr(C)]
11258#[derive(Copy, Clone, Debug)]
11259#[doc(alias = "VkViewportWScalingNV")]
11260pub struct ViewportWScalingNV {
11261    pub xcoeff: f32,
11262    pub ycoeff: f32,
11263}
11264impl Default for ViewportWScalingNV {
11265    #[inline]
11266    fn default() -> Self {
11267        unsafe { core::mem::zeroed() }
11268    }
11269}
11270///[`VkPipelineViewportWScalingStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportWScalingStateCreateInfoNV.html)
11271/**
11272Provided by **VK_NV_clip_space_w_scaling**.*/
11273///
11274///# Extends
11275///- [`PipelineViewportStateCreateInfo`]
11276#[repr(C)]
11277#[derive(Copy, Clone, Debug)]
11278#[doc(alias = "VkPipelineViewportWScalingStateCreateInfoNV")]
11279pub struct PipelineViewportWScalingStateCreateInfoNV {
11280    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV`.
11281    pub s_type: StructureType,
11282    ///Optional, may be null.
11283    pub p_next: *const core::ffi::c_void,
11284    pub viewport_w_scaling_enable: u32,
11285    ///Length of `p_viewport_w_scalings`.
11286    pub viewport_count: u32,
11287    ///Optional, may be null.
11288    pub p_viewport_w_scalings: *const ViewportWScalingNV,
11289}
11290impl Default for PipelineViewportWScalingStateCreateInfoNV {
11291    #[inline]
11292    fn default() -> Self {
11293        Self {
11294            s_type: StructureType::from_raw(1000087000i32),
11295            p_next: core::ptr::null(),
11296            viewport_w_scaling_enable: Default::default(),
11297            viewport_count: Default::default(),
11298            p_viewport_w_scalings: core::ptr::null(),
11299        }
11300    }
11301}
11302///[`VkViewportSwizzleNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkViewportSwizzleNV.html)
11303/**
11304Provided by **VK_NV_viewport_swizzle**.*/
11305#[repr(C)]
11306#[derive(Copy, Clone, Debug)]
11307#[doc(alias = "VkViewportSwizzleNV")]
11308pub struct ViewportSwizzleNV {
11309    pub x: ViewportCoordinateSwizzleNV,
11310    pub y: ViewportCoordinateSwizzleNV,
11311    pub z: ViewportCoordinateSwizzleNV,
11312    pub w: ViewportCoordinateSwizzleNV,
11313}
11314impl Default for ViewportSwizzleNV {
11315    #[inline]
11316    fn default() -> Self {
11317        unsafe { core::mem::zeroed() }
11318    }
11319}
11320///[`VkPipelineViewportSwizzleStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportSwizzleStateCreateInfoNV.html)
11321/**
11322Provided by **VK_NV_viewport_swizzle**.*/
11323///
11324///# Extends
11325///- [`PipelineViewportStateCreateInfo`]
11326#[repr(C)]
11327#[derive(Copy, Clone, Debug)]
11328#[doc(alias = "VkPipelineViewportSwizzleStateCreateInfoNV")]
11329pub struct PipelineViewportSwizzleStateCreateInfoNV {
11330    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV`.
11331    pub s_type: StructureType,
11332    ///Optional, may be null.
11333    pub p_next: *const core::ffi::c_void,
11334    pub flags: PipelineViewportSwizzleStateCreateFlagsNV,
11335    ///Length of `p_viewport_swizzles`.
11336    pub viewport_count: u32,
11337    pub p_viewport_swizzles: *const ViewportSwizzleNV,
11338}
11339impl Default for PipelineViewportSwizzleStateCreateInfoNV {
11340    #[inline]
11341    fn default() -> Self {
11342        Self {
11343            s_type: StructureType::from_raw(1000098000i32),
11344            p_next: core::ptr::null(),
11345            flags: Default::default(),
11346            viewport_count: Default::default(),
11347            p_viewport_swizzles: core::ptr::null(),
11348        }
11349    }
11350}
11351///[`VkPhysicalDeviceDiscardRectanglePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDiscardRectanglePropertiesEXT.html)
11352/**
11353Provided by **VK_EXT_discard_rectangles**.*/
11354/**
11355**Returned only**, filled by Vulkan, not constructed by the application.*/
11356///
11357///# Extends
11358///- [`PhysicalDeviceProperties2`]
11359#[repr(C)]
11360#[derive(Copy, Clone, Debug)]
11361#[doc(alias = "VkPhysicalDeviceDiscardRectanglePropertiesEXT")]
11362pub struct PhysicalDeviceDiscardRectanglePropertiesEXT {
11363    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT`.
11364    pub s_type: StructureType,
11365    ///Optional, may be null.
11366    pub p_next: *mut core::ffi::c_void,
11367    pub max_discard_rectangles: u32,
11368}
11369impl Default for PhysicalDeviceDiscardRectanglePropertiesEXT {
11370    #[inline]
11371    fn default() -> Self {
11372        Self {
11373            s_type: StructureType::from_raw(1000099000i32),
11374            p_next: core::ptr::null_mut(),
11375            max_discard_rectangles: Default::default(),
11376        }
11377    }
11378}
11379///[`VkPipelineDiscardRectangleStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineDiscardRectangleStateCreateInfoEXT.html)
11380/**
11381Provided by **VK_EXT_discard_rectangles**.*/
11382///
11383///# Extends
11384///- [`GraphicsPipelineCreateInfo`]
11385#[repr(C)]
11386#[derive(Copy, Clone, Debug)]
11387#[doc(alias = "VkPipelineDiscardRectangleStateCreateInfoEXT")]
11388pub struct PipelineDiscardRectangleStateCreateInfoEXT {
11389    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT`.
11390    pub s_type: StructureType,
11391    ///Optional, may be null.
11392    pub p_next: *const core::ffi::c_void,
11393    pub flags: PipelineDiscardRectangleStateCreateFlagsEXT,
11394    pub discard_rectangle_mode: DiscardRectangleModeEXT,
11395    ///Length of `p_discard_rectangles`.
11396    pub discard_rectangle_count: u32,
11397    pub p_discard_rectangles: *const Rect2D,
11398}
11399impl Default for PipelineDiscardRectangleStateCreateInfoEXT {
11400    #[inline]
11401    fn default() -> Self {
11402        Self {
11403            s_type: StructureType::from_raw(1000099001i32),
11404            p_next: core::ptr::null(),
11405            flags: Default::default(),
11406            discard_rectangle_mode: Default::default(),
11407            discard_rectangle_count: Default::default(),
11408            p_discard_rectangles: core::ptr::null(),
11409        }
11410    }
11411}
11412///[`VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.html)
11413/**
11414Provided by **VK_NVX_multiview_per_view_attributes**.*/
11415/**
11416**Returned only**, filled by Vulkan, not constructed by the application.*/
11417///
11418///# Extends
11419///- [`PhysicalDeviceProperties2`]
11420#[repr(C)]
11421#[derive(Copy, Clone, Debug)]
11422#[doc(alias = "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX")]
11423pub struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11424    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX`.
11425    pub s_type: StructureType,
11426    ///Optional, may be null.
11427    pub p_next: *mut core::ffi::c_void,
11428    pub per_view_position_all_components: u32,
11429}
11430impl Default for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11431    #[inline]
11432    fn default() -> Self {
11433        Self {
11434            s_type: StructureType::from_raw(1000097000i32),
11435            p_next: core::ptr::null_mut(),
11436            per_view_position_all_components: Default::default(),
11437        }
11438    }
11439}
11440///[`VkInputAttachmentAspectReference`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkInputAttachmentAspectReference.html)
11441/**
11442Provided by **VK_GRAPHICS_VERSION_1_1**.*/
11443#[repr(C)]
11444#[derive(Copy, Clone, Debug)]
11445#[doc(alias = "VkInputAttachmentAspectReference")]
11446pub struct InputAttachmentAspectReference {
11447    pub subpass: u32,
11448    pub input_attachment_index: u32,
11449    pub aspect_mask: ImageAspectFlags,
11450}
11451impl Default for InputAttachmentAspectReference {
11452    #[inline]
11453    fn default() -> Self {
11454        unsafe { core::mem::zeroed() }
11455    }
11456}
11457///[`VkRenderPassInputAttachmentAspectCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassInputAttachmentAspectCreateInfo.html)
11458/**
11459Provided by **VK_GRAPHICS_VERSION_1_1**.*/
11460///
11461///# Extends
11462///- [`RenderPassCreateInfo`]
11463#[repr(C)]
11464#[derive(Copy, Clone, Debug)]
11465#[doc(alias = "VkRenderPassInputAttachmentAspectCreateInfo")]
11466pub struct RenderPassInputAttachmentAspectCreateInfo {
11467    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO`.
11468    pub s_type: StructureType,
11469    ///Optional, may be null.
11470    pub p_next: *const core::ffi::c_void,
11471    ///Length of `p_aspect_references`.
11472    pub aspect_reference_count: u32,
11473    pub p_aspect_references: *const InputAttachmentAspectReference,
11474}
11475impl Default for RenderPassInputAttachmentAspectCreateInfo {
11476    #[inline]
11477    fn default() -> Self {
11478        Self {
11479            s_type: StructureType::from_raw(1000117001i32),
11480            p_next: core::ptr::null(),
11481            aspect_reference_count: Default::default(),
11482            p_aspect_references: core::ptr::null(),
11483        }
11484    }
11485}
11486///[`VkPhysicalDeviceSurfaceInfo2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSurfaceInfo2KHR.html)
11487/**
11488Provided by **VK_KHR_get_surface_capabilities2**.*/
11489///
11490///# Extended By
11491///- [`SurfaceFullScreenExclusiveInfoEXT`]
11492///- [`SurfaceFullScreenExclusiveWin32InfoEXT`]
11493///- [`SurfacePresentModeKHR`]
11494#[repr(C)]
11495#[derive(Copy, Clone, Debug)]
11496#[doc(alias = "VkPhysicalDeviceSurfaceInfo2KHR")]
11497pub struct PhysicalDeviceSurfaceInfo2KHR {
11498    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR`.
11499    pub s_type: StructureType,
11500    ///Optional, may be null.
11501    pub p_next: *const core::ffi::c_void,
11502    pub surface: SurfaceKHR,
11503}
11504impl Default for PhysicalDeviceSurfaceInfo2KHR {
11505    #[inline]
11506    fn default() -> Self {
11507        Self {
11508            s_type: StructureType::from_raw(1000119000i32),
11509            p_next: core::ptr::null(),
11510            surface: Default::default(),
11511        }
11512    }
11513}
11514///[`VkSurfaceCapabilities2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilities2KHR.html)
11515/**
11516Provided by **VK_KHR_get_surface_capabilities2**.*/
11517/**
11518**Returned only**, filled by Vulkan, not constructed by the application.*/
11519///
11520///# Extended By
11521///- [`DisplayNativeHdrSurfaceCapabilitiesAMD`]
11522///- [`LatencySurfaceCapabilitiesNV`]
11523///- [`PresentTimingSurfaceCapabilitiesEXT`]
11524///- [`SharedPresentSurfaceCapabilitiesKHR`]
11525///- [`SurfaceCapabilitiesFullScreenExclusiveEXT`]
11526///- [`SurfaceCapabilitiesPresentBarrierNV`]
11527///- [`SurfaceCapabilitiesPresentId2KHR`]
11528///- [`SurfaceCapabilitiesPresentWait2KHR`]
11529///- [`SurfacePresentModeCompatibilityKHR`]
11530///- [`SurfacePresentScalingCapabilitiesKHR`]
11531///- [`SurfaceProtectedCapabilitiesKHR`]
11532#[repr(C)]
11533#[derive(Copy, Clone, Debug)]
11534#[doc(alias = "VkSurfaceCapabilities2KHR")]
11535pub struct SurfaceCapabilities2KHR {
11536    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR`.
11537    pub s_type: StructureType,
11538    ///Optional, may be null.
11539    pub p_next: *mut core::ffi::c_void,
11540    pub surface_capabilities: SurfaceCapabilitiesKHR,
11541}
11542impl Default for SurfaceCapabilities2KHR {
11543    #[inline]
11544    fn default() -> Self {
11545        Self {
11546            s_type: StructureType::from_raw(1000119001i32),
11547            p_next: core::ptr::null_mut(),
11548            surface_capabilities: Default::default(),
11549        }
11550    }
11551}
11552///[`VkSurfaceFormat2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFormat2KHR.html)
11553/**
11554Provided by **VK_KHR_get_surface_capabilities2**.*/
11555/**
11556**Returned only**, filled by Vulkan, not constructed by the application.*/
11557///
11558///# Extended By
11559///- [`ImageCompressionPropertiesEXT`]
11560#[repr(C)]
11561#[derive(Copy, Clone, Debug)]
11562#[doc(alias = "VkSurfaceFormat2KHR")]
11563pub struct SurfaceFormat2KHR {
11564    ///Must be `VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR`.
11565    pub s_type: StructureType,
11566    ///Optional, may be null.
11567    pub p_next: *mut core::ffi::c_void,
11568    pub surface_format: SurfaceFormatKHR,
11569}
11570impl Default for SurfaceFormat2KHR {
11571    #[inline]
11572    fn default() -> Self {
11573        Self {
11574            s_type: StructureType::from_raw(1000119002i32),
11575            p_next: core::ptr::null_mut(),
11576            surface_format: Default::default(),
11577        }
11578    }
11579}
11580///[`VkDisplayProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayProperties2KHR.html)
11581/**
11582Provided by **VK_KHR_get_display_properties2**.*/
11583/**
11584**Returned only**, filled by Vulkan, not constructed by the application.*/
11585#[repr(C)]
11586#[derive(Copy, Clone, Debug)]
11587#[doc(alias = "VkDisplayProperties2KHR")]
11588pub struct DisplayProperties2KHR {
11589    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR`.
11590    pub s_type: StructureType,
11591    ///Optional, may be null.
11592    pub p_next: *mut core::ffi::c_void,
11593    pub display_properties: DisplayPropertiesKHR,
11594}
11595impl Default for DisplayProperties2KHR {
11596    #[inline]
11597    fn default() -> Self {
11598        Self {
11599            s_type: StructureType::from_raw(1000121000i32),
11600            p_next: core::ptr::null_mut(),
11601            display_properties: Default::default(),
11602        }
11603    }
11604}
11605///[`VkDisplayPlaneProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlaneProperties2KHR.html)
11606/**
11607Provided by **VK_KHR_get_display_properties2**.*/
11608/**
11609**Returned only**, filled by Vulkan, not constructed by the application.*/
11610#[repr(C)]
11611#[derive(Copy, Clone, Debug)]
11612#[doc(alias = "VkDisplayPlaneProperties2KHR")]
11613pub struct DisplayPlaneProperties2KHR {
11614    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR`.
11615    pub s_type: StructureType,
11616    ///Optional, may be null.
11617    pub p_next: *mut core::ffi::c_void,
11618    pub display_plane_properties: DisplayPlanePropertiesKHR,
11619}
11620impl Default for DisplayPlaneProperties2KHR {
11621    #[inline]
11622    fn default() -> Self {
11623        Self {
11624            s_type: StructureType::from_raw(1000121001i32),
11625            p_next: core::ptr::null_mut(),
11626            display_plane_properties: Default::default(),
11627        }
11628    }
11629}
11630///[`VkDisplayModeProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModeProperties2KHR.html)
11631/**
11632Provided by **VK_KHR_get_display_properties2**.*/
11633/**
11634**Returned only**, filled by Vulkan, not constructed by the application.*/
11635///
11636///# Extended By
11637///- [`DisplayModeStereoPropertiesNV`]
11638#[repr(C)]
11639#[derive(Copy, Clone, Debug)]
11640#[doc(alias = "VkDisplayModeProperties2KHR")]
11641pub struct DisplayModeProperties2KHR {
11642    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR`.
11643    pub s_type: StructureType,
11644    ///Optional, may be null.
11645    pub p_next: *mut core::ffi::c_void,
11646    pub display_mode_properties: DisplayModePropertiesKHR,
11647}
11648impl Default for DisplayModeProperties2KHR {
11649    #[inline]
11650    fn default() -> Self {
11651        Self {
11652            s_type: StructureType::from_raw(1000121002i32),
11653            p_next: core::ptr::null_mut(),
11654            display_mode_properties: Default::default(),
11655        }
11656    }
11657}
11658///[`VkDisplayModeStereoPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayModeStereoPropertiesNV.html)
11659/**
11660Provided by **VK_NV_display_stereo**.*/
11661/**
11662**Returned only**, filled by Vulkan, not constructed by the application.*/
11663///
11664///# Extends
11665///- [`DisplayModeProperties2KHR`]
11666#[repr(C)]
11667#[derive(Copy, Clone, Debug)]
11668#[doc(alias = "VkDisplayModeStereoPropertiesNV")]
11669pub struct DisplayModeStereoPropertiesNV {
11670    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV`.
11671    pub s_type: StructureType,
11672    ///Optional, may be null.
11673    pub p_next: *mut core::ffi::c_void,
11674    pub hdmi3_d_supported: u32,
11675}
11676impl Default for DisplayModeStereoPropertiesNV {
11677    #[inline]
11678    fn default() -> Self {
11679        Self {
11680            s_type: StructureType::from_raw(1000551001i32),
11681            p_next: core::ptr::null_mut(),
11682            hdmi3_d_supported: Default::default(),
11683        }
11684    }
11685}
11686///[`VkDisplayPlaneInfo2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlaneInfo2KHR.html)
11687/**
11688Provided by **VK_KHR_get_display_properties2**.*/
11689#[repr(C)]
11690#[derive(Copy, Clone, Debug)]
11691#[doc(alias = "VkDisplayPlaneInfo2KHR")]
11692pub struct DisplayPlaneInfo2KHR {
11693    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR`.
11694    pub s_type: StructureType,
11695    ///Optional, may be null.
11696    pub p_next: *const core::ffi::c_void,
11697    ///**Thread safety:** must be externally synchronized.
11698    pub mode: DisplayModeKHR,
11699    pub plane_index: u32,
11700}
11701impl Default for DisplayPlaneInfo2KHR {
11702    #[inline]
11703    fn default() -> Self {
11704        Self {
11705            s_type: StructureType::from_raw(1000121003i32),
11706            p_next: core::ptr::null(),
11707            mode: Default::default(),
11708            plane_index: Default::default(),
11709        }
11710    }
11711}
11712///[`VkDisplayPlaneCapabilities2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplayPlaneCapabilities2KHR.html)
11713/**
11714Provided by **VK_KHR_get_display_properties2**.*/
11715/**
11716**Returned only**, filled by Vulkan, not constructed by the application.*/
11717#[repr(C)]
11718#[derive(Copy, Clone, Debug)]
11719#[doc(alias = "VkDisplayPlaneCapabilities2KHR")]
11720pub struct DisplayPlaneCapabilities2KHR {
11721    ///Must be `VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR`.
11722    pub s_type: StructureType,
11723    ///Optional, may be null.
11724    pub p_next: *mut core::ffi::c_void,
11725    pub capabilities: DisplayPlaneCapabilitiesKHR,
11726}
11727impl Default for DisplayPlaneCapabilities2KHR {
11728    #[inline]
11729    fn default() -> Self {
11730        Self {
11731            s_type: StructureType::from_raw(1000121004i32),
11732            p_next: core::ptr::null_mut(),
11733            capabilities: Default::default(),
11734        }
11735    }
11736}
11737///[`VkSharedPresentSurfaceCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSharedPresentSurfaceCapabilitiesKHR.html)
11738/**
11739Provided by **VK_KHR_shared_presentable_image**.*/
11740/**
11741**Returned only**, filled by Vulkan, not constructed by the application.*/
11742///
11743///# Extends
11744///- [`SurfaceCapabilities2KHR`]
11745#[repr(C)]
11746#[derive(Copy, Clone, Debug)]
11747#[doc(alias = "VkSharedPresentSurfaceCapabilitiesKHR")]
11748pub struct SharedPresentSurfaceCapabilitiesKHR {
11749    ///Must be `VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR`.
11750    pub s_type: StructureType,
11751    ///Optional, may be null.
11752    pub p_next: *mut core::ffi::c_void,
11753    pub shared_present_supported_usage_flags: ImageUsageFlags,
11754}
11755impl Default for SharedPresentSurfaceCapabilitiesKHR {
11756    #[inline]
11757    fn default() -> Self {
11758        Self {
11759            s_type: StructureType::from_raw(1000111000i32),
11760            p_next: core::ptr::null_mut(),
11761            shared_present_supported_usage_flags: Default::default(),
11762        }
11763    }
11764}
11765///[`VkPhysicalDevice16BitStorageFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevice16BitStorageFeatures.html)
11766/**
11767Provided by **VK_COMPUTE_VERSION_1_1**.*/
11768///
11769///# Extends
11770///- [`PhysicalDeviceFeatures2`]
11771///- [`DeviceCreateInfo`]
11772#[repr(C)]
11773#[derive(Copy, Clone, Debug)]
11774#[doc(alias = "VkPhysicalDevice16BitStorageFeatures")]
11775pub struct PhysicalDevice16BitStorageFeatures {
11776    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES`.
11777    pub s_type: StructureType,
11778    ///Optional, may be null.
11779    pub p_next: *mut core::ffi::c_void,
11780    pub storage_buffer16_bit_access: u32,
11781    pub uniform_and_storage_buffer16_bit_access: u32,
11782    pub storage_push_constant16: u32,
11783    pub storage_input_output16: u32,
11784}
11785impl Default for PhysicalDevice16BitStorageFeatures {
11786    #[inline]
11787    fn default() -> Self {
11788        Self {
11789            s_type: StructureType::from_raw(1000083000i32),
11790            p_next: core::ptr::null_mut(),
11791            storage_buffer16_bit_access: Default::default(),
11792            uniform_and_storage_buffer16_bit_access: Default::default(),
11793            storage_push_constant16: Default::default(),
11794            storage_input_output16: Default::default(),
11795        }
11796    }
11797}
11798///[`VkPhysicalDeviceSubgroupProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubgroupProperties.html)
11799/**
11800Provided by **VK_COMPUTE_VERSION_1_1**.*/
11801/**
11802**Returned only**, filled by Vulkan, not constructed by the application.*/
11803///
11804///# Extends
11805///- [`PhysicalDeviceProperties2`]
11806#[repr(C)]
11807#[derive(Copy, Clone, Debug)]
11808#[doc(alias = "VkPhysicalDeviceSubgroupProperties")]
11809pub struct PhysicalDeviceSubgroupProperties {
11810    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES`.
11811    pub s_type: StructureType,
11812    ///Optional, may be null.
11813    pub p_next: *mut core::ffi::c_void,
11814    pub subgroup_size: u32,
11815    pub supported_stages: ShaderStageFlags,
11816    pub supported_operations: SubgroupFeatureFlags,
11817    pub quad_operations_in_all_stages: u32,
11818}
11819impl Default for PhysicalDeviceSubgroupProperties {
11820    #[inline]
11821    fn default() -> Self {
11822        Self {
11823            s_type: StructureType::from_raw(1000094000i32),
11824            p_next: core::ptr::null_mut(),
11825            subgroup_size: Default::default(),
11826            supported_stages: Default::default(),
11827            supported_operations: Default::default(),
11828            quad_operations_in_all_stages: Default::default(),
11829        }
11830    }
11831}
11832///[`VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.html)
11833/**
11834Provided by **VK_COMPUTE_VERSION_1_2**.*/
11835///
11836///# Extends
11837///- [`PhysicalDeviceFeatures2`]
11838///- [`DeviceCreateInfo`]
11839#[repr(C)]
11840#[derive(Copy, Clone, Debug)]
11841#[doc(alias = "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures")]
11842pub struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
11843    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES`.
11844    pub s_type: StructureType,
11845    ///Optional, may be null.
11846    pub p_next: *mut core::ffi::c_void,
11847    pub shader_subgroup_extended_types: u32,
11848}
11849impl Default for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
11850    #[inline]
11851    fn default() -> Self {
11852        Self {
11853            s_type: StructureType::from_raw(1000175000i32),
11854            p_next: core::ptr::null_mut(),
11855            shader_subgroup_extended_types: Default::default(),
11856        }
11857    }
11858}
11859///[`VkBufferMemoryRequirementsInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferMemoryRequirementsInfo2.html)
11860/**
11861Provided by **VK_BASE_VERSION_1_1**.*/
11862#[repr(C)]
11863#[derive(Copy, Clone, Debug)]
11864#[doc(alias = "VkBufferMemoryRequirementsInfo2")]
11865pub struct BufferMemoryRequirementsInfo2 {
11866    ///Must be `VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2`.
11867    pub s_type: StructureType,
11868    ///Optional, may be null.
11869    pub p_next: *const core::ffi::c_void,
11870    pub buffer: Buffer,
11871}
11872impl Default for BufferMemoryRequirementsInfo2 {
11873    #[inline]
11874    fn default() -> Self {
11875        Self {
11876            s_type: StructureType::from_raw(1000146000i32),
11877            p_next: core::ptr::null(),
11878            buffer: Default::default(),
11879        }
11880    }
11881}
11882///[`VkDeviceBufferMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceBufferMemoryRequirements.html)
11883/**
11884Provided by **VK_BASE_VERSION_1_3**.*/
11885#[repr(C)]
11886#[derive(Copy, Clone, Debug)]
11887#[doc(alias = "VkDeviceBufferMemoryRequirements")]
11888pub struct DeviceBufferMemoryRequirements {
11889    ///Must be `VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS`.
11890    pub s_type: StructureType,
11891    ///Optional, may be null.
11892    pub p_next: *const core::ffi::c_void,
11893    pub p_create_info: *const BufferCreateInfo,
11894}
11895impl Default for DeviceBufferMemoryRequirements {
11896    #[inline]
11897    fn default() -> Self {
11898        Self {
11899            s_type: StructureType::from_raw(1000413002i32),
11900            p_next: core::ptr::null(),
11901            p_create_info: core::ptr::null(),
11902        }
11903    }
11904}
11905///[`VkImageMemoryRequirementsInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageMemoryRequirementsInfo2.html)
11906/**
11907Provided by **VK_BASE_VERSION_1_1**.*/
11908///
11909///# Extended By
11910///- [`ImagePlaneMemoryRequirementsInfo`]
11911#[repr(C)]
11912#[derive(Copy, Clone, Debug)]
11913#[doc(alias = "VkImageMemoryRequirementsInfo2")]
11914pub struct ImageMemoryRequirementsInfo2 {
11915    ///Must be `VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2`.
11916    pub s_type: StructureType,
11917    ///Optional, may be null.
11918    pub p_next: *const core::ffi::c_void,
11919    pub image: Image,
11920}
11921impl Default for ImageMemoryRequirementsInfo2 {
11922    #[inline]
11923    fn default() -> Self {
11924        Self {
11925            s_type: StructureType::from_raw(1000146001i32),
11926            p_next: core::ptr::null(),
11927            image: Default::default(),
11928        }
11929    }
11930}
11931///[`VkImageSparseMemoryRequirementsInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSparseMemoryRequirementsInfo2.html)
11932/**
11933Provided by **VK_BASE_VERSION_1_1**.*/
11934#[repr(C)]
11935#[derive(Copy, Clone, Debug)]
11936#[doc(alias = "VkImageSparseMemoryRequirementsInfo2")]
11937pub struct ImageSparseMemoryRequirementsInfo2 {
11938    ///Must be `VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2`.
11939    pub s_type: StructureType,
11940    ///Optional, may be null.
11941    pub p_next: *const core::ffi::c_void,
11942    pub image: Image,
11943}
11944impl Default for ImageSparseMemoryRequirementsInfo2 {
11945    #[inline]
11946    fn default() -> Self {
11947        Self {
11948            s_type: StructureType::from_raw(1000146002i32),
11949            p_next: core::ptr::null(),
11950            image: Default::default(),
11951        }
11952    }
11953}
11954///[`VkDeviceImageMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceImageMemoryRequirements.html)
11955/**
11956Provided by **VK_BASE_VERSION_1_3**.*/
11957#[repr(C)]
11958#[derive(Copy, Clone, Debug)]
11959#[doc(alias = "VkDeviceImageMemoryRequirements")]
11960pub struct DeviceImageMemoryRequirements {
11961    ///Must be `VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS`.
11962    pub s_type: StructureType,
11963    ///Optional, may be null.
11964    pub p_next: *const core::ffi::c_void,
11965    pub p_create_info: *const ImageCreateInfo,
11966    pub plane_aspect: ImageAspectFlagBits,
11967}
11968impl Default for DeviceImageMemoryRequirements {
11969    #[inline]
11970    fn default() -> Self {
11971        Self {
11972            s_type: StructureType::from_raw(1000413003i32),
11973            p_next: core::ptr::null(),
11974            p_create_info: core::ptr::null(),
11975            plane_aspect: Default::default(),
11976        }
11977    }
11978}
11979///[`VkMemoryRequirements2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryRequirements2.html)
11980/**
11981Provided by **VK_BASE_VERSION_1_1**.*/
11982/**
11983**Returned only**, filled by Vulkan, not constructed by the application.*/
11984///
11985///# Extended By
11986///- [`MemoryDedicatedRequirements`]
11987///- [`TileMemoryRequirementsQCOM`]
11988#[repr(C)]
11989#[derive(Copy, Clone, Debug)]
11990#[doc(alias = "VkMemoryRequirements2")]
11991pub struct MemoryRequirements2 {
11992    ///Must be `VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2`.
11993    pub s_type: StructureType,
11994    ///Optional, may be null.
11995    pub p_next: *mut core::ffi::c_void,
11996    pub memory_requirements: MemoryRequirements,
11997}
11998impl Default for MemoryRequirements2 {
11999    #[inline]
12000    fn default() -> Self {
12001        Self {
12002            s_type: StructureType::from_raw(1000146003i32),
12003            p_next: core::ptr::null_mut(),
12004            memory_requirements: Default::default(),
12005        }
12006    }
12007}
12008///[`VkSparseImageMemoryRequirements2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSparseImageMemoryRequirements2.html)
12009/**
12010Provided by **VK_BASE_VERSION_1_1**.*/
12011/**
12012**Returned only**, filled by Vulkan, not constructed by the application.*/
12013#[repr(C)]
12014#[derive(Copy, Clone, Debug)]
12015#[doc(alias = "VkSparseImageMemoryRequirements2")]
12016pub struct SparseImageMemoryRequirements2 {
12017    ///Must be `VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2`.
12018    pub s_type: StructureType,
12019    ///Optional, may be null.
12020    pub p_next: *mut core::ffi::c_void,
12021    pub memory_requirements: SparseImageMemoryRequirements,
12022}
12023impl Default for SparseImageMemoryRequirements2 {
12024    #[inline]
12025    fn default() -> Self {
12026        Self {
12027            s_type: StructureType::from_raw(1000146004i32),
12028            p_next: core::ptr::null_mut(),
12029            memory_requirements: Default::default(),
12030        }
12031    }
12032}
12033///[`VkPhysicalDevicePointClippingProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePointClippingProperties.html)
12034/**
12035Provided by **VK_GRAPHICS_VERSION_1_1**.*/
12036/**
12037**Returned only**, filled by Vulkan, not constructed by the application.*/
12038///
12039///# Extends
12040///- [`PhysicalDeviceProperties2`]
12041#[repr(C)]
12042#[derive(Copy, Clone, Debug)]
12043#[doc(alias = "VkPhysicalDevicePointClippingProperties")]
12044pub struct PhysicalDevicePointClippingProperties {
12045    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES`.
12046    pub s_type: StructureType,
12047    ///Optional, may be null.
12048    pub p_next: *mut core::ffi::c_void,
12049    pub point_clipping_behavior: PointClippingBehavior,
12050}
12051impl Default for PhysicalDevicePointClippingProperties {
12052    #[inline]
12053    fn default() -> Self {
12054        Self {
12055            s_type: StructureType::from_raw(1000117000i32),
12056            p_next: core::ptr::null_mut(),
12057            point_clipping_behavior: Default::default(),
12058        }
12059    }
12060}
12061///[`VkMemoryDedicatedRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryDedicatedRequirements.html)
12062/**
12063Provided by **VK_BASE_VERSION_1_1**.*/
12064/**
12065**Returned only**, filled by Vulkan, not constructed by the application.*/
12066///
12067///# Extends
12068///- [`MemoryRequirements2`]
12069#[repr(C)]
12070#[derive(Copy, Clone, Debug)]
12071#[doc(alias = "VkMemoryDedicatedRequirements")]
12072pub struct MemoryDedicatedRequirements {
12073    ///Must be `VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS`.
12074    pub s_type: StructureType,
12075    ///Optional, may be null.
12076    pub p_next: *mut core::ffi::c_void,
12077    pub prefers_dedicated_allocation: u32,
12078    pub requires_dedicated_allocation: u32,
12079}
12080impl Default for MemoryDedicatedRequirements {
12081    #[inline]
12082    fn default() -> Self {
12083        Self {
12084            s_type: StructureType::from_raw(1000127000i32),
12085            p_next: core::ptr::null_mut(),
12086            prefers_dedicated_allocation: Default::default(),
12087            requires_dedicated_allocation: Default::default(),
12088        }
12089    }
12090}
12091///[`VkMemoryDedicatedAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryDedicatedAllocateInfo.html)
12092/**
12093Provided by **VK_BASE_VERSION_1_1**.*/
12094///
12095///# Extends
12096///- [`MemoryAllocateInfo`]
12097#[repr(C)]
12098#[derive(Copy, Clone, Debug)]
12099#[doc(alias = "VkMemoryDedicatedAllocateInfo")]
12100pub struct MemoryDedicatedAllocateInfo {
12101    ///Must be `VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO`.
12102    pub s_type: StructureType,
12103    ///Optional, may be null.
12104    pub p_next: *const core::ffi::c_void,
12105    pub image: Image,
12106    pub buffer: Buffer,
12107}
12108impl Default for MemoryDedicatedAllocateInfo {
12109    #[inline]
12110    fn default() -> Self {
12111        Self {
12112            s_type: StructureType::from_raw(1000127001i32),
12113            p_next: core::ptr::null(),
12114            image: Default::default(),
12115            buffer: Default::default(),
12116        }
12117    }
12118}
12119///[`VkImageViewUsageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewUsageCreateInfo.html)
12120/**
12121Provided by **VK_BASE_VERSION_1_1**.*/
12122///
12123///# Extends
12124///- [`ImageViewCreateInfo`]
12125#[repr(C)]
12126#[derive(Copy, Clone, Debug)]
12127#[doc(alias = "VkImageViewUsageCreateInfo")]
12128pub struct ImageViewUsageCreateInfo {
12129    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO`.
12130    pub s_type: StructureType,
12131    ///Optional, may be null.
12132    pub p_next: *const core::ffi::c_void,
12133    pub usage: ImageUsageFlags,
12134}
12135impl Default for ImageViewUsageCreateInfo {
12136    #[inline]
12137    fn default() -> Self {
12138        Self {
12139            s_type: StructureType::from_raw(1000117002i32),
12140            p_next: core::ptr::null(),
12141            usage: Default::default(),
12142        }
12143    }
12144}
12145///[`VkImageViewSlicedCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewSlicedCreateInfoEXT.html)
12146/**
12147Provided by **VK_EXT_image_sliced_view_of_3d**.*/
12148///
12149///# Extends
12150///- [`ImageViewCreateInfo`]
12151#[repr(C)]
12152#[derive(Copy, Clone, Debug)]
12153#[doc(alias = "VkImageViewSlicedCreateInfoEXT")]
12154pub struct ImageViewSlicedCreateInfoEXT {
12155    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT`.
12156    pub s_type: StructureType,
12157    ///Optional, may be null.
12158    pub p_next: *const core::ffi::c_void,
12159    pub slice_offset: u32,
12160    pub slice_count: u32,
12161}
12162impl Default for ImageViewSlicedCreateInfoEXT {
12163    #[inline]
12164    fn default() -> Self {
12165        Self {
12166            s_type: StructureType::from_raw(1000418001i32),
12167            p_next: core::ptr::null(),
12168            slice_offset: Default::default(),
12169            slice_count: Default::default(),
12170        }
12171    }
12172}
12173///[`VkPipelineTessellationDomainOriginStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineTessellationDomainOriginStateCreateInfo.html)
12174/**
12175Provided by **VK_GRAPHICS_VERSION_1_1**.*/
12176///
12177///# Extends
12178///- [`PipelineTessellationStateCreateInfo`]
12179#[repr(C)]
12180#[derive(Copy, Clone, Debug)]
12181#[doc(alias = "VkPipelineTessellationDomainOriginStateCreateInfo")]
12182pub struct PipelineTessellationDomainOriginStateCreateInfo {
12183    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO`.
12184    pub s_type: StructureType,
12185    ///Optional, may be null.
12186    pub p_next: *const core::ffi::c_void,
12187    pub domain_origin: TessellationDomainOrigin,
12188}
12189impl Default for PipelineTessellationDomainOriginStateCreateInfo {
12190    #[inline]
12191    fn default() -> Self {
12192        Self {
12193            s_type: StructureType::from_raw(1000117003i32),
12194            p_next: core::ptr::null(),
12195            domain_origin: Default::default(),
12196        }
12197    }
12198}
12199///[`VkSamplerYcbcrConversionInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerYcbcrConversionInfo.html)
12200/**
12201Provided by **VK_COMPUTE_VERSION_1_1**.*/
12202///
12203///# Extends
12204///- [`SamplerCreateInfo`]
12205///- [`ImageViewCreateInfo`]
12206#[repr(C)]
12207#[derive(Copy, Clone, Debug)]
12208#[doc(alias = "VkSamplerYcbcrConversionInfo")]
12209pub struct SamplerYcbcrConversionInfo {
12210    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO`.
12211    pub s_type: StructureType,
12212    ///Optional, may be null.
12213    pub p_next: *const core::ffi::c_void,
12214    pub conversion: SamplerYcbcrConversion,
12215}
12216impl Default for SamplerYcbcrConversionInfo {
12217    #[inline]
12218    fn default() -> Self {
12219        Self {
12220            s_type: StructureType::from_raw(1000156001i32),
12221            p_next: core::ptr::null(),
12222            conversion: Default::default(),
12223        }
12224    }
12225}
12226///[`VkSamplerYcbcrConversionCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerYcbcrConversionCreateInfo.html)
12227/**
12228Provided by **VK_COMPUTE_VERSION_1_1**.*/
12229///
12230///# Extended By
12231///- [`ExternalFormatANDROID`]
12232///- [`ExternalFormatOHOS`]
12233///- [`ExternalFormatQNX`]
12234///- [`SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM`]
12235#[repr(C)]
12236#[derive(Copy, Clone, Debug)]
12237#[doc(alias = "VkSamplerYcbcrConversionCreateInfo")]
12238pub struct SamplerYcbcrConversionCreateInfo {
12239    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO`.
12240    pub s_type: StructureType,
12241    ///Optional, may be null.
12242    pub p_next: *const core::ffi::c_void,
12243    pub format: Format,
12244    pub ycbcr_model: SamplerYcbcrModelConversion,
12245    pub ycbcr_range: SamplerYcbcrRange,
12246    pub components: ComponentMapping,
12247    pub x_chroma_offset: ChromaLocation,
12248    pub y_chroma_offset: ChromaLocation,
12249    pub chroma_filter: Filter,
12250    pub force_explicit_reconstruction: u32,
12251}
12252impl Default for SamplerYcbcrConversionCreateInfo {
12253    #[inline]
12254    fn default() -> Self {
12255        Self {
12256            s_type: StructureType::from_raw(1000156000i32),
12257            p_next: core::ptr::null(),
12258            format: Default::default(),
12259            ycbcr_model: Default::default(),
12260            ycbcr_range: Default::default(),
12261            components: Default::default(),
12262            x_chroma_offset: Default::default(),
12263            y_chroma_offset: Default::default(),
12264            chroma_filter: Default::default(),
12265            force_explicit_reconstruction: Default::default(),
12266        }
12267    }
12268}
12269///[`VkBindImagePlaneMemoryInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindImagePlaneMemoryInfo.html)
12270/**
12271Provided by **VK_BASE_VERSION_1_1**.*/
12272///
12273///# Extends
12274///- [`BindImageMemoryInfo`]
12275#[repr(C)]
12276#[derive(Copy, Clone, Debug)]
12277#[doc(alias = "VkBindImagePlaneMemoryInfo")]
12278pub struct BindImagePlaneMemoryInfo {
12279    ///Must be `VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO`.
12280    pub s_type: StructureType,
12281    ///Optional, may be null.
12282    pub p_next: *const core::ffi::c_void,
12283    pub plane_aspect: ImageAspectFlagBits,
12284}
12285impl Default for BindImagePlaneMemoryInfo {
12286    #[inline]
12287    fn default() -> Self {
12288        Self {
12289            s_type: StructureType::from_raw(1000156002i32),
12290            p_next: core::ptr::null(),
12291            plane_aspect: Default::default(),
12292        }
12293    }
12294}
12295///[`VkImagePlaneMemoryRequirementsInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImagePlaneMemoryRequirementsInfo.html)
12296/**
12297Provided by **VK_BASE_VERSION_1_1**.*/
12298///
12299///# Extends
12300///- [`ImageMemoryRequirementsInfo2`]
12301#[repr(C)]
12302#[derive(Copy, Clone, Debug)]
12303#[doc(alias = "VkImagePlaneMemoryRequirementsInfo")]
12304pub struct ImagePlaneMemoryRequirementsInfo {
12305    ///Must be `VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO`.
12306    pub s_type: StructureType,
12307    ///Optional, may be null.
12308    pub p_next: *const core::ffi::c_void,
12309    pub plane_aspect: ImageAspectFlagBits,
12310}
12311impl Default for ImagePlaneMemoryRequirementsInfo {
12312    #[inline]
12313    fn default() -> Self {
12314        Self {
12315            s_type: StructureType::from_raw(1000156003i32),
12316            p_next: core::ptr::null(),
12317            plane_aspect: Default::default(),
12318        }
12319    }
12320}
12321///[`VkPhysicalDeviceSamplerYcbcrConversionFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeatures.html)
12322/**
12323Provided by **VK_COMPUTE_VERSION_1_1**.*/
12324///
12325///# Extends
12326///- [`PhysicalDeviceFeatures2`]
12327///- [`DeviceCreateInfo`]
12328#[repr(C)]
12329#[derive(Copy, Clone, Debug)]
12330#[doc(alias = "VkPhysicalDeviceSamplerYcbcrConversionFeatures")]
12331pub struct PhysicalDeviceSamplerYcbcrConversionFeatures {
12332    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES`.
12333    pub s_type: StructureType,
12334    ///Optional, may be null.
12335    pub p_next: *mut core::ffi::c_void,
12336    pub sampler_ycbcr_conversion: u32,
12337}
12338impl Default for PhysicalDeviceSamplerYcbcrConversionFeatures {
12339    #[inline]
12340    fn default() -> Self {
12341        Self {
12342            s_type: StructureType::from_raw(1000156004i32),
12343            p_next: core::ptr::null_mut(),
12344            sampler_ycbcr_conversion: Default::default(),
12345        }
12346    }
12347}
12348///[`VkSamplerYcbcrConversionImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerYcbcrConversionImageFormatProperties.html)
12349/**
12350Provided by **VK_COMPUTE_VERSION_1_1**.*/
12351/**
12352**Returned only**, filled by Vulkan, not constructed by the application.*/
12353///
12354///# Extends
12355///- [`ImageFormatProperties2`]
12356#[repr(C)]
12357#[derive(Copy, Clone, Debug)]
12358#[doc(alias = "VkSamplerYcbcrConversionImageFormatProperties")]
12359pub struct SamplerYcbcrConversionImageFormatProperties {
12360    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES`.
12361    pub s_type: StructureType,
12362    ///Optional, may be null.
12363    pub p_next: *mut core::ffi::c_void,
12364    pub combined_image_sampler_descriptor_count: u32,
12365}
12366impl Default for SamplerYcbcrConversionImageFormatProperties {
12367    #[inline]
12368    fn default() -> Self {
12369        Self {
12370            s_type: StructureType::from_raw(1000156005i32),
12371            p_next: core::ptr::null_mut(),
12372            combined_image_sampler_descriptor_count: Default::default(),
12373        }
12374    }
12375}
12376///[`VkTextureLODGatherFormatPropertiesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTextureLODGatherFormatPropertiesAMD.html)
12377/**
12378Provided by **VK_AMD_texture_gather_bias_lod**.*/
12379/**
12380**Returned only**, filled by Vulkan, not constructed by the application.*/
12381///
12382///# Extends
12383///- [`ImageFormatProperties2`]
12384#[repr(C)]
12385#[derive(Copy, Clone, Debug)]
12386#[doc(alias = "VkTextureLODGatherFormatPropertiesAMD")]
12387pub struct TextureLODGatherFormatPropertiesAMD {
12388    ///Must be `VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD`.
12389    pub s_type: StructureType,
12390    ///Optional, may be null.
12391    pub p_next: *mut core::ffi::c_void,
12392    pub supports_texture_gather_lod_bias_amd: u32,
12393}
12394impl Default for TextureLODGatherFormatPropertiesAMD {
12395    #[inline]
12396    fn default() -> Self {
12397        Self {
12398            s_type: StructureType::from_raw(1000041000i32),
12399            p_next: core::ptr::null_mut(),
12400            supports_texture_gather_lod_bias_amd: Default::default(),
12401        }
12402    }
12403}
12404///[`VkConditionalRenderingBeginInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkConditionalRenderingBeginInfoEXT.html)
12405/**
12406Provided by **VK_EXT_conditional_rendering**.*/
12407#[repr(C)]
12408#[derive(Copy, Clone, Debug)]
12409#[doc(alias = "VkConditionalRenderingBeginInfoEXT")]
12410pub struct ConditionalRenderingBeginInfoEXT {
12411    ///Must be `VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT`.
12412    pub s_type: StructureType,
12413    ///Optional, may be null.
12414    pub p_next: *const core::ffi::c_void,
12415    pub buffer: Buffer,
12416    pub offset: u64,
12417    pub flags: ConditionalRenderingFlagsEXT,
12418}
12419impl Default for ConditionalRenderingBeginInfoEXT {
12420    #[inline]
12421    fn default() -> Self {
12422        Self {
12423            s_type: StructureType::from_raw(1000081002i32),
12424            p_next: core::ptr::null(),
12425            buffer: Default::default(),
12426            offset: Default::default(),
12427            flags: Default::default(),
12428        }
12429    }
12430}
12431///[`VkProtectedSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkProtectedSubmitInfo.html)
12432/**
12433Provided by **VK_BASE_VERSION_1_1**.*/
12434///
12435///# Extends
12436///- [`SubmitInfo`]
12437#[repr(C)]
12438#[derive(Copy, Clone, Debug)]
12439#[doc(alias = "VkProtectedSubmitInfo")]
12440pub struct ProtectedSubmitInfo {
12441    ///Must be `VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO`.
12442    pub s_type: StructureType,
12443    ///Optional, may be null.
12444    pub p_next: *const core::ffi::c_void,
12445    pub protected_submit: u32,
12446}
12447impl Default for ProtectedSubmitInfo {
12448    #[inline]
12449    fn default() -> Self {
12450        Self {
12451            s_type: StructureType::from_raw(1000145000i32),
12452            p_next: core::ptr::null(),
12453            protected_submit: Default::default(),
12454        }
12455    }
12456}
12457///[`VkPhysicalDeviceProtectedMemoryFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProtectedMemoryFeatures.html)
12458/**
12459Provided by **VK_BASE_VERSION_1_1**.*/
12460///
12461///# Extends
12462///- [`PhysicalDeviceFeatures2`]
12463///- [`DeviceCreateInfo`]
12464#[repr(C)]
12465#[derive(Copy, Clone, Debug)]
12466#[doc(alias = "VkPhysicalDeviceProtectedMemoryFeatures")]
12467pub struct PhysicalDeviceProtectedMemoryFeatures {
12468    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES`.
12469    pub s_type: StructureType,
12470    ///Optional, may be null.
12471    pub p_next: *mut core::ffi::c_void,
12472    pub protected_memory: u32,
12473}
12474impl Default for PhysicalDeviceProtectedMemoryFeatures {
12475    #[inline]
12476    fn default() -> Self {
12477        Self {
12478            s_type: StructureType::from_raw(1000145001i32),
12479            p_next: core::ptr::null_mut(),
12480            protected_memory: Default::default(),
12481        }
12482    }
12483}
12484///[`VkPhysicalDeviceProtectedMemoryProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProtectedMemoryProperties.html)
12485/**
12486Provided by **VK_BASE_VERSION_1_1**.*/
12487/**
12488**Returned only**, filled by Vulkan, not constructed by the application.*/
12489///
12490///# Extends
12491///- [`PhysicalDeviceProperties2`]
12492#[repr(C)]
12493#[derive(Copy, Clone, Debug)]
12494#[doc(alias = "VkPhysicalDeviceProtectedMemoryProperties")]
12495pub struct PhysicalDeviceProtectedMemoryProperties {
12496    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES`.
12497    pub s_type: StructureType,
12498    ///Optional, may be null.
12499    pub p_next: *mut core::ffi::c_void,
12500    pub protected_no_fault: u32,
12501}
12502impl Default for PhysicalDeviceProtectedMemoryProperties {
12503    #[inline]
12504    fn default() -> Self {
12505        Self {
12506            s_type: StructureType::from_raw(1000145002i32),
12507            p_next: core::ptr::null_mut(),
12508            protected_no_fault: Default::default(),
12509        }
12510    }
12511}
12512///[`VkDeviceQueueInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceQueueInfo2.html)
12513/**
12514Provided by **VK_BASE_VERSION_1_1**.*/
12515#[repr(C)]
12516#[derive(Copy, Clone, Debug)]
12517#[doc(alias = "VkDeviceQueueInfo2")]
12518pub struct DeviceQueueInfo2 {
12519    ///Must be `VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2`.
12520    pub s_type: StructureType,
12521    ///Optional, may be null.
12522    pub p_next: *const core::ffi::c_void,
12523    pub flags: DeviceQueueCreateFlags,
12524    pub queue_family_index: u32,
12525    pub queue_index: u32,
12526}
12527impl Default for DeviceQueueInfo2 {
12528    #[inline]
12529    fn default() -> Self {
12530        Self {
12531            s_type: StructureType::from_raw(1000145003i32),
12532            p_next: core::ptr::null(),
12533            flags: Default::default(),
12534            queue_family_index: Default::default(),
12535            queue_index: Default::default(),
12536        }
12537    }
12538}
12539///[`VkPipelineCoverageToColorStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCoverageToColorStateCreateInfoNV.html)
12540/**
12541Provided by **VK_NV_fragment_coverage_to_color**.*/
12542///
12543///# Extends
12544///- [`PipelineMultisampleStateCreateInfo`]
12545#[repr(C)]
12546#[derive(Copy, Clone, Debug)]
12547#[doc(alias = "VkPipelineCoverageToColorStateCreateInfoNV")]
12548pub struct PipelineCoverageToColorStateCreateInfoNV {
12549    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV`.
12550    pub s_type: StructureType,
12551    ///Optional, may be null.
12552    pub p_next: *const core::ffi::c_void,
12553    pub flags: PipelineCoverageToColorStateCreateFlagsNV,
12554    pub coverage_to_color_enable: u32,
12555    pub coverage_to_color_location: u32,
12556}
12557impl Default for PipelineCoverageToColorStateCreateInfoNV {
12558    #[inline]
12559    fn default() -> Self {
12560        Self {
12561            s_type: StructureType::from_raw(1000149000i32),
12562            p_next: core::ptr::null(),
12563            flags: Default::default(),
12564            coverage_to_color_enable: Default::default(),
12565            coverage_to_color_location: Default::default(),
12566        }
12567    }
12568}
12569///[`VkPhysicalDeviceSamplerFilterMinmaxProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSamplerFilterMinmaxProperties.html)
12570/**
12571Provided by **VK_COMPUTE_VERSION_1_2**.*/
12572/**
12573**Returned only**, filled by Vulkan, not constructed by the application.*/
12574///
12575///# Extends
12576///- [`PhysicalDeviceProperties2`]
12577#[repr(C)]
12578#[derive(Copy, Clone, Debug)]
12579#[doc(alias = "VkPhysicalDeviceSamplerFilterMinmaxProperties")]
12580pub struct PhysicalDeviceSamplerFilterMinmaxProperties {
12581    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES`.
12582    pub s_type: StructureType,
12583    ///Optional, may be null.
12584    pub p_next: *mut core::ffi::c_void,
12585    pub filter_minmax_single_component_formats: u32,
12586    pub filter_minmax_image_component_mapping: u32,
12587}
12588impl Default for PhysicalDeviceSamplerFilterMinmaxProperties {
12589    #[inline]
12590    fn default() -> Self {
12591        Self {
12592            s_type: StructureType::from_raw(1000130000i32),
12593            p_next: core::ptr::null_mut(),
12594            filter_minmax_single_component_formats: Default::default(),
12595            filter_minmax_image_component_mapping: Default::default(),
12596        }
12597    }
12598}
12599///[`VkSampleLocationEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSampleLocationEXT.html)
12600/**
12601Provided by **VK_EXT_sample_locations**.*/
12602#[repr(C)]
12603#[derive(Copy, Clone, Debug)]
12604#[doc(alias = "VkSampleLocationEXT")]
12605pub struct SampleLocationEXT {
12606    pub x: f32,
12607    pub y: f32,
12608}
12609impl Default for SampleLocationEXT {
12610    #[inline]
12611    fn default() -> Self {
12612        unsafe { core::mem::zeroed() }
12613    }
12614}
12615///[`VkSampleLocationsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSampleLocationsInfoEXT.html)
12616/**
12617Provided by **VK_EXT_sample_locations**.*/
12618///
12619///# Extends
12620///- [`ImageMemoryBarrier`]
12621///- [`ImageMemoryBarrier2`]
12622#[repr(C)]
12623#[derive(Copy, Clone, Debug)]
12624#[doc(alias = "VkSampleLocationsInfoEXT")]
12625pub struct SampleLocationsInfoEXT {
12626    ///Must be `VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT`.
12627    pub s_type: StructureType,
12628    ///Optional, may be null.
12629    pub p_next: *const core::ffi::c_void,
12630    pub sample_locations_per_pixel: SampleCountFlagBits,
12631    pub sample_location_grid_size: Extent2D,
12632    ///Length of `p_sample_locations`.
12633    pub sample_locations_count: u32,
12634    pub p_sample_locations: *const SampleLocationEXT,
12635}
12636impl Default for SampleLocationsInfoEXT {
12637    #[inline]
12638    fn default() -> Self {
12639        Self {
12640            s_type: StructureType::from_raw(1000143000i32),
12641            p_next: core::ptr::null(),
12642            sample_locations_per_pixel: Default::default(),
12643            sample_location_grid_size: Default::default(),
12644            sample_locations_count: Default::default(),
12645            p_sample_locations: core::ptr::null(),
12646        }
12647    }
12648}
12649///[`VkAttachmentSampleLocationsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentSampleLocationsEXT.html)
12650/**
12651Provided by **VK_EXT_sample_locations**.*/
12652#[repr(C)]
12653#[derive(Copy, Clone, Debug)]
12654#[doc(alias = "VkAttachmentSampleLocationsEXT")]
12655pub struct AttachmentSampleLocationsEXT {
12656    pub attachment_index: u32,
12657    pub sample_locations_info: SampleLocationsInfoEXT,
12658}
12659impl Default for AttachmentSampleLocationsEXT {
12660    #[inline]
12661    fn default() -> Self {
12662        unsafe { core::mem::zeroed() }
12663    }
12664}
12665///[`VkSubpassSampleLocationsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassSampleLocationsEXT.html)
12666/**
12667Provided by **VK_EXT_sample_locations**.*/
12668#[repr(C)]
12669#[derive(Copy, Clone, Debug)]
12670#[doc(alias = "VkSubpassSampleLocationsEXT")]
12671pub struct SubpassSampleLocationsEXT {
12672    pub subpass_index: u32,
12673    pub sample_locations_info: SampleLocationsInfoEXT,
12674}
12675impl Default for SubpassSampleLocationsEXT {
12676    #[inline]
12677    fn default() -> Self {
12678        unsafe { core::mem::zeroed() }
12679    }
12680}
12681///[`VkRenderPassSampleLocationsBeginInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassSampleLocationsBeginInfoEXT.html)
12682/**
12683Provided by **VK_EXT_sample_locations**.*/
12684///
12685///# Extends
12686///- [`RenderPassBeginInfo`]
12687#[repr(C)]
12688#[derive(Copy, Clone, Debug)]
12689#[doc(alias = "VkRenderPassSampleLocationsBeginInfoEXT")]
12690pub struct RenderPassSampleLocationsBeginInfoEXT {
12691    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT`.
12692    pub s_type: StructureType,
12693    ///Optional, may be null.
12694    pub p_next: *const core::ffi::c_void,
12695    ///Length of `p_attachment_initial_sample_locations`.
12696    pub attachment_initial_sample_locations_count: u32,
12697    pub p_attachment_initial_sample_locations: *const AttachmentSampleLocationsEXT,
12698    ///Length of `p_post_subpass_sample_locations`.
12699    pub post_subpass_sample_locations_count: u32,
12700    pub p_post_subpass_sample_locations: *const SubpassSampleLocationsEXT,
12701}
12702impl Default for RenderPassSampleLocationsBeginInfoEXT {
12703    #[inline]
12704    fn default() -> Self {
12705        Self {
12706            s_type: StructureType::from_raw(1000143001i32),
12707            p_next: core::ptr::null(),
12708            attachment_initial_sample_locations_count: Default::default(),
12709            p_attachment_initial_sample_locations: core::ptr::null(),
12710            post_subpass_sample_locations_count: Default::default(),
12711            p_post_subpass_sample_locations: core::ptr::null(),
12712        }
12713    }
12714}
12715///[`VkPipelineSampleLocationsStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineSampleLocationsStateCreateInfoEXT.html)
12716/**
12717Provided by **VK_EXT_sample_locations**.*/
12718///
12719///# Extends
12720///- [`PipelineMultisampleStateCreateInfo`]
12721#[repr(C)]
12722#[derive(Copy, Clone, Debug)]
12723#[doc(alias = "VkPipelineSampleLocationsStateCreateInfoEXT")]
12724pub struct PipelineSampleLocationsStateCreateInfoEXT {
12725    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT`.
12726    pub s_type: StructureType,
12727    ///Optional, may be null.
12728    pub p_next: *const core::ffi::c_void,
12729    pub sample_locations_enable: u32,
12730    pub sample_locations_info: SampleLocationsInfoEXT,
12731}
12732impl Default for PipelineSampleLocationsStateCreateInfoEXT {
12733    #[inline]
12734    fn default() -> Self {
12735        Self {
12736            s_type: StructureType::from_raw(1000143002i32),
12737            p_next: core::ptr::null(),
12738            sample_locations_enable: Default::default(),
12739            sample_locations_info: Default::default(),
12740        }
12741    }
12742}
12743///[`VkPhysicalDeviceSampleLocationsPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSampleLocationsPropertiesEXT.html)
12744/**
12745Provided by **VK_EXT_sample_locations**.*/
12746/**
12747**Returned only**, filled by Vulkan, not constructed by the application.*/
12748///
12749///# Extends
12750///- [`PhysicalDeviceProperties2`]
12751#[repr(C)]
12752#[derive(Copy, Clone, Debug)]
12753#[doc(alias = "VkPhysicalDeviceSampleLocationsPropertiesEXT")]
12754pub struct PhysicalDeviceSampleLocationsPropertiesEXT {
12755    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT`.
12756    pub s_type: StructureType,
12757    ///Optional, may be null.
12758    pub p_next: *mut core::ffi::c_void,
12759    pub sample_location_sample_counts: SampleCountFlags,
12760    pub max_sample_location_grid_size: Extent2D,
12761    pub sample_location_coordinate_range: [f32; 2usize],
12762    pub sample_location_sub_pixel_bits: u32,
12763    pub variable_sample_locations: u32,
12764}
12765impl Default for PhysicalDeviceSampleLocationsPropertiesEXT {
12766    #[inline]
12767    fn default() -> Self {
12768        Self {
12769            s_type: StructureType::from_raw(1000143003i32),
12770            p_next: core::ptr::null_mut(),
12771            sample_location_sample_counts: Default::default(),
12772            max_sample_location_grid_size: Default::default(),
12773            sample_location_coordinate_range: unsafe { core::mem::zeroed() },
12774            sample_location_sub_pixel_bits: Default::default(),
12775            variable_sample_locations: Default::default(),
12776        }
12777    }
12778}
12779///[`VkMultisamplePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultisamplePropertiesEXT.html)
12780/**
12781Provided by **VK_EXT_sample_locations**.*/
12782/**
12783**Returned only**, filled by Vulkan, not constructed by the application.*/
12784#[repr(C)]
12785#[derive(Copy, Clone, Debug)]
12786#[doc(alias = "VkMultisamplePropertiesEXT")]
12787pub struct MultisamplePropertiesEXT {
12788    ///Must be `VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT`.
12789    pub s_type: StructureType,
12790    ///Optional, may be null.
12791    pub p_next: *mut core::ffi::c_void,
12792    pub max_sample_location_grid_size: Extent2D,
12793}
12794impl Default for MultisamplePropertiesEXT {
12795    #[inline]
12796    fn default() -> Self {
12797        Self {
12798            s_type: StructureType::from_raw(1000143004i32),
12799            p_next: core::ptr::null_mut(),
12800            max_sample_location_grid_size: Default::default(),
12801        }
12802    }
12803}
12804///[`VkSamplerReductionModeCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerReductionModeCreateInfo.html)
12805/**
12806Provided by **VK_COMPUTE_VERSION_1_2**.*/
12807///
12808///# Extends
12809///- [`SamplerCreateInfo`]
12810#[repr(C)]
12811#[derive(Copy, Clone, Debug)]
12812#[doc(alias = "VkSamplerReductionModeCreateInfo")]
12813pub struct SamplerReductionModeCreateInfo {
12814    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO`.
12815    pub s_type: StructureType,
12816    ///Optional, may be null.
12817    pub p_next: *const core::ffi::c_void,
12818    pub reduction_mode: SamplerReductionMode,
12819}
12820impl Default for SamplerReductionModeCreateInfo {
12821    #[inline]
12822    fn default() -> Self {
12823        Self {
12824            s_type: StructureType::from_raw(1000130001i32),
12825            p_next: core::ptr::null(),
12826            reduction_mode: Default::default(),
12827        }
12828    }
12829}
12830///[`VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.html)
12831/**
12832Provided by **VK_EXT_blend_operation_advanced**.*/
12833///
12834///# Extends
12835///- [`PhysicalDeviceFeatures2`]
12836///- [`DeviceCreateInfo`]
12837#[repr(C)]
12838#[derive(Copy, Clone, Debug)]
12839#[doc(alias = "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT")]
12840pub struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
12841    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT`.
12842    pub s_type: StructureType,
12843    ///Optional, may be null.
12844    pub p_next: *mut core::ffi::c_void,
12845    pub advanced_blend_coherent_operations: u32,
12846}
12847impl Default for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
12848    #[inline]
12849    fn default() -> Self {
12850        Self {
12851            s_type: StructureType::from_raw(1000148000i32),
12852            p_next: core::ptr::null_mut(),
12853            advanced_blend_coherent_operations: Default::default(),
12854        }
12855    }
12856}
12857///[`VkPhysicalDeviceMultiDrawFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiDrawFeaturesEXT.html)
12858/**
12859Provided by **VK_EXT_multi_draw**.*/
12860///
12861///# Extends
12862///- [`PhysicalDeviceFeatures2`]
12863///- [`DeviceCreateInfo`]
12864#[repr(C)]
12865#[derive(Copy, Clone, Debug)]
12866#[doc(alias = "VkPhysicalDeviceMultiDrawFeaturesEXT")]
12867pub struct PhysicalDeviceMultiDrawFeaturesEXT {
12868    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT`.
12869    pub s_type: StructureType,
12870    ///Optional, may be null.
12871    pub p_next: *mut core::ffi::c_void,
12872    pub multi_draw: u32,
12873}
12874impl Default for PhysicalDeviceMultiDrawFeaturesEXT {
12875    #[inline]
12876    fn default() -> Self {
12877        Self {
12878            s_type: StructureType::from_raw(1000392000i32),
12879            p_next: core::ptr::null_mut(),
12880            multi_draw: Default::default(),
12881        }
12882    }
12883}
12884///[`VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.html)
12885/**
12886Provided by **VK_EXT_blend_operation_advanced**.*/
12887/**
12888**Returned only**, filled by Vulkan, not constructed by the application.*/
12889///
12890///# Extends
12891///- [`PhysicalDeviceProperties2`]
12892#[repr(C)]
12893#[derive(Copy, Clone, Debug)]
12894#[doc(alias = "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT")]
12895pub struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
12896    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT`.
12897    pub s_type: StructureType,
12898    ///Optional, may be null.
12899    pub p_next: *mut core::ffi::c_void,
12900    pub advanced_blend_max_color_attachments: u32,
12901    pub advanced_blend_independent_blend: u32,
12902    pub advanced_blend_non_premultiplied_src_color: u32,
12903    pub advanced_blend_non_premultiplied_dst_color: u32,
12904    pub advanced_blend_correlated_overlap: u32,
12905    pub advanced_blend_all_operations: u32,
12906}
12907impl Default for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
12908    #[inline]
12909    fn default() -> Self {
12910        Self {
12911            s_type: StructureType::from_raw(1000148001i32),
12912            p_next: core::ptr::null_mut(),
12913            advanced_blend_max_color_attachments: Default::default(),
12914            advanced_blend_independent_blend: Default::default(),
12915            advanced_blend_non_premultiplied_src_color: Default::default(),
12916            advanced_blend_non_premultiplied_dst_color: Default::default(),
12917            advanced_blend_correlated_overlap: Default::default(),
12918            advanced_blend_all_operations: Default::default(),
12919        }
12920    }
12921}
12922///[`VkPipelineColorBlendAdvancedStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineColorBlendAdvancedStateCreateInfoEXT.html)
12923/**
12924Provided by **VK_EXT_blend_operation_advanced**.*/
12925///
12926///# Extends
12927///- [`PipelineColorBlendStateCreateInfo`]
12928#[repr(C)]
12929#[derive(Copy, Clone, Debug)]
12930#[doc(alias = "VkPipelineColorBlendAdvancedStateCreateInfoEXT")]
12931pub struct PipelineColorBlendAdvancedStateCreateInfoEXT {
12932    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT`.
12933    pub s_type: StructureType,
12934    ///Optional, may be null.
12935    pub p_next: *const core::ffi::c_void,
12936    pub src_premultiplied: u32,
12937    pub dst_premultiplied: u32,
12938    pub blend_overlap: BlendOverlapEXT,
12939}
12940impl Default for PipelineColorBlendAdvancedStateCreateInfoEXT {
12941    #[inline]
12942    fn default() -> Self {
12943        Self {
12944            s_type: StructureType::from_raw(1000148002i32),
12945            p_next: core::ptr::null(),
12946            src_premultiplied: Default::default(),
12947            dst_premultiplied: Default::default(),
12948            blend_overlap: Default::default(),
12949        }
12950    }
12951}
12952///[`VkPhysicalDeviceInlineUniformBlockFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInlineUniformBlockFeatures.html)
12953/**
12954Provided by **VK_COMPUTE_VERSION_1_3**.*/
12955///
12956///# Extends
12957///- [`PhysicalDeviceFeatures2`]
12958///- [`DeviceCreateInfo`]
12959#[repr(C)]
12960#[derive(Copy, Clone, Debug)]
12961#[doc(alias = "VkPhysicalDeviceInlineUniformBlockFeatures")]
12962pub struct PhysicalDeviceInlineUniformBlockFeatures {
12963    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES`.
12964    pub s_type: StructureType,
12965    ///Optional, may be null.
12966    pub p_next: *mut core::ffi::c_void,
12967    pub inline_uniform_block: u32,
12968    pub descriptor_binding_inline_uniform_block_update_after_bind: u32,
12969}
12970impl Default for PhysicalDeviceInlineUniformBlockFeatures {
12971    #[inline]
12972    fn default() -> Self {
12973        Self {
12974            s_type: StructureType::from_raw(1000138000i32),
12975            p_next: core::ptr::null_mut(),
12976            inline_uniform_block: Default::default(),
12977            descriptor_binding_inline_uniform_block_update_after_bind: Default::default(),
12978        }
12979    }
12980}
12981///[`VkPhysicalDeviceInlineUniformBlockProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInlineUniformBlockProperties.html)
12982/**
12983Provided by **VK_COMPUTE_VERSION_1_3**.*/
12984/**
12985**Returned only**, filled by Vulkan, not constructed by the application.*/
12986///
12987///# Extends
12988///- [`PhysicalDeviceProperties2`]
12989#[repr(C)]
12990#[derive(Copy, Clone, Debug)]
12991#[doc(alias = "VkPhysicalDeviceInlineUniformBlockProperties")]
12992pub struct PhysicalDeviceInlineUniformBlockProperties {
12993    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES`.
12994    pub s_type: StructureType,
12995    ///Optional, may be null.
12996    pub p_next: *mut core::ffi::c_void,
12997    pub max_inline_uniform_block_size: u32,
12998    pub max_per_stage_descriptor_inline_uniform_blocks: u32,
12999    pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
13000    pub max_descriptor_set_inline_uniform_blocks: u32,
13001    pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
13002}
13003impl Default for PhysicalDeviceInlineUniformBlockProperties {
13004    #[inline]
13005    fn default() -> Self {
13006        Self {
13007            s_type: StructureType::from_raw(1000138001i32),
13008            p_next: core::ptr::null_mut(),
13009            max_inline_uniform_block_size: Default::default(),
13010            max_per_stage_descriptor_inline_uniform_blocks: Default::default(),
13011            max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: Default::default(),
13012            max_descriptor_set_inline_uniform_blocks: Default::default(),
13013            max_descriptor_set_update_after_bind_inline_uniform_blocks: Default::default(),
13014        }
13015    }
13016}
13017///[`VkWriteDescriptorSetInlineUniformBlock`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetInlineUniformBlock.html)
13018/**
13019Provided by **VK_COMPUTE_VERSION_1_3**.*/
13020///
13021///# Extends
13022///- [`WriteDescriptorSet`]
13023#[repr(C)]
13024#[derive(Copy, Clone, Debug)]
13025#[doc(alias = "VkWriteDescriptorSetInlineUniformBlock")]
13026pub struct WriteDescriptorSetInlineUniformBlock {
13027    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK`.
13028    pub s_type: StructureType,
13029    ///Optional, may be null.
13030    pub p_next: *const core::ffi::c_void,
13031    ///Length of `p_data`.
13032    pub data_size: u32,
13033    pub p_data: *const core::ffi::c_void,
13034}
13035impl Default for WriteDescriptorSetInlineUniformBlock {
13036    #[inline]
13037    fn default() -> Self {
13038        Self {
13039            s_type: StructureType::from_raw(1000138002i32),
13040            p_next: core::ptr::null(),
13041            data_size: Default::default(),
13042            p_data: core::ptr::null(),
13043        }
13044    }
13045}
13046///[`VkDescriptorPoolInlineUniformBlockCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorPoolInlineUniformBlockCreateInfo.html)
13047/**
13048Provided by **VK_COMPUTE_VERSION_1_3**.*/
13049///
13050///# Extends
13051///- [`DescriptorPoolCreateInfo`]
13052#[repr(C)]
13053#[derive(Copy, Clone, Debug)]
13054#[doc(alias = "VkDescriptorPoolInlineUniformBlockCreateInfo")]
13055pub struct DescriptorPoolInlineUniformBlockCreateInfo {
13056    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO`.
13057    pub s_type: StructureType,
13058    ///Optional, may be null.
13059    pub p_next: *const core::ffi::c_void,
13060    pub max_inline_uniform_block_bindings: u32,
13061}
13062impl Default for DescriptorPoolInlineUniformBlockCreateInfo {
13063    #[inline]
13064    fn default() -> Self {
13065        Self {
13066            s_type: StructureType::from_raw(1000138003i32),
13067            p_next: core::ptr::null(),
13068            max_inline_uniform_block_bindings: Default::default(),
13069        }
13070    }
13071}
13072///[`VkPipelineCoverageModulationStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCoverageModulationStateCreateInfoNV.html)
13073/**
13074Provided by **VK_NV_framebuffer_mixed_samples**.*/
13075///
13076///# Extends
13077///- [`PipelineMultisampleStateCreateInfo`]
13078#[repr(C)]
13079#[derive(Copy, Clone, Debug)]
13080#[doc(alias = "VkPipelineCoverageModulationStateCreateInfoNV")]
13081pub struct PipelineCoverageModulationStateCreateInfoNV {
13082    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV`.
13083    pub s_type: StructureType,
13084    ///Optional, may be null.
13085    pub p_next: *const core::ffi::c_void,
13086    pub flags: PipelineCoverageModulationStateCreateFlagsNV,
13087    pub coverage_modulation_mode: CoverageModulationModeNV,
13088    pub coverage_modulation_table_enable: u32,
13089    ///Length of `p_coverage_modulation_table`.
13090    pub coverage_modulation_table_count: u32,
13091    ///Optional, may be null.
13092    pub p_coverage_modulation_table: *const f32,
13093}
13094impl Default for PipelineCoverageModulationStateCreateInfoNV {
13095    #[inline]
13096    fn default() -> Self {
13097        Self {
13098            s_type: StructureType::from_raw(1000152000i32),
13099            p_next: core::ptr::null(),
13100            flags: Default::default(),
13101            coverage_modulation_mode: Default::default(),
13102            coverage_modulation_table_enable: Default::default(),
13103            coverage_modulation_table_count: Default::default(),
13104            p_coverage_modulation_table: core::ptr::null(),
13105        }
13106    }
13107}
13108///[`VkImageFormatListCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageFormatListCreateInfo.html)
13109/**
13110Provided by **VK_BASE_VERSION_1_2**.*/
13111///
13112///# Extends
13113///- [`ImageCreateInfo`]
13114///- [`SwapchainCreateInfoKHR`]
13115///- [`PhysicalDeviceImageFormatInfo2`]
13116#[repr(C)]
13117#[derive(Copy, Clone, Debug)]
13118#[doc(alias = "VkImageFormatListCreateInfo")]
13119pub struct ImageFormatListCreateInfo {
13120    ///Must be `VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO`.
13121    pub s_type: StructureType,
13122    ///Optional, may be null.
13123    pub p_next: *const core::ffi::c_void,
13124    ///Length of `p_view_formats`.
13125    pub view_format_count: u32,
13126    pub p_view_formats: *const Format,
13127}
13128impl Default for ImageFormatListCreateInfo {
13129    #[inline]
13130    fn default() -> Self {
13131        Self {
13132            s_type: StructureType::from_raw(1000147000i32),
13133            p_next: core::ptr::null(),
13134            view_format_count: Default::default(),
13135            p_view_formats: core::ptr::null(),
13136        }
13137    }
13138}
13139///[`VkValidationCacheCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkValidationCacheCreateInfoEXT.html)
13140/**
13141Provided by **VK_EXT_validation_cache**.*/
13142#[repr(C)]
13143#[derive(Copy, Clone, Debug)]
13144#[doc(alias = "VkValidationCacheCreateInfoEXT")]
13145pub struct ValidationCacheCreateInfoEXT {
13146    ///Must be `VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT`.
13147    pub s_type: StructureType,
13148    ///Optional, may be null.
13149    pub p_next: *const core::ffi::c_void,
13150    pub flags: ValidationCacheCreateFlagsEXT,
13151    ///Length of `p_initial_data`.
13152    pub initial_data_size: usize,
13153    pub p_initial_data: *const core::ffi::c_void,
13154}
13155impl Default for ValidationCacheCreateInfoEXT {
13156    #[inline]
13157    fn default() -> Self {
13158        Self {
13159            s_type: StructureType::from_raw(1000160000i32),
13160            p_next: core::ptr::null(),
13161            flags: Default::default(),
13162            initial_data_size: Default::default(),
13163            p_initial_data: core::ptr::null(),
13164        }
13165    }
13166}
13167///[`VkShaderModuleValidationCacheCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderModuleValidationCacheCreateInfoEXT.html)
13168/**
13169Provided by **VK_EXT_validation_cache**.*/
13170///
13171///# Extends
13172///- [`ShaderModuleCreateInfo`]
13173///- [`PipelineShaderStageCreateInfo`]
13174#[repr(C)]
13175#[derive(Copy, Clone, Debug)]
13176#[doc(alias = "VkShaderModuleValidationCacheCreateInfoEXT")]
13177pub struct ShaderModuleValidationCacheCreateInfoEXT {
13178    ///Must be `VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT`.
13179    pub s_type: StructureType,
13180    ///Optional, may be null.
13181    pub p_next: *const core::ffi::c_void,
13182    pub validation_cache: ValidationCacheEXT,
13183}
13184impl Default for ShaderModuleValidationCacheCreateInfoEXT {
13185    #[inline]
13186    fn default() -> Self {
13187        Self {
13188            s_type: StructureType::from_raw(1000160001i32),
13189            p_next: core::ptr::null(),
13190            validation_cache: Default::default(),
13191        }
13192    }
13193}
13194///[`VkPhysicalDeviceMaintenance3Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance3Properties.html)
13195/**
13196Provided by **VK_COMPUTE_VERSION_1_1**.*/
13197/**
13198**Returned only**, filled by Vulkan, not constructed by the application.*/
13199///
13200///# Extends
13201///- [`PhysicalDeviceProperties2`]
13202#[repr(C)]
13203#[derive(Copy, Clone, Debug)]
13204#[doc(alias = "VkPhysicalDeviceMaintenance3Properties")]
13205pub struct PhysicalDeviceMaintenance3Properties {
13206    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES`.
13207    pub s_type: StructureType,
13208    ///Optional, may be null.
13209    pub p_next: *mut core::ffi::c_void,
13210    pub max_per_set_descriptors: u32,
13211    pub max_memory_allocation_size: u64,
13212}
13213impl Default for PhysicalDeviceMaintenance3Properties {
13214    #[inline]
13215    fn default() -> Self {
13216        Self {
13217            s_type: StructureType::from_raw(1000168000i32),
13218            p_next: core::ptr::null_mut(),
13219            max_per_set_descriptors: Default::default(),
13220            max_memory_allocation_size: Default::default(),
13221        }
13222    }
13223}
13224///[`VkPhysicalDeviceMaintenance4Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance4Features.html)
13225/**
13226Provided by **VK_BASE_VERSION_1_3**.*/
13227///
13228///# Extends
13229///- [`PhysicalDeviceFeatures2`]
13230///- [`DeviceCreateInfo`]
13231#[repr(C)]
13232#[derive(Copy, Clone, Debug)]
13233#[doc(alias = "VkPhysicalDeviceMaintenance4Features")]
13234pub struct PhysicalDeviceMaintenance4Features {
13235    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES`.
13236    pub s_type: StructureType,
13237    ///Optional, may be null.
13238    pub p_next: *mut core::ffi::c_void,
13239    pub maintenance4: u32,
13240}
13241impl Default for PhysicalDeviceMaintenance4Features {
13242    #[inline]
13243    fn default() -> Self {
13244        Self {
13245            s_type: StructureType::from_raw(1000413000i32),
13246            p_next: core::ptr::null_mut(),
13247            maintenance4: Default::default(),
13248        }
13249    }
13250}
13251///[`VkPhysicalDeviceMaintenance4Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance4Properties.html)
13252/**
13253Provided by **VK_BASE_VERSION_1_3**.*/
13254/**
13255**Returned only**, filled by Vulkan, not constructed by the application.*/
13256///
13257///# Extends
13258///- [`PhysicalDeviceProperties2`]
13259#[repr(C)]
13260#[derive(Copy, Clone, Debug)]
13261#[doc(alias = "VkPhysicalDeviceMaintenance4Properties")]
13262pub struct PhysicalDeviceMaintenance4Properties {
13263    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES`.
13264    pub s_type: StructureType,
13265    ///Optional, may be null.
13266    pub p_next: *mut core::ffi::c_void,
13267    pub max_buffer_size: u64,
13268}
13269impl Default for PhysicalDeviceMaintenance4Properties {
13270    #[inline]
13271    fn default() -> Self {
13272        Self {
13273            s_type: StructureType::from_raw(1000413001i32),
13274            p_next: core::ptr::null_mut(),
13275            max_buffer_size: Default::default(),
13276        }
13277    }
13278}
13279///[`VkPhysicalDeviceMaintenance5Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance5Features.html)
13280/**
13281Provided by **VK_BASE_VERSION_1_4**.*/
13282///
13283///# Extends
13284///- [`PhysicalDeviceFeatures2`]
13285///- [`DeviceCreateInfo`]
13286#[repr(C)]
13287#[derive(Copy, Clone, Debug)]
13288#[doc(alias = "VkPhysicalDeviceMaintenance5Features")]
13289pub struct PhysicalDeviceMaintenance5Features {
13290    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES`.
13291    pub s_type: StructureType,
13292    ///Optional, may be null.
13293    pub p_next: *mut core::ffi::c_void,
13294    pub maintenance5: u32,
13295}
13296impl Default for PhysicalDeviceMaintenance5Features {
13297    #[inline]
13298    fn default() -> Self {
13299        Self {
13300            s_type: StructureType::from_raw(1000470000i32),
13301            p_next: core::ptr::null_mut(),
13302            maintenance5: Default::default(),
13303        }
13304    }
13305}
13306///[`VkPhysicalDeviceMaintenance5Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance5Properties.html)
13307/**
13308Provided by **VK_BASE_VERSION_1_4**.*/
13309/**
13310**Returned only**, filled by Vulkan, not constructed by the application.*/
13311///
13312///# Extends
13313///- [`PhysicalDeviceProperties2`]
13314#[repr(C)]
13315#[derive(Copy, Clone, Debug)]
13316#[doc(alias = "VkPhysicalDeviceMaintenance5Properties")]
13317pub struct PhysicalDeviceMaintenance5Properties {
13318    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES`.
13319    pub s_type: StructureType,
13320    ///Optional, may be null.
13321    pub p_next: *mut core::ffi::c_void,
13322    pub early_fragment_multisample_coverage_after_sample_counting: u32,
13323    pub early_fragment_sample_mask_test_before_sample_counting: u32,
13324    pub depth_stencil_swizzle_one_support: u32,
13325    pub polygon_mode_point_size: u32,
13326    pub non_strict_single_pixel_wide_lines_use_parallelogram: u32,
13327    pub non_strict_wide_lines_use_parallelogram: u32,
13328}
13329impl Default for PhysicalDeviceMaintenance5Properties {
13330    #[inline]
13331    fn default() -> Self {
13332        Self {
13333            s_type: StructureType::from_raw(1000470001i32),
13334            p_next: core::ptr::null_mut(),
13335            early_fragment_multisample_coverage_after_sample_counting: Default::default(),
13336            early_fragment_sample_mask_test_before_sample_counting: Default::default(),
13337            depth_stencil_swizzle_one_support: Default::default(),
13338            polygon_mode_point_size: Default::default(),
13339            non_strict_single_pixel_wide_lines_use_parallelogram: Default::default(),
13340            non_strict_wide_lines_use_parallelogram: Default::default(),
13341        }
13342    }
13343}
13344///[`VkPhysicalDeviceMaintenance6Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance6Features.html)
13345/**
13346Provided by **VK_BASE_VERSION_1_4**.*/
13347///
13348///# Extends
13349///- [`PhysicalDeviceFeatures2`]
13350///- [`DeviceCreateInfo`]
13351#[repr(C)]
13352#[derive(Copy, Clone, Debug)]
13353#[doc(alias = "VkPhysicalDeviceMaintenance6Features")]
13354pub struct PhysicalDeviceMaintenance6Features {
13355    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES`.
13356    pub s_type: StructureType,
13357    ///Optional, may be null.
13358    pub p_next: *mut core::ffi::c_void,
13359    pub maintenance6: u32,
13360}
13361impl Default for PhysicalDeviceMaintenance6Features {
13362    #[inline]
13363    fn default() -> Self {
13364        Self {
13365            s_type: StructureType::from_raw(1000545000i32),
13366            p_next: core::ptr::null_mut(),
13367            maintenance6: Default::default(),
13368        }
13369    }
13370}
13371///[`VkPhysicalDeviceMaintenance6Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance6Properties.html)
13372/**
13373Provided by **VK_BASE_VERSION_1_4**.*/
13374/**
13375**Returned only**, filled by Vulkan, not constructed by the application.*/
13376///
13377///# Extends
13378///- [`PhysicalDeviceProperties2`]
13379#[repr(C)]
13380#[derive(Copy, Clone, Debug)]
13381#[doc(alias = "VkPhysicalDeviceMaintenance6Properties")]
13382pub struct PhysicalDeviceMaintenance6Properties {
13383    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES`.
13384    pub s_type: StructureType,
13385    ///Optional, may be null.
13386    pub p_next: *mut core::ffi::c_void,
13387    pub block_texel_view_compatible_multiple_layers: u32,
13388    pub max_combined_image_sampler_descriptor_count: u32,
13389    pub fragment_shading_rate_clamp_combiner_inputs: u32,
13390}
13391impl Default for PhysicalDeviceMaintenance6Properties {
13392    #[inline]
13393    fn default() -> Self {
13394        Self {
13395            s_type: StructureType::from_raw(1000545001i32),
13396            p_next: core::ptr::null_mut(),
13397            block_texel_view_compatible_multiple_layers: Default::default(),
13398            max_combined_image_sampler_descriptor_count: Default::default(),
13399            fragment_shading_rate_clamp_combiner_inputs: Default::default(),
13400        }
13401    }
13402}
13403///[`VkPhysicalDeviceMaintenance7FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance7FeaturesKHR.html)
13404/**
13405Provided by **VK_KHR_maintenance7**.*/
13406///
13407///# Extends
13408///- [`PhysicalDeviceFeatures2`]
13409///- [`DeviceCreateInfo`]
13410#[repr(C)]
13411#[derive(Copy, Clone, Debug)]
13412#[doc(alias = "VkPhysicalDeviceMaintenance7FeaturesKHR")]
13413pub struct PhysicalDeviceMaintenance7FeaturesKHR {
13414    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR`.
13415    pub s_type: StructureType,
13416    ///Optional, may be null.
13417    pub p_next: *mut core::ffi::c_void,
13418    pub maintenance7: u32,
13419}
13420impl Default for PhysicalDeviceMaintenance7FeaturesKHR {
13421    #[inline]
13422    fn default() -> Self {
13423        Self {
13424            s_type: StructureType::from_raw(1000562000i32),
13425            p_next: core::ptr::null_mut(),
13426            maintenance7: Default::default(),
13427        }
13428    }
13429}
13430///[`VkPhysicalDeviceMaintenance7PropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance7PropertiesKHR.html)
13431/**
13432Provided by **VK_KHR_maintenance7**.*/
13433/**
13434**Returned only**, filled by Vulkan, not constructed by the application.*/
13435///
13436///# Extends
13437///- [`PhysicalDeviceProperties2`]
13438#[repr(C)]
13439#[derive(Copy, Clone, Debug)]
13440#[doc(alias = "VkPhysicalDeviceMaintenance7PropertiesKHR")]
13441pub struct PhysicalDeviceMaintenance7PropertiesKHR {
13442    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR`.
13443    pub s_type: StructureType,
13444    ///Optional, may be null.
13445    pub p_next: *mut core::ffi::c_void,
13446    pub robust_fragment_shading_rate_attachment_access: u32,
13447    pub separate_depth_stencil_attachment_access: u32,
13448    pub max_descriptor_set_total_uniform_buffers_dynamic: u32,
13449    pub max_descriptor_set_total_storage_buffers_dynamic: u32,
13450    pub max_descriptor_set_total_buffers_dynamic: u32,
13451    pub max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32,
13452    pub max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32,
13453    pub max_descriptor_set_update_after_bind_total_buffers_dynamic: u32,
13454}
13455impl Default for PhysicalDeviceMaintenance7PropertiesKHR {
13456    #[inline]
13457    fn default() -> Self {
13458        Self {
13459            s_type: StructureType::from_raw(1000562001i32),
13460            p_next: core::ptr::null_mut(),
13461            robust_fragment_shading_rate_attachment_access: Default::default(),
13462            separate_depth_stencil_attachment_access: Default::default(),
13463            max_descriptor_set_total_uniform_buffers_dynamic: Default::default(),
13464            max_descriptor_set_total_storage_buffers_dynamic: Default::default(),
13465            max_descriptor_set_total_buffers_dynamic: Default::default(),
13466            max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: Default::default(),
13467            max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: Default::default(),
13468            max_descriptor_set_update_after_bind_total_buffers_dynamic: Default::default(),
13469        }
13470    }
13471}
13472///[`VkPhysicalDeviceLayeredApiPropertiesListKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLayeredApiPropertiesListKHR.html)
13473/**
13474Provided by **VK_KHR_maintenance7**.*/
13475///
13476///# Extends
13477///- [`PhysicalDeviceProperties2`]
13478#[repr(C)]
13479#[derive(Copy, Clone, Debug)]
13480#[doc(alias = "VkPhysicalDeviceLayeredApiPropertiesListKHR")]
13481pub struct PhysicalDeviceLayeredApiPropertiesListKHR {
13482    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR`.
13483    pub s_type: StructureType,
13484    ///Optional, may be null.
13485    pub p_next: *mut core::ffi::c_void,
13486    ///Length of `p_layered_apis`.
13487    pub layered_api_count: u32,
13488    ///Optional, may be null.
13489    pub p_layered_apis: *mut PhysicalDeviceLayeredApiPropertiesKHR,
13490}
13491impl Default for PhysicalDeviceLayeredApiPropertiesListKHR {
13492    #[inline]
13493    fn default() -> Self {
13494        Self {
13495            s_type: StructureType::from_raw(1000562002i32),
13496            p_next: core::ptr::null_mut(),
13497            layered_api_count: Default::default(),
13498            p_layered_apis: core::ptr::null_mut(),
13499        }
13500    }
13501}
13502///[`VkPhysicalDeviceLayeredApiPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLayeredApiPropertiesKHR.html)
13503/**
13504Provided by **VK_KHR_maintenance7**.*/
13505/**
13506**Returned only**, filled by Vulkan, not constructed by the application.*/
13507///
13508///# Extended By
13509///- [`PhysicalDeviceLayeredApiVulkanPropertiesKHR`]
13510#[repr(C)]
13511#[derive(Copy, Clone, Debug)]
13512#[doc(alias = "VkPhysicalDeviceLayeredApiPropertiesKHR")]
13513pub struct PhysicalDeviceLayeredApiPropertiesKHR {
13514    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR`.
13515    pub s_type: StructureType,
13516    ///Optional, may be null.
13517    pub p_next: *mut core::ffi::c_void,
13518    pub vendor_id: u32,
13519    pub device_id: u32,
13520    pub layered_api: PhysicalDeviceLayeredApiKHR,
13521    pub device_name: crate::StringArray<{ MAX_PHYSICAL_DEVICE_NAME_SIZE as usize }>,
13522}
13523impl Default for PhysicalDeviceLayeredApiPropertiesKHR {
13524    #[inline]
13525    fn default() -> Self {
13526        Self {
13527            s_type: StructureType::from_raw(1000562003i32),
13528            p_next: core::ptr::null_mut(),
13529            vendor_id: Default::default(),
13530            device_id: Default::default(),
13531            layered_api: Default::default(),
13532            device_name: unsafe { core::mem::zeroed() },
13533        }
13534    }
13535}
13536///[`VkPhysicalDeviceLayeredApiVulkanPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.html)
13537/**
13538Provided by **VK_KHR_maintenance7**.*/
13539/**
13540**Returned only**, filled by Vulkan, not constructed by the application.*/
13541///
13542///# Extends
13543///- [`PhysicalDeviceLayeredApiPropertiesKHR`]
13544#[repr(C)]
13545#[derive(Copy, Clone, Debug)]
13546#[doc(alias = "VkPhysicalDeviceLayeredApiVulkanPropertiesKHR")]
13547pub struct PhysicalDeviceLayeredApiVulkanPropertiesKHR {
13548    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR`.
13549    pub s_type: StructureType,
13550    ///Optional, may be null.
13551    pub p_next: *mut core::ffi::c_void,
13552    pub properties: PhysicalDeviceProperties2,
13553}
13554impl Default for PhysicalDeviceLayeredApiVulkanPropertiesKHR {
13555    #[inline]
13556    fn default() -> Self {
13557        Self {
13558            s_type: StructureType::from_raw(1000562004i32),
13559            p_next: core::ptr::null_mut(),
13560            properties: Default::default(),
13561        }
13562    }
13563}
13564///[`VkPhysicalDeviceMaintenance8FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance8FeaturesKHR.html)
13565/**
13566Provided by **VK_KHR_maintenance8**.*/
13567///
13568///# Extends
13569///- [`PhysicalDeviceFeatures2`]
13570///- [`DeviceCreateInfo`]
13571#[repr(C)]
13572#[derive(Copy, Clone, Debug)]
13573#[doc(alias = "VkPhysicalDeviceMaintenance8FeaturesKHR")]
13574pub struct PhysicalDeviceMaintenance8FeaturesKHR {
13575    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR`.
13576    pub s_type: StructureType,
13577    ///Optional, may be null.
13578    pub p_next: *mut core::ffi::c_void,
13579    pub maintenance8: u32,
13580}
13581impl Default for PhysicalDeviceMaintenance8FeaturesKHR {
13582    #[inline]
13583    fn default() -> Self {
13584        Self {
13585            s_type: StructureType::from_raw(1000574000i32),
13586            p_next: core::ptr::null_mut(),
13587            maintenance8: Default::default(),
13588        }
13589    }
13590}
13591///[`VkPhysicalDeviceMaintenance9FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance9FeaturesKHR.html)
13592/**
13593Provided by **VK_KHR_maintenance9**.*/
13594///
13595///# Extends
13596///- [`PhysicalDeviceFeatures2`]
13597///- [`DeviceCreateInfo`]
13598#[repr(C)]
13599#[derive(Copy, Clone, Debug)]
13600#[doc(alias = "VkPhysicalDeviceMaintenance9FeaturesKHR")]
13601pub struct PhysicalDeviceMaintenance9FeaturesKHR {
13602    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR`.
13603    pub s_type: StructureType,
13604    ///Optional, may be null.
13605    pub p_next: *mut core::ffi::c_void,
13606    pub maintenance9: u32,
13607}
13608impl Default for PhysicalDeviceMaintenance9FeaturesKHR {
13609    #[inline]
13610    fn default() -> Self {
13611        Self {
13612            s_type: StructureType::from_raw(1000584000i32),
13613            p_next: core::ptr::null_mut(),
13614            maintenance9: Default::default(),
13615        }
13616    }
13617}
13618///[`VkPhysicalDeviceMaintenance9PropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance9PropertiesKHR.html)
13619/**
13620Provided by **VK_KHR_maintenance9**.*/
13621/**
13622**Returned only**, filled by Vulkan, not constructed by the application.*/
13623///
13624///# Extends
13625///- [`PhysicalDeviceProperties2`]
13626#[repr(C)]
13627#[derive(Copy, Clone, Debug)]
13628#[doc(alias = "VkPhysicalDeviceMaintenance9PropertiesKHR")]
13629pub struct PhysicalDeviceMaintenance9PropertiesKHR {
13630    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR`.
13631    pub s_type: StructureType,
13632    ///Optional, may be null.
13633    pub p_next: *mut core::ffi::c_void,
13634    pub image2_d_view_of3_d_sparse: u32,
13635    pub default_vertex_attribute_value: DefaultVertexAttributeValueKHR,
13636}
13637impl Default for PhysicalDeviceMaintenance9PropertiesKHR {
13638    #[inline]
13639    fn default() -> Self {
13640        Self {
13641            s_type: StructureType::from_raw(1000584001i32),
13642            p_next: core::ptr::null_mut(),
13643            image2_d_view_of3_d_sparse: Default::default(),
13644            default_vertex_attribute_value: Default::default(),
13645        }
13646    }
13647}
13648///[`VkPhysicalDeviceMaintenance10PropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance10PropertiesKHR.html)
13649/**
13650Provided by **VK_KHR_maintenance10**.*/
13651/**
13652**Returned only**, filled by Vulkan, not constructed by the application.*/
13653///
13654///# Extends
13655///- [`PhysicalDeviceProperties2`]
13656#[repr(C)]
13657#[derive(Copy, Clone, Debug)]
13658#[doc(alias = "VkPhysicalDeviceMaintenance10PropertiesKHR")]
13659pub struct PhysicalDeviceMaintenance10PropertiesKHR {
13660    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR`.
13661    pub s_type: StructureType,
13662    ///Optional, may be null.
13663    pub p_next: *mut core::ffi::c_void,
13664    pub rgba4_opaque_black_swizzled: u32,
13665    pub resolve_srgb_format_applies_transfer_function: u32,
13666    pub resolve_srgb_format_supports_transfer_function_control: u32,
13667}
13668impl Default for PhysicalDeviceMaintenance10PropertiesKHR {
13669    #[inline]
13670    fn default() -> Self {
13671        Self {
13672            s_type: StructureType::from_raw(1000630001i32),
13673            p_next: core::ptr::null_mut(),
13674            rgba4_opaque_black_swizzled: Default::default(),
13675            resolve_srgb_format_applies_transfer_function: Default::default(),
13676            resolve_srgb_format_supports_transfer_function_control: Default::default(),
13677        }
13678    }
13679}
13680///[`VkPhysicalDeviceMaintenance10FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance10FeaturesKHR.html)
13681/**
13682Provided by **VK_KHR_maintenance10**.*/
13683///
13684///# Extends
13685///- [`PhysicalDeviceFeatures2`]
13686///- [`DeviceCreateInfo`]
13687#[repr(C)]
13688#[derive(Copy, Clone, Debug)]
13689#[doc(alias = "VkPhysicalDeviceMaintenance10FeaturesKHR")]
13690pub struct PhysicalDeviceMaintenance10FeaturesKHR {
13691    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR`.
13692    pub s_type: StructureType,
13693    ///Optional, may be null.
13694    pub p_next: *mut core::ffi::c_void,
13695    pub maintenance10: u32,
13696}
13697impl Default for PhysicalDeviceMaintenance10FeaturesKHR {
13698    #[inline]
13699    fn default() -> Self {
13700        Self {
13701            s_type: StructureType::from_raw(1000630000i32),
13702            p_next: core::ptr::null_mut(),
13703            maintenance10: Default::default(),
13704        }
13705    }
13706}
13707///[`VkQueueFamilyOwnershipTransferPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyOwnershipTransferPropertiesKHR.html)
13708/**
13709Provided by **VK_KHR_maintenance9**.*/
13710/**
13711**Returned only**, filled by Vulkan, not constructed by the application.*/
13712///
13713///# Extends
13714///- [`QueueFamilyProperties2`]
13715#[repr(C)]
13716#[derive(Copy, Clone, Debug)]
13717#[doc(alias = "VkQueueFamilyOwnershipTransferPropertiesKHR")]
13718pub struct QueueFamilyOwnershipTransferPropertiesKHR {
13719    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR`.
13720    pub s_type: StructureType,
13721    ///Optional, may be null.
13722    pub p_next: *mut core::ffi::c_void,
13723    pub optimal_image_transfer_to_queue_families: u32,
13724}
13725impl Default for QueueFamilyOwnershipTransferPropertiesKHR {
13726    #[inline]
13727    fn default() -> Self {
13728        Self {
13729            s_type: StructureType::from_raw(1000584002i32),
13730            p_next: core::ptr::null_mut(),
13731            optimal_image_transfer_to_queue_families: Default::default(),
13732        }
13733    }
13734}
13735///[`VkRenderingAreaInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingAreaInfo.html)
13736/**
13737Provided by **VK_GRAPHICS_VERSION_1_4**.*/
13738#[repr(C)]
13739#[derive(Copy, Clone, Debug)]
13740#[doc(alias = "VkRenderingAreaInfo")]
13741pub struct RenderingAreaInfo {
13742    ///Must be `VK_STRUCTURE_TYPE_RENDERING_AREA_INFO`.
13743    pub s_type: StructureType,
13744    ///Optional, may be null.
13745    pub p_next: *const core::ffi::c_void,
13746    pub view_mask: u32,
13747    ///Length of `p_color_attachment_formats`.
13748    pub color_attachment_count: u32,
13749    pub p_color_attachment_formats: *const Format,
13750    pub depth_attachment_format: Format,
13751    pub stencil_attachment_format: Format,
13752}
13753impl Default for RenderingAreaInfo {
13754    #[inline]
13755    fn default() -> Self {
13756        Self {
13757            s_type: StructureType::from_raw(1000470003i32),
13758            p_next: core::ptr::null(),
13759            view_mask: Default::default(),
13760            color_attachment_count: Default::default(),
13761            p_color_attachment_formats: core::ptr::null(),
13762            depth_attachment_format: Default::default(),
13763            stencil_attachment_format: Default::default(),
13764        }
13765    }
13766}
13767///[`VkDescriptorSetLayoutSupport`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutSupport.html)
13768/**
13769Provided by **VK_COMPUTE_VERSION_1_1**.*/
13770/**
13771**Returned only**, filled by Vulkan, not constructed by the application.*/
13772///
13773///# Extended By
13774///- [`DescriptorSetVariableDescriptorCountLayoutSupport`]
13775#[repr(C)]
13776#[derive(Copy, Clone, Debug)]
13777#[doc(alias = "VkDescriptorSetLayoutSupport")]
13778pub struct DescriptorSetLayoutSupport {
13779    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT`.
13780    pub s_type: StructureType,
13781    ///Optional, may be null.
13782    pub p_next: *mut core::ffi::c_void,
13783    pub supported: u32,
13784}
13785impl Default for DescriptorSetLayoutSupport {
13786    #[inline]
13787    fn default() -> Self {
13788        Self {
13789            s_type: StructureType::from_raw(1000168001i32),
13790            p_next: core::ptr::null_mut(),
13791            supported: Default::default(),
13792        }
13793    }
13794}
13795///[`VkPhysicalDeviceShaderDrawParametersFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderDrawParametersFeatures.html)
13796/**
13797Provided by **VK_GRAPHICS_VERSION_1_1**.*/
13798///
13799///# Extends
13800///- [`PhysicalDeviceFeatures2`]
13801///- [`DeviceCreateInfo`]
13802#[repr(C)]
13803#[derive(Copy, Clone, Debug)]
13804#[doc(alias = "VkPhysicalDeviceShaderDrawParametersFeatures")]
13805pub struct PhysicalDeviceShaderDrawParametersFeatures {
13806    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES`.
13807    pub s_type: StructureType,
13808    ///Optional, may be null.
13809    pub p_next: *mut core::ffi::c_void,
13810    pub shader_draw_parameters: u32,
13811}
13812impl Default for PhysicalDeviceShaderDrawParametersFeatures {
13813    #[inline]
13814    fn default() -> Self {
13815        Self {
13816            s_type: StructureType::from_raw(1000063000i32),
13817            p_next: core::ptr::null_mut(),
13818            shader_draw_parameters: Default::default(),
13819        }
13820    }
13821}
13822///[`VkPhysicalDeviceShaderFloat16Int8Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFloat16Int8Features.html)
13823/**
13824Provided by **VK_COMPUTE_VERSION_1_2**.*/
13825///
13826///# Extends
13827///- [`PhysicalDeviceFeatures2`]
13828///- [`DeviceCreateInfo`]
13829#[repr(C)]
13830#[derive(Copy, Clone, Debug)]
13831#[doc(alias = "VkPhysicalDeviceShaderFloat16Int8Features")]
13832pub struct PhysicalDeviceShaderFloat16Int8Features {
13833    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES`.
13834    pub s_type: StructureType,
13835    ///Optional, may be null.
13836    pub p_next: *mut core::ffi::c_void,
13837    pub shader_float16: u32,
13838    pub shader_int8: u32,
13839}
13840impl Default for PhysicalDeviceShaderFloat16Int8Features {
13841    #[inline]
13842    fn default() -> Self {
13843        Self {
13844            s_type: StructureType::from_raw(1000082000i32),
13845            p_next: core::ptr::null_mut(),
13846            shader_float16: Default::default(),
13847            shader_int8: Default::default(),
13848        }
13849    }
13850}
13851///[`VkPhysicalDeviceFloatControlsProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFloatControlsProperties.html)
13852/**
13853Provided by **VK_COMPUTE_VERSION_1_2**.*/
13854/**
13855**Returned only**, filled by Vulkan, not constructed by the application.*/
13856///
13857///# Extends
13858///- [`PhysicalDeviceProperties2`]
13859#[repr(C)]
13860#[derive(Copy, Clone, Debug)]
13861#[doc(alias = "VkPhysicalDeviceFloatControlsProperties")]
13862pub struct PhysicalDeviceFloatControlsProperties {
13863    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES`.
13864    pub s_type: StructureType,
13865    ///Optional, may be null.
13866    pub p_next: *mut core::ffi::c_void,
13867    pub denorm_behavior_independence: ShaderFloatControlsIndependence,
13868    pub rounding_mode_independence: ShaderFloatControlsIndependence,
13869    pub shader_signed_zero_inf_nan_preserve_float16: u32,
13870    pub shader_signed_zero_inf_nan_preserve_float32: u32,
13871    pub shader_signed_zero_inf_nan_preserve_float64: u32,
13872    pub shader_denorm_preserve_float16: u32,
13873    pub shader_denorm_preserve_float32: u32,
13874    pub shader_denorm_preserve_float64: u32,
13875    pub shader_denorm_flush_to_zero_float16: u32,
13876    pub shader_denorm_flush_to_zero_float32: u32,
13877    pub shader_denorm_flush_to_zero_float64: u32,
13878    pub shader_rounding_mode_rte_float16: u32,
13879    pub shader_rounding_mode_rte_float32: u32,
13880    pub shader_rounding_mode_rte_float64: u32,
13881    pub shader_rounding_mode_rtz_float16: u32,
13882    pub shader_rounding_mode_rtz_float32: u32,
13883    pub shader_rounding_mode_rtz_float64: u32,
13884}
13885impl Default for PhysicalDeviceFloatControlsProperties {
13886    #[inline]
13887    fn default() -> Self {
13888        Self {
13889            s_type: StructureType::from_raw(1000197000i32),
13890            p_next: core::ptr::null_mut(),
13891            denorm_behavior_independence: Default::default(),
13892            rounding_mode_independence: Default::default(),
13893            shader_signed_zero_inf_nan_preserve_float16: Default::default(),
13894            shader_signed_zero_inf_nan_preserve_float32: Default::default(),
13895            shader_signed_zero_inf_nan_preserve_float64: Default::default(),
13896            shader_denorm_preserve_float16: Default::default(),
13897            shader_denorm_preserve_float32: Default::default(),
13898            shader_denorm_preserve_float64: Default::default(),
13899            shader_denorm_flush_to_zero_float16: Default::default(),
13900            shader_denorm_flush_to_zero_float32: Default::default(),
13901            shader_denorm_flush_to_zero_float64: Default::default(),
13902            shader_rounding_mode_rte_float16: Default::default(),
13903            shader_rounding_mode_rte_float32: Default::default(),
13904            shader_rounding_mode_rte_float64: Default::default(),
13905            shader_rounding_mode_rtz_float16: Default::default(),
13906            shader_rounding_mode_rtz_float32: Default::default(),
13907            shader_rounding_mode_rtz_float64: Default::default(),
13908        }
13909    }
13910}
13911///[`VkPhysicalDeviceHostQueryResetFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceHostQueryResetFeatures.html)
13912/**
13913Provided by **VK_BASE_VERSION_1_2**.*/
13914///
13915///# Extends
13916///- [`PhysicalDeviceFeatures2`]
13917///- [`DeviceCreateInfo`]
13918#[repr(C)]
13919#[derive(Copy, Clone, Debug)]
13920#[doc(alias = "VkPhysicalDeviceHostQueryResetFeatures")]
13921pub struct PhysicalDeviceHostQueryResetFeatures {
13922    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES`.
13923    pub s_type: StructureType,
13924    ///Optional, may be null.
13925    pub p_next: *mut core::ffi::c_void,
13926    pub host_query_reset: u32,
13927}
13928impl Default for PhysicalDeviceHostQueryResetFeatures {
13929    #[inline]
13930    fn default() -> Self {
13931        Self {
13932            s_type: StructureType::from_raw(1000261000i32),
13933            p_next: core::ptr::null_mut(),
13934            host_query_reset: Default::default(),
13935        }
13936    }
13937}
13938///[`VkNativeBufferUsage2ANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferUsage2ANDROID.html)
13939#[repr(C)]
13940#[derive(Copy, Clone, Debug)]
13941#[doc(alias = "VkNativeBufferUsage2ANDROID")]
13942pub struct NativeBufferUsage2ANDROID {
13943    pub consumer: u64,
13944    pub producer: u64,
13945}
13946impl Default for NativeBufferUsage2ANDROID {
13947    #[inline]
13948    fn default() -> Self {
13949        unsafe { core::mem::zeroed() }
13950    }
13951}
13952///[`VkNativeBufferANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferANDROID.html)
13953///
13954///# Extends
13955///- [`ImageCreateInfo`]
13956///- [`BindImageMemoryInfo`]
13957#[repr(C)]
13958#[derive(Copy, Clone, Debug)]
13959#[doc(alias = "VkNativeBufferANDROID")]
13960pub struct NativeBufferANDROID {
13961    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID`.
13962    pub s_type: StructureType,
13963    ///Optional, may be null.
13964    pub p_next: *const core::ffi::c_void,
13965    pub handle: *const core::ffi::c_void,
13966    pub stride: core::ffi::c_int,
13967    pub format: core::ffi::c_int,
13968    pub usage: core::ffi::c_int,
13969    pub usage2: NativeBufferUsage2ANDROID,
13970}
13971impl Default for NativeBufferANDROID {
13972    #[inline]
13973    fn default() -> Self {
13974        Self {
13975            s_type: Default::default(),
13976            p_next: core::ptr::null(),
13977            handle: core::ptr::null(),
13978            stride: Default::default(),
13979            format: Default::default(),
13980            usage: Default::default(),
13981            usage2: Default::default(),
13982        }
13983    }
13984}
13985///[`VkSwapchainImageCreateInfoANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainImageCreateInfoANDROID.html)
13986///
13987///# Extends
13988///- [`ImageCreateInfo`]
13989#[repr(C)]
13990#[derive(Copy, Clone, Debug)]
13991#[doc(alias = "VkSwapchainImageCreateInfoANDROID")]
13992pub struct SwapchainImageCreateInfoANDROID {
13993    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID`.
13994    pub s_type: StructureType,
13995    ///Optional, may be null.
13996    pub p_next: *const core::ffi::c_void,
13997    pub usage: SwapchainImageUsageFlagsANDROID,
13998}
13999impl Default for SwapchainImageCreateInfoANDROID {
14000    #[inline]
14001    fn default() -> Self {
14002        Self {
14003            s_type: Default::default(),
14004            p_next: core::ptr::null(),
14005            usage: Default::default(),
14006        }
14007    }
14008}
14009///[`VkPhysicalDevicePresentationPropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentationPropertiesANDROID.html)
14010/**
14011**Returned only**, filled by Vulkan, not constructed by the application.*/
14012///
14013///# Extends
14014///- [`PhysicalDeviceProperties2`]
14015#[repr(C)]
14016#[derive(Copy, Clone, Debug)]
14017#[doc(alias = "VkPhysicalDevicePresentationPropertiesANDROID")]
14018pub struct PhysicalDevicePresentationPropertiesANDROID {
14019    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID`.
14020    pub s_type: StructureType,
14021    ///Optional, may be null.
14022    pub p_next: *mut core::ffi::c_void,
14023    pub shared_image: u32,
14024}
14025impl Default for PhysicalDevicePresentationPropertiesANDROID {
14026    #[inline]
14027    fn default() -> Self {
14028        Self {
14029            s_type: Default::default(),
14030            p_next: core::ptr::null_mut(),
14031            shared_image: Default::default(),
14032        }
14033    }
14034}
14035///[`VkShaderResourceUsageAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderResourceUsageAMD.html)
14036/**
14037Provided by **VK_AMD_shader_info**.*/
14038/**
14039**Returned only**, filled by Vulkan, not constructed by the application.*/
14040#[repr(C)]
14041#[derive(Copy, Clone, Debug)]
14042#[doc(alias = "VkShaderResourceUsageAMD")]
14043pub struct ShaderResourceUsageAMD {
14044    pub num_used_vgprs: u32,
14045    pub num_used_sgprs: u32,
14046    pub lds_size_per_local_work_group: u32,
14047    pub lds_usage_size_in_bytes: usize,
14048    pub scratch_mem_usage_in_bytes: usize,
14049}
14050impl Default for ShaderResourceUsageAMD {
14051    #[inline]
14052    fn default() -> Self {
14053        unsafe { core::mem::zeroed() }
14054    }
14055}
14056///[`VkShaderStatisticsInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderStatisticsInfoAMD.html)
14057/**
14058Provided by **VK_AMD_shader_info**.*/
14059/**
14060**Returned only**, filled by Vulkan, not constructed by the application.*/
14061#[repr(C)]
14062#[derive(Copy, Clone, Debug)]
14063#[doc(alias = "VkShaderStatisticsInfoAMD")]
14064pub struct ShaderStatisticsInfoAMD {
14065    pub shader_stage_mask: ShaderStageFlags,
14066    pub resource_usage: ShaderResourceUsageAMD,
14067    pub num_physical_vgprs: u32,
14068    pub num_physical_sgprs: u32,
14069    pub num_available_vgprs: u32,
14070    pub num_available_sgprs: u32,
14071    pub compute_work_group_size: [u32; 3usize],
14072}
14073impl Default for ShaderStatisticsInfoAMD {
14074    #[inline]
14075    fn default() -> Self {
14076        unsafe { core::mem::zeroed() }
14077    }
14078}
14079///[`VkDeviceQueueGlobalPriorityCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceQueueGlobalPriorityCreateInfo.html)
14080/**
14081Provided by **VK_BASE_VERSION_1_4**.*/
14082///
14083///# Extends
14084///- [`DeviceQueueCreateInfo`]
14085#[repr(C)]
14086#[derive(Copy, Clone, Debug)]
14087#[doc(alias = "VkDeviceQueueGlobalPriorityCreateInfo")]
14088pub struct DeviceQueueGlobalPriorityCreateInfo {
14089    ///Must be `VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO`.
14090    pub s_type: StructureType,
14091    ///Optional, may be null.
14092    pub p_next: *const core::ffi::c_void,
14093    pub global_priority: QueueGlobalPriority,
14094}
14095impl Default for DeviceQueueGlobalPriorityCreateInfo {
14096    #[inline]
14097    fn default() -> Self {
14098        Self {
14099            s_type: StructureType::from_raw(1000174000i32),
14100            p_next: core::ptr::null(),
14101            global_priority: Default::default(),
14102        }
14103    }
14104}
14105///[`VkPhysicalDeviceGlobalPriorityQueryFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceGlobalPriorityQueryFeatures.html)
14106/**
14107Provided by **VK_BASE_VERSION_1_4**.*/
14108///
14109///# Extends
14110///- [`PhysicalDeviceFeatures2`]
14111///- [`DeviceCreateInfo`]
14112#[repr(C)]
14113#[derive(Copy, Clone, Debug)]
14114#[doc(alias = "VkPhysicalDeviceGlobalPriorityQueryFeatures")]
14115pub struct PhysicalDeviceGlobalPriorityQueryFeatures {
14116    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES`.
14117    pub s_type: StructureType,
14118    ///Optional, may be null.
14119    pub p_next: *mut core::ffi::c_void,
14120    pub global_priority_query: u32,
14121}
14122impl Default for PhysicalDeviceGlobalPriorityQueryFeatures {
14123    #[inline]
14124    fn default() -> Self {
14125        Self {
14126            s_type: StructureType::from_raw(1000388000i32),
14127            p_next: core::ptr::null_mut(),
14128            global_priority_query: Default::default(),
14129        }
14130    }
14131}
14132///[`VkQueueFamilyGlobalPriorityProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyGlobalPriorityProperties.html)
14133/**
14134Provided by **VK_BASE_VERSION_1_4**.*/
14135/**
14136**Returned only**, filled by Vulkan, not constructed by the application.*/
14137///
14138///# Extends
14139///- [`QueueFamilyProperties2`]
14140#[repr(C)]
14141#[derive(Copy, Clone, Debug)]
14142#[doc(alias = "VkQueueFamilyGlobalPriorityProperties")]
14143pub struct QueueFamilyGlobalPriorityProperties {
14144    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES`.
14145    pub s_type: StructureType,
14146    ///Optional, may be null.
14147    pub p_next: *mut core::ffi::c_void,
14148    pub priority_count: u32,
14149    pub priorities: [QueueGlobalPriority; MAX_GLOBAL_PRIORITY_SIZE as usize],
14150}
14151impl Default for QueueFamilyGlobalPriorityProperties {
14152    #[inline]
14153    fn default() -> Self {
14154        Self {
14155            s_type: StructureType::from_raw(1000388001i32),
14156            p_next: core::ptr::null_mut(),
14157            priority_count: Default::default(),
14158            priorities: unsafe { core::mem::zeroed() },
14159        }
14160    }
14161}
14162///[`VkDebugUtilsObjectNameInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsObjectNameInfoEXT.html)
14163/**
14164Provided by **VK_EXT_debug_utils**.*/
14165///
14166///# Extends
14167///- [`PipelineShaderStageCreateInfo`]
14168///- [`ResourceDescriptorInfoEXT`]
14169///- [`SamplerCreateInfo`]
14170#[repr(C)]
14171#[derive(Copy, Clone, Debug)]
14172#[doc(alias = "VkDebugUtilsObjectNameInfoEXT")]
14173pub struct DebugUtilsObjectNameInfoEXT {
14174    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT`.
14175    pub s_type: StructureType,
14176    ///Optional, may be null.
14177    pub p_next: *const core::ffi::c_void,
14178    pub object_type: ObjectType,
14179    pub object_handle: u64,
14180    ///Optional, may be null.
14181    pub p_object_name: *const core::ffi::c_char,
14182}
14183impl Default for DebugUtilsObjectNameInfoEXT {
14184    #[inline]
14185    fn default() -> Self {
14186        Self {
14187            s_type: StructureType::from_raw(1000128000i32),
14188            p_next: core::ptr::null(),
14189            object_type: Default::default(),
14190            object_handle: Default::default(),
14191            p_object_name: core::ptr::null(),
14192        }
14193    }
14194}
14195///[`VkDebugUtilsObjectTagInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsObjectTagInfoEXT.html)
14196/**
14197Provided by **VK_EXT_debug_utils**.*/
14198#[repr(C)]
14199#[derive(Copy, Clone, Debug)]
14200#[doc(alias = "VkDebugUtilsObjectTagInfoEXT")]
14201pub struct DebugUtilsObjectTagInfoEXT {
14202    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT`.
14203    pub s_type: StructureType,
14204    ///Optional, may be null.
14205    pub p_next: *const core::ffi::c_void,
14206    pub object_type: ObjectType,
14207    ///**Thread safety:** must be externally synchronized.
14208    pub object_handle: u64,
14209    pub tag_name: u64,
14210    ///Length of `p_tag`.
14211    pub tag_size: usize,
14212    pub p_tag: *const core::ffi::c_void,
14213}
14214impl Default for DebugUtilsObjectTagInfoEXT {
14215    #[inline]
14216    fn default() -> Self {
14217        Self {
14218            s_type: StructureType::from_raw(1000128001i32),
14219            p_next: core::ptr::null(),
14220            object_type: Default::default(),
14221            object_handle: Default::default(),
14222            tag_name: Default::default(),
14223            tag_size: Default::default(),
14224            p_tag: core::ptr::null(),
14225        }
14226    }
14227}
14228///[`VkDebugUtilsLabelEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsLabelEXT.html)
14229/**
14230Provided by **VK_EXT_debug_utils**.*/
14231#[repr(C)]
14232#[derive(Copy, Clone, Debug)]
14233#[doc(alias = "VkDebugUtilsLabelEXT")]
14234pub struct DebugUtilsLabelEXT {
14235    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT`.
14236    pub s_type: StructureType,
14237    ///Optional, may be null.
14238    pub p_next: *const core::ffi::c_void,
14239    pub p_label_name: *const core::ffi::c_char,
14240    pub color: [f32; 4usize],
14241}
14242impl Default for DebugUtilsLabelEXT {
14243    #[inline]
14244    fn default() -> Self {
14245        Self {
14246            s_type: StructureType::from_raw(1000128002i32),
14247            p_next: core::ptr::null(),
14248            p_label_name: core::ptr::null(),
14249            color: unsafe { core::mem::zeroed() },
14250        }
14251    }
14252}
14253///[`VkDebugUtilsMessengerCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsMessengerCreateInfoEXT.html)
14254/**
14255Provided by **VK_EXT_debug_utils**.*/
14256///
14257///# Extends
14258///- [`InstanceCreateInfo`]
14259#[repr(C)]
14260#[derive(Copy, Clone, Debug)]
14261#[doc(alias = "VkDebugUtilsMessengerCreateInfoEXT")]
14262pub struct DebugUtilsMessengerCreateInfoEXT {
14263    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT`.
14264    pub s_type: StructureType,
14265    ///Optional, may be null.
14266    pub p_next: *const core::ffi::c_void,
14267    pub flags: DebugUtilsMessengerCreateFlagsEXT,
14268    pub message_severity: DebugUtilsMessageSeverityFlagsEXT,
14269    pub message_type: DebugUtilsMessageTypeFlagsEXT,
14270    pub pfn_user_callback: PFN_vkDebugUtilsMessengerCallbackEXT,
14271    ///Optional, may be null.
14272    pub p_user_data: *mut core::ffi::c_void,
14273}
14274impl Default for DebugUtilsMessengerCreateInfoEXT {
14275    #[inline]
14276    fn default() -> Self {
14277        Self {
14278            s_type: StructureType::from_raw(1000128004i32),
14279            p_next: core::ptr::null(),
14280            flags: Default::default(),
14281            message_severity: Default::default(),
14282            message_type: Default::default(),
14283            pfn_user_callback: Default::default(),
14284            p_user_data: core::ptr::null_mut(),
14285        }
14286    }
14287}
14288///[`VkDebugUtilsMessengerCallbackDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDebugUtilsMessengerCallbackDataEXT.html)
14289/**
14290Provided by **VK_EXT_debug_utils**.*/
14291///
14292///# Extended By
14293///- [`DeviceAddressBindingCallbackDataEXT`]
14294#[repr(C)]
14295#[derive(Copy, Clone, Debug)]
14296#[doc(alias = "VkDebugUtilsMessengerCallbackDataEXT")]
14297pub struct DebugUtilsMessengerCallbackDataEXT {
14298    ///Must be `VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT`.
14299    pub s_type: StructureType,
14300    ///Optional, may be null.
14301    pub p_next: *const core::ffi::c_void,
14302    pub flags: DebugUtilsMessengerCallbackDataFlagsEXT,
14303    ///Optional, may be null.
14304    pub p_message_id_name: *const core::ffi::c_char,
14305    pub message_id_number: i32,
14306    ///Optional, may be null.
14307    pub p_message: *const core::ffi::c_char,
14308    ///Length of `p_queue_labels`.
14309    pub queue_label_count: u32,
14310    pub p_queue_labels: *const DebugUtilsLabelEXT,
14311    ///Length of `p_cmd_buf_labels`.
14312    pub cmd_buf_label_count: u32,
14313    pub p_cmd_buf_labels: *const DebugUtilsLabelEXT,
14314    ///Length of `p_objects`.
14315    pub object_count: u32,
14316    pub p_objects: *const DebugUtilsObjectNameInfoEXT,
14317}
14318impl Default for DebugUtilsMessengerCallbackDataEXT {
14319    #[inline]
14320    fn default() -> Self {
14321        Self {
14322            s_type: StructureType::from_raw(1000128003i32),
14323            p_next: core::ptr::null(),
14324            flags: Default::default(),
14325            p_message_id_name: core::ptr::null(),
14326            message_id_number: Default::default(),
14327            p_message: core::ptr::null(),
14328            queue_label_count: Default::default(),
14329            p_queue_labels: core::ptr::null(),
14330            cmd_buf_label_count: Default::default(),
14331            p_cmd_buf_labels: core::ptr::null(),
14332            object_count: Default::default(),
14333            p_objects: core::ptr::null(),
14334        }
14335    }
14336}
14337///[`VkPhysicalDeviceDeviceMemoryReportFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.html)
14338/**
14339Provided by **VK_EXT_device_memory_report**.*/
14340///
14341///# Extends
14342///- [`PhysicalDeviceFeatures2`]
14343///- [`DeviceCreateInfo`]
14344#[repr(C)]
14345#[derive(Copy, Clone, Debug)]
14346#[doc(alias = "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT")]
14347pub struct PhysicalDeviceDeviceMemoryReportFeaturesEXT {
14348    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT`.
14349    pub s_type: StructureType,
14350    ///Optional, may be null.
14351    pub p_next: *mut core::ffi::c_void,
14352    pub device_memory_report: u32,
14353}
14354impl Default for PhysicalDeviceDeviceMemoryReportFeaturesEXT {
14355    #[inline]
14356    fn default() -> Self {
14357        Self {
14358            s_type: StructureType::from_raw(1000284000i32),
14359            p_next: core::ptr::null_mut(),
14360            device_memory_report: Default::default(),
14361        }
14362    }
14363}
14364///[`VkDeviceDeviceMemoryReportCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceDeviceMemoryReportCreateInfoEXT.html)
14365/**
14366Provided by **VK_EXT_device_memory_report**.*/
14367///
14368///# Extends
14369///- [`DeviceCreateInfo`]
14370#[repr(C)]
14371#[derive(Copy, Clone, Debug)]
14372#[doc(alias = "VkDeviceDeviceMemoryReportCreateInfoEXT")]
14373pub struct DeviceDeviceMemoryReportCreateInfoEXT {
14374    ///Must be `VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT`.
14375    pub s_type: StructureType,
14376    ///Optional, may be null.
14377    pub p_next: *const core::ffi::c_void,
14378    pub flags: DeviceMemoryReportFlagsEXT,
14379    pub pfn_user_callback: PFN_vkDeviceMemoryReportCallbackEXT,
14380    ///Optional, may be null.
14381    pub p_user_data: *mut core::ffi::c_void,
14382}
14383impl Default for DeviceDeviceMemoryReportCreateInfoEXT {
14384    #[inline]
14385    fn default() -> Self {
14386        Self {
14387            s_type: StructureType::from_raw(1000284001i32),
14388            p_next: core::ptr::null(),
14389            flags: Default::default(),
14390            pfn_user_callback: Default::default(),
14391            p_user_data: core::ptr::null_mut(),
14392        }
14393    }
14394}
14395///[`VkDeviceMemoryReportCallbackDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryReportCallbackDataEXT.html)
14396/**
14397Provided by **VK_EXT_device_memory_report**.*/
14398/**
14399**Returned only**, filled by Vulkan, not constructed by the application.*/
14400#[repr(C)]
14401#[derive(Copy, Clone, Debug)]
14402#[doc(alias = "VkDeviceMemoryReportCallbackDataEXT")]
14403pub struct DeviceMemoryReportCallbackDataEXT {
14404    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT`.
14405    pub s_type: StructureType,
14406    ///Optional, may be null.
14407    pub p_next: *mut core::ffi::c_void,
14408    pub flags: DeviceMemoryReportFlagsEXT,
14409    pub r#type: DeviceMemoryReportEventTypeEXT,
14410    pub memory_object_id: u64,
14411    pub size: u64,
14412    pub object_type: ObjectType,
14413    pub object_handle: u64,
14414    pub heap_index: u32,
14415}
14416impl Default for DeviceMemoryReportCallbackDataEXT {
14417    #[inline]
14418    fn default() -> Self {
14419        Self {
14420            s_type: StructureType::from_raw(1000284002i32),
14421            p_next: core::ptr::null_mut(),
14422            flags: Default::default(),
14423            r#type: Default::default(),
14424            memory_object_id: Default::default(),
14425            size: Default::default(),
14426            object_type: Default::default(),
14427            object_handle: Default::default(),
14428            heap_index: Default::default(),
14429        }
14430    }
14431}
14432///[`VkImportMemoryHostPointerInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryHostPointerInfoEXT.html)
14433/**
14434Provided by **VK_EXT_external_memory_host**.*/
14435///
14436///# Extends
14437///- [`MemoryAllocateInfo`]
14438#[repr(C)]
14439#[derive(Copy, Clone, Debug)]
14440#[doc(alias = "VkImportMemoryHostPointerInfoEXT")]
14441pub struct ImportMemoryHostPointerInfoEXT {
14442    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT`.
14443    pub s_type: StructureType,
14444    ///Optional, may be null.
14445    pub p_next: *const core::ffi::c_void,
14446    pub handle_type: ExternalMemoryHandleTypeFlagBits,
14447    pub p_host_pointer: *mut core::ffi::c_void,
14448}
14449impl Default for ImportMemoryHostPointerInfoEXT {
14450    #[inline]
14451    fn default() -> Self {
14452        Self {
14453            s_type: StructureType::from_raw(1000178000i32),
14454            p_next: core::ptr::null(),
14455            handle_type: Default::default(),
14456            p_host_pointer: core::ptr::null_mut(),
14457        }
14458    }
14459}
14460///[`VkMemoryHostPointerPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryHostPointerPropertiesEXT.html)
14461/**
14462Provided by **VK_EXT_external_memory_host**.*/
14463/**
14464**Returned only**, filled by Vulkan, not constructed by the application.*/
14465#[repr(C)]
14466#[derive(Copy, Clone, Debug)]
14467#[doc(alias = "VkMemoryHostPointerPropertiesEXT")]
14468pub struct MemoryHostPointerPropertiesEXT {
14469    ///Must be `VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT`.
14470    pub s_type: StructureType,
14471    ///Optional, may be null.
14472    pub p_next: *mut core::ffi::c_void,
14473    pub memory_type_bits: u32,
14474}
14475impl Default for MemoryHostPointerPropertiesEXT {
14476    #[inline]
14477    fn default() -> Self {
14478        Self {
14479            s_type: StructureType::from_raw(1000178001i32),
14480            p_next: core::ptr::null_mut(),
14481            memory_type_bits: Default::default(),
14482        }
14483    }
14484}
14485///[`VkPhysicalDeviceExternalMemoryHostPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.html)
14486/**
14487Provided by **VK_EXT_external_memory_host**.*/
14488/**
14489**Returned only**, filled by Vulkan, not constructed by the application.*/
14490///
14491///# Extends
14492///- [`PhysicalDeviceProperties2`]
14493#[repr(C)]
14494#[derive(Copy, Clone, Debug)]
14495#[doc(alias = "VkPhysicalDeviceExternalMemoryHostPropertiesEXT")]
14496pub struct PhysicalDeviceExternalMemoryHostPropertiesEXT {
14497    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT`.
14498    pub s_type: StructureType,
14499    ///Optional, may be null.
14500    pub p_next: *mut core::ffi::c_void,
14501    pub min_imported_host_pointer_alignment: u64,
14502}
14503impl Default for PhysicalDeviceExternalMemoryHostPropertiesEXT {
14504    #[inline]
14505    fn default() -> Self {
14506        Self {
14507            s_type: StructureType::from_raw(1000178002i32),
14508            p_next: core::ptr::null_mut(),
14509            min_imported_host_pointer_alignment: Default::default(),
14510        }
14511    }
14512}
14513///[`VkPhysicalDeviceConservativeRasterizationPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.html)
14514/**
14515Provided by **VK_EXT_conservative_rasterization**.*/
14516/**
14517**Returned only**, filled by Vulkan, not constructed by the application.*/
14518///
14519///# Extends
14520///- [`PhysicalDeviceProperties2`]
14521#[repr(C)]
14522#[derive(Copy, Clone, Debug)]
14523#[doc(alias = "VkPhysicalDeviceConservativeRasterizationPropertiesEXT")]
14524pub struct PhysicalDeviceConservativeRasterizationPropertiesEXT {
14525    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT`.
14526    pub s_type: StructureType,
14527    ///Optional, may be null.
14528    pub p_next: *mut core::ffi::c_void,
14529    pub primitive_overestimation_size: f32,
14530    pub max_extra_primitive_overestimation_size: f32,
14531    pub extra_primitive_overestimation_size_granularity: f32,
14532    pub primitive_underestimation: u32,
14533    pub conservative_point_and_line_rasterization: u32,
14534    pub degenerate_triangles_rasterized: u32,
14535    pub degenerate_lines_rasterized: u32,
14536    pub fully_covered_fragment_shader_input_variable: u32,
14537    pub conservative_rasterization_post_depth_coverage: u32,
14538}
14539impl Default for PhysicalDeviceConservativeRasterizationPropertiesEXT {
14540    #[inline]
14541    fn default() -> Self {
14542        Self {
14543            s_type: StructureType::from_raw(1000101000i32),
14544            p_next: core::ptr::null_mut(),
14545            primitive_overestimation_size: Default::default(),
14546            max_extra_primitive_overestimation_size: Default::default(),
14547            extra_primitive_overestimation_size_granularity: Default::default(),
14548            primitive_underestimation: Default::default(),
14549            conservative_point_and_line_rasterization: Default::default(),
14550            degenerate_triangles_rasterized: Default::default(),
14551            degenerate_lines_rasterized: Default::default(),
14552            fully_covered_fragment_shader_input_variable: Default::default(),
14553            conservative_rasterization_post_depth_coverage: Default::default(),
14554        }
14555    }
14556}
14557///[`VkCalibratedTimestampInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCalibratedTimestampInfoKHR.html)
14558/**
14559Provided by **VK_KHR_calibrated_timestamps**.*/
14560///
14561///# Extended By
14562///- [`SwapchainCalibratedTimestampInfoEXT`]
14563#[repr(C)]
14564#[derive(Copy, Clone, Debug)]
14565#[doc(alias = "VkCalibratedTimestampInfoKHR")]
14566pub struct CalibratedTimestampInfoKHR {
14567    ///Must be `VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR`.
14568    pub s_type: StructureType,
14569    ///Optional, may be null.
14570    pub p_next: *const core::ffi::c_void,
14571    pub time_domain: TimeDomainKHR,
14572}
14573impl Default for CalibratedTimestampInfoKHR {
14574    #[inline]
14575    fn default() -> Self {
14576        Self {
14577            s_type: StructureType::from_raw(1000184000i32),
14578            p_next: core::ptr::null(),
14579            time_domain: Default::default(),
14580        }
14581    }
14582}
14583///[`VkPhysicalDeviceShaderCorePropertiesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCorePropertiesAMD.html)
14584/**
14585Provided by **VK_AMD_shader_core_properties**.*/
14586/**
14587**Returned only**, filled by Vulkan, not constructed by the application.*/
14588///
14589///# Extends
14590///- [`PhysicalDeviceProperties2`]
14591#[repr(C)]
14592#[derive(Copy, Clone, Debug)]
14593#[doc(alias = "VkPhysicalDeviceShaderCorePropertiesAMD")]
14594pub struct PhysicalDeviceShaderCorePropertiesAMD {
14595    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD`.
14596    pub s_type: StructureType,
14597    ///Optional, may be null.
14598    pub p_next: *mut core::ffi::c_void,
14599    pub shader_engine_count: u32,
14600    pub shader_arrays_per_engine_count: u32,
14601    pub compute_units_per_shader_array: u32,
14602    pub simd_per_compute_unit: u32,
14603    pub wavefronts_per_simd: u32,
14604    pub wavefront_size: u32,
14605    pub sgprs_per_simd: u32,
14606    pub min_sgpr_allocation: u32,
14607    pub max_sgpr_allocation: u32,
14608    pub sgpr_allocation_granularity: u32,
14609    pub vgprs_per_simd: u32,
14610    pub min_vgpr_allocation: u32,
14611    pub max_vgpr_allocation: u32,
14612    pub vgpr_allocation_granularity: u32,
14613}
14614impl Default for PhysicalDeviceShaderCorePropertiesAMD {
14615    #[inline]
14616    fn default() -> Self {
14617        Self {
14618            s_type: StructureType::from_raw(1000185000i32),
14619            p_next: core::ptr::null_mut(),
14620            shader_engine_count: Default::default(),
14621            shader_arrays_per_engine_count: Default::default(),
14622            compute_units_per_shader_array: Default::default(),
14623            simd_per_compute_unit: Default::default(),
14624            wavefronts_per_simd: Default::default(),
14625            wavefront_size: Default::default(),
14626            sgprs_per_simd: Default::default(),
14627            min_sgpr_allocation: Default::default(),
14628            max_sgpr_allocation: Default::default(),
14629            sgpr_allocation_granularity: Default::default(),
14630            vgprs_per_simd: Default::default(),
14631            min_vgpr_allocation: Default::default(),
14632            max_vgpr_allocation: Default::default(),
14633            vgpr_allocation_granularity: Default::default(),
14634        }
14635    }
14636}
14637///[`VkPhysicalDeviceShaderCoreProperties2AMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCoreProperties2AMD.html)
14638/**
14639Provided by **VK_AMD_shader_core_properties2**.*/
14640/**
14641**Returned only**, filled by Vulkan, not constructed by the application.*/
14642///
14643///# Extends
14644///- [`PhysicalDeviceProperties2`]
14645#[repr(C)]
14646#[derive(Copy, Clone, Debug)]
14647#[doc(alias = "VkPhysicalDeviceShaderCoreProperties2AMD")]
14648pub struct PhysicalDeviceShaderCoreProperties2AMD {
14649    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD`.
14650    pub s_type: StructureType,
14651    ///Optional, may be null.
14652    pub p_next: *mut core::ffi::c_void,
14653    pub shader_core_features: ShaderCorePropertiesFlagsAMD,
14654    pub active_compute_unit_count: u32,
14655}
14656impl Default for PhysicalDeviceShaderCoreProperties2AMD {
14657    #[inline]
14658    fn default() -> Self {
14659        Self {
14660            s_type: StructureType::from_raw(1000227000i32),
14661            p_next: core::ptr::null_mut(),
14662            shader_core_features: Default::default(),
14663            active_compute_unit_count: Default::default(),
14664        }
14665    }
14666}
14667///[`VkPipelineRasterizationConservativeStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationConservativeStateCreateInfoEXT.html)
14668/**
14669Provided by **VK_EXT_conservative_rasterization**.*/
14670///
14671///# Extends
14672///- [`PipelineRasterizationStateCreateInfo`]
14673#[repr(C)]
14674#[derive(Copy, Clone, Debug)]
14675#[doc(alias = "VkPipelineRasterizationConservativeStateCreateInfoEXT")]
14676pub struct PipelineRasterizationConservativeStateCreateInfoEXT {
14677    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT`.
14678    pub s_type: StructureType,
14679    ///Optional, may be null.
14680    pub p_next: *const core::ffi::c_void,
14681    pub flags: PipelineRasterizationConservativeStateCreateFlagsEXT,
14682    pub conservative_rasterization_mode: ConservativeRasterizationModeEXT,
14683    pub extra_primitive_overestimation_size: f32,
14684}
14685impl Default for PipelineRasterizationConservativeStateCreateInfoEXT {
14686    #[inline]
14687    fn default() -> Self {
14688        Self {
14689            s_type: StructureType::from_raw(1000101001i32),
14690            p_next: core::ptr::null(),
14691            flags: Default::default(),
14692            conservative_rasterization_mode: Default::default(),
14693            extra_primitive_overestimation_size: Default::default(),
14694        }
14695    }
14696}
14697///[`VkPhysicalDeviceDescriptorIndexingFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorIndexingFeatures.html)
14698/**
14699Provided by **VK_COMPUTE_VERSION_1_2**.*/
14700///
14701///# Extends
14702///- [`PhysicalDeviceFeatures2`]
14703///- [`DeviceCreateInfo`]
14704#[repr(C)]
14705#[derive(Copy, Clone, Debug)]
14706#[doc(alias = "VkPhysicalDeviceDescriptorIndexingFeatures")]
14707pub struct PhysicalDeviceDescriptorIndexingFeatures {
14708    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES`.
14709    pub s_type: StructureType,
14710    ///Optional, may be null.
14711    pub p_next: *mut core::ffi::c_void,
14712    pub shader_input_attachment_array_dynamic_indexing: u32,
14713    pub shader_uniform_texel_buffer_array_dynamic_indexing: u32,
14714    pub shader_storage_texel_buffer_array_dynamic_indexing: u32,
14715    pub shader_uniform_buffer_array_non_uniform_indexing: u32,
14716    pub shader_sampled_image_array_non_uniform_indexing: u32,
14717    pub shader_storage_buffer_array_non_uniform_indexing: u32,
14718    pub shader_storage_image_array_non_uniform_indexing: u32,
14719    pub shader_input_attachment_array_non_uniform_indexing: u32,
14720    pub shader_uniform_texel_buffer_array_non_uniform_indexing: u32,
14721    pub shader_storage_texel_buffer_array_non_uniform_indexing: u32,
14722    pub descriptor_binding_uniform_buffer_update_after_bind: u32,
14723    pub descriptor_binding_sampled_image_update_after_bind: u32,
14724    pub descriptor_binding_storage_image_update_after_bind: u32,
14725    pub descriptor_binding_storage_buffer_update_after_bind: u32,
14726    pub descriptor_binding_uniform_texel_buffer_update_after_bind: u32,
14727    pub descriptor_binding_storage_texel_buffer_update_after_bind: u32,
14728    pub descriptor_binding_update_unused_while_pending: u32,
14729    pub descriptor_binding_partially_bound: u32,
14730    pub descriptor_binding_variable_descriptor_count: u32,
14731    pub runtime_descriptor_array: u32,
14732}
14733impl Default for PhysicalDeviceDescriptorIndexingFeatures {
14734    #[inline]
14735    fn default() -> Self {
14736        Self {
14737            s_type: StructureType::from_raw(1000161001i32),
14738            p_next: core::ptr::null_mut(),
14739            shader_input_attachment_array_dynamic_indexing: Default::default(),
14740            shader_uniform_texel_buffer_array_dynamic_indexing: Default::default(),
14741            shader_storage_texel_buffer_array_dynamic_indexing: Default::default(),
14742            shader_uniform_buffer_array_non_uniform_indexing: Default::default(),
14743            shader_sampled_image_array_non_uniform_indexing: Default::default(),
14744            shader_storage_buffer_array_non_uniform_indexing: Default::default(),
14745            shader_storage_image_array_non_uniform_indexing: Default::default(),
14746            shader_input_attachment_array_non_uniform_indexing: Default::default(),
14747            shader_uniform_texel_buffer_array_non_uniform_indexing: Default::default(),
14748            shader_storage_texel_buffer_array_non_uniform_indexing: Default::default(),
14749            descriptor_binding_uniform_buffer_update_after_bind: Default::default(),
14750            descriptor_binding_sampled_image_update_after_bind: Default::default(),
14751            descriptor_binding_storage_image_update_after_bind: Default::default(),
14752            descriptor_binding_storage_buffer_update_after_bind: Default::default(),
14753            descriptor_binding_uniform_texel_buffer_update_after_bind: Default::default(),
14754            descriptor_binding_storage_texel_buffer_update_after_bind: Default::default(),
14755            descriptor_binding_update_unused_while_pending: Default::default(),
14756            descriptor_binding_partially_bound: Default::default(),
14757            descriptor_binding_variable_descriptor_count: Default::default(),
14758            runtime_descriptor_array: Default::default(),
14759        }
14760    }
14761}
14762///[`VkPhysicalDeviceDescriptorIndexingProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorIndexingProperties.html)
14763/**
14764Provided by **VK_COMPUTE_VERSION_1_2**.*/
14765/**
14766**Returned only**, filled by Vulkan, not constructed by the application.*/
14767///
14768///# Extends
14769///- [`PhysicalDeviceProperties2`]
14770#[repr(C)]
14771#[derive(Copy, Clone, Debug)]
14772#[doc(alias = "VkPhysicalDeviceDescriptorIndexingProperties")]
14773pub struct PhysicalDeviceDescriptorIndexingProperties {
14774    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES`.
14775    pub s_type: StructureType,
14776    ///Optional, may be null.
14777    pub p_next: *mut core::ffi::c_void,
14778    pub max_update_after_bind_descriptors_in_all_pools: u32,
14779    pub shader_uniform_buffer_array_non_uniform_indexing_native: u32,
14780    pub shader_sampled_image_array_non_uniform_indexing_native: u32,
14781    pub shader_storage_buffer_array_non_uniform_indexing_native: u32,
14782    pub shader_storage_image_array_non_uniform_indexing_native: u32,
14783    pub shader_input_attachment_array_non_uniform_indexing_native: u32,
14784    pub robust_buffer_access_update_after_bind: u32,
14785    pub quad_divergent_implicit_lod: u32,
14786    pub max_per_stage_descriptor_update_after_bind_samplers: u32,
14787    pub max_per_stage_descriptor_update_after_bind_uniform_buffers: u32,
14788    pub max_per_stage_descriptor_update_after_bind_storage_buffers: u32,
14789    pub max_per_stage_descriptor_update_after_bind_sampled_images: u32,
14790    pub max_per_stage_descriptor_update_after_bind_storage_images: u32,
14791    pub max_per_stage_descriptor_update_after_bind_input_attachments: u32,
14792    pub max_per_stage_update_after_bind_resources: u32,
14793    pub max_descriptor_set_update_after_bind_samplers: u32,
14794    pub max_descriptor_set_update_after_bind_uniform_buffers: u32,
14795    pub max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32,
14796    pub max_descriptor_set_update_after_bind_storage_buffers: u32,
14797    pub max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32,
14798    pub max_descriptor_set_update_after_bind_sampled_images: u32,
14799    pub max_descriptor_set_update_after_bind_storage_images: u32,
14800    pub max_descriptor_set_update_after_bind_input_attachments: u32,
14801}
14802impl Default for PhysicalDeviceDescriptorIndexingProperties {
14803    #[inline]
14804    fn default() -> Self {
14805        Self {
14806            s_type: StructureType::from_raw(1000161002i32),
14807            p_next: core::ptr::null_mut(),
14808            max_update_after_bind_descriptors_in_all_pools: Default::default(),
14809            shader_uniform_buffer_array_non_uniform_indexing_native: Default::default(),
14810            shader_sampled_image_array_non_uniform_indexing_native: Default::default(),
14811            shader_storage_buffer_array_non_uniform_indexing_native: Default::default(),
14812            shader_storage_image_array_non_uniform_indexing_native: Default::default(),
14813            shader_input_attachment_array_non_uniform_indexing_native: Default::default(),
14814            robust_buffer_access_update_after_bind: Default::default(),
14815            quad_divergent_implicit_lod: Default::default(),
14816            max_per_stage_descriptor_update_after_bind_samplers: Default::default(),
14817            max_per_stage_descriptor_update_after_bind_uniform_buffers: Default::default(),
14818            max_per_stage_descriptor_update_after_bind_storage_buffers: Default::default(),
14819            max_per_stage_descriptor_update_after_bind_sampled_images: Default::default(),
14820            max_per_stage_descriptor_update_after_bind_storage_images: Default::default(),
14821            max_per_stage_descriptor_update_after_bind_input_attachments: Default::default(),
14822            max_per_stage_update_after_bind_resources: Default::default(),
14823            max_descriptor_set_update_after_bind_samplers: Default::default(),
14824            max_descriptor_set_update_after_bind_uniform_buffers: Default::default(),
14825            max_descriptor_set_update_after_bind_uniform_buffers_dynamic: Default::default(),
14826            max_descriptor_set_update_after_bind_storage_buffers: Default::default(),
14827            max_descriptor_set_update_after_bind_storage_buffers_dynamic: Default::default(),
14828            max_descriptor_set_update_after_bind_sampled_images: Default::default(),
14829            max_descriptor_set_update_after_bind_storage_images: Default::default(),
14830            max_descriptor_set_update_after_bind_input_attachments: Default::default(),
14831        }
14832    }
14833}
14834///[`VkDescriptorSetLayoutBindingFlagsCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutBindingFlagsCreateInfo.html)
14835/**
14836Provided by **VK_COMPUTE_VERSION_1_2**.*/
14837///
14838///# Extends
14839///- [`DescriptorSetLayoutCreateInfo`]
14840#[repr(C)]
14841#[derive(Copy, Clone, Debug)]
14842#[doc(alias = "VkDescriptorSetLayoutBindingFlagsCreateInfo")]
14843pub struct DescriptorSetLayoutBindingFlagsCreateInfo {
14844    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO`.
14845    pub s_type: StructureType,
14846    ///Optional, may be null.
14847    pub p_next: *const core::ffi::c_void,
14848    ///Length of `p_binding_flags`.
14849    pub binding_count: u32,
14850    ///Optional, may be null.
14851    pub p_binding_flags: *const DescriptorBindingFlags,
14852}
14853impl Default for DescriptorSetLayoutBindingFlagsCreateInfo {
14854    #[inline]
14855    fn default() -> Self {
14856        Self {
14857            s_type: StructureType::from_raw(1000161000i32),
14858            p_next: core::ptr::null(),
14859            binding_count: Default::default(),
14860            p_binding_flags: core::ptr::null(),
14861        }
14862    }
14863}
14864///[`VkDescriptorSetVariableDescriptorCountAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetVariableDescriptorCountAllocateInfo.html)
14865/**
14866Provided by **VK_COMPUTE_VERSION_1_2**.*/
14867///
14868///# Extends
14869///- [`DescriptorSetAllocateInfo`]
14870#[repr(C)]
14871#[derive(Copy, Clone, Debug)]
14872#[doc(alias = "VkDescriptorSetVariableDescriptorCountAllocateInfo")]
14873pub struct DescriptorSetVariableDescriptorCountAllocateInfo {
14874    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO`.
14875    pub s_type: StructureType,
14876    ///Optional, may be null.
14877    pub p_next: *const core::ffi::c_void,
14878    ///Length of `p_descriptor_counts`.
14879    pub descriptor_set_count: u32,
14880    pub p_descriptor_counts: *const u32,
14881}
14882impl Default for DescriptorSetVariableDescriptorCountAllocateInfo {
14883    #[inline]
14884    fn default() -> Self {
14885        Self {
14886            s_type: StructureType::from_raw(1000161003i32),
14887            p_next: core::ptr::null(),
14888            descriptor_set_count: Default::default(),
14889            p_descriptor_counts: core::ptr::null(),
14890        }
14891    }
14892}
14893///[`VkDescriptorSetVariableDescriptorCountLayoutSupport`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetVariableDescriptorCountLayoutSupport.html)
14894/**
14895Provided by **VK_COMPUTE_VERSION_1_2**.*/
14896/**
14897**Returned only**, filled by Vulkan, not constructed by the application.*/
14898///
14899///# Extends
14900///- [`DescriptorSetLayoutSupport`]
14901#[repr(C)]
14902#[derive(Copy, Clone, Debug)]
14903#[doc(alias = "VkDescriptorSetVariableDescriptorCountLayoutSupport")]
14904pub struct DescriptorSetVariableDescriptorCountLayoutSupport {
14905    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT`.
14906    pub s_type: StructureType,
14907    ///Optional, may be null.
14908    pub p_next: *mut core::ffi::c_void,
14909    pub max_variable_descriptor_count: u32,
14910}
14911impl Default for DescriptorSetVariableDescriptorCountLayoutSupport {
14912    #[inline]
14913    fn default() -> Self {
14914        Self {
14915            s_type: StructureType::from_raw(1000161004i32),
14916            p_next: core::ptr::null_mut(),
14917            max_variable_descriptor_count: Default::default(),
14918        }
14919    }
14920}
14921///[`VkAttachmentDescription2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentDescription2.html)
14922/**
14923Provided by **VK_GRAPHICS_VERSION_1_2**.*/
14924///
14925///# Extended By
14926///- [`AttachmentDescriptionStencilLayout`]
14927///- [`ExternalFormatANDROID`]
14928///- [`ExternalFormatOHOS`]
14929#[repr(C)]
14930#[derive(Copy, Clone, Debug)]
14931#[doc(alias = "VkAttachmentDescription2")]
14932pub struct AttachmentDescription2 {
14933    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2`.
14934    pub s_type: StructureType,
14935    ///Optional, may be null.
14936    pub p_next: *const core::ffi::c_void,
14937    pub flags: AttachmentDescriptionFlags,
14938    pub format: Format,
14939    pub samples: SampleCountFlagBits,
14940    pub load_op: AttachmentLoadOp,
14941    pub store_op: AttachmentStoreOp,
14942    pub stencil_load_op: AttachmentLoadOp,
14943    pub stencil_store_op: AttachmentStoreOp,
14944    pub initial_layout: ImageLayout,
14945    pub final_layout: ImageLayout,
14946}
14947impl Default for AttachmentDescription2 {
14948    #[inline]
14949    fn default() -> Self {
14950        Self {
14951            s_type: StructureType::from_raw(1000109000i32),
14952            p_next: core::ptr::null(),
14953            flags: Default::default(),
14954            format: Default::default(),
14955            samples: Default::default(),
14956            load_op: Default::default(),
14957            store_op: Default::default(),
14958            stencil_load_op: Default::default(),
14959            stencil_store_op: Default::default(),
14960            initial_layout: Default::default(),
14961            final_layout: Default::default(),
14962        }
14963    }
14964}
14965///[`VkAttachmentReference2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentReference2.html)
14966/**
14967Provided by **VK_GRAPHICS_VERSION_1_2**.*/
14968///
14969///# Extended By
14970///- [`AttachmentReferenceStencilLayout`]
14971#[repr(C)]
14972#[derive(Copy, Clone, Debug)]
14973#[doc(alias = "VkAttachmentReference2")]
14974pub struct AttachmentReference2 {
14975    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2`.
14976    pub s_type: StructureType,
14977    ///Optional, may be null.
14978    pub p_next: *const core::ffi::c_void,
14979    pub attachment: u32,
14980    pub layout: ImageLayout,
14981    pub aspect_mask: ImageAspectFlags,
14982}
14983impl Default for AttachmentReference2 {
14984    #[inline]
14985    fn default() -> Self {
14986        Self {
14987            s_type: StructureType::from_raw(1000109001i32),
14988            p_next: core::ptr::null(),
14989            attachment: Default::default(),
14990            layout: Default::default(),
14991            aspect_mask: Default::default(),
14992        }
14993    }
14994}
14995///[`VkSubpassDescription2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDescription2.html)
14996/**
14997Provided by **VK_GRAPHICS_VERSION_1_2**.*/
14998///
14999///# Extended By
15000///- [`FragmentShadingRateAttachmentInfoKHR`]
15001///- [`MultisampledRenderToSingleSampledInfoEXT`]
15002///- [`RenderPassCreationControlEXT`]
15003///- [`RenderPassSubpassFeedbackCreateInfoEXT`]
15004///- [`SubpassDescriptionDepthStencilResolve`]
15005#[repr(C)]
15006#[derive(Copy, Clone, Debug)]
15007#[doc(alias = "VkSubpassDescription2")]
15008pub struct SubpassDescription2 {
15009    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2`.
15010    pub s_type: StructureType,
15011    ///Optional, may be null.
15012    pub p_next: *const core::ffi::c_void,
15013    pub flags: SubpassDescriptionFlags,
15014    pub pipeline_bind_point: PipelineBindPoint,
15015    pub view_mask: u32,
15016    ///Length of `p_input_attachments`.
15017    pub input_attachment_count: u32,
15018    pub p_input_attachments: *const AttachmentReference2,
15019    ///Length of `p_resolve_attachments`.
15020    pub color_attachment_count: u32,
15021    pub p_color_attachments: *const AttachmentReference2,
15022    ///Optional, may be null.
15023    pub p_resolve_attachments: *const AttachmentReference2,
15024    ///Optional, may be null.
15025    pub p_depth_stencil_attachment: *const AttachmentReference2,
15026    ///Length of `p_preserve_attachments`.
15027    pub preserve_attachment_count: u32,
15028    pub p_preserve_attachments: *const u32,
15029}
15030impl Default for SubpassDescription2 {
15031    #[inline]
15032    fn default() -> Self {
15033        Self {
15034            s_type: StructureType::from_raw(1000109002i32),
15035            p_next: core::ptr::null(),
15036            flags: Default::default(),
15037            pipeline_bind_point: Default::default(),
15038            view_mask: Default::default(),
15039            input_attachment_count: Default::default(),
15040            p_input_attachments: core::ptr::null(),
15041            color_attachment_count: Default::default(),
15042            p_color_attachments: core::ptr::null(),
15043            p_resolve_attachments: core::ptr::null(),
15044            p_depth_stencil_attachment: core::ptr::null(),
15045            preserve_attachment_count: Default::default(),
15046            p_preserve_attachments: core::ptr::null(),
15047        }
15048    }
15049}
15050///[`VkSubpassDependency2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDependency2.html)
15051/**
15052Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15053///
15054///# Extended By
15055///- [`MemoryBarrier2`]
15056///- [`MemoryBarrierAccessFlags3KHR`]
15057#[repr(C)]
15058#[derive(Copy, Clone, Debug)]
15059#[doc(alias = "VkSubpassDependency2")]
15060pub struct SubpassDependency2 {
15061    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2`.
15062    pub s_type: StructureType,
15063    ///Optional, may be null.
15064    pub p_next: *const core::ffi::c_void,
15065    pub src_subpass: u32,
15066    pub dst_subpass: u32,
15067    pub src_stage_mask: PipelineStageFlags,
15068    pub dst_stage_mask: PipelineStageFlags,
15069    pub src_access_mask: AccessFlags,
15070    pub dst_access_mask: AccessFlags,
15071    pub dependency_flags: DependencyFlags,
15072    pub view_offset: i32,
15073}
15074impl Default for SubpassDependency2 {
15075    #[inline]
15076    fn default() -> Self {
15077        Self {
15078            s_type: StructureType::from_raw(1000109003i32),
15079            p_next: core::ptr::null(),
15080            src_subpass: Default::default(),
15081            dst_subpass: Default::default(),
15082            src_stage_mask: Default::default(),
15083            dst_stage_mask: Default::default(),
15084            src_access_mask: Default::default(),
15085            dst_access_mask: Default::default(),
15086            dependency_flags: Default::default(),
15087            view_offset: Default::default(),
15088        }
15089    }
15090}
15091///[`VkRenderPassCreateInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreateInfo2.html)
15092/**
15093Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15094///
15095///# Extended By
15096///- [`RenderPassCreationControlEXT`]
15097///- [`RenderPassCreationFeedbackCreateInfoEXT`]
15098///- [`RenderPassFragmentDensityMapCreateInfoEXT`]
15099///- [`RenderPassTileShadingCreateInfoQCOM`]
15100///- [`TileMemorySizeInfoQCOM`]
15101#[repr(C)]
15102#[derive(Copy, Clone, Debug)]
15103#[doc(alias = "VkRenderPassCreateInfo2")]
15104pub struct RenderPassCreateInfo2 {
15105    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2`.
15106    pub s_type: StructureType,
15107    ///Optional, may be null.
15108    pub p_next: *const core::ffi::c_void,
15109    pub flags: RenderPassCreateFlags,
15110    ///Length of `p_attachments`.
15111    pub attachment_count: u32,
15112    pub p_attachments: *const AttachmentDescription2,
15113    ///Length of `p_subpasses`.
15114    pub subpass_count: u32,
15115    pub p_subpasses: *const SubpassDescription2,
15116    ///Length of `p_dependencies`.
15117    pub dependency_count: u32,
15118    pub p_dependencies: *const SubpassDependency2,
15119    ///Length of `p_correlated_view_masks`.
15120    pub correlated_view_mask_count: u32,
15121    pub p_correlated_view_masks: *const u32,
15122}
15123impl Default for RenderPassCreateInfo2 {
15124    #[inline]
15125    fn default() -> Self {
15126        Self {
15127            s_type: StructureType::from_raw(1000109004i32),
15128            p_next: core::ptr::null(),
15129            flags: Default::default(),
15130            attachment_count: Default::default(),
15131            p_attachments: core::ptr::null(),
15132            subpass_count: Default::default(),
15133            p_subpasses: core::ptr::null(),
15134            dependency_count: Default::default(),
15135            p_dependencies: core::ptr::null(),
15136            correlated_view_mask_count: Default::default(),
15137            p_correlated_view_masks: core::ptr::null(),
15138        }
15139    }
15140}
15141///[`VkSubpassBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassBeginInfo.html)
15142/**
15143Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15144#[repr(C)]
15145#[derive(Copy, Clone, Debug)]
15146#[doc(alias = "VkSubpassBeginInfo")]
15147pub struct SubpassBeginInfo {
15148    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO`.
15149    pub s_type: StructureType,
15150    ///Optional, may be null.
15151    pub p_next: *const core::ffi::c_void,
15152    pub contents: SubpassContents,
15153}
15154impl Default for SubpassBeginInfo {
15155    #[inline]
15156    fn default() -> Self {
15157        Self {
15158            s_type: StructureType::from_raw(1000109005i32),
15159            p_next: core::ptr::null(),
15160            contents: Default::default(),
15161        }
15162    }
15163}
15164///[`VkSubpassEndInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassEndInfo.html)
15165/**
15166Provided by **VK_GRAPHICS_VERSION_1_2**.*/
15167///
15168///# Extended By
15169///- [`RenderPassFragmentDensityMapOffsetEndInfoEXT`]
15170#[repr(C)]
15171#[derive(Copy, Clone, Debug)]
15172#[doc(alias = "VkSubpassEndInfo")]
15173pub struct SubpassEndInfo {
15174    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_END_INFO`.
15175    pub s_type: StructureType,
15176    ///Optional, may be null.
15177    pub p_next: *const core::ffi::c_void,
15178}
15179impl Default for SubpassEndInfo {
15180    #[inline]
15181    fn default() -> Self {
15182        Self {
15183            s_type: StructureType::from_raw(1000109006i32),
15184            p_next: core::ptr::null(),
15185        }
15186    }
15187}
15188///[`VkPhysicalDeviceTimelineSemaphoreFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTimelineSemaphoreFeatures.html)
15189/**
15190Provided by **VK_BASE_VERSION_1_2**.*/
15191///
15192///# Extends
15193///- [`PhysicalDeviceFeatures2`]
15194///- [`DeviceCreateInfo`]
15195#[repr(C)]
15196#[derive(Copy, Clone, Debug)]
15197#[doc(alias = "VkPhysicalDeviceTimelineSemaphoreFeatures")]
15198pub struct PhysicalDeviceTimelineSemaphoreFeatures {
15199    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES`.
15200    pub s_type: StructureType,
15201    ///Optional, may be null.
15202    pub p_next: *mut core::ffi::c_void,
15203    pub timeline_semaphore: u32,
15204}
15205impl Default for PhysicalDeviceTimelineSemaphoreFeatures {
15206    #[inline]
15207    fn default() -> Self {
15208        Self {
15209            s_type: StructureType::from_raw(1000207000i32),
15210            p_next: core::ptr::null_mut(),
15211            timeline_semaphore: Default::default(),
15212        }
15213    }
15214}
15215///[`VkPhysicalDeviceTimelineSemaphoreProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTimelineSemaphoreProperties.html)
15216/**
15217Provided by **VK_BASE_VERSION_1_2**.*/
15218/**
15219**Returned only**, filled by Vulkan, not constructed by the application.*/
15220///
15221///# Extends
15222///- [`PhysicalDeviceProperties2`]
15223#[repr(C)]
15224#[derive(Copy, Clone, Debug)]
15225#[doc(alias = "VkPhysicalDeviceTimelineSemaphoreProperties")]
15226pub struct PhysicalDeviceTimelineSemaphoreProperties {
15227    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES`.
15228    pub s_type: StructureType,
15229    ///Optional, may be null.
15230    pub p_next: *mut core::ffi::c_void,
15231    pub max_timeline_semaphore_value_difference: u64,
15232}
15233impl Default for PhysicalDeviceTimelineSemaphoreProperties {
15234    #[inline]
15235    fn default() -> Self {
15236        Self {
15237            s_type: StructureType::from_raw(1000207001i32),
15238            p_next: core::ptr::null_mut(),
15239            max_timeline_semaphore_value_difference: Default::default(),
15240        }
15241    }
15242}
15243///[`VkSemaphoreTypeCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreTypeCreateInfo.html)
15244/**
15245Provided by **VK_BASE_VERSION_1_2**.*/
15246///
15247///# Extends
15248///- [`SemaphoreCreateInfo`]
15249///- [`PhysicalDeviceExternalSemaphoreInfo`]
15250#[repr(C)]
15251#[derive(Copy, Clone, Debug)]
15252#[doc(alias = "VkSemaphoreTypeCreateInfo")]
15253pub struct SemaphoreTypeCreateInfo {
15254    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO`.
15255    pub s_type: StructureType,
15256    ///Optional, may be null.
15257    pub p_next: *const core::ffi::c_void,
15258    pub semaphore_type: SemaphoreType,
15259    pub initial_value: u64,
15260}
15261impl Default for SemaphoreTypeCreateInfo {
15262    #[inline]
15263    fn default() -> Self {
15264        Self {
15265            s_type: StructureType::from_raw(1000207002i32),
15266            p_next: core::ptr::null(),
15267            semaphore_type: Default::default(),
15268            initial_value: Default::default(),
15269        }
15270    }
15271}
15272///[`VkTimelineSemaphoreSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTimelineSemaphoreSubmitInfo.html)
15273/**
15274Provided by **VK_BASE_VERSION_1_2**.*/
15275///
15276///# Extends
15277///- [`SubmitInfo`]
15278///- [`BindSparseInfo`]
15279#[repr(C)]
15280#[derive(Copy, Clone, Debug)]
15281#[doc(alias = "VkTimelineSemaphoreSubmitInfo")]
15282pub struct TimelineSemaphoreSubmitInfo {
15283    ///Must be `VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO`.
15284    pub s_type: StructureType,
15285    ///Optional, may be null.
15286    pub p_next: *const core::ffi::c_void,
15287    ///Length of `p_wait_semaphore_values`.
15288    pub wait_semaphore_value_count: u32,
15289    ///Optional, may be null.
15290    pub p_wait_semaphore_values: *const u64,
15291    ///Length of `p_signal_semaphore_values`.
15292    pub signal_semaphore_value_count: u32,
15293    ///Optional, may be null.
15294    pub p_signal_semaphore_values: *const u64,
15295}
15296impl Default for TimelineSemaphoreSubmitInfo {
15297    #[inline]
15298    fn default() -> Self {
15299        Self {
15300            s_type: StructureType::from_raw(1000207003i32),
15301            p_next: core::ptr::null(),
15302            wait_semaphore_value_count: Default::default(),
15303            p_wait_semaphore_values: core::ptr::null(),
15304            signal_semaphore_value_count: Default::default(),
15305            p_signal_semaphore_values: core::ptr::null(),
15306        }
15307    }
15308}
15309///[`VkSemaphoreWaitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreWaitInfo.html)
15310/**
15311Provided by **VK_BASE_VERSION_1_2**.*/
15312#[repr(C)]
15313#[derive(Copy, Clone, Debug)]
15314#[doc(alias = "VkSemaphoreWaitInfo")]
15315pub struct SemaphoreWaitInfo {
15316    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO`.
15317    pub s_type: StructureType,
15318    ///Optional, may be null.
15319    pub p_next: *const core::ffi::c_void,
15320    pub flags: SemaphoreWaitFlags,
15321    ///Length of `p_values`.
15322    pub semaphore_count: u32,
15323    pub p_semaphores: *const Semaphore,
15324    pub p_values: *const u64,
15325}
15326impl Default for SemaphoreWaitInfo {
15327    #[inline]
15328    fn default() -> Self {
15329        Self {
15330            s_type: StructureType::from_raw(1000207004i32),
15331            p_next: core::ptr::null(),
15332            flags: Default::default(),
15333            semaphore_count: Default::default(),
15334            p_semaphores: core::ptr::null(),
15335            p_values: core::ptr::null(),
15336        }
15337    }
15338}
15339///[`VkSemaphoreSignalInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreSignalInfo.html)
15340/**
15341Provided by **VK_BASE_VERSION_1_2**.*/
15342#[repr(C)]
15343#[derive(Copy, Clone, Debug)]
15344#[doc(alias = "VkSemaphoreSignalInfo")]
15345pub struct SemaphoreSignalInfo {
15346    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO`.
15347    pub s_type: StructureType,
15348    ///Optional, may be null.
15349    pub p_next: *const core::ffi::c_void,
15350    pub semaphore: Semaphore,
15351    pub value: u64,
15352}
15353impl Default for SemaphoreSignalInfo {
15354    #[inline]
15355    fn default() -> Self {
15356        Self {
15357            s_type: StructureType::from_raw(1000207005i32),
15358            p_next: core::ptr::null(),
15359            semaphore: Default::default(),
15360            value: Default::default(),
15361        }
15362    }
15363}
15364///[`VkVertexInputBindingDivisorDescription`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputBindingDivisorDescription.html)
15365/**
15366Provided by **VK_GRAPHICS_VERSION_1_4**.*/
15367#[repr(C)]
15368#[derive(Copy, Clone, Debug)]
15369#[doc(alias = "VkVertexInputBindingDivisorDescription")]
15370pub struct VertexInputBindingDivisorDescription {
15371    pub binding: u32,
15372    pub divisor: u32,
15373}
15374impl Default for VertexInputBindingDivisorDescription {
15375    #[inline]
15376    fn default() -> Self {
15377        unsafe { core::mem::zeroed() }
15378    }
15379}
15380///[`VkPipelineVertexInputDivisorStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineVertexInputDivisorStateCreateInfo.html)
15381/**
15382Provided by **VK_GRAPHICS_VERSION_1_4**.*/
15383///
15384///# Extends
15385///- [`PipelineVertexInputStateCreateInfo`]
15386#[repr(C)]
15387#[derive(Copy, Clone, Debug)]
15388#[doc(alias = "VkPipelineVertexInputDivisorStateCreateInfo")]
15389pub struct PipelineVertexInputDivisorStateCreateInfo {
15390    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO`.
15391    pub s_type: StructureType,
15392    ///Optional, may be null.
15393    pub p_next: *const core::ffi::c_void,
15394    ///Length of `p_vertex_binding_divisors`.
15395    pub vertex_binding_divisor_count: u32,
15396    pub p_vertex_binding_divisors: *const VertexInputBindingDivisorDescription,
15397}
15398impl Default for PipelineVertexInputDivisorStateCreateInfo {
15399    #[inline]
15400    fn default() -> Self {
15401        Self {
15402            s_type: StructureType::from_raw(1000190001i32),
15403            p_next: core::ptr::null(),
15404            vertex_binding_divisor_count: Default::default(),
15405            p_vertex_binding_divisors: core::ptr::null(),
15406        }
15407    }
15408}
15409///[`VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.html)
15410/**
15411Provided by **VK_EXT_vertex_attribute_divisor**.*/
15412/**
15413**Returned only**, filled by Vulkan, not constructed by the application.*/
15414///
15415///# Extends
15416///- [`PhysicalDeviceProperties2`]
15417#[repr(C)]
15418#[derive(Copy, Clone, Debug)]
15419#[doc(alias = "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT")]
15420pub struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
15421    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT`.
15422    pub s_type: StructureType,
15423    ///Optional, may be null.
15424    pub p_next: *mut core::ffi::c_void,
15425    pub max_vertex_attrib_divisor: u32,
15426}
15427impl Default for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
15428    #[inline]
15429    fn default() -> Self {
15430        Self {
15431            s_type: StructureType::from_raw(1000190000i32),
15432            p_next: core::ptr::null_mut(),
15433            max_vertex_attrib_divisor: Default::default(),
15434        }
15435    }
15436}
15437///[`VkPhysicalDeviceVertexAttributeDivisorProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexAttributeDivisorProperties.html)
15438/**
15439Provided by **VK_GRAPHICS_VERSION_1_4**.*/
15440/**
15441**Returned only**, filled by Vulkan, not constructed by the application.*/
15442///
15443///# Extends
15444///- [`PhysicalDeviceProperties2`]
15445#[repr(C)]
15446#[derive(Copy, Clone, Debug)]
15447#[doc(alias = "VkPhysicalDeviceVertexAttributeDivisorProperties")]
15448pub struct PhysicalDeviceVertexAttributeDivisorProperties {
15449    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES`.
15450    pub s_type: StructureType,
15451    ///Optional, may be null.
15452    pub p_next: *mut core::ffi::c_void,
15453    pub max_vertex_attrib_divisor: u32,
15454    pub supports_non_zero_first_instance: u32,
15455}
15456impl Default for PhysicalDeviceVertexAttributeDivisorProperties {
15457    #[inline]
15458    fn default() -> Self {
15459        Self {
15460            s_type: StructureType::from_raw(1000525000i32),
15461            p_next: core::ptr::null_mut(),
15462            max_vertex_attrib_divisor: Default::default(),
15463            supports_non_zero_first_instance: Default::default(),
15464        }
15465    }
15466}
15467///[`VkPhysicalDevicePCIBusInfoPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePCIBusInfoPropertiesEXT.html)
15468/**
15469Provided by **VK_EXT_pci_bus_info**.*/
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 = "VkPhysicalDevicePCIBusInfoPropertiesEXT")]
15478pub struct PhysicalDevicePCIBusInfoPropertiesEXT {
15479    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT`.
15480    pub s_type: StructureType,
15481    ///Optional, may be null.
15482    pub p_next: *mut core::ffi::c_void,
15483    pub pci_domain: u32,
15484    pub pci_bus: u32,
15485    pub pci_device: u32,
15486    pub pci_function: u32,
15487}
15488impl Default for PhysicalDevicePCIBusInfoPropertiesEXT {
15489    #[inline]
15490    fn default() -> Self {
15491        Self {
15492            s_type: StructureType::from_raw(1000212000i32),
15493            p_next: core::ptr::null_mut(),
15494            pci_domain: Default::default(),
15495            pci_bus: Default::default(),
15496            pci_device: Default::default(),
15497            pci_function: Default::default(),
15498        }
15499    }
15500}
15501///[`VkImportAndroidHardwareBufferInfoANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportAndroidHardwareBufferInfoANDROID.html)
15502/**
15503Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15504///
15505///# Extends
15506///- [`MemoryAllocateInfo`]
15507#[repr(C)]
15508#[derive(Copy, Clone, Debug)]
15509#[doc(alias = "VkImportAndroidHardwareBufferInfoANDROID")]
15510pub struct ImportAndroidHardwareBufferInfoANDROID {
15511    ///Must be `VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID`.
15512    pub s_type: StructureType,
15513    ///Optional, may be null.
15514    pub p_next: *const core::ffi::c_void,
15515    pub buffer: *mut core::ffi::c_void,
15516}
15517impl Default for ImportAndroidHardwareBufferInfoANDROID {
15518    #[inline]
15519    fn default() -> Self {
15520        Self {
15521            s_type: StructureType::from_raw(1000129003i32),
15522            p_next: core::ptr::null(),
15523            buffer: core::ptr::null_mut(),
15524        }
15525    }
15526}
15527///[`VkAndroidHardwareBufferUsageANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferUsageANDROID.html)
15528/**
15529Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15530/**
15531**Returned only**, filled by Vulkan, not constructed by the application.*/
15532///
15533///# Extends
15534///- [`ImageFormatProperties2`]
15535#[repr(C)]
15536#[derive(Copy, Clone, Debug)]
15537#[doc(alias = "VkAndroidHardwareBufferUsageANDROID")]
15538pub struct AndroidHardwareBufferUsageANDROID {
15539    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID`.
15540    pub s_type: StructureType,
15541    ///Optional, may be null.
15542    pub p_next: *mut core::ffi::c_void,
15543    pub android_hardware_buffer_usage: u64,
15544}
15545impl Default for AndroidHardwareBufferUsageANDROID {
15546    #[inline]
15547    fn default() -> Self {
15548        Self {
15549            s_type: StructureType::from_raw(1000129000i32),
15550            p_next: core::ptr::null_mut(),
15551            android_hardware_buffer_usage: Default::default(),
15552        }
15553    }
15554}
15555///[`VkAndroidHardwareBufferPropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferPropertiesANDROID.html)
15556/**
15557Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15558/**
15559**Returned only**, filled by Vulkan, not constructed by the application.*/
15560///
15561///# Extended By
15562///- [`AndroidHardwareBufferFormatProperties2ANDROID`]
15563///- [`AndroidHardwareBufferFormatPropertiesANDROID`]
15564///- [`AndroidHardwareBufferFormatResolvePropertiesANDROID`]
15565#[repr(C)]
15566#[derive(Copy, Clone, Debug)]
15567#[doc(alias = "VkAndroidHardwareBufferPropertiesANDROID")]
15568pub struct AndroidHardwareBufferPropertiesANDROID {
15569    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID`.
15570    pub s_type: StructureType,
15571    ///Optional, may be null.
15572    pub p_next: *mut core::ffi::c_void,
15573    pub allocation_size: u64,
15574    pub memory_type_bits: u32,
15575}
15576impl Default for AndroidHardwareBufferPropertiesANDROID {
15577    #[inline]
15578    fn default() -> Self {
15579        Self {
15580            s_type: StructureType::from_raw(1000129001i32),
15581            p_next: core::ptr::null_mut(),
15582            allocation_size: Default::default(),
15583            memory_type_bits: Default::default(),
15584        }
15585    }
15586}
15587///[`VkMemoryGetAndroidHardwareBufferInfoANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetAndroidHardwareBufferInfoANDROID.html)
15588/**
15589Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15590#[repr(C)]
15591#[derive(Copy, Clone, Debug)]
15592#[doc(alias = "VkMemoryGetAndroidHardwareBufferInfoANDROID")]
15593pub struct MemoryGetAndroidHardwareBufferInfoANDROID {
15594    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID`.
15595    pub s_type: StructureType,
15596    ///Optional, may be null.
15597    pub p_next: *const core::ffi::c_void,
15598    pub memory: DeviceMemory,
15599}
15600impl Default for MemoryGetAndroidHardwareBufferInfoANDROID {
15601    #[inline]
15602    fn default() -> Self {
15603        Self {
15604            s_type: StructureType::from_raw(1000129004i32),
15605            p_next: core::ptr::null(),
15606            memory: Default::default(),
15607        }
15608    }
15609}
15610///[`VkAndroidHardwareBufferFormatPropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferFormatPropertiesANDROID.html)
15611/**
15612Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15613/**
15614**Returned only**, filled by Vulkan, not constructed by the application.*/
15615///
15616///# Extends
15617///- [`AndroidHardwareBufferPropertiesANDROID`]
15618#[repr(C)]
15619#[derive(Copy, Clone, Debug)]
15620#[doc(alias = "VkAndroidHardwareBufferFormatPropertiesANDROID")]
15621pub struct AndroidHardwareBufferFormatPropertiesANDROID {
15622    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID`.
15623    pub s_type: StructureType,
15624    ///Optional, may be null.
15625    pub p_next: *mut core::ffi::c_void,
15626    pub format: Format,
15627    pub external_format: u64,
15628    pub format_features: FormatFeatureFlags,
15629    pub sampler_ycbcr_conversion_components: ComponentMapping,
15630    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
15631    pub suggested_ycbcr_range: SamplerYcbcrRange,
15632    pub suggested_x_chroma_offset: ChromaLocation,
15633    pub suggested_y_chroma_offset: ChromaLocation,
15634}
15635impl Default for AndroidHardwareBufferFormatPropertiesANDROID {
15636    #[inline]
15637    fn default() -> Self {
15638        Self {
15639            s_type: StructureType::from_raw(1000129002i32),
15640            p_next: core::ptr::null_mut(),
15641            format: Default::default(),
15642            external_format: Default::default(),
15643            format_features: Default::default(),
15644            sampler_ycbcr_conversion_components: Default::default(),
15645            suggested_ycbcr_model: Default::default(),
15646            suggested_ycbcr_range: Default::default(),
15647            suggested_x_chroma_offset: Default::default(),
15648            suggested_y_chroma_offset: Default::default(),
15649        }
15650    }
15651}
15652///[`VkCommandBufferInheritanceConditionalRenderingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceConditionalRenderingInfoEXT.html)
15653/**
15654Provided by **VK_EXT_conditional_rendering**.*/
15655///
15656///# Extends
15657///- [`CommandBufferInheritanceInfo`]
15658#[repr(C)]
15659#[derive(Copy, Clone, Debug)]
15660#[doc(alias = "VkCommandBufferInheritanceConditionalRenderingInfoEXT")]
15661pub struct CommandBufferInheritanceConditionalRenderingInfoEXT {
15662    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT`.
15663    pub s_type: StructureType,
15664    ///Optional, may be null.
15665    pub p_next: *const core::ffi::c_void,
15666    pub conditional_rendering_enable: u32,
15667}
15668impl Default for CommandBufferInheritanceConditionalRenderingInfoEXT {
15669    #[inline]
15670    fn default() -> Self {
15671        Self {
15672            s_type: StructureType::from_raw(1000081000i32),
15673            p_next: core::ptr::null(),
15674            conditional_rendering_enable: Default::default(),
15675        }
15676    }
15677}
15678///[`VkExternalFormatANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalFormatANDROID.html)
15679/**
15680Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
15681///
15682///# Extends
15683///- [`ImageCreateInfo`]
15684///- [`SamplerYcbcrConversionCreateInfo`]
15685///- [`AttachmentDescription2`]
15686///- [`GraphicsPipelineCreateInfo`]
15687///- [`CommandBufferInheritanceInfo`]
15688#[repr(C)]
15689#[derive(Copy, Clone, Debug)]
15690#[doc(alias = "VkExternalFormatANDROID")]
15691pub struct ExternalFormatANDROID {
15692    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID`.
15693    pub s_type: StructureType,
15694    ///Optional, may be null.
15695    pub p_next: *mut core::ffi::c_void,
15696    pub external_format: u64,
15697}
15698impl Default for ExternalFormatANDROID {
15699    #[inline]
15700    fn default() -> Self {
15701        Self {
15702            s_type: StructureType::from_raw(1000129005i32),
15703            p_next: core::ptr::null_mut(),
15704            external_format: Default::default(),
15705        }
15706    }
15707}
15708///[`VkPhysicalDevice8BitStorageFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevice8BitStorageFeatures.html)
15709/**
15710Provided by **VK_COMPUTE_VERSION_1_2**.*/
15711///
15712///# Extends
15713///- [`PhysicalDeviceFeatures2`]
15714///- [`DeviceCreateInfo`]
15715#[repr(C)]
15716#[derive(Copy, Clone, Debug)]
15717#[doc(alias = "VkPhysicalDevice8BitStorageFeatures")]
15718pub struct PhysicalDevice8BitStorageFeatures {
15719    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES`.
15720    pub s_type: StructureType,
15721    ///Optional, may be null.
15722    pub p_next: *mut core::ffi::c_void,
15723    pub storage_buffer8_bit_access: u32,
15724    pub uniform_and_storage_buffer8_bit_access: u32,
15725    pub storage_push_constant8: u32,
15726}
15727impl Default for PhysicalDevice8BitStorageFeatures {
15728    #[inline]
15729    fn default() -> Self {
15730        Self {
15731            s_type: StructureType::from_raw(1000177000i32),
15732            p_next: core::ptr::null_mut(),
15733            storage_buffer8_bit_access: Default::default(),
15734            uniform_and_storage_buffer8_bit_access: Default::default(),
15735            storage_push_constant8: Default::default(),
15736        }
15737    }
15738}
15739///[`VkPhysicalDeviceConditionalRenderingFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceConditionalRenderingFeaturesEXT.html)
15740/**
15741Provided by **VK_EXT_conditional_rendering**.*/
15742///
15743///# Extends
15744///- [`PhysicalDeviceFeatures2`]
15745///- [`DeviceCreateInfo`]
15746#[repr(C)]
15747#[derive(Copy, Clone, Debug)]
15748#[doc(alias = "VkPhysicalDeviceConditionalRenderingFeaturesEXT")]
15749pub struct PhysicalDeviceConditionalRenderingFeaturesEXT {
15750    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT`.
15751    pub s_type: StructureType,
15752    ///Optional, may be null.
15753    pub p_next: *mut core::ffi::c_void,
15754    pub conditional_rendering: u32,
15755    pub inherited_conditional_rendering: u32,
15756}
15757impl Default for PhysicalDeviceConditionalRenderingFeaturesEXT {
15758    #[inline]
15759    fn default() -> Self {
15760        Self {
15761            s_type: StructureType::from_raw(1000081001i32),
15762            p_next: core::ptr::null_mut(),
15763            conditional_rendering: Default::default(),
15764            inherited_conditional_rendering: Default::default(),
15765        }
15766    }
15767}
15768///[`VkPhysicalDeviceVulkanMemoryModelFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkanMemoryModelFeatures.html)
15769/**
15770Provided by **VK_BASE_VERSION_1_2**.*/
15771///
15772///# Extends
15773///- [`PhysicalDeviceFeatures2`]
15774///- [`DeviceCreateInfo`]
15775#[repr(C)]
15776#[derive(Copy, Clone, Debug)]
15777#[doc(alias = "VkPhysicalDeviceVulkanMemoryModelFeatures")]
15778pub struct PhysicalDeviceVulkanMemoryModelFeatures {
15779    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES`.
15780    pub s_type: StructureType,
15781    ///Optional, may be null.
15782    pub p_next: *mut core::ffi::c_void,
15783    pub vulkan_memory_model: u32,
15784    pub vulkan_memory_model_device_scope: u32,
15785    pub vulkan_memory_model_availability_visibility_chains: u32,
15786}
15787impl Default for PhysicalDeviceVulkanMemoryModelFeatures {
15788    #[inline]
15789    fn default() -> Self {
15790        Self {
15791            s_type: StructureType::from_raw(1000211000i32),
15792            p_next: core::ptr::null_mut(),
15793            vulkan_memory_model: Default::default(),
15794            vulkan_memory_model_device_scope: Default::default(),
15795            vulkan_memory_model_availability_visibility_chains: Default::default(),
15796        }
15797    }
15798}
15799///[`VkPhysicalDeviceShaderAtomicInt64Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAtomicInt64Features.html)
15800/**
15801Provided by **VK_COMPUTE_VERSION_1_2**.*/
15802///
15803///# Extends
15804///- [`PhysicalDeviceFeatures2`]
15805///- [`DeviceCreateInfo`]
15806#[repr(C)]
15807#[derive(Copy, Clone, Debug)]
15808#[doc(alias = "VkPhysicalDeviceShaderAtomicInt64Features")]
15809pub struct PhysicalDeviceShaderAtomicInt64Features {
15810    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES`.
15811    pub s_type: StructureType,
15812    ///Optional, may be null.
15813    pub p_next: *mut core::ffi::c_void,
15814    pub shader_buffer_int64_atomics: u32,
15815    pub shader_shared_int64_atomics: u32,
15816}
15817impl Default for PhysicalDeviceShaderAtomicInt64Features {
15818    #[inline]
15819    fn default() -> Self {
15820        Self {
15821            s_type: StructureType::from_raw(1000180000i32),
15822            p_next: core::ptr::null_mut(),
15823            shader_buffer_int64_atomics: Default::default(),
15824            shader_shared_int64_atomics: Default::default(),
15825        }
15826    }
15827}
15828///[`VkPhysicalDeviceShaderAtomicFloatFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.html)
15829/**
15830Provided by **VK_EXT_shader_atomic_float**.*/
15831///
15832///# Extends
15833///- [`PhysicalDeviceFeatures2`]
15834///- [`DeviceCreateInfo`]
15835#[repr(C)]
15836#[derive(Copy, Clone, Debug)]
15837#[doc(alias = "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT")]
15838pub struct PhysicalDeviceShaderAtomicFloatFeaturesEXT {
15839    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT`.
15840    pub s_type: StructureType,
15841    ///Optional, may be null.
15842    pub p_next: *mut core::ffi::c_void,
15843    pub shader_buffer_float32_atomics: u32,
15844    pub shader_buffer_float32_atomic_add: u32,
15845    pub shader_buffer_float64_atomics: u32,
15846    pub shader_buffer_float64_atomic_add: u32,
15847    pub shader_shared_float32_atomics: u32,
15848    pub shader_shared_float32_atomic_add: u32,
15849    pub shader_shared_float64_atomics: u32,
15850    pub shader_shared_float64_atomic_add: u32,
15851    pub shader_image_float32_atomics: u32,
15852    pub shader_image_float32_atomic_add: u32,
15853    pub sparse_image_float32_atomics: u32,
15854    pub sparse_image_float32_atomic_add: u32,
15855}
15856impl Default for PhysicalDeviceShaderAtomicFloatFeaturesEXT {
15857    #[inline]
15858    fn default() -> Self {
15859        Self {
15860            s_type: StructureType::from_raw(1000260000i32),
15861            p_next: core::ptr::null_mut(),
15862            shader_buffer_float32_atomics: Default::default(),
15863            shader_buffer_float32_atomic_add: Default::default(),
15864            shader_buffer_float64_atomics: Default::default(),
15865            shader_buffer_float64_atomic_add: Default::default(),
15866            shader_shared_float32_atomics: Default::default(),
15867            shader_shared_float32_atomic_add: Default::default(),
15868            shader_shared_float64_atomics: Default::default(),
15869            shader_shared_float64_atomic_add: Default::default(),
15870            shader_image_float32_atomics: Default::default(),
15871            shader_image_float32_atomic_add: Default::default(),
15872            sparse_image_float32_atomics: Default::default(),
15873            sparse_image_float32_atomic_add: Default::default(),
15874        }
15875    }
15876}
15877///[`VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.html)
15878/**
15879Provided by **VK_EXT_shader_atomic_float2**.*/
15880///
15881///# Extends
15882///- [`PhysicalDeviceFeatures2`]
15883///- [`DeviceCreateInfo`]
15884#[repr(C)]
15885#[derive(Copy, Clone, Debug)]
15886#[doc(alias = "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT")]
15887pub struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
15888    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT`.
15889    pub s_type: StructureType,
15890    ///Optional, may be null.
15891    pub p_next: *mut core::ffi::c_void,
15892    pub shader_buffer_float16_atomics: u32,
15893    pub shader_buffer_float16_atomic_add: u32,
15894    pub shader_buffer_float16_atomic_min_max: u32,
15895    pub shader_buffer_float32_atomic_min_max: u32,
15896    pub shader_buffer_float64_atomic_min_max: u32,
15897    pub shader_shared_float16_atomics: u32,
15898    pub shader_shared_float16_atomic_add: u32,
15899    pub shader_shared_float16_atomic_min_max: u32,
15900    pub shader_shared_float32_atomic_min_max: u32,
15901    pub shader_shared_float64_atomic_min_max: u32,
15902    pub shader_image_float32_atomic_min_max: u32,
15903    pub sparse_image_float32_atomic_min_max: u32,
15904}
15905impl Default for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
15906    #[inline]
15907    fn default() -> Self {
15908        Self {
15909            s_type: StructureType::from_raw(1000273000i32),
15910            p_next: core::ptr::null_mut(),
15911            shader_buffer_float16_atomics: Default::default(),
15912            shader_buffer_float16_atomic_add: Default::default(),
15913            shader_buffer_float16_atomic_min_max: Default::default(),
15914            shader_buffer_float32_atomic_min_max: Default::default(),
15915            shader_buffer_float64_atomic_min_max: Default::default(),
15916            shader_shared_float16_atomics: Default::default(),
15917            shader_shared_float16_atomic_add: Default::default(),
15918            shader_shared_float16_atomic_min_max: Default::default(),
15919            shader_shared_float32_atomic_min_max: Default::default(),
15920            shader_shared_float64_atomic_min_max: Default::default(),
15921            shader_image_float32_atomic_min_max: Default::default(),
15922            sparse_image_float32_atomic_min_max: Default::default(),
15923        }
15924    }
15925}
15926///[`VkPhysicalDeviceVertexAttributeDivisorFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexAttributeDivisorFeatures.html)
15927/**
15928Provided by **VK_GRAPHICS_VERSION_1_4**.*/
15929///
15930///# Extends
15931///- [`PhysicalDeviceFeatures2`]
15932///- [`DeviceCreateInfo`]
15933#[repr(C)]
15934#[derive(Copy, Clone, Debug)]
15935#[doc(alias = "VkPhysicalDeviceVertexAttributeDivisorFeatures")]
15936pub struct PhysicalDeviceVertexAttributeDivisorFeatures {
15937    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES`.
15938    pub s_type: StructureType,
15939    ///Optional, may be null.
15940    pub p_next: *mut core::ffi::c_void,
15941    pub vertex_attribute_instance_rate_divisor: u32,
15942    pub vertex_attribute_instance_rate_zero_divisor: u32,
15943}
15944impl Default for PhysicalDeviceVertexAttributeDivisorFeatures {
15945    #[inline]
15946    fn default() -> Self {
15947        Self {
15948            s_type: StructureType::from_raw(1000190002i32),
15949            p_next: core::ptr::null_mut(),
15950            vertex_attribute_instance_rate_divisor: Default::default(),
15951            vertex_attribute_instance_rate_zero_divisor: Default::default(),
15952        }
15953    }
15954}
15955///[`VkQueueFamilyCheckpointPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyCheckpointPropertiesNV.html)
15956/**
15957Provided by **VK_NV_device_diagnostic_checkpoints**.*/
15958/**
15959**Returned only**, filled by Vulkan, not constructed by the application.*/
15960///
15961///# Extends
15962///- [`QueueFamilyProperties2`]
15963#[repr(C)]
15964#[derive(Copy, Clone, Debug)]
15965#[doc(alias = "VkQueueFamilyCheckpointPropertiesNV")]
15966pub struct QueueFamilyCheckpointPropertiesNV {
15967    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV`.
15968    pub s_type: StructureType,
15969    ///Optional, may be null.
15970    pub p_next: *mut core::ffi::c_void,
15971    pub checkpoint_execution_stage_mask: PipelineStageFlags,
15972}
15973impl Default for QueueFamilyCheckpointPropertiesNV {
15974    #[inline]
15975    fn default() -> Self {
15976        Self {
15977            s_type: StructureType::from_raw(1000206001i32),
15978            p_next: core::ptr::null_mut(),
15979            checkpoint_execution_stage_mask: Default::default(),
15980        }
15981    }
15982}
15983///[`VkCheckpointDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCheckpointDataNV.html)
15984/**
15985Provided by **VK_NV_device_diagnostic_checkpoints**.*/
15986/**
15987**Returned only**, filled by Vulkan, not constructed by the application.*/
15988#[repr(C)]
15989#[derive(Copy, Clone, Debug)]
15990#[doc(alias = "VkCheckpointDataNV")]
15991pub struct CheckpointDataNV {
15992    ///Must be `VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV`.
15993    pub s_type: StructureType,
15994    ///Optional, may be null.
15995    pub p_next: *mut core::ffi::c_void,
15996    pub stage: PipelineStageFlagBits,
15997    pub p_checkpoint_marker: *mut core::ffi::c_void,
15998}
15999impl Default for CheckpointDataNV {
16000    #[inline]
16001    fn default() -> Self {
16002        Self {
16003            s_type: StructureType::from_raw(1000206000i32),
16004            p_next: core::ptr::null_mut(),
16005            stage: Default::default(),
16006            p_checkpoint_marker: core::ptr::null_mut(),
16007        }
16008    }
16009}
16010///[`VkPhysicalDeviceDepthStencilResolveProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthStencilResolveProperties.html)
16011/**
16012Provided by **VK_GRAPHICS_VERSION_1_2**.*/
16013/**
16014**Returned only**, filled by Vulkan, not constructed by the application.*/
16015///
16016///# Extends
16017///- [`PhysicalDeviceProperties2`]
16018#[repr(C)]
16019#[derive(Copy, Clone, Debug)]
16020#[doc(alias = "VkPhysicalDeviceDepthStencilResolveProperties")]
16021pub struct PhysicalDeviceDepthStencilResolveProperties {
16022    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES`.
16023    pub s_type: StructureType,
16024    ///Optional, may be null.
16025    pub p_next: *mut core::ffi::c_void,
16026    pub supported_depth_resolve_modes: ResolveModeFlags,
16027    pub supported_stencil_resolve_modes: ResolveModeFlags,
16028    pub independent_resolve_none: u32,
16029    pub independent_resolve: u32,
16030}
16031impl Default for PhysicalDeviceDepthStencilResolveProperties {
16032    #[inline]
16033    fn default() -> Self {
16034        Self {
16035            s_type: StructureType::from_raw(1000199000i32),
16036            p_next: core::ptr::null_mut(),
16037            supported_depth_resolve_modes: Default::default(),
16038            supported_stencil_resolve_modes: Default::default(),
16039            independent_resolve_none: Default::default(),
16040            independent_resolve: Default::default(),
16041        }
16042    }
16043}
16044///[`VkSubpassDescriptionDepthStencilResolve`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDescriptionDepthStencilResolve.html)
16045/**
16046Provided by **VK_GRAPHICS_VERSION_1_2**.*/
16047///
16048///# Extends
16049///- [`SubpassDescription2`]
16050#[repr(C)]
16051#[derive(Copy, Clone, Debug)]
16052#[doc(alias = "VkSubpassDescriptionDepthStencilResolve")]
16053pub struct SubpassDescriptionDepthStencilResolve {
16054    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE`.
16055    pub s_type: StructureType,
16056    ///Optional, may be null.
16057    pub p_next: *const core::ffi::c_void,
16058    pub depth_resolve_mode: ResolveModeFlagBits,
16059    pub stencil_resolve_mode: ResolveModeFlagBits,
16060    ///Optional, may be null.
16061    pub p_depth_stencil_resolve_attachment: *const AttachmentReference2,
16062}
16063impl Default for SubpassDescriptionDepthStencilResolve {
16064    #[inline]
16065    fn default() -> Self {
16066        Self {
16067            s_type: StructureType::from_raw(1000199001i32),
16068            p_next: core::ptr::null(),
16069            depth_resolve_mode: Default::default(),
16070            stencil_resolve_mode: Default::default(),
16071            p_depth_stencil_resolve_attachment: core::ptr::null(),
16072        }
16073    }
16074}
16075///[`VkImageViewASTCDecodeModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewASTCDecodeModeEXT.html)
16076/**
16077Provided by **VK_EXT_astc_decode_mode**.*/
16078///
16079///# Extends
16080///- [`ImageViewCreateInfo`]
16081#[repr(C)]
16082#[derive(Copy, Clone, Debug)]
16083#[doc(alias = "VkImageViewASTCDecodeModeEXT")]
16084pub struct ImageViewASTCDecodeModeEXT {
16085    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT`.
16086    pub s_type: StructureType,
16087    ///Optional, may be null.
16088    pub p_next: *const core::ffi::c_void,
16089    pub decode_mode: Format,
16090}
16091impl Default for ImageViewASTCDecodeModeEXT {
16092    #[inline]
16093    fn default() -> Self {
16094        Self {
16095            s_type: StructureType::from_raw(1000067000i32),
16096            p_next: core::ptr::null(),
16097            decode_mode: Default::default(),
16098        }
16099    }
16100}
16101///[`VkPhysicalDeviceASTCDecodeFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceASTCDecodeFeaturesEXT.html)
16102/**
16103Provided by **VK_EXT_astc_decode_mode**.*/
16104///
16105///# Extends
16106///- [`PhysicalDeviceFeatures2`]
16107///- [`DeviceCreateInfo`]
16108#[repr(C)]
16109#[derive(Copy, Clone, Debug)]
16110#[doc(alias = "VkPhysicalDeviceASTCDecodeFeaturesEXT")]
16111pub struct PhysicalDeviceASTCDecodeFeaturesEXT {
16112    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT`.
16113    pub s_type: StructureType,
16114    ///Optional, may be null.
16115    pub p_next: *mut core::ffi::c_void,
16116    pub decode_mode_shared_exponent: u32,
16117}
16118impl Default for PhysicalDeviceASTCDecodeFeaturesEXT {
16119    #[inline]
16120    fn default() -> Self {
16121        Self {
16122            s_type: StructureType::from_raw(1000067001i32),
16123            p_next: core::ptr::null_mut(),
16124            decode_mode_shared_exponent: Default::default(),
16125        }
16126    }
16127}
16128///[`VkPhysicalDeviceTransformFeedbackFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTransformFeedbackFeaturesEXT.html)
16129/**
16130Provided by **VK_EXT_transform_feedback**.*/
16131///
16132///# Extends
16133///- [`PhysicalDeviceFeatures2`]
16134///- [`DeviceCreateInfo`]
16135#[repr(C)]
16136#[derive(Copy, Clone, Debug)]
16137#[doc(alias = "VkPhysicalDeviceTransformFeedbackFeaturesEXT")]
16138pub struct PhysicalDeviceTransformFeedbackFeaturesEXT {
16139    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT`.
16140    pub s_type: StructureType,
16141    ///Optional, may be null.
16142    pub p_next: *mut core::ffi::c_void,
16143    pub transform_feedback: u32,
16144    pub geometry_streams: u32,
16145}
16146impl Default for PhysicalDeviceTransformFeedbackFeaturesEXT {
16147    #[inline]
16148    fn default() -> Self {
16149        Self {
16150            s_type: StructureType::from_raw(1000028000i32),
16151            p_next: core::ptr::null_mut(),
16152            transform_feedback: Default::default(),
16153            geometry_streams: Default::default(),
16154        }
16155    }
16156}
16157///[`VkPhysicalDeviceTransformFeedbackPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTransformFeedbackPropertiesEXT.html)
16158/**
16159Provided by **VK_EXT_transform_feedback**.*/
16160/**
16161**Returned only**, filled by Vulkan, not constructed by the application.*/
16162///
16163///# Extends
16164///- [`PhysicalDeviceProperties2`]
16165#[repr(C)]
16166#[derive(Copy, Clone, Debug)]
16167#[doc(alias = "VkPhysicalDeviceTransformFeedbackPropertiesEXT")]
16168pub struct PhysicalDeviceTransformFeedbackPropertiesEXT {
16169    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT`.
16170    pub s_type: StructureType,
16171    ///Optional, may be null.
16172    pub p_next: *mut core::ffi::c_void,
16173    pub max_transform_feedback_streams: u32,
16174    pub max_transform_feedback_buffers: u32,
16175    pub max_transform_feedback_buffer_size: u64,
16176    pub max_transform_feedback_stream_data_size: u32,
16177    pub max_transform_feedback_buffer_data_size: u32,
16178    pub max_transform_feedback_buffer_data_stride: u32,
16179    pub transform_feedback_queries: u32,
16180    pub transform_feedback_streams_lines_triangles: u32,
16181    pub transform_feedback_rasterization_stream_select: u32,
16182    pub transform_feedback_draw: u32,
16183}
16184impl Default for PhysicalDeviceTransformFeedbackPropertiesEXT {
16185    #[inline]
16186    fn default() -> Self {
16187        Self {
16188            s_type: StructureType::from_raw(1000028001i32),
16189            p_next: core::ptr::null_mut(),
16190            max_transform_feedback_streams: Default::default(),
16191            max_transform_feedback_buffers: Default::default(),
16192            max_transform_feedback_buffer_size: Default::default(),
16193            max_transform_feedback_stream_data_size: Default::default(),
16194            max_transform_feedback_buffer_data_size: Default::default(),
16195            max_transform_feedback_buffer_data_stride: Default::default(),
16196            transform_feedback_queries: Default::default(),
16197            transform_feedback_streams_lines_triangles: Default::default(),
16198            transform_feedback_rasterization_stream_select: Default::default(),
16199            transform_feedback_draw: Default::default(),
16200        }
16201    }
16202}
16203///[`VkPipelineRasterizationStateStreamCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationStateStreamCreateInfoEXT.html)
16204/**
16205Provided by **VK_EXT_transform_feedback**.*/
16206///
16207///# Extends
16208///- [`PipelineRasterizationStateCreateInfo`]
16209#[repr(C)]
16210#[derive(Copy, Clone, Debug)]
16211#[doc(alias = "VkPipelineRasterizationStateStreamCreateInfoEXT")]
16212pub struct PipelineRasterizationStateStreamCreateInfoEXT {
16213    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT`.
16214    pub s_type: StructureType,
16215    ///Optional, may be null.
16216    pub p_next: *const core::ffi::c_void,
16217    pub flags: PipelineRasterizationStateStreamCreateFlagsEXT,
16218    pub rasterization_stream: u32,
16219}
16220impl Default for PipelineRasterizationStateStreamCreateInfoEXT {
16221    #[inline]
16222    fn default() -> Self {
16223        Self {
16224            s_type: StructureType::from_raw(1000028002i32),
16225            p_next: core::ptr::null(),
16226            flags: Default::default(),
16227            rasterization_stream: Default::default(),
16228        }
16229    }
16230}
16231///[`VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.html)
16232/**
16233Provided by **VK_NV_representative_fragment_test**.*/
16234///
16235///# Extends
16236///- [`PhysicalDeviceFeatures2`]
16237///- [`DeviceCreateInfo`]
16238#[repr(C)]
16239#[derive(Copy, Clone, Debug)]
16240#[doc(alias = "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV")]
16241pub struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16242    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV`.
16243    pub s_type: StructureType,
16244    ///Optional, may be null.
16245    pub p_next: *mut core::ffi::c_void,
16246    pub representative_fragment_test: u32,
16247}
16248impl Default for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16249    #[inline]
16250    fn default() -> Self {
16251        Self {
16252            s_type: StructureType::from_raw(1000166000i32),
16253            p_next: core::ptr::null_mut(),
16254            representative_fragment_test: Default::default(),
16255        }
16256    }
16257}
16258///[`VkPipelineRepresentativeFragmentTestStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRepresentativeFragmentTestStateCreateInfoNV.html)
16259/**
16260Provided by **VK_NV_representative_fragment_test**.*/
16261///
16262///# Extends
16263///- [`GraphicsPipelineCreateInfo`]
16264#[repr(C)]
16265#[derive(Copy, Clone, Debug)]
16266#[doc(alias = "VkPipelineRepresentativeFragmentTestStateCreateInfoNV")]
16267pub struct PipelineRepresentativeFragmentTestStateCreateInfoNV {
16268    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV`.
16269    pub s_type: StructureType,
16270    ///Optional, may be null.
16271    pub p_next: *const core::ffi::c_void,
16272    pub representative_fragment_test_enable: u32,
16273}
16274impl Default for PipelineRepresentativeFragmentTestStateCreateInfoNV {
16275    #[inline]
16276    fn default() -> Self {
16277        Self {
16278            s_type: StructureType::from_raw(1000166001i32),
16279            p_next: core::ptr::null(),
16280            representative_fragment_test_enable: Default::default(),
16281        }
16282    }
16283}
16284///[`VkPhysicalDeviceExclusiveScissorFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExclusiveScissorFeaturesNV.html)
16285/**
16286Provided by **VK_NV_scissor_exclusive**.*/
16287///
16288///# Extends
16289///- [`PhysicalDeviceFeatures2`]
16290///- [`DeviceCreateInfo`]
16291#[repr(C)]
16292#[derive(Copy, Clone, Debug)]
16293#[doc(alias = "VkPhysicalDeviceExclusiveScissorFeaturesNV")]
16294pub struct PhysicalDeviceExclusiveScissorFeaturesNV {
16295    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV`.
16296    pub s_type: StructureType,
16297    ///Optional, may be null.
16298    pub p_next: *mut core::ffi::c_void,
16299    pub exclusive_scissor: u32,
16300}
16301impl Default for PhysicalDeviceExclusiveScissorFeaturesNV {
16302    #[inline]
16303    fn default() -> Self {
16304        Self {
16305            s_type: StructureType::from_raw(1000205002i32),
16306            p_next: core::ptr::null_mut(),
16307            exclusive_scissor: Default::default(),
16308        }
16309    }
16310}
16311///[`VkPipelineViewportExclusiveScissorStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportExclusiveScissorStateCreateInfoNV.html)
16312/**
16313Provided by **VK_NV_scissor_exclusive**.*/
16314///
16315///# Extends
16316///- [`PipelineViewportStateCreateInfo`]
16317#[repr(C)]
16318#[derive(Copy, Clone, Debug)]
16319#[doc(alias = "VkPipelineViewportExclusiveScissorStateCreateInfoNV")]
16320pub struct PipelineViewportExclusiveScissorStateCreateInfoNV {
16321    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV`.
16322    pub s_type: StructureType,
16323    ///Optional, may be null.
16324    pub p_next: *const core::ffi::c_void,
16325    ///Length of `p_exclusive_scissors`.
16326    pub exclusive_scissor_count: u32,
16327    pub p_exclusive_scissors: *const Rect2D,
16328}
16329impl Default for PipelineViewportExclusiveScissorStateCreateInfoNV {
16330    #[inline]
16331    fn default() -> Self {
16332        Self {
16333            s_type: StructureType::from_raw(1000205000i32),
16334            p_next: core::ptr::null(),
16335            exclusive_scissor_count: Default::default(),
16336            p_exclusive_scissors: core::ptr::null(),
16337        }
16338    }
16339}
16340///[`VkPhysicalDeviceCornerSampledImageFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCornerSampledImageFeaturesNV.html)
16341/**
16342Provided by **VK_NV_corner_sampled_image**.*/
16343///
16344///# Extends
16345///- [`PhysicalDeviceFeatures2`]
16346///- [`DeviceCreateInfo`]
16347#[repr(C)]
16348#[derive(Copy, Clone, Debug)]
16349#[doc(alias = "VkPhysicalDeviceCornerSampledImageFeaturesNV")]
16350pub struct PhysicalDeviceCornerSampledImageFeaturesNV {
16351    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV`.
16352    pub s_type: StructureType,
16353    ///Optional, may be null.
16354    pub p_next: *mut core::ffi::c_void,
16355    pub corner_sampled_image: u32,
16356}
16357impl Default for PhysicalDeviceCornerSampledImageFeaturesNV {
16358    #[inline]
16359    fn default() -> Self {
16360        Self {
16361            s_type: StructureType::from_raw(1000050000i32),
16362            p_next: core::ptr::null_mut(),
16363            corner_sampled_image: Default::default(),
16364        }
16365    }
16366}
16367///[`VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR.html)
16368/**
16369Provided by **VK_KHR_compute_shader_derivatives**.*/
16370///
16371///# Extends
16372///- [`PhysicalDeviceFeatures2`]
16373///- [`DeviceCreateInfo`]
16374#[repr(C)]
16375#[derive(Copy, Clone, Debug)]
16376#[doc(alias = "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR")]
16377pub struct PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
16378    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR`.
16379    pub s_type: StructureType,
16380    ///Optional, may be null.
16381    pub p_next: *mut core::ffi::c_void,
16382    pub compute_derivative_group_quads: u32,
16383    pub compute_derivative_group_linear: u32,
16384}
16385impl Default for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
16386    #[inline]
16387    fn default() -> Self {
16388        Self {
16389            s_type: StructureType::from_raw(1000201000i32),
16390            p_next: core::ptr::null_mut(),
16391            compute_derivative_group_quads: Default::default(),
16392            compute_derivative_group_linear: Default::default(),
16393        }
16394    }
16395}
16396///[`VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR.html)
16397/**
16398Provided by **VK_KHR_compute_shader_derivatives**.*/
16399/**
16400**Returned only**, filled by Vulkan, not constructed by the application.*/
16401///
16402///# Extends
16403///- [`PhysicalDeviceProperties2`]
16404#[repr(C)]
16405#[derive(Copy, Clone, Debug)]
16406#[doc(alias = "VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR")]
16407pub struct PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
16408    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR`.
16409    pub s_type: StructureType,
16410    ///Optional, may be null.
16411    pub p_next: *mut core::ffi::c_void,
16412    pub mesh_and_task_shader_derivatives: u32,
16413}
16414impl Default for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
16415    #[inline]
16416    fn default() -> Self {
16417        Self {
16418            s_type: StructureType::from_raw(1000511000i32),
16419            p_next: core::ptr::null_mut(),
16420            mesh_and_task_shader_derivatives: Default::default(),
16421        }
16422    }
16423}
16424///[`VkPhysicalDeviceShaderImageFootprintFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderImageFootprintFeaturesNV.html)
16425/**
16426Provided by **VK_NV_shader_image_footprint**.*/
16427///
16428///# Extends
16429///- [`PhysicalDeviceFeatures2`]
16430///- [`DeviceCreateInfo`]
16431#[repr(C)]
16432#[derive(Copy, Clone, Debug)]
16433#[doc(alias = "VkPhysicalDeviceShaderImageFootprintFeaturesNV")]
16434pub struct PhysicalDeviceShaderImageFootprintFeaturesNV {
16435    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV`.
16436    pub s_type: StructureType,
16437    ///Optional, may be null.
16438    pub p_next: *mut core::ffi::c_void,
16439    pub image_footprint: u32,
16440}
16441impl Default for PhysicalDeviceShaderImageFootprintFeaturesNV {
16442    #[inline]
16443    fn default() -> Self {
16444        Self {
16445            s_type: StructureType::from_raw(1000204000i32),
16446            p_next: core::ptr::null_mut(),
16447            image_footprint: Default::default(),
16448        }
16449    }
16450}
16451///[`VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.html)
16452/**
16453Provided by **VK_NV_dedicated_allocation_image_aliasing**.*/
16454///
16455///# Extends
16456///- [`PhysicalDeviceFeatures2`]
16457///- [`DeviceCreateInfo`]
16458#[repr(C)]
16459#[derive(Copy, Clone, Debug)]
16460#[doc(alias = "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV")]
16461pub struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
16462    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV`.
16463    pub s_type: StructureType,
16464    ///Optional, may be null.
16465    pub p_next: *mut core::ffi::c_void,
16466    pub dedicated_allocation_image_aliasing: u32,
16467}
16468impl Default for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
16469    #[inline]
16470    fn default() -> Self {
16471        Self {
16472            s_type: StructureType::from_raw(1000240000i32),
16473            p_next: core::ptr::null_mut(),
16474            dedicated_allocation_image_aliasing: Default::default(),
16475        }
16476    }
16477}
16478///[`VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR.html)
16479/**
16480Provided by **VK_KHR_copy_memory_indirect**.*/
16481///
16482///# Extends
16483///- [`PhysicalDeviceFeatures2`]
16484///- [`DeviceCreateInfo`]
16485#[repr(C)]
16486#[derive(Copy, Clone, Debug)]
16487#[doc(alias = "VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR")]
16488pub struct PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
16489    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR`.
16490    pub s_type: StructureType,
16491    ///Optional, may be null.
16492    pub p_next: *mut core::ffi::c_void,
16493    pub indirect_memory_copy: u32,
16494    pub indirect_memory_to_image_copy: u32,
16495}
16496impl Default for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
16497    #[inline]
16498    fn default() -> Self {
16499        Self {
16500            s_type: StructureType::from_raw(1000549000i32),
16501            p_next: core::ptr::null_mut(),
16502            indirect_memory_copy: Default::default(),
16503            indirect_memory_to_image_copy: Default::default(),
16504        }
16505    }
16506}
16507///[`VkPhysicalDeviceCopyMemoryIndirectFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV.html)
16508/**
16509Provided by **VK_NV_copy_memory_indirect**.*/
16510///
16511///# Extends
16512///- [`PhysicalDeviceFeatures2`]
16513///- [`DeviceCreateInfo`]
16514#[repr(C)]
16515#[derive(Copy, Clone, Debug)]
16516#[doc(alias = "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV")]
16517pub struct PhysicalDeviceCopyMemoryIndirectFeaturesNV {
16518    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV`.
16519    pub s_type: StructureType,
16520    ///Optional, may be null.
16521    pub p_next: *mut core::ffi::c_void,
16522    pub indirect_copy: u32,
16523}
16524impl Default for PhysicalDeviceCopyMemoryIndirectFeaturesNV {
16525    #[inline]
16526    fn default() -> Self {
16527        Self {
16528            s_type: StructureType::from_raw(1000426000i32),
16529            p_next: core::ptr::null_mut(),
16530            indirect_copy: Default::default(),
16531        }
16532    }
16533}
16534///[`VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR.html)
16535/**
16536Provided by **VK_KHR_copy_memory_indirect**.*/
16537/**
16538**Returned only**, filled by Vulkan, not constructed by the application.*/
16539///
16540///# Extends
16541///- [`PhysicalDeviceProperties2`]
16542#[repr(C)]
16543#[derive(Copy, Clone, Debug)]
16544#[doc(alias = "VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR")]
16545pub struct PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
16546    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR`.
16547    pub s_type: StructureType,
16548    ///Optional, may be null.
16549    pub p_next: *mut core::ffi::c_void,
16550    pub supported_queues: QueueFlags,
16551}
16552impl Default for PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
16553    #[inline]
16554    fn default() -> Self {
16555        Self {
16556            s_type: StructureType::from_raw(1000426001i32),
16557            p_next: core::ptr::null_mut(),
16558            supported_queues: Default::default(),
16559        }
16560    }
16561}
16562///[`VkPhysicalDeviceMemoryDecompressionFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryDecompressionFeaturesEXT.html)
16563/**
16564Provided by **VK_EXT_memory_decompression**.*/
16565///
16566///# Extends
16567///- [`PhysicalDeviceFeatures2`]
16568///- [`DeviceCreateInfo`]
16569#[repr(C)]
16570#[derive(Copy, Clone, Debug)]
16571#[doc(alias = "VkPhysicalDeviceMemoryDecompressionFeaturesEXT")]
16572pub struct PhysicalDeviceMemoryDecompressionFeaturesEXT {
16573    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT`.
16574    pub s_type: StructureType,
16575    ///Optional, may be null.
16576    pub p_next: *mut core::ffi::c_void,
16577    pub memory_decompression: u32,
16578}
16579impl Default for PhysicalDeviceMemoryDecompressionFeaturesEXT {
16580    #[inline]
16581    fn default() -> Self {
16582        Self {
16583            s_type: StructureType::from_raw(1000427000i32),
16584            p_next: core::ptr::null_mut(),
16585            memory_decompression: Default::default(),
16586        }
16587    }
16588}
16589///[`VkPhysicalDeviceMemoryDecompressionPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryDecompressionPropertiesEXT.html)
16590/**
16591Provided by **VK_EXT_memory_decompression**.*/
16592/**
16593**Returned only**, filled by Vulkan, not constructed by the application.*/
16594///
16595///# Extends
16596///- [`PhysicalDeviceProperties2`]
16597#[repr(C)]
16598#[derive(Copy, Clone, Debug)]
16599#[doc(alias = "VkPhysicalDeviceMemoryDecompressionPropertiesEXT")]
16600pub struct PhysicalDeviceMemoryDecompressionPropertiesEXT {
16601    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT`.
16602    pub s_type: StructureType,
16603    ///Optional, may be null.
16604    pub p_next: *mut core::ffi::c_void,
16605    pub decompression_methods: MemoryDecompressionMethodFlagsEXT,
16606    pub max_decompression_indirect_count: u64,
16607}
16608impl Default for PhysicalDeviceMemoryDecompressionPropertiesEXT {
16609    #[inline]
16610    fn default() -> Self {
16611        Self {
16612            s_type: StructureType::from_raw(1000427001i32),
16613            p_next: core::ptr::null_mut(),
16614            decompression_methods: Default::default(),
16615            max_decompression_indirect_count: Default::default(),
16616        }
16617    }
16618}
16619///[`VkShadingRatePaletteNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShadingRatePaletteNV.html)
16620/**
16621Provided by **VK_NV_shading_rate_image**.*/
16622#[repr(C)]
16623#[derive(Copy, Clone, Debug)]
16624#[doc(alias = "VkShadingRatePaletteNV")]
16625pub struct ShadingRatePaletteNV {
16626    ///Length of `p_shading_rate_palette_entries`.
16627    pub shading_rate_palette_entry_count: u32,
16628    pub p_shading_rate_palette_entries: *const ShadingRatePaletteEntryNV,
16629}
16630impl Default for ShadingRatePaletteNV {
16631    #[inline]
16632    fn default() -> Self {
16633        unsafe { core::mem::zeroed() }
16634    }
16635}
16636///[`VkPipelineViewportShadingRateImageStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportShadingRateImageStateCreateInfoNV.html)
16637/**
16638Provided by **VK_NV_shading_rate_image**.*/
16639///
16640///# Extends
16641///- [`PipelineViewportStateCreateInfo`]
16642#[repr(C)]
16643#[derive(Copy, Clone, Debug)]
16644#[doc(alias = "VkPipelineViewportShadingRateImageStateCreateInfoNV")]
16645pub struct PipelineViewportShadingRateImageStateCreateInfoNV {
16646    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV`.
16647    pub s_type: StructureType,
16648    ///Optional, may be null.
16649    pub p_next: *const core::ffi::c_void,
16650    pub shading_rate_image_enable: u32,
16651    ///Length of `p_shading_rate_palettes`.
16652    pub viewport_count: u32,
16653    pub p_shading_rate_palettes: *const ShadingRatePaletteNV,
16654}
16655impl Default for PipelineViewportShadingRateImageStateCreateInfoNV {
16656    #[inline]
16657    fn default() -> Self {
16658        Self {
16659            s_type: StructureType::from_raw(1000164000i32),
16660            p_next: core::ptr::null(),
16661            shading_rate_image_enable: Default::default(),
16662            viewport_count: Default::default(),
16663            p_shading_rate_palettes: core::ptr::null(),
16664        }
16665    }
16666}
16667///[`VkPhysicalDeviceShadingRateImageFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShadingRateImageFeaturesNV.html)
16668/**
16669Provided by **VK_NV_shading_rate_image**.*/
16670///
16671///# Extends
16672///- [`PhysicalDeviceFeatures2`]
16673///- [`DeviceCreateInfo`]
16674#[repr(C)]
16675#[derive(Copy, Clone, Debug)]
16676#[doc(alias = "VkPhysicalDeviceShadingRateImageFeaturesNV")]
16677pub struct PhysicalDeviceShadingRateImageFeaturesNV {
16678    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV`.
16679    pub s_type: StructureType,
16680    ///Optional, may be null.
16681    pub p_next: *mut core::ffi::c_void,
16682    pub shading_rate_image: u32,
16683    pub shading_rate_coarse_sample_order: u32,
16684}
16685impl Default for PhysicalDeviceShadingRateImageFeaturesNV {
16686    #[inline]
16687    fn default() -> Self {
16688        Self {
16689            s_type: StructureType::from_raw(1000164001i32),
16690            p_next: core::ptr::null_mut(),
16691            shading_rate_image: Default::default(),
16692            shading_rate_coarse_sample_order: Default::default(),
16693        }
16694    }
16695}
16696///[`VkPhysicalDeviceShadingRateImagePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShadingRateImagePropertiesNV.html)
16697/**
16698Provided by **VK_NV_shading_rate_image**.*/
16699/**
16700**Returned only**, filled by Vulkan, not constructed by the application.*/
16701///
16702///# Extends
16703///- [`PhysicalDeviceProperties2`]
16704#[repr(C)]
16705#[derive(Copy, Clone, Debug)]
16706#[doc(alias = "VkPhysicalDeviceShadingRateImagePropertiesNV")]
16707pub struct PhysicalDeviceShadingRateImagePropertiesNV {
16708    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV`.
16709    pub s_type: StructureType,
16710    ///Optional, may be null.
16711    pub p_next: *mut core::ffi::c_void,
16712    pub shading_rate_texel_size: Extent2D,
16713    pub shading_rate_palette_size: u32,
16714    pub shading_rate_max_coarse_samples: u32,
16715}
16716impl Default for PhysicalDeviceShadingRateImagePropertiesNV {
16717    #[inline]
16718    fn default() -> Self {
16719        Self {
16720            s_type: StructureType::from_raw(1000164002i32),
16721            p_next: core::ptr::null_mut(),
16722            shading_rate_texel_size: Default::default(),
16723            shading_rate_palette_size: Default::default(),
16724            shading_rate_max_coarse_samples: Default::default(),
16725        }
16726    }
16727}
16728///[`VkPhysicalDeviceInvocationMaskFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.html)
16729/**
16730Provided by **VK_HUAWEI_invocation_mask**.*/
16731///
16732///# Extends
16733///- [`PhysicalDeviceFeatures2`]
16734///- [`DeviceCreateInfo`]
16735#[repr(C)]
16736#[derive(Copy, Clone, Debug)]
16737#[doc(alias = "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI")]
16738pub struct PhysicalDeviceInvocationMaskFeaturesHUAWEI {
16739    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI`.
16740    pub s_type: StructureType,
16741    ///Optional, may be null.
16742    pub p_next: *mut core::ffi::c_void,
16743    pub invocation_mask: u32,
16744}
16745impl Default for PhysicalDeviceInvocationMaskFeaturesHUAWEI {
16746    #[inline]
16747    fn default() -> Self {
16748        Self {
16749            s_type: StructureType::from_raw(1000370000i32),
16750            p_next: core::ptr::null_mut(),
16751            invocation_mask: Default::default(),
16752        }
16753    }
16754}
16755///[`VkCoarseSampleLocationNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCoarseSampleLocationNV.html)
16756/**
16757Provided by **VK_NV_shading_rate_image**.*/
16758#[repr(C)]
16759#[derive(Copy, Clone, Debug)]
16760#[doc(alias = "VkCoarseSampleLocationNV")]
16761pub struct CoarseSampleLocationNV {
16762    pub pixel_x: u32,
16763    pub pixel_y: u32,
16764    pub sample: u32,
16765}
16766impl Default for CoarseSampleLocationNV {
16767    #[inline]
16768    fn default() -> Self {
16769        unsafe { core::mem::zeroed() }
16770    }
16771}
16772///[`VkCoarseSampleOrderCustomNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCoarseSampleOrderCustomNV.html)
16773/**
16774Provided by **VK_NV_shading_rate_image**.*/
16775#[repr(C)]
16776#[derive(Copy, Clone, Debug)]
16777#[doc(alias = "VkCoarseSampleOrderCustomNV")]
16778pub struct CoarseSampleOrderCustomNV {
16779    pub shading_rate: ShadingRatePaletteEntryNV,
16780    pub sample_count: u32,
16781    ///Length of `p_sample_locations`.
16782    pub sample_location_count: u32,
16783    pub p_sample_locations: *const CoarseSampleLocationNV,
16784}
16785impl Default for CoarseSampleOrderCustomNV {
16786    #[inline]
16787    fn default() -> Self {
16788        unsafe { core::mem::zeroed() }
16789    }
16790}
16791///[`VkPipelineViewportCoarseSampleOrderStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportCoarseSampleOrderStateCreateInfoNV.html)
16792/**
16793Provided by **VK_NV_shading_rate_image**.*/
16794///
16795///# Extends
16796///- [`PipelineViewportStateCreateInfo`]
16797#[repr(C)]
16798#[derive(Copy, Clone, Debug)]
16799#[doc(alias = "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV")]
16800pub struct PipelineViewportCoarseSampleOrderStateCreateInfoNV {
16801    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV`.
16802    pub s_type: StructureType,
16803    ///Optional, may be null.
16804    pub p_next: *const core::ffi::c_void,
16805    pub sample_order_type: CoarseSampleOrderTypeNV,
16806    ///Length of `p_custom_sample_orders`.
16807    pub custom_sample_order_count: u32,
16808    pub p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
16809}
16810impl Default for PipelineViewportCoarseSampleOrderStateCreateInfoNV {
16811    #[inline]
16812    fn default() -> Self {
16813        Self {
16814            s_type: StructureType::from_raw(1000164005i32),
16815            p_next: core::ptr::null(),
16816            sample_order_type: Default::default(),
16817            custom_sample_order_count: Default::default(),
16818            p_custom_sample_orders: core::ptr::null(),
16819        }
16820    }
16821}
16822///[`VkPhysicalDeviceMeshShaderFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMeshShaderFeaturesNV.html)
16823/**
16824Provided by **VK_NV_mesh_shader**.*/
16825///
16826///# Extends
16827///- [`PhysicalDeviceFeatures2`]
16828///- [`DeviceCreateInfo`]
16829#[repr(C)]
16830#[derive(Copy, Clone, Debug)]
16831#[doc(alias = "VkPhysicalDeviceMeshShaderFeaturesNV")]
16832pub struct PhysicalDeviceMeshShaderFeaturesNV {
16833    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV`.
16834    pub s_type: StructureType,
16835    ///Optional, may be null.
16836    pub p_next: *mut core::ffi::c_void,
16837    pub task_shader: u32,
16838    pub mesh_shader: u32,
16839}
16840impl Default for PhysicalDeviceMeshShaderFeaturesNV {
16841    #[inline]
16842    fn default() -> Self {
16843        Self {
16844            s_type: StructureType::from_raw(1000202000i32),
16845            p_next: core::ptr::null_mut(),
16846            task_shader: Default::default(),
16847            mesh_shader: Default::default(),
16848        }
16849    }
16850}
16851///[`VkPhysicalDeviceMeshShaderPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMeshShaderPropertiesNV.html)
16852/**
16853Provided by **VK_NV_mesh_shader**.*/
16854/**
16855**Returned only**, filled by Vulkan, not constructed by the application.*/
16856///
16857///# Extends
16858///- [`PhysicalDeviceProperties2`]
16859#[repr(C)]
16860#[derive(Copy, Clone, Debug)]
16861#[doc(alias = "VkPhysicalDeviceMeshShaderPropertiesNV")]
16862pub struct PhysicalDeviceMeshShaderPropertiesNV {
16863    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV`.
16864    pub s_type: StructureType,
16865    ///Optional, may be null.
16866    pub p_next: *mut core::ffi::c_void,
16867    pub max_draw_mesh_tasks_count: u32,
16868    pub max_task_work_group_invocations: u32,
16869    pub max_task_work_group_size: [u32; 3usize],
16870    pub max_task_total_memory_size: u32,
16871    pub max_task_output_count: u32,
16872    pub max_mesh_work_group_invocations: u32,
16873    pub max_mesh_work_group_size: [u32; 3usize],
16874    pub max_mesh_total_memory_size: u32,
16875    pub max_mesh_output_vertices: u32,
16876    pub max_mesh_output_primitives: u32,
16877    pub max_mesh_multiview_view_count: u32,
16878    pub mesh_output_per_vertex_granularity: u32,
16879    pub mesh_output_per_primitive_granularity: u32,
16880}
16881impl Default for PhysicalDeviceMeshShaderPropertiesNV {
16882    #[inline]
16883    fn default() -> Self {
16884        Self {
16885            s_type: StructureType::from_raw(1000202001i32),
16886            p_next: core::ptr::null_mut(),
16887            max_draw_mesh_tasks_count: Default::default(),
16888            max_task_work_group_invocations: Default::default(),
16889            max_task_work_group_size: unsafe { core::mem::zeroed() },
16890            max_task_total_memory_size: Default::default(),
16891            max_task_output_count: Default::default(),
16892            max_mesh_work_group_invocations: Default::default(),
16893            max_mesh_work_group_size: unsafe { core::mem::zeroed() },
16894            max_mesh_total_memory_size: Default::default(),
16895            max_mesh_output_vertices: Default::default(),
16896            max_mesh_output_primitives: Default::default(),
16897            max_mesh_multiview_view_count: Default::default(),
16898            mesh_output_per_vertex_granularity: Default::default(),
16899            mesh_output_per_primitive_granularity: Default::default(),
16900        }
16901    }
16902}
16903///[`VkDrawMeshTasksIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawMeshTasksIndirectCommandNV.html)
16904/**
16905Provided by **VK_NV_mesh_shader**.*/
16906#[repr(C)]
16907#[derive(Copy, Clone, Debug)]
16908#[doc(alias = "VkDrawMeshTasksIndirectCommandNV")]
16909pub struct DrawMeshTasksIndirectCommandNV {
16910    pub task_count: u32,
16911    pub first_task: u32,
16912}
16913impl Default for DrawMeshTasksIndirectCommandNV {
16914    #[inline]
16915    fn default() -> Self {
16916        unsafe { core::mem::zeroed() }
16917    }
16918}
16919///[`VkPhysicalDeviceMeshShaderFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMeshShaderFeaturesEXT.html)
16920/**
16921Provided by **VK_EXT_mesh_shader**.*/
16922///
16923///# Extends
16924///- [`PhysicalDeviceFeatures2`]
16925///- [`DeviceCreateInfo`]
16926#[repr(C)]
16927#[derive(Copy, Clone, Debug)]
16928#[doc(alias = "VkPhysicalDeviceMeshShaderFeaturesEXT")]
16929pub struct PhysicalDeviceMeshShaderFeaturesEXT {
16930    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT`.
16931    pub s_type: StructureType,
16932    ///Optional, may be null.
16933    pub p_next: *mut core::ffi::c_void,
16934    pub task_shader: u32,
16935    pub mesh_shader: u32,
16936    pub multiview_mesh_shader: u32,
16937    pub primitive_fragment_shading_rate_mesh_shader: u32,
16938    pub mesh_shader_queries: u32,
16939}
16940impl Default for PhysicalDeviceMeshShaderFeaturesEXT {
16941    #[inline]
16942    fn default() -> Self {
16943        Self {
16944            s_type: StructureType::from_raw(1000328000i32),
16945            p_next: core::ptr::null_mut(),
16946            task_shader: Default::default(),
16947            mesh_shader: Default::default(),
16948            multiview_mesh_shader: Default::default(),
16949            primitive_fragment_shading_rate_mesh_shader: Default::default(),
16950            mesh_shader_queries: Default::default(),
16951        }
16952    }
16953}
16954///[`VkPhysicalDeviceMeshShaderPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMeshShaderPropertiesEXT.html)
16955/**
16956Provided by **VK_EXT_mesh_shader**.*/
16957/**
16958**Returned only**, filled by Vulkan, not constructed by the application.*/
16959///
16960///# Extends
16961///- [`PhysicalDeviceProperties2`]
16962#[repr(C)]
16963#[derive(Copy, Clone, Debug)]
16964#[doc(alias = "VkPhysicalDeviceMeshShaderPropertiesEXT")]
16965pub struct PhysicalDeviceMeshShaderPropertiesEXT {
16966    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT`.
16967    pub s_type: StructureType,
16968    ///Optional, may be null.
16969    pub p_next: *mut core::ffi::c_void,
16970    pub max_task_work_group_total_count: u32,
16971    pub max_task_work_group_count: [u32; 3usize],
16972    pub max_task_work_group_invocations: u32,
16973    pub max_task_work_group_size: [u32; 3usize],
16974    pub max_task_payload_size: u32,
16975    pub max_task_shared_memory_size: u32,
16976    pub max_task_payload_and_shared_memory_size: u32,
16977    pub max_mesh_work_group_total_count: u32,
16978    pub max_mesh_work_group_count: [u32; 3usize],
16979    pub max_mesh_work_group_invocations: u32,
16980    pub max_mesh_work_group_size: [u32; 3usize],
16981    pub max_mesh_shared_memory_size: u32,
16982    pub max_mesh_payload_and_shared_memory_size: u32,
16983    pub max_mesh_output_memory_size: u32,
16984    pub max_mesh_payload_and_output_memory_size: u32,
16985    pub max_mesh_output_components: u32,
16986    pub max_mesh_output_vertices: u32,
16987    pub max_mesh_output_primitives: u32,
16988    pub max_mesh_output_layers: u32,
16989    pub max_mesh_multiview_view_count: u32,
16990    pub mesh_output_per_vertex_granularity: u32,
16991    pub mesh_output_per_primitive_granularity: u32,
16992    pub max_preferred_task_work_group_invocations: u32,
16993    pub max_preferred_mesh_work_group_invocations: u32,
16994    pub prefers_local_invocation_vertex_output: u32,
16995    pub prefers_local_invocation_primitive_output: u32,
16996    pub prefers_compact_vertex_output: u32,
16997    pub prefers_compact_primitive_output: u32,
16998}
16999impl Default for PhysicalDeviceMeshShaderPropertiesEXT {
17000    #[inline]
17001    fn default() -> Self {
17002        Self {
17003            s_type: StructureType::from_raw(1000328001i32),
17004            p_next: core::ptr::null_mut(),
17005            max_task_work_group_total_count: Default::default(),
17006            max_task_work_group_count: unsafe { core::mem::zeroed() },
17007            max_task_work_group_invocations: Default::default(),
17008            max_task_work_group_size: unsafe { core::mem::zeroed() },
17009            max_task_payload_size: Default::default(),
17010            max_task_shared_memory_size: Default::default(),
17011            max_task_payload_and_shared_memory_size: Default::default(),
17012            max_mesh_work_group_total_count: Default::default(),
17013            max_mesh_work_group_count: unsafe { core::mem::zeroed() },
17014            max_mesh_work_group_invocations: Default::default(),
17015            max_mesh_work_group_size: unsafe { core::mem::zeroed() },
17016            max_mesh_shared_memory_size: Default::default(),
17017            max_mesh_payload_and_shared_memory_size: Default::default(),
17018            max_mesh_output_memory_size: Default::default(),
17019            max_mesh_payload_and_output_memory_size: Default::default(),
17020            max_mesh_output_components: Default::default(),
17021            max_mesh_output_vertices: Default::default(),
17022            max_mesh_output_primitives: Default::default(),
17023            max_mesh_output_layers: Default::default(),
17024            max_mesh_multiview_view_count: Default::default(),
17025            mesh_output_per_vertex_granularity: Default::default(),
17026            mesh_output_per_primitive_granularity: Default::default(),
17027            max_preferred_task_work_group_invocations: Default::default(),
17028            max_preferred_mesh_work_group_invocations: Default::default(),
17029            prefers_local_invocation_vertex_output: Default::default(),
17030            prefers_local_invocation_primitive_output: Default::default(),
17031            prefers_compact_vertex_output: Default::default(),
17032            prefers_compact_primitive_output: Default::default(),
17033        }
17034    }
17035}
17036///[`VkDrawMeshTasksIndirectCommandEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawMeshTasksIndirectCommandEXT.html)
17037/**
17038Provided by **VK_EXT_mesh_shader**.*/
17039#[repr(C)]
17040#[derive(Copy, Clone, Debug)]
17041#[doc(alias = "VkDrawMeshTasksIndirectCommandEXT")]
17042pub struct DrawMeshTasksIndirectCommandEXT {
17043    pub group_count_x: u32,
17044    pub group_count_y: u32,
17045    pub group_count_z: u32,
17046}
17047impl Default for DrawMeshTasksIndirectCommandEXT {
17048    #[inline]
17049    fn default() -> Self {
17050        unsafe { core::mem::zeroed() }
17051    }
17052}
17053///[`VkRayTracingShaderGroupCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingShaderGroupCreateInfoNV.html)
17054/**
17055Provided by **VK_NV_ray_tracing**.*/
17056#[repr(C)]
17057#[derive(Copy, Clone, Debug)]
17058#[doc(alias = "VkRayTracingShaderGroupCreateInfoNV")]
17059pub struct RayTracingShaderGroupCreateInfoNV {
17060    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV`.
17061    pub s_type: StructureType,
17062    ///Optional, may be null.
17063    pub p_next: *const core::ffi::c_void,
17064    pub r#type: RayTracingShaderGroupTypeKHR,
17065    pub general_shader: u32,
17066    pub closest_hit_shader: u32,
17067    pub any_hit_shader: u32,
17068    pub intersection_shader: u32,
17069}
17070impl Default for RayTracingShaderGroupCreateInfoNV {
17071    #[inline]
17072    fn default() -> Self {
17073        Self {
17074            s_type: StructureType::from_raw(1000165011i32),
17075            p_next: core::ptr::null(),
17076            r#type: Default::default(),
17077            general_shader: Default::default(),
17078            closest_hit_shader: Default::default(),
17079            any_hit_shader: Default::default(),
17080            intersection_shader: Default::default(),
17081        }
17082    }
17083}
17084///[`VkRayTracingShaderGroupCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingShaderGroupCreateInfoKHR.html)
17085/**
17086Provided by **VK_KHR_ray_tracing_pipeline**.*/
17087#[repr(C)]
17088#[derive(Copy, Clone, Debug)]
17089#[doc(alias = "VkRayTracingShaderGroupCreateInfoKHR")]
17090pub struct RayTracingShaderGroupCreateInfoKHR {
17091    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR`.
17092    pub s_type: StructureType,
17093    ///Optional, may be null.
17094    pub p_next: *const core::ffi::c_void,
17095    pub r#type: RayTracingShaderGroupTypeKHR,
17096    pub general_shader: u32,
17097    pub closest_hit_shader: u32,
17098    pub any_hit_shader: u32,
17099    pub intersection_shader: u32,
17100    ///Optional, may be null.
17101    pub p_shader_group_capture_replay_handle: *const core::ffi::c_void,
17102}
17103impl Default for RayTracingShaderGroupCreateInfoKHR {
17104    #[inline]
17105    fn default() -> Self {
17106        Self {
17107            s_type: StructureType::from_raw(1000150016i32),
17108            p_next: core::ptr::null(),
17109            r#type: Default::default(),
17110            general_shader: Default::default(),
17111            closest_hit_shader: Default::default(),
17112            any_hit_shader: Default::default(),
17113            intersection_shader: Default::default(),
17114            p_shader_group_capture_replay_handle: core::ptr::null(),
17115        }
17116    }
17117}
17118///[`VkRayTracingPipelineCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingPipelineCreateInfoNV.html)
17119/**
17120Provided by **VK_NV_ray_tracing**.*/
17121///
17122///# Extended By
17123///- [`PipelineCreateFlags2CreateInfo`]
17124///- [`PipelineCreationFeedbackCreateInfo`]
17125///- [`PipelineOfflineCreateInfo`]
17126#[repr(C)]
17127#[derive(Copy, Clone, Debug)]
17128#[doc(alias = "VkRayTracingPipelineCreateInfoNV")]
17129pub struct RayTracingPipelineCreateInfoNV {
17130    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV`.
17131    pub s_type: StructureType,
17132    ///Optional, may be null.
17133    pub p_next: *const core::ffi::c_void,
17134    pub flags: PipelineCreateFlags,
17135    ///Length of `p_stages`.
17136    pub stage_count: u32,
17137    pub p_stages: *const PipelineShaderStageCreateInfo,
17138    ///Length of `p_groups`.
17139    pub group_count: u32,
17140    pub p_groups: *const RayTracingShaderGroupCreateInfoNV,
17141    pub max_recursion_depth: u32,
17142    pub layout: PipelineLayout,
17143    pub base_pipeline_handle: Pipeline,
17144    pub base_pipeline_index: i32,
17145}
17146impl Default for RayTracingPipelineCreateInfoNV {
17147    #[inline]
17148    fn default() -> Self {
17149        Self {
17150            s_type: StructureType::from_raw(1000165000i32),
17151            p_next: core::ptr::null(),
17152            flags: Default::default(),
17153            stage_count: Default::default(),
17154            p_stages: core::ptr::null(),
17155            group_count: Default::default(),
17156            p_groups: core::ptr::null(),
17157            max_recursion_depth: Default::default(),
17158            layout: Default::default(),
17159            base_pipeline_handle: Default::default(),
17160            base_pipeline_index: Default::default(),
17161        }
17162    }
17163}
17164///[`VkRayTracingPipelineCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingPipelineCreateInfoKHR.html)
17165/**
17166Provided by **VK_KHR_ray_tracing_pipeline**.*/
17167///
17168///# Extended By
17169///- [`PipelineBinaryInfoKHR`]
17170///- [`PipelineCreateFlags2CreateInfo`]
17171///- [`PipelineCreationFeedbackCreateInfo`]
17172///- [`PipelineOfflineCreateInfo`]
17173///- [`PipelineRobustnessCreateInfo`]
17174///- [`RayTracingPipelineClusterAccelerationStructureCreateInfoNV`]
17175#[repr(C)]
17176#[derive(Copy, Clone, Debug)]
17177#[doc(alias = "VkRayTracingPipelineCreateInfoKHR")]
17178pub struct RayTracingPipelineCreateInfoKHR {
17179    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR`.
17180    pub s_type: StructureType,
17181    ///Optional, may be null.
17182    pub p_next: *const core::ffi::c_void,
17183    pub flags: PipelineCreateFlags,
17184    ///Length of `p_stages`.
17185    pub stage_count: u32,
17186    pub p_stages: *const PipelineShaderStageCreateInfo,
17187    ///Length of `p_groups`.
17188    pub group_count: u32,
17189    pub p_groups: *const RayTracingShaderGroupCreateInfoKHR,
17190    pub max_pipeline_ray_recursion_depth: u32,
17191    ///Optional, may be null.
17192    pub p_library_info: *const PipelineLibraryCreateInfoKHR,
17193    ///Optional, may be null.
17194    pub p_library_interface: *const RayTracingPipelineInterfaceCreateInfoKHR,
17195    ///Optional, may be null.
17196    pub p_dynamic_state: *const PipelineDynamicStateCreateInfo,
17197    pub layout: PipelineLayout,
17198    pub base_pipeline_handle: Pipeline,
17199    pub base_pipeline_index: i32,
17200}
17201impl Default for RayTracingPipelineCreateInfoKHR {
17202    #[inline]
17203    fn default() -> Self {
17204        Self {
17205            s_type: StructureType::from_raw(1000150015i32),
17206            p_next: core::ptr::null(),
17207            flags: Default::default(),
17208            stage_count: Default::default(),
17209            p_stages: core::ptr::null(),
17210            group_count: Default::default(),
17211            p_groups: core::ptr::null(),
17212            max_pipeline_ray_recursion_depth: Default::default(),
17213            p_library_info: core::ptr::null(),
17214            p_library_interface: core::ptr::null(),
17215            p_dynamic_state: core::ptr::null(),
17216            layout: Default::default(),
17217            base_pipeline_handle: Default::default(),
17218            base_pipeline_index: Default::default(),
17219        }
17220    }
17221}
17222///[`VkGeometryTrianglesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeometryTrianglesNV.html)
17223/**
17224Provided by **VK_NV_ray_tracing**.*/
17225#[repr(C)]
17226#[derive(Copy, Clone, Debug)]
17227#[doc(alias = "VkGeometryTrianglesNV")]
17228pub struct GeometryTrianglesNV {
17229    ///Must be `VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV`.
17230    pub s_type: StructureType,
17231    ///Optional, may be null.
17232    pub p_next: *const core::ffi::c_void,
17233    pub vertex_data: Buffer,
17234    pub vertex_offset: u64,
17235    pub vertex_count: u32,
17236    pub vertex_stride: u64,
17237    pub vertex_format: Format,
17238    pub index_data: Buffer,
17239    pub index_offset: u64,
17240    pub index_count: u32,
17241    pub index_type: IndexType,
17242    pub transform_data: Buffer,
17243    pub transform_offset: u64,
17244}
17245impl Default for GeometryTrianglesNV {
17246    #[inline]
17247    fn default() -> Self {
17248        Self {
17249            s_type: StructureType::from_raw(1000165004i32),
17250            p_next: core::ptr::null(),
17251            vertex_data: Default::default(),
17252            vertex_offset: Default::default(),
17253            vertex_count: Default::default(),
17254            vertex_stride: Default::default(),
17255            vertex_format: Default::default(),
17256            index_data: Default::default(),
17257            index_offset: Default::default(),
17258            index_count: Default::default(),
17259            index_type: Default::default(),
17260            transform_data: Default::default(),
17261            transform_offset: Default::default(),
17262        }
17263    }
17264}
17265///[`VkGeometryAABBNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeometryAABBNV.html)
17266/**
17267Provided by **VK_NV_ray_tracing**.*/
17268#[repr(C)]
17269#[derive(Copy, Clone, Debug)]
17270#[doc(alias = "VkGeometryAABBNV")]
17271pub struct GeometryAABBNV {
17272    ///Must be `VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV`.
17273    pub s_type: StructureType,
17274    ///Optional, may be null.
17275    pub p_next: *const core::ffi::c_void,
17276    pub aabb_data: Buffer,
17277    pub num_aab_bs: u32,
17278    pub stride: u32,
17279    pub offset: u64,
17280}
17281impl Default for GeometryAABBNV {
17282    #[inline]
17283    fn default() -> Self {
17284        Self {
17285            s_type: StructureType::from_raw(1000165005i32),
17286            p_next: core::ptr::null(),
17287            aabb_data: Default::default(),
17288            num_aab_bs: Default::default(),
17289            stride: Default::default(),
17290            offset: Default::default(),
17291        }
17292    }
17293}
17294///[`VkGeometryDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeometryDataNV.html)
17295/**
17296Provided by **VK_NV_ray_tracing**.*/
17297#[repr(C)]
17298#[derive(Copy, Clone, Debug)]
17299#[doc(alias = "VkGeometryDataNV")]
17300pub struct GeometryDataNV {
17301    pub triangles: GeometryTrianglesNV,
17302    pub aabbs: GeometryAABBNV,
17303}
17304impl Default for GeometryDataNV {
17305    #[inline]
17306    fn default() -> Self {
17307        unsafe { core::mem::zeroed() }
17308    }
17309}
17310///[`VkGeometryNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeometryNV.html)
17311/**
17312Provided by **VK_NV_ray_tracing**.*/
17313#[repr(C)]
17314#[derive(Copy, Clone, Debug)]
17315#[doc(alias = "VkGeometryNV")]
17316pub struct GeometryNV {
17317    ///Must be `VK_STRUCTURE_TYPE_GEOMETRY_NV`.
17318    pub s_type: StructureType,
17319    ///Optional, may be null.
17320    pub p_next: *const core::ffi::c_void,
17321    pub geometry_type: GeometryTypeKHR,
17322    pub geometry: GeometryDataNV,
17323    pub flags: GeometryFlagsKHR,
17324}
17325impl Default for GeometryNV {
17326    #[inline]
17327    fn default() -> Self {
17328        Self {
17329            s_type: StructureType::from_raw(1000165003i32),
17330            p_next: core::ptr::null(),
17331            geometry_type: Default::default(),
17332            geometry: Default::default(),
17333            flags: Default::default(),
17334        }
17335    }
17336}
17337///[`VkAccelerationStructureInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureInfoNV.html)
17338/**
17339Provided by **VK_NV_ray_tracing**.*/
17340#[repr(C)]
17341#[derive(Copy, Clone, Debug)]
17342#[doc(alias = "VkAccelerationStructureInfoNV")]
17343pub struct AccelerationStructureInfoNV {
17344    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV`.
17345    pub s_type: StructureType,
17346    ///Optional, may be null.
17347    pub p_next: *const core::ffi::c_void,
17348    pub r#type: AccelerationStructureTypeNV,
17349    pub flags: BuildAccelerationStructureFlagsNV,
17350    pub instance_count: u32,
17351    ///Length of `p_geometries`.
17352    pub geometry_count: u32,
17353    pub p_geometries: *const GeometryNV,
17354}
17355impl Default for AccelerationStructureInfoNV {
17356    #[inline]
17357    fn default() -> Self {
17358        Self {
17359            s_type: StructureType::from_raw(1000165012i32),
17360            p_next: core::ptr::null(),
17361            r#type: Default::default(),
17362            flags: Default::default(),
17363            instance_count: Default::default(),
17364            geometry_count: Default::default(),
17365            p_geometries: core::ptr::null(),
17366        }
17367    }
17368}
17369///[`VkAccelerationStructureCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureCreateInfoNV.html)
17370/**
17371Provided by **VK_NV_ray_tracing**.*/
17372///
17373///# Extended By
17374///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
17375#[repr(C)]
17376#[derive(Copy, Clone, Debug)]
17377#[doc(alias = "VkAccelerationStructureCreateInfoNV")]
17378pub struct AccelerationStructureCreateInfoNV {
17379    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV`.
17380    pub s_type: StructureType,
17381    ///Optional, may be null.
17382    pub p_next: *const core::ffi::c_void,
17383    pub compacted_size: u64,
17384    pub info: AccelerationStructureInfoNV,
17385}
17386impl Default for AccelerationStructureCreateInfoNV {
17387    #[inline]
17388    fn default() -> Self {
17389        Self {
17390            s_type: StructureType::from_raw(1000165001i32),
17391            p_next: core::ptr::null(),
17392            compacted_size: Default::default(),
17393            info: Default::default(),
17394        }
17395    }
17396}
17397///[`VkBindAccelerationStructureMemoryInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindAccelerationStructureMemoryInfoNV.html)
17398/**
17399Provided by **VK_NV_ray_tracing**.*/
17400#[repr(C)]
17401#[derive(Copy, Clone, Debug)]
17402#[doc(alias = "VkBindAccelerationStructureMemoryInfoNV")]
17403pub struct BindAccelerationStructureMemoryInfoNV {
17404    ///Must be `VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV`.
17405    pub s_type: StructureType,
17406    ///Optional, may be null.
17407    pub p_next: *const core::ffi::c_void,
17408    pub acceleration_structure: AccelerationStructureNV,
17409    pub memory: DeviceMemory,
17410    pub memory_offset: u64,
17411    ///Length of `p_device_indices`.
17412    pub device_index_count: u32,
17413    pub p_device_indices: *const u32,
17414}
17415impl Default for BindAccelerationStructureMemoryInfoNV {
17416    #[inline]
17417    fn default() -> Self {
17418        Self {
17419            s_type: StructureType::from_raw(1000165006i32),
17420            p_next: core::ptr::null(),
17421            acceleration_structure: Default::default(),
17422            memory: Default::default(),
17423            memory_offset: Default::default(),
17424            device_index_count: Default::default(),
17425            p_device_indices: core::ptr::null(),
17426        }
17427    }
17428}
17429///[`VkWriteDescriptorSetAccelerationStructureKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetAccelerationStructureKHR.html)
17430/**
17431Provided by **VK_KHR_acceleration_structure**.*/
17432///
17433///# Extends
17434///- [`WriteDescriptorSet`]
17435#[repr(C)]
17436#[derive(Copy, Clone, Debug)]
17437#[doc(alias = "VkWriteDescriptorSetAccelerationStructureKHR")]
17438pub struct WriteDescriptorSetAccelerationStructureKHR {
17439    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR`.
17440    pub s_type: StructureType,
17441    ///Optional, may be null.
17442    pub p_next: *const core::ffi::c_void,
17443    ///Length of `p_acceleration_structures`.
17444    pub acceleration_structure_count: u32,
17445    ///Optional, may be null.
17446    pub p_acceleration_structures: *const AccelerationStructureKHR,
17447}
17448impl Default for WriteDescriptorSetAccelerationStructureKHR {
17449    #[inline]
17450    fn default() -> Self {
17451        Self {
17452            s_type: StructureType::from_raw(1000150007i32),
17453            p_next: core::ptr::null(),
17454            acceleration_structure_count: Default::default(),
17455            p_acceleration_structures: core::ptr::null(),
17456        }
17457    }
17458}
17459///[`VkWriteDescriptorSetAccelerationStructureNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetAccelerationStructureNV.html)
17460/**
17461Provided by **VK_NV_ray_tracing**.*/
17462///
17463///# Extends
17464///- [`WriteDescriptorSet`]
17465#[repr(C)]
17466#[derive(Copy, Clone, Debug)]
17467#[doc(alias = "VkWriteDescriptorSetAccelerationStructureNV")]
17468pub struct WriteDescriptorSetAccelerationStructureNV {
17469    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV`.
17470    pub s_type: StructureType,
17471    ///Optional, may be null.
17472    pub p_next: *const core::ffi::c_void,
17473    ///Length of `p_acceleration_structures`.
17474    pub acceleration_structure_count: u32,
17475    ///Optional, may be null.
17476    pub p_acceleration_structures: *const AccelerationStructureNV,
17477}
17478impl Default for WriteDescriptorSetAccelerationStructureNV {
17479    #[inline]
17480    fn default() -> Self {
17481        Self {
17482            s_type: StructureType::from_raw(1000165007i32),
17483            p_next: core::ptr::null(),
17484            acceleration_structure_count: Default::default(),
17485            p_acceleration_structures: core::ptr::null(),
17486        }
17487    }
17488}
17489///[`VkAccelerationStructureMemoryRequirementsInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMemoryRequirementsInfoNV.html)
17490/**
17491Provided by **VK_NV_ray_tracing**.*/
17492#[repr(C)]
17493#[derive(Copy, Clone, Debug)]
17494#[doc(alias = "VkAccelerationStructureMemoryRequirementsInfoNV")]
17495pub struct AccelerationStructureMemoryRequirementsInfoNV {
17496    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV`.
17497    pub s_type: StructureType,
17498    ///Optional, may be null.
17499    pub p_next: *const core::ffi::c_void,
17500    pub r#type: AccelerationStructureMemoryRequirementsTypeNV,
17501    pub acceleration_structure: AccelerationStructureNV,
17502}
17503impl Default for AccelerationStructureMemoryRequirementsInfoNV {
17504    #[inline]
17505    fn default() -> Self {
17506        Self {
17507            s_type: StructureType::from_raw(1000165008i32),
17508            p_next: core::ptr::null(),
17509            r#type: Default::default(),
17510            acceleration_structure: Default::default(),
17511        }
17512    }
17513}
17514///[`VkPhysicalDeviceAccelerationStructureFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAccelerationStructureFeaturesKHR.html)
17515/**
17516Provided by **VK_KHR_acceleration_structure**.*/
17517///
17518///# Extends
17519///- [`PhysicalDeviceFeatures2`]
17520///- [`DeviceCreateInfo`]
17521#[repr(C)]
17522#[derive(Copy, Clone, Debug)]
17523#[doc(alias = "VkPhysicalDeviceAccelerationStructureFeaturesKHR")]
17524pub struct PhysicalDeviceAccelerationStructureFeaturesKHR {
17525    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR`.
17526    pub s_type: StructureType,
17527    ///Optional, may be null.
17528    pub p_next: *mut core::ffi::c_void,
17529    pub acceleration_structure: u32,
17530    pub acceleration_structure_capture_replay: u32,
17531    pub acceleration_structure_indirect_build: u32,
17532    pub acceleration_structure_host_commands: u32,
17533    pub descriptor_binding_acceleration_structure_update_after_bind: u32,
17534}
17535impl Default for PhysicalDeviceAccelerationStructureFeaturesKHR {
17536    #[inline]
17537    fn default() -> Self {
17538        Self {
17539            s_type: StructureType::from_raw(1000150013i32),
17540            p_next: core::ptr::null_mut(),
17541            acceleration_structure: Default::default(),
17542            acceleration_structure_capture_replay: Default::default(),
17543            acceleration_structure_indirect_build: Default::default(),
17544            acceleration_structure_host_commands: Default::default(),
17545            descriptor_binding_acceleration_structure_update_after_bind: Default::default(),
17546        }
17547    }
17548}
17549///[`VkPhysicalDeviceRayTracingPipelineFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.html)
17550/**
17551Provided by **VK_KHR_ray_tracing_pipeline**.*/
17552///
17553///# Extends
17554///- [`PhysicalDeviceFeatures2`]
17555///- [`DeviceCreateInfo`]
17556#[repr(C)]
17557#[derive(Copy, Clone, Debug)]
17558#[doc(alias = "VkPhysicalDeviceRayTracingPipelineFeaturesKHR")]
17559pub struct PhysicalDeviceRayTracingPipelineFeaturesKHR {
17560    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR`.
17561    pub s_type: StructureType,
17562    ///Optional, may be null.
17563    pub p_next: *mut core::ffi::c_void,
17564    pub ray_tracing_pipeline: u32,
17565    pub ray_tracing_pipeline_shader_group_handle_capture_replay: u32,
17566    pub ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: u32,
17567    pub ray_tracing_pipeline_trace_rays_indirect: u32,
17568    pub ray_traversal_primitive_culling: u32,
17569}
17570impl Default for PhysicalDeviceRayTracingPipelineFeaturesKHR {
17571    #[inline]
17572    fn default() -> Self {
17573        Self {
17574            s_type: StructureType::from_raw(1000347000i32),
17575            p_next: core::ptr::null_mut(),
17576            ray_tracing_pipeline: Default::default(),
17577            ray_tracing_pipeline_shader_group_handle_capture_replay: Default::default(),
17578            ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: Default::default(),
17579            ray_tracing_pipeline_trace_rays_indirect: Default::default(),
17580            ray_traversal_primitive_culling: Default::default(),
17581        }
17582    }
17583}
17584///[`VkPhysicalDeviceRayQueryFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayQueryFeaturesKHR.html)
17585/**
17586Provided by **VK_KHR_ray_query**.*/
17587///
17588///# Extends
17589///- [`PhysicalDeviceFeatures2`]
17590///- [`DeviceCreateInfo`]
17591#[repr(C)]
17592#[derive(Copy, Clone, Debug)]
17593#[doc(alias = "VkPhysicalDeviceRayQueryFeaturesKHR")]
17594pub struct PhysicalDeviceRayQueryFeaturesKHR {
17595    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR`.
17596    pub s_type: StructureType,
17597    ///Optional, may be null.
17598    pub p_next: *mut core::ffi::c_void,
17599    pub ray_query: u32,
17600}
17601impl Default for PhysicalDeviceRayQueryFeaturesKHR {
17602    #[inline]
17603    fn default() -> Self {
17604        Self {
17605            s_type: StructureType::from_raw(1000348013i32),
17606            p_next: core::ptr::null_mut(),
17607            ray_query: Default::default(),
17608        }
17609    }
17610}
17611///[`VkPhysicalDeviceAccelerationStructurePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAccelerationStructurePropertiesKHR.html)
17612/**
17613Provided by **VK_KHR_acceleration_structure**.*/
17614/**
17615**Returned only**, filled by Vulkan, not constructed by the application.*/
17616///
17617///# Extends
17618///- [`PhysicalDeviceProperties2`]
17619#[repr(C)]
17620#[derive(Copy, Clone, Debug)]
17621#[doc(alias = "VkPhysicalDeviceAccelerationStructurePropertiesKHR")]
17622pub struct PhysicalDeviceAccelerationStructurePropertiesKHR {
17623    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR`.
17624    pub s_type: StructureType,
17625    ///Optional, may be null.
17626    pub p_next: *mut core::ffi::c_void,
17627    pub max_geometry_count: u64,
17628    pub max_instance_count: u64,
17629    pub max_primitive_count: u64,
17630    pub max_per_stage_descriptor_acceleration_structures: u32,
17631    pub max_per_stage_descriptor_update_after_bind_acceleration_structures: u32,
17632    pub max_descriptor_set_acceleration_structures: u32,
17633    pub max_descriptor_set_update_after_bind_acceleration_structures: u32,
17634    pub min_acceleration_structure_scratch_offset_alignment: u32,
17635}
17636impl Default for PhysicalDeviceAccelerationStructurePropertiesKHR {
17637    #[inline]
17638    fn default() -> Self {
17639        Self {
17640            s_type: StructureType::from_raw(1000150014i32),
17641            p_next: core::ptr::null_mut(),
17642            max_geometry_count: Default::default(),
17643            max_instance_count: Default::default(),
17644            max_primitive_count: Default::default(),
17645            max_per_stage_descriptor_acceleration_structures: Default::default(),
17646            max_per_stage_descriptor_update_after_bind_acceleration_structures: Default::default(),
17647            max_descriptor_set_acceleration_structures: Default::default(),
17648            max_descriptor_set_update_after_bind_acceleration_structures: Default::default(),
17649            min_acceleration_structure_scratch_offset_alignment: Default::default(),
17650        }
17651    }
17652}
17653///[`VkPhysicalDeviceRayTracingPipelinePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingPipelinePropertiesKHR.html)
17654/**
17655Provided by **VK_KHR_ray_tracing_pipeline**.*/
17656/**
17657**Returned only**, filled by Vulkan, not constructed by the application.*/
17658///
17659///# Extends
17660///- [`PhysicalDeviceProperties2`]
17661#[repr(C)]
17662#[derive(Copy, Clone, Debug)]
17663#[doc(alias = "VkPhysicalDeviceRayTracingPipelinePropertiesKHR")]
17664pub struct PhysicalDeviceRayTracingPipelinePropertiesKHR {
17665    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR`.
17666    pub s_type: StructureType,
17667    ///Optional, may be null.
17668    pub p_next: *mut core::ffi::c_void,
17669    pub shader_group_handle_size: u32,
17670    pub max_ray_recursion_depth: u32,
17671    pub max_shader_group_stride: u32,
17672    pub shader_group_base_alignment: u32,
17673    pub shader_group_handle_capture_replay_size: u32,
17674    pub max_ray_dispatch_invocation_count: u32,
17675    pub shader_group_handle_alignment: u32,
17676    pub max_ray_hit_attribute_size: u32,
17677}
17678impl Default for PhysicalDeviceRayTracingPipelinePropertiesKHR {
17679    #[inline]
17680    fn default() -> Self {
17681        Self {
17682            s_type: StructureType::from_raw(1000347001i32),
17683            p_next: core::ptr::null_mut(),
17684            shader_group_handle_size: Default::default(),
17685            max_ray_recursion_depth: Default::default(),
17686            max_shader_group_stride: Default::default(),
17687            shader_group_base_alignment: Default::default(),
17688            shader_group_handle_capture_replay_size: Default::default(),
17689            max_ray_dispatch_invocation_count: Default::default(),
17690            shader_group_handle_alignment: Default::default(),
17691            max_ray_hit_attribute_size: Default::default(),
17692        }
17693    }
17694}
17695///[`VkPhysicalDeviceRayTracingPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingPropertiesNV.html)
17696/**
17697Provided by **VK_NV_ray_tracing**.*/
17698/**
17699**Returned only**, filled by Vulkan, not constructed by the application.*/
17700///
17701///# Extends
17702///- [`PhysicalDeviceProperties2`]
17703#[repr(C)]
17704#[derive(Copy, Clone, Debug)]
17705#[doc(alias = "VkPhysicalDeviceRayTracingPropertiesNV")]
17706pub struct PhysicalDeviceRayTracingPropertiesNV {
17707    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV`.
17708    pub s_type: StructureType,
17709    ///Optional, may be null.
17710    pub p_next: *mut core::ffi::c_void,
17711    pub shader_group_handle_size: u32,
17712    pub max_recursion_depth: u32,
17713    pub max_shader_group_stride: u32,
17714    pub shader_group_base_alignment: u32,
17715    pub max_geometry_count: u64,
17716    pub max_instance_count: u64,
17717    pub max_triangle_count: u64,
17718    pub max_descriptor_set_acceleration_structures: u32,
17719}
17720impl Default for PhysicalDeviceRayTracingPropertiesNV {
17721    #[inline]
17722    fn default() -> Self {
17723        Self {
17724            s_type: StructureType::from_raw(1000165009i32),
17725            p_next: core::ptr::null_mut(),
17726            shader_group_handle_size: Default::default(),
17727            max_recursion_depth: Default::default(),
17728            max_shader_group_stride: Default::default(),
17729            shader_group_base_alignment: Default::default(),
17730            max_geometry_count: Default::default(),
17731            max_instance_count: Default::default(),
17732            max_triangle_count: Default::default(),
17733            max_descriptor_set_acceleration_structures: Default::default(),
17734        }
17735    }
17736}
17737///[`VkStridedDeviceAddressRegionKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkStridedDeviceAddressRegionKHR.html)
17738/**
17739Provided by **VK_KHR_ray_tracing_pipeline**.*/
17740#[repr(C)]
17741#[derive(Copy, Clone, Debug)]
17742#[doc(alias = "VkStridedDeviceAddressRegionKHR")]
17743pub struct StridedDeviceAddressRegionKHR {
17744    pub device_address: u64,
17745    pub stride: u64,
17746    pub size: u64,
17747}
17748impl Default for StridedDeviceAddressRegionKHR {
17749    #[inline]
17750    fn default() -> Self {
17751        unsafe { core::mem::zeroed() }
17752    }
17753}
17754///[`VkTraceRaysIndirectCommandKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTraceRaysIndirectCommandKHR.html)
17755/**
17756Provided by **VK_KHR_ray_tracing_pipeline**.*/
17757#[repr(C)]
17758#[derive(Copy, Clone, Debug)]
17759#[doc(alias = "VkTraceRaysIndirectCommandKHR")]
17760pub struct TraceRaysIndirectCommandKHR {
17761    pub width: u32,
17762    pub height: u32,
17763    pub depth: u32,
17764}
17765impl Default for TraceRaysIndirectCommandKHR {
17766    #[inline]
17767    fn default() -> Self {
17768        unsafe { core::mem::zeroed() }
17769    }
17770}
17771///[`VkTraceRaysIndirectCommand2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTraceRaysIndirectCommand2KHR.html)
17772/**
17773Provided by **VK_KHR_ray_tracing_maintenance1**.*/
17774#[repr(C)]
17775#[derive(Copy, Clone, Debug)]
17776#[doc(alias = "VkTraceRaysIndirectCommand2KHR")]
17777pub struct TraceRaysIndirectCommand2KHR {
17778    pub raygen_shader_record_address: u64,
17779    pub raygen_shader_record_size: u64,
17780    pub miss_shader_binding_table_address: u64,
17781    pub miss_shader_binding_table_size: u64,
17782    pub miss_shader_binding_table_stride: u64,
17783    pub hit_shader_binding_table_address: u64,
17784    pub hit_shader_binding_table_size: u64,
17785    pub hit_shader_binding_table_stride: u64,
17786    pub callable_shader_binding_table_address: u64,
17787    pub callable_shader_binding_table_size: u64,
17788    pub callable_shader_binding_table_stride: u64,
17789    pub width: u32,
17790    pub height: u32,
17791    pub depth: u32,
17792}
17793impl Default for TraceRaysIndirectCommand2KHR {
17794    #[inline]
17795    fn default() -> Self {
17796        unsafe { core::mem::zeroed() }
17797    }
17798}
17799///[`VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR.html)
17800/**
17801Provided by **VK_KHR_ray_tracing_maintenance1**.*/
17802///
17803///# Extends
17804///- [`PhysicalDeviceFeatures2`]
17805///- [`DeviceCreateInfo`]
17806#[repr(C)]
17807#[derive(Copy, Clone, Debug)]
17808#[doc(alias = "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR")]
17809pub struct PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
17810    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR`.
17811    pub s_type: StructureType,
17812    ///Optional, may be null.
17813    pub p_next: *mut core::ffi::c_void,
17814    pub ray_tracing_maintenance1: u32,
17815    pub ray_tracing_pipeline_trace_rays_indirect2: u32,
17816}
17817impl Default for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
17818    #[inline]
17819    fn default() -> Self {
17820        Self {
17821            s_type: StructureType::from_raw(1000386000i32),
17822            p_next: core::ptr::null_mut(),
17823            ray_tracing_maintenance1: Default::default(),
17824            ray_tracing_pipeline_trace_rays_indirect2: Default::default(),
17825        }
17826    }
17827}
17828///[`VkDrmFormatModifierPropertiesListEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrmFormatModifierPropertiesListEXT.html)
17829/**
17830Provided by **VK_EXT_image_drm_format_modifier**.*/
17831/**
17832**Returned only**, filled by Vulkan, not constructed by the application.*/
17833///
17834///# Extends
17835///- [`FormatProperties2`]
17836#[repr(C)]
17837#[derive(Copy, Clone, Debug)]
17838#[doc(alias = "VkDrmFormatModifierPropertiesListEXT")]
17839pub struct DrmFormatModifierPropertiesListEXT {
17840    ///Must be `VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT`.
17841    pub s_type: StructureType,
17842    ///Optional, may be null.
17843    pub p_next: *mut core::ffi::c_void,
17844    ///Length of `p_drm_format_modifier_properties`.
17845    pub drm_format_modifier_count: u32,
17846    ///Optional, may be null.
17847    pub p_drm_format_modifier_properties: *mut DrmFormatModifierPropertiesEXT,
17848}
17849impl Default for DrmFormatModifierPropertiesListEXT {
17850    #[inline]
17851    fn default() -> Self {
17852        Self {
17853            s_type: StructureType::from_raw(1000158000i32),
17854            p_next: core::ptr::null_mut(),
17855            drm_format_modifier_count: Default::default(),
17856            p_drm_format_modifier_properties: core::ptr::null_mut(),
17857        }
17858    }
17859}
17860///[`VkDrmFormatModifierPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrmFormatModifierPropertiesEXT.html)
17861/**
17862Provided by **VK_EXT_image_drm_format_modifier**.*/
17863/**
17864**Returned only**, filled by Vulkan, not constructed by the application.*/
17865#[repr(C)]
17866#[derive(Copy, Clone, Debug)]
17867#[doc(alias = "VkDrmFormatModifierPropertiesEXT")]
17868pub struct DrmFormatModifierPropertiesEXT {
17869    pub drm_format_modifier: u64,
17870    pub drm_format_modifier_plane_count: u32,
17871    pub drm_format_modifier_tiling_features: FormatFeatureFlags,
17872}
17873impl Default for DrmFormatModifierPropertiesEXT {
17874    #[inline]
17875    fn default() -> Self {
17876        unsafe { core::mem::zeroed() }
17877    }
17878}
17879///[`VkPhysicalDeviceImageDrmFormatModifierInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageDrmFormatModifierInfoEXT.html)
17880/**
17881Provided by **VK_EXT_image_drm_format_modifier**.*/
17882///
17883///# Extends
17884///- [`PhysicalDeviceImageFormatInfo2`]
17885#[repr(C)]
17886#[derive(Copy, Clone, Debug)]
17887#[doc(alias = "VkPhysicalDeviceImageDrmFormatModifierInfoEXT")]
17888pub struct PhysicalDeviceImageDrmFormatModifierInfoEXT {
17889    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT`.
17890    pub s_type: StructureType,
17891    ///Optional, may be null.
17892    pub p_next: *const core::ffi::c_void,
17893    pub drm_format_modifier: u64,
17894    pub sharing_mode: SharingMode,
17895    ///Length of `p_queue_family_indices`.
17896    pub queue_family_index_count: u32,
17897    pub p_queue_family_indices: *const u32,
17898}
17899impl Default for PhysicalDeviceImageDrmFormatModifierInfoEXT {
17900    #[inline]
17901    fn default() -> Self {
17902        Self {
17903            s_type: StructureType::from_raw(1000158002i32),
17904            p_next: core::ptr::null(),
17905            drm_format_modifier: Default::default(),
17906            sharing_mode: Default::default(),
17907            queue_family_index_count: Default::default(),
17908            p_queue_family_indices: core::ptr::null(),
17909        }
17910    }
17911}
17912///[`VkImageDrmFormatModifierListCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageDrmFormatModifierListCreateInfoEXT.html)
17913/**
17914Provided by **VK_EXT_image_drm_format_modifier**.*/
17915///
17916///# Extends
17917///- [`ImageCreateInfo`]
17918#[repr(C)]
17919#[derive(Copy, Clone, Debug)]
17920#[doc(alias = "VkImageDrmFormatModifierListCreateInfoEXT")]
17921pub struct ImageDrmFormatModifierListCreateInfoEXT {
17922    ///Must be `VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT`.
17923    pub s_type: StructureType,
17924    ///Optional, may be null.
17925    pub p_next: *const core::ffi::c_void,
17926    ///Length of `p_drm_format_modifiers`.
17927    pub drm_format_modifier_count: u32,
17928    pub p_drm_format_modifiers: *const u64,
17929}
17930impl Default for ImageDrmFormatModifierListCreateInfoEXT {
17931    #[inline]
17932    fn default() -> Self {
17933        Self {
17934            s_type: StructureType::from_raw(1000158003i32),
17935            p_next: core::ptr::null(),
17936            drm_format_modifier_count: Default::default(),
17937            p_drm_format_modifiers: core::ptr::null(),
17938        }
17939    }
17940}
17941///[`VkImageDrmFormatModifierExplicitCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageDrmFormatModifierExplicitCreateInfoEXT.html)
17942/**
17943Provided by **VK_EXT_image_drm_format_modifier**.*/
17944///
17945///# Extends
17946///- [`ImageCreateInfo`]
17947#[repr(C)]
17948#[derive(Copy, Clone, Debug)]
17949#[doc(alias = "VkImageDrmFormatModifierExplicitCreateInfoEXT")]
17950pub struct ImageDrmFormatModifierExplicitCreateInfoEXT {
17951    ///Must be `VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT`.
17952    pub s_type: StructureType,
17953    ///Optional, may be null.
17954    pub p_next: *const core::ffi::c_void,
17955    pub drm_format_modifier: u64,
17956    ///Length of `p_plane_layouts`.
17957    pub drm_format_modifier_plane_count: u32,
17958    pub p_plane_layouts: *const SubresourceLayout,
17959}
17960impl Default for ImageDrmFormatModifierExplicitCreateInfoEXT {
17961    #[inline]
17962    fn default() -> Self {
17963        Self {
17964            s_type: StructureType::from_raw(1000158004i32),
17965            p_next: core::ptr::null(),
17966            drm_format_modifier: Default::default(),
17967            drm_format_modifier_plane_count: Default::default(),
17968            p_plane_layouts: core::ptr::null(),
17969        }
17970    }
17971}
17972///[`VkImageDrmFormatModifierPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageDrmFormatModifierPropertiesEXT.html)
17973/**
17974Provided by **VK_EXT_image_drm_format_modifier**.*/
17975/**
17976**Returned only**, filled by Vulkan, not constructed by the application.*/
17977#[repr(C)]
17978#[derive(Copy, Clone, Debug)]
17979#[doc(alias = "VkImageDrmFormatModifierPropertiesEXT")]
17980pub struct ImageDrmFormatModifierPropertiesEXT {
17981    ///Must be `VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT`.
17982    pub s_type: StructureType,
17983    ///Optional, may be null.
17984    pub p_next: *mut core::ffi::c_void,
17985    pub drm_format_modifier: u64,
17986}
17987impl Default for ImageDrmFormatModifierPropertiesEXT {
17988    #[inline]
17989    fn default() -> Self {
17990        Self {
17991            s_type: StructureType::from_raw(1000158005i32),
17992            p_next: core::ptr::null_mut(),
17993            drm_format_modifier: Default::default(),
17994        }
17995    }
17996}
17997///[`VkImageStencilUsageCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageStencilUsageCreateInfo.html)
17998/**
17999Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18000///
18001///# Extends
18002///- [`ImageCreateInfo`]
18003///- [`PhysicalDeviceImageFormatInfo2`]
18004#[repr(C)]
18005#[derive(Copy, Clone, Debug)]
18006#[doc(alias = "VkImageStencilUsageCreateInfo")]
18007pub struct ImageStencilUsageCreateInfo {
18008    ///Must be `VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO`.
18009    pub s_type: StructureType,
18010    ///Optional, may be null.
18011    pub p_next: *const core::ffi::c_void,
18012    pub stencil_usage: ImageUsageFlags,
18013}
18014impl Default for ImageStencilUsageCreateInfo {
18015    #[inline]
18016    fn default() -> Self {
18017        Self {
18018            s_type: StructureType::from_raw(1000246000i32),
18019            p_next: core::ptr::null(),
18020            stencil_usage: Default::default(),
18021        }
18022    }
18023}
18024///[`VkDeviceMemoryOverallocationCreateInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryOverallocationCreateInfoAMD.html)
18025/**
18026Provided by **VK_AMD_memory_overallocation_behavior**.*/
18027///
18028///# Extends
18029///- [`DeviceCreateInfo`]
18030#[repr(C)]
18031#[derive(Copy, Clone, Debug)]
18032#[doc(alias = "VkDeviceMemoryOverallocationCreateInfoAMD")]
18033pub struct DeviceMemoryOverallocationCreateInfoAMD {
18034    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD`.
18035    pub s_type: StructureType,
18036    ///Optional, may be null.
18037    pub p_next: *const core::ffi::c_void,
18038    pub overallocation_behavior: MemoryOverallocationBehaviorAMD,
18039}
18040impl Default for DeviceMemoryOverallocationCreateInfoAMD {
18041    #[inline]
18042    fn default() -> Self {
18043        Self {
18044            s_type: StructureType::from_raw(1000189000i32),
18045            p_next: core::ptr::null(),
18046            overallocation_behavior: Default::default(),
18047        }
18048    }
18049}
18050///[`VkPhysicalDeviceFragmentDensityMapFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.html)
18051/**
18052Provided by **VK_EXT_fragment_density_map**.*/
18053///
18054///# Extends
18055///- [`PhysicalDeviceFeatures2`]
18056///- [`DeviceCreateInfo`]
18057#[repr(C)]
18058#[derive(Copy, Clone, Debug)]
18059#[doc(alias = "VkPhysicalDeviceFragmentDensityMapFeaturesEXT")]
18060pub struct PhysicalDeviceFragmentDensityMapFeaturesEXT {
18061    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT`.
18062    pub s_type: StructureType,
18063    ///Optional, may be null.
18064    pub p_next: *mut core::ffi::c_void,
18065    pub fragment_density_map: u32,
18066    pub fragment_density_map_dynamic: u32,
18067    pub fragment_density_map_non_subsampled_images: u32,
18068}
18069impl Default for PhysicalDeviceFragmentDensityMapFeaturesEXT {
18070    #[inline]
18071    fn default() -> Self {
18072        Self {
18073            s_type: StructureType::from_raw(1000218000i32),
18074            p_next: core::ptr::null_mut(),
18075            fragment_density_map: Default::default(),
18076            fragment_density_map_dynamic: Default::default(),
18077            fragment_density_map_non_subsampled_images: Default::default(),
18078        }
18079    }
18080}
18081///[`VkPhysicalDeviceFragmentDensityMap2FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.html)
18082/**
18083Provided by **VK_EXT_fragment_density_map2**.*/
18084///
18085///# Extends
18086///- [`PhysicalDeviceFeatures2`]
18087///- [`DeviceCreateInfo`]
18088#[repr(C)]
18089#[derive(Copy, Clone, Debug)]
18090#[doc(alias = "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT")]
18091pub struct PhysicalDeviceFragmentDensityMap2FeaturesEXT {
18092    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT`.
18093    pub s_type: StructureType,
18094    ///Optional, may be null.
18095    pub p_next: *mut core::ffi::c_void,
18096    pub fragment_density_map_deferred: u32,
18097}
18098impl Default for PhysicalDeviceFragmentDensityMap2FeaturesEXT {
18099    #[inline]
18100    fn default() -> Self {
18101        Self {
18102            s_type: StructureType::from_raw(1000332000i32),
18103            p_next: core::ptr::null_mut(),
18104            fragment_density_map_deferred: Default::default(),
18105        }
18106    }
18107}
18108///[`VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT.html)
18109/**
18110Provided by **VK_EXT_fragment_density_map_offset**.*/
18111///
18112///# Extends
18113///- [`PhysicalDeviceFeatures2`]
18114///- [`DeviceCreateInfo`]
18115#[repr(C)]
18116#[derive(Copy, Clone, Debug)]
18117#[doc(alias = "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT")]
18118pub struct PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
18119    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_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_offset: u32,
18124}
18125impl Default for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
18126    #[inline]
18127    fn default() -> Self {
18128        Self {
18129            s_type: StructureType::from_raw(1000425000i32),
18130            p_next: core::ptr::null_mut(),
18131            fragment_density_map_offset: Default::default(),
18132        }
18133    }
18134}
18135///[`VkPhysicalDeviceFragmentDensityMapPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapPropertiesEXT.html)
18136/**
18137Provided by **VK_EXT_fragment_density_map**.*/
18138/**
18139**Returned only**, filled by Vulkan, not constructed by the application.*/
18140///
18141///# Extends
18142///- [`PhysicalDeviceProperties2`]
18143#[repr(C)]
18144#[derive(Copy, Clone, Debug)]
18145#[doc(alias = "VkPhysicalDeviceFragmentDensityMapPropertiesEXT")]
18146pub struct PhysicalDeviceFragmentDensityMapPropertiesEXT {
18147    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT`.
18148    pub s_type: StructureType,
18149    ///Optional, may be null.
18150    pub p_next: *mut core::ffi::c_void,
18151    pub min_fragment_density_texel_size: Extent2D,
18152    pub max_fragment_density_texel_size: Extent2D,
18153    pub fragment_density_invocations: u32,
18154}
18155impl Default for PhysicalDeviceFragmentDensityMapPropertiesEXT {
18156    #[inline]
18157    fn default() -> Self {
18158        Self {
18159            s_type: StructureType::from_raw(1000218001i32),
18160            p_next: core::ptr::null_mut(),
18161            min_fragment_density_texel_size: Default::default(),
18162            max_fragment_density_texel_size: Default::default(),
18163            fragment_density_invocations: Default::default(),
18164        }
18165    }
18166}
18167///[`VkPhysicalDeviceFragmentDensityMap2PropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMap2PropertiesEXT.html)
18168/**
18169Provided by **VK_EXT_fragment_density_map2**.*/
18170/**
18171**Returned only**, filled by Vulkan, not constructed by the application.*/
18172///
18173///# Extends
18174///- [`PhysicalDeviceProperties2`]
18175#[repr(C)]
18176#[derive(Copy, Clone, Debug)]
18177#[doc(alias = "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT")]
18178pub struct PhysicalDeviceFragmentDensityMap2PropertiesEXT {
18179    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT`.
18180    pub s_type: StructureType,
18181    ///Optional, may be null.
18182    pub p_next: *mut core::ffi::c_void,
18183    pub subsampled_loads: u32,
18184    pub subsampled_coarse_reconstruction_early_access: u32,
18185    pub max_subsampled_array_layers: u32,
18186    pub max_descriptor_set_subsampled_samplers: u32,
18187}
18188impl Default for PhysicalDeviceFragmentDensityMap2PropertiesEXT {
18189    #[inline]
18190    fn default() -> Self {
18191        Self {
18192            s_type: StructureType::from_raw(1000332001i32),
18193            p_next: core::ptr::null_mut(),
18194            subsampled_loads: Default::default(),
18195            subsampled_coarse_reconstruction_early_access: Default::default(),
18196            max_subsampled_array_layers: Default::default(),
18197            max_descriptor_set_subsampled_samplers: Default::default(),
18198        }
18199    }
18200}
18201///[`VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT.html)
18202/**
18203Provided by **VK_EXT_fragment_density_map_offset**.*/
18204/**
18205**Returned only**, filled by Vulkan, not constructed by the application.*/
18206///
18207///# Extends
18208///- [`PhysicalDeviceProperties2`]
18209#[repr(C)]
18210#[derive(Copy, Clone, Debug)]
18211#[doc(alias = "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT")]
18212pub struct PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
18213    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT`.
18214    pub s_type: StructureType,
18215    ///Optional, may be null.
18216    pub p_next: *mut core::ffi::c_void,
18217    pub fragment_density_offset_granularity: Extent2D,
18218}
18219impl Default for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
18220    #[inline]
18221    fn default() -> Self {
18222        Self {
18223            s_type: StructureType::from_raw(1000425001i32),
18224            p_next: core::ptr::null_mut(),
18225            fragment_density_offset_granularity: Default::default(),
18226        }
18227    }
18228}
18229///[`VkRenderPassFragmentDensityMapCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassFragmentDensityMapCreateInfoEXT.html)
18230/**
18231Provided by **VK_EXT_fragment_density_map**.*/
18232///
18233///# Extends
18234///- [`RenderPassCreateInfo`]
18235///- [`RenderPassCreateInfo2`]
18236#[repr(C)]
18237#[derive(Copy, Clone, Debug)]
18238#[doc(alias = "VkRenderPassFragmentDensityMapCreateInfoEXT")]
18239pub struct RenderPassFragmentDensityMapCreateInfoEXT {
18240    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT`.
18241    pub s_type: StructureType,
18242    ///Optional, may be null.
18243    pub p_next: *const core::ffi::c_void,
18244    pub fragment_density_map_attachment: AttachmentReference,
18245}
18246impl Default for RenderPassFragmentDensityMapCreateInfoEXT {
18247    #[inline]
18248    fn default() -> Self {
18249        Self {
18250            s_type: StructureType::from_raw(1000218002i32),
18251            p_next: core::ptr::null(),
18252            fragment_density_map_attachment: Default::default(),
18253        }
18254    }
18255}
18256///[`VkRenderPassFragmentDensityMapOffsetEndInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassFragmentDensityMapOffsetEndInfoEXT.html)
18257/**
18258Provided by **VK_EXT_fragment_density_map_offset**.*/
18259///
18260///# Extends
18261///- [`SubpassEndInfo`]
18262///- [`RenderingEndInfoKHR`]
18263#[repr(C)]
18264#[derive(Copy, Clone, Debug)]
18265#[doc(alias = "VkRenderPassFragmentDensityMapOffsetEndInfoEXT")]
18266pub struct RenderPassFragmentDensityMapOffsetEndInfoEXT {
18267    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT`.
18268    pub s_type: StructureType,
18269    ///Optional, may be null.
18270    pub p_next: *const core::ffi::c_void,
18271    ///Length of `p_fragment_density_offsets`.
18272    pub fragment_density_offset_count: u32,
18273    pub p_fragment_density_offsets: *const Offset2D,
18274}
18275impl Default for RenderPassFragmentDensityMapOffsetEndInfoEXT {
18276    #[inline]
18277    fn default() -> Self {
18278        Self {
18279            s_type: StructureType::from_raw(1000425002i32),
18280            p_next: core::ptr::null(),
18281            fragment_density_offset_count: Default::default(),
18282            p_fragment_density_offsets: core::ptr::null(),
18283        }
18284    }
18285}
18286///[`VkPhysicalDeviceScalarBlockLayoutFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceScalarBlockLayoutFeatures.html)
18287/**
18288Provided by **VK_COMPUTE_VERSION_1_2**.*/
18289///
18290///# Extends
18291///- [`PhysicalDeviceFeatures2`]
18292///- [`DeviceCreateInfo`]
18293#[repr(C)]
18294#[derive(Copy, Clone, Debug)]
18295#[doc(alias = "VkPhysicalDeviceScalarBlockLayoutFeatures")]
18296pub struct PhysicalDeviceScalarBlockLayoutFeatures {
18297    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES`.
18298    pub s_type: StructureType,
18299    ///Optional, may be null.
18300    pub p_next: *mut core::ffi::c_void,
18301    pub scalar_block_layout: u32,
18302}
18303impl Default for PhysicalDeviceScalarBlockLayoutFeatures {
18304    #[inline]
18305    fn default() -> Self {
18306        Self {
18307            s_type: StructureType::from_raw(1000221000i32),
18308            p_next: core::ptr::null_mut(),
18309            scalar_block_layout: Default::default(),
18310        }
18311    }
18312}
18313///[`VkSurfaceProtectedCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceProtectedCapabilitiesKHR.html)
18314/**
18315Provided by **VK_KHR_surface_protected_capabilities**.*/
18316/**
18317**Returned only**, filled by Vulkan, not constructed by the application.*/
18318///
18319///# Extends
18320///- [`SurfaceCapabilities2KHR`]
18321#[repr(C)]
18322#[derive(Copy, Clone, Debug)]
18323#[doc(alias = "VkSurfaceProtectedCapabilitiesKHR")]
18324pub struct SurfaceProtectedCapabilitiesKHR {
18325    ///Must be `VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR`.
18326    pub s_type: StructureType,
18327    ///Optional, may be null.
18328    pub p_next: *mut core::ffi::c_void,
18329    pub supports_protected: u32,
18330}
18331impl Default for SurfaceProtectedCapabilitiesKHR {
18332    #[inline]
18333    fn default() -> Self {
18334        Self {
18335            s_type: StructureType::from_raw(1000239000i32),
18336            p_next: core::ptr::null_mut(),
18337            supports_protected: Default::default(),
18338        }
18339    }
18340}
18341///[`VkPhysicalDeviceUniformBufferStandardLayoutFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.html)
18342/**
18343Provided by **VK_COMPUTE_VERSION_1_2**.*/
18344///
18345///# Extends
18346///- [`PhysicalDeviceFeatures2`]
18347///- [`DeviceCreateInfo`]
18348#[repr(C)]
18349#[derive(Copy, Clone, Debug)]
18350#[doc(alias = "VkPhysicalDeviceUniformBufferStandardLayoutFeatures")]
18351pub struct PhysicalDeviceUniformBufferStandardLayoutFeatures {
18352    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES`.
18353    pub s_type: StructureType,
18354    ///Optional, may be null.
18355    pub p_next: *mut core::ffi::c_void,
18356    pub uniform_buffer_standard_layout: u32,
18357}
18358impl Default for PhysicalDeviceUniformBufferStandardLayoutFeatures {
18359    #[inline]
18360    fn default() -> Self {
18361        Self {
18362            s_type: StructureType::from_raw(1000253000i32),
18363            p_next: core::ptr::null_mut(),
18364            uniform_buffer_standard_layout: Default::default(),
18365        }
18366    }
18367}
18368///[`VkPhysicalDeviceDepthClipEnableFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthClipEnableFeaturesEXT.html)
18369/**
18370Provided by **VK_EXT_depth_clip_enable**.*/
18371///
18372///# Extends
18373///- [`PhysicalDeviceFeatures2`]
18374///- [`DeviceCreateInfo`]
18375#[repr(C)]
18376#[derive(Copy, Clone, Debug)]
18377#[doc(alias = "VkPhysicalDeviceDepthClipEnableFeaturesEXT")]
18378pub struct PhysicalDeviceDepthClipEnableFeaturesEXT {
18379    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT`.
18380    pub s_type: StructureType,
18381    ///Optional, may be null.
18382    pub p_next: *mut core::ffi::c_void,
18383    pub depth_clip_enable: u32,
18384}
18385impl Default for PhysicalDeviceDepthClipEnableFeaturesEXT {
18386    #[inline]
18387    fn default() -> Self {
18388        Self {
18389            s_type: StructureType::from_raw(1000102000i32),
18390            p_next: core::ptr::null_mut(),
18391            depth_clip_enable: Default::default(),
18392        }
18393    }
18394}
18395///[`VkPipelineRasterizationDepthClipStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationDepthClipStateCreateInfoEXT.html)
18396/**
18397Provided by **VK_EXT_depth_clip_enable**.*/
18398///
18399///# Extends
18400///- [`PipelineRasterizationStateCreateInfo`]
18401#[repr(C)]
18402#[derive(Copy, Clone, Debug)]
18403#[doc(alias = "VkPipelineRasterizationDepthClipStateCreateInfoEXT")]
18404pub struct PipelineRasterizationDepthClipStateCreateInfoEXT {
18405    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT`.
18406    pub s_type: StructureType,
18407    ///Optional, may be null.
18408    pub p_next: *const core::ffi::c_void,
18409    pub flags: PipelineRasterizationDepthClipStateCreateFlagsEXT,
18410    pub depth_clip_enable: u32,
18411}
18412impl Default for PipelineRasterizationDepthClipStateCreateInfoEXT {
18413    #[inline]
18414    fn default() -> Self {
18415        Self {
18416            s_type: StructureType::from_raw(1000102001i32),
18417            p_next: core::ptr::null(),
18418            flags: Default::default(),
18419            depth_clip_enable: Default::default(),
18420        }
18421    }
18422}
18423///[`VkPhysicalDeviceMemoryBudgetPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryBudgetPropertiesEXT.html)
18424/**
18425Provided by **VK_EXT_memory_budget**.*/
18426/**
18427**Returned only**, filled by Vulkan, not constructed by the application.*/
18428///
18429///# Extends
18430///- [`PhysicalDeviceMemoryProperties2`]
18431#[repr(C)]
18432#[derive(Copy, Clone, Debug)]
18433#[doc(alias = "VkPhysicalDeviceMemoryBudgetPropertiesEXT")]
18434pub struct PhysicalDeviceMemoryBudgetPropertiesEXT {
18435    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT`.
18436    pub s_type: StructureType,
18437    ///Optional, may be null.
18438    pub p_next: *mut core::ffi::c_void,
18439    pub heap_budget: [u64; MAX_MEMORY_HEAPS as usize],
18440    pub heap_usage: [u64; MAX_MEMORY_HEAPS as usize],
18441}
18442impl Default for PhysicalDeviceMemoryBudgetPropertiesEXT {
18443    #[inline]
18444    fn default() -> Self {
18445        Self {
18446            s_type: StructureType::from_raw(1000237000i32),
18447            p_next: core::ptr::null_mut(),
18448            heap_budget: unsafe { core::mem::zeroed() },
18449            heap_usage: unsafe { core::mem::zeroed() },
18450        }
18451    }
18452}
18453///[`VkPhysicalDeviceMemoryPriorityFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMemoryPriorityFeaturesEXT.html)
18454/**
18455Provided by **VK_EXT_memory_priority**.*/
18456///
18457///# Extends
18458///- [`PhysicalDeviceFeatures2`]
18459///- [`DeviceCreateInfo`]
18460#[repr(C)]
18461#[derive(Copy, Clone, Debug)]
18462#[doc(alias = "VkPhysicalDeviceMemoryPriorityFeaturesEXT")]
18463pub struct PhysicalDeviceMemoryPriorityFeaturesEXT {
18464    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT`.
18465    pub s_type: StructureType,
18466    ///Optional, may be null.
18467    pub p_next: *mut core::ffi::c_void,
18468    pub memory_priority: u32,
18469}
18470impl Default for PhysicalDeviceMemoryPriorityFeaturesEXT {
18471    #[inline]
18472    fn default() -> Self {
18473        Self {
18474            s_type: StructureType::from_raw(1000238000i32),
18475            p_next: core::ptr::null_mut(),
18476            memory_priority: Default::default(),
18477        }
18478    }
18479}
18480///[`VkMemoryPriorityAllocateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryPriorityAllocateInfoEXT.html)
18481/**
18482Provided by **VK_EXT_memory_priority**.*/
18483///
18484///# Extends
18485///- [`MemoryAllocateInfo`]
18486#[repr(C)]
18487#[derive(Copy, Clone, Debug)]
18488#[doc(alias = "VkMemoryPriorityAllocateInfoEXT")]
18489pub struct MemoryPriorityAllocateInfoEXT {
18490    ///Must be `VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT`.
18491    pub s_type: StructureType,
18492    ///Optional, may be null.
18493    pub p_next: *const core::ffi::c_void,
18494    pub priority: f32,
18495}
18496impl Default for MemoryPriorityAllocateInfoEXT {
18497    #[inline]
18498    fn default() -> Self {
18499        Self {
18500            s_type: StructureType::from_raw(1000238001i32),
18501            p_next: core::ptr::null(),
18502            priority: Default::default(),
18503        }
18504    }
18505}
18506///[`VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.html)
18507/**
18508Provided by **VK_EXT_pageable_device_local_memory**.*/
18509///
18510///# Extends
18511///- [`PhysicalDeviceFeatures2`]
18512///- [`DeviceCreateInfo`]
18513#[repr(C)]
18514#[derive(Copy, Clone, Debug)]
18515#[doc(alias = "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT")]
18516pub struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
18517    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT`.
18518    pub s_type: StructureType,
18519    ///Optional, may be null.
18520    pub p_next: *mut core::ffi::c_void,
18521    pub pageable_device_local_memory: u32,
18522}
18523impl Default for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
18524    #[inline]
18525    fn default() -> Self {
18526        Self {
18527            s_type: StructureType::from_raw(1000412000i32),
18528            p_next: core::ptr::null_mut(),
18529            pageable_device_local_memory: Default::default(),
18530        }
18531    }
18532}
18533///[`VkPhysicalDeviceBufferDeviceAddressFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBufferDeviceAddressFeatures.html)
18534/**
18535Provided by **VK_BASE_VERSION_1_2**.*/
18536///
18537///# Extends
18538///- [`PhysicalDeviceFeatures2`]
18539///- [`DeviceCreateInfo`]
18540#[repr(C)]
18541#[derive(Copy, Clone, Debug)]
18542#[doc(alias = "VkPhysicalDeviceBufferDeviceAddressFeatures")]
18543pub struct PhysicalDeviceBufferDeviceAddressFeatures {
18544    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES`.
18545    pub s_type: StructureType,
18546    ///Optional, may be null.
18547    pub p_next: *mut core::ffi::c_void,
18548    pub buffer_device_address: u32,
18549    pub buffer_device_address_capture_replay: u32,
18550    pub buffer_device_address_multi_device: u32,
18551}
18552impl Default for PhysicalDeviceBufferDeviceAddressFeatures {
18553    #[inline]
18554    fn default() -> Self {
18555        Self {
18556            s_type: StructureType::from_raw(1000257000i32),
18557            p_next: core::ptr::null_mut(),
18558            buffer_device_address: Default::default(),
18559            buffer_device_address_capture_replay: Default::default(),
18560            buffer_device_address_multi_device: Default::default(),
18561        }
18562    }
18563}
18564///[`VkPhysicalDeviceBufferDeviceAddressFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.html)
18565/**
18566Provided by **VK_EXT_buffer_device_address**.*/
18567///
18568///# Extends
18569///- [`PhysicalDeviceFeatures2`]
18570///- [`DeviceCreateInfo`]
18571#[repr(C)]
18572#[derive(Copy, Clone, Debug)]
18573#[doc(alias = "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT")]
18574pub struct PhysicalDeviceBufferDeviceAddressFeaturesEXT {
18575    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT`.
18576    pub s_type: StructureType,
18577    ///Optional, may be null.
18578    pub p_next: *mut core::ffi::c_void,
18579    pub buffer_device_address: u32,
18580    pub buffer_device_address_capture_replay: u32,
18581    pub buffer_device_address_multi_device: u32,
18582}
18583impl Default for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
18584    #[inline]
18585    fn default() -> Self {
18586        Self {
18587            s_type: StructureType::from_raw(1000244000i32),
18588            p_next: core::ptr::null_mut(),
18589            buffer_device_address: Default::default(),
18590            buffer_device_address_capture_replay: Default::default(),
18591            buffer_device_address_multi_device: Default::default(),
18592        }
18593    }
18594}
18595///[`VkBufferDeviceAddressInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferDeviceAddressInfo.html)
18596/**
18597Provided by **VK_BASE_VERSION_1_2**.*/
18598#[repr(C)]
18599#[derive(Copy, Clone, Debug)]
18600#[doc(alias = "VkBufferDeviceAddressInfo")]
18601pub struct BufferDeviceAddressInfo {
18602    ///Must be `VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO`.
18603    pub s_type: StructureType,
18604    ///Optional, may be null.
18605    pub p_next: *const core::ffi::c_void,
18606    pub buffer: Buffer,
18607}
18608impl Default for BufferDeviceAddressInfo {
18609    #[inline]
18610    fn default() -> Self {
18611        Self {
18612            s_type: StructureType::from_raw(1000244001i32),
18613            p_next: core::ptr::null(),
18614            buffer: Default::default(),
18615        }
18616    }
18617}
18618///[`VkBufferOpaqueCaptureAddressCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferOpaqueCaptureAddressCreateInfo.html)
18619/**
18620Provided by **VK_BASE_VERSION_1_2**.*/
18621///
18622///# Extends
18623///- [`BufferCreateInfo`]
18624#[repr(C)]
18625#[derive(Copy, Clone, Debug)]
18626#[doc(alias = "VkBufferOpaqueCaptureAddressCreateInfo")]
18627pub struct BufferOpaqueCaptureAddressCreateInfo {
18628    ///Must be `VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO`.
18629    pub s_type: StructureType,
18630    ///Optional, may be null.
18631    pub p_next: *const core::ffi::c_void,
18632    pub opaque_capture_address: u64,
18633}
18634impl Default for BufferOpaqueCaptureAddressCreateInfo {
18635    #[inline]
18636    fn default() -> Self {
18637        Self {
18638            s_type: StructureType::from_raw(1000257002i32),
18639            p_next: core::ptr::null(),
18640            opaque_capture_address: Default::default(),
18641        }
18642    }
18643}
18644///[`VkBufferDeviceAddressCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferDeviceAddressCreateInfoEXT.html)
18645/**
18646Provided by **VK_EXT_buffer_device_address**.*/
18647///
18648///# Extends
18649///- [`BufferCreateInfo`]
18650#[repr(C)]
18651#[derive(Copy, Clone, Debug)]
18652#[doc(alias = "VkBufferDeviceAddressCreateInfoEXT")]
18653pub struct BufferDeviceAddressCreateInfoEXT {
18654    ///Must be `VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT`.
18655    pub s_type: StructureType,
18656    ///Optional, may be null.
18657    pub p_next: *const core::ffi::c_void,
18658    pub device_address: u64,
18659}
18660impl Default for BufferDeviceAddressCreateInfoEXT {
18661    #[inline]
18662    fn default() -> Self {
18663        Self {
18664            s_type: StructureType::from_raw(1000244002i32),
18665            p_next: core::ptr::null(),
18666            device_address: Default::default(),
18667        }
18668    }
18669}
18670///[`VkPhysicalDeviceImageViewImageFormatInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageViewImageFormatInfoEXT.html)
18671/**
18672Provided by **VK_EXT_filter_cubic**.*/
18673///
18674///# Extends
18675///- [`PhysicalDeviceImageFormatInfo2`]
18676#[repr(C)]
18677#[derive(Copy, Clone, Debug)]
18678#[doc(alias = "VkPhysicalDeviceImageViewImageFormatInfoEXT")]
18679pub struct PhysicalDeviceImageViewImageFormatInfoEXT {
18680    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT`.
18681    pub s_type: StructureType,
18682    ///Optional, may be null.
18683    pub p_next: *mut core::ffi::c_void,
18684    pub image_view_type: ImageViewType,
18685}
18686impl Default for PhysicalDeviceImageViewImageFormatInfoEXT {
18687    #[inline]
18688    fn default() -> Self {
18689        Self {
18690            s_type: StructureType::from_raw(1000170000i32),
18691            p_next: core::ptr::null_mut(),
18692            image_view_type: Default::default(),
18693        }
18694    }
18695}
18696///[`VkFilterCubicImageViewImageFormatPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFilterCubicImageViewImageFormatPropertiesEXT.html)
18697/**
18698Provided by **VK_EXT_filter_cubic**.*/
18699/**
18700**Returned only**, filled by Vulkan, not constructed by the application.*/
18701///
18702///# Extends
18703///- [`ImageFormatProperties2`]
18704#[repr(C)]
18705#[derive(Copy, Clone, Debug)]
18706#[doc(alias = "VkFilterCubicImageViewImageFormatPropertiesEXT")]
18707pub struct FilterCubicImageViewImageFormatPropertiesEXT {
18708    ///Must be `VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT`.
18709    pub s_type: StructureType,
18710    ///Optional, may be null.
18711    pub p_next: *mut core::ffi::c_void,
18712    pub filter_cubic: u32,
18713    pub filter_cubic_minmax: u32,
18714}
18715impl Default for FilterCubicImageViewImageFormatPropertiesEXT {
18716    #[inline]
18717    fn default() -> Self {
18718        Self {
18719            s_type: StructureType::from_raw(1000170001i32),
18720            p_next: core::ptr::null_mut(),
18721            filter_cubic: Default::default(),
18722            filter_cubic_minmax: Default::default(),
18723        }
18724    }
18725}
18726///[`VkPhysicalDeviceImagelessFramebufferFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImagelessFramebufferFeatures.html)
18727/**
18728Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18729///
18730///# Extends
18731///- [`PhysicalDeviceFeatures2`]
18732///- [`DeviceCreateInfo`]
18733#[repr(C)]
18734#[derive(Copy, Clone, Debug)]
18735#[doc(alias = "VkPhysicalDeviceImagelessFramebufferFeatures")]
18736pub struct PhysicalDeviceImagelessFramebufferFeatures {
18737    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES`.
18738    pub s_type: StructureType,
18739    ///Optional, may be null.
18740    pub p_next: *mut core::ffi::c_void,
18741    pub imageless_framebuffer: u32,
18742}
18743impl Default for PhysicalDeviceImagelessFramebufferFeatures {
18744    #[inline]
18745    fn default() -> Self {
18746        Self {
18747            s_type: StructureType::from_raw(1000108000i32),
18748            p_next: core::ptr::null_mut(),
18749            imageless_framebuffer: Default::default(),
18750        }
18751    }
18752}
18753///[`VkFramebufferAttachmentsCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferAttachmentsCreateInfo.html)
18754/**
18755Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18756///
18757///# Extends
18758///- [`FramebufferCreateInfo`]
18759#[repr(C)]
18760#[derive(Copy, Clone, Debug)]
18761#[doc(alias = "VkFramebufferAttachmentsCreateInfo")]
18762pub struct FramebufferAttachmentsCreateInfo {
18763    ///Must be `VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO`.
18764    pub s_type: StructureType,
18765    ///Optional, may be null.
18766    pub p_next: *const core::ffi::c_void,
18767    ///Length of `p_attachment_image_infos`.
18768    pub attachment_image_info_count: u32,
18769    pub p_attachment_image_infos: *const FramebufferAttachmentImageInfo,
18770}
18771impl Default for FramebufferAttachmentsCreateInfo {
18772    #[inline]
18773    fn default() -> Self {
18774        Self {
18775            s_type: StructureType::from_raw(1000108001i32),
18776            p_next: core::ptr::null(),
18777            attachment_image_info_count: Default::default(),
18778            p_attachment_image_infos: core::ptr::null(),
18779        }
18780    }
18781}
18782///[`VkFramebufferAttachmentImageInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferAttachmentImageInfo.html)
18783/**
18784Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18785#[repr(C)]
18786#[derive(Copy, Clone, Debug)]
18787#[doc(alias = "VkFramebufferAttachmentImageInfo")]
18788pub struct FramebufferAttachmentImageInfo {
18789    ///Must be `VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO`.
18790    pub s_type: StructureType,
18791    ///Optional, may be null.
18792    pub p_next: *const core::ffi::c_void,
18793    pub flags: ImageCreateFlags,
18794    pub usage: ImageUsageFlags,
18795    pub width: u32,
18796    pub height: u32,
18797    pub layer_count: u32,
18798    ///Length of `p_view_formats`.
18799    pub view_format_count: u32,
18800    pub p_view_formats: *const Format,
18801}
18802impl Default for FramebufferAttachmentImageInfo {
18803    #[inline]
18804    fn default() -> Self {
18805        Self {
18806            s_type: StructureType::from_raw(1000108002i32),
18807            p_next: core::ptr::null(),
18808            flags: Default::default(),
18809            usage: Default::default(),
18810            width: Default::default(),
18811            height: Default::default(),
18812            layer_count: Default::default(),
18813            view_format_count: Default::default(),
18814            p_view_formats: core::ptr::null(),
18815        }
18816    }
18817}
18818///[`VkRenderPassAttachmentBeginInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassAttachmentBeginInfo.html)
18819/**
18820Provided by **VK_GRAPHICS_VERSION_1_2**.*/
18821///
18822///# Extends
18823///- [`RenderPassBeginInfo`]
18824#[repr(C)]
18825#[derive(Copy, Clone, Debug)]
18826#[doc(alias = "VkRenderPassAttachmentBeginInfo")]
18827pub struct RenderPassAttachmentBeginInfo {
18828    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO`.
18829    pub s_type: StructureType,
18830    ///Optional, may be null.
18831    pub p_next: *const core::ffi::c_void,
18832    ///Length of `p_attachments`.
18833    pub attachment_count: u32,
18834    pub p_attachments: *const ImageView,
18835}
18836impl Default for RenderPassAttachmentBeginInfo {
18837    #[inline]
18838    fn default() -> Self {
18839        Self {
18840            s_type: StructureType::from_raw(1000108003i32),
18841            p_next: core::ptr::null(),
18842            attachment_count: Default::default(),
18843            p_attachments: core::ptr::null(),
18844        }
18845    }
18846}
18847///[`VkPhysicalDeviceTextureCompressionASTCHDRFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTextureCompressionASTCHDRFeatures.html)
18848/**
18849Provided by **VK_BASE_VERSION_1_3**.*/
18850///
18851///# Extends
18852///- [`PhysicalDeviceFeatures2`]
18853///- [`DeviceCreateInfo`]
18854#[repr(C)]
18855#[derive(Copy, Clone, Debug)]
18856#[doc(alias = "VkPhysicalDeviceTextureCompressionASTCHDRFeatures")]
18857pub struct PhysicalDeviceTextureCompressionASTCHDRFeatures {
18858    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES`.
18859    pub s_type: StructureType,
18860    ///Optional, may be null.
18861    pub p_next: *mut core::ffi::c_void,
18862    pub texture_compression_astc_hdr: u32,
18863}
18864impl Default for PhysicalDeviceTextureCompressionASTCHDRFeatures {
18865    #[inline]
18866    fn default() -> Self {
18867        Self {
18868            s_type: StructureType::from_raw(1000066000i32),
18869            p_next: core::ptr::null_mut(),
18870            texture_compression_astc_hdr: Default::default(),
18871        }
18872    }
18873}
18874///[`VkPhysicalDeviceCooperativeMatrixFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixFeaturesNV.html)
18875/**
18876Provided by **VK_NV_cooperative_matrix**.*/
18877///
18878///# Extends
18879///- [`PhysicalDeviceFeatures2`]
18880///- [`DeviceCreateInfo`]
18881#[repr(C)]
18882#[derive(Copy, Clone, Debug)]
18883#[doc(alias = "VkPhysicalDeviceCooperativeMatrixFeaturesNV")]
18884pub struct PhysicalDeviceCooperativeMatrixFeaturesNV {
18885    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV`.
18886    pub s_type: StructureType,
18887    ///Optional, may be null.
18888    pub p_next: *mut core::ffi::c_void,
18889    pub cooperative_matrix: u32,
18890    pub cooperative_matrix_robust_buffer_access: u32,
18891}
18892impl Default for PhysicalDeviceCooperativeMatrixFeaturesNV {
18893    #[inline]
18894    fn default() -> Self {
18895        Self {
18896            s_type: StructureType::from_raw(1000249000i32),
18897            p_next: core::ptr::null_mut(),
18898            cooperative_matrix: Default::default(),
18899            cooperative_matrix_robust_buffer_access: Default::default(),
18900        }
18901    }
18902}
18903///[`VkPhysicalDeviceCooperativeMatrixPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixPropertiesNV.html)
18904/**
18905Provided by **VK_NV_cooperative_matrix**.*/
18906/**
18907**Returned only**, filled by Vulkan, not constructed by the application.*/
18908///
18909///# Extends
18910///- [`PhysicalDeviceProperties2`]
18911#[repr(C)]
18912#[derive(Copy, Clone, Debug)]
18913#[doc(alias = "VkPhysicalDeviceCooperativeMatrixPropertiesNV")]
18914pub struct PhysicalDeviceCooperativeMatrixPropertiesNV {
18915    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV`.
18916    pub s_type: StructureType,
18917    ///Optional, may be null.
18918    pub p_next: *mut core::ffi::c_void,
18919    pub cooperative_matrix_supported_stages: ShaderStageFlags,
18920}
18921impl Default for PhysicalDeviceCooperativeMatrixPropertiesNV {
18922    #[inline]
18923    fn default() -> Self {
18924        Self {
18925            s_type: StructureType::from_raw(1000249002i32),
18926            p_next: core::ptr::null_mut(),
18927            cooperative_matrix_supported_stages: Default::default(),
18928        }
18929    }
18930}
18931///[`VkCooperativeMatrixPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeMatrixPropertiesNV.html)
18932/**
18933Provided by **VK_NV_cooperative_matrix**.*/
18934/**
18935**Returned only**, filled by Vulkan, not constructed by the application.*/
18936#[repr(C)]
18937#[derive(Copy, Clone, Debug)]
18938#[doc(alias = "VkCooperativeMatrixPropertiesNV")]
18939pub struct CooperativeMatrixPropertiesNV {
18940    ///Must be `VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV`.
18941    pub s_type: StructureType,
18942    ///Optional, may be null.
18943    pub p_next: *mut core::ffi::c_void,
18944    pub m_size: u32,
18945    pub n_size: u32,
18946    pub k_size: u32,
18947    pub a_type: ComponentTypeNV,
18948    pub b_type: ComponentTypeNV,
18949    pub c_type: ComponentTypeNV,
18950    pub d_type: ComponentTypeNV,
18951    pub scope: ScopeNV,
18952}
18953impl Default for CooperativeMatrixPropertiesNV {
18954    #[inline]
18955    fn default() -> Self {
18956        Self {
18957            s_type: StructureType::from_raw(1000249001i32),
18958            p_next: core::ptr::null_mut(),
18959            m_size: Default::default(),
18960            n_size: Default::default(),
18961            k_size: Default::default(),
18962            a_type: Default::default(),
18963            b_type: Default::default(),
18964            c_type: Default::default(),
18965            d_type: Default::default(),
18966            scope: Default::default(),
18967        }
18968    }
18969}
18970///[`VkPhysicalDeviceYcbcrImageArraysFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.html)
18971/**
18972Provided by **VK_EXT_ycbcr_image_arrays**.*/
18973///
18974///# Extends
18975///- [`PhysicalDeviceFeatures2`]
18976///- [`DeviceCreateInfo`]
18977#[repr(C)]
18978#[derive(Copy, Clone, Debug)]
18979#[doc(alias = "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT")]
18980pub struct PhysicalDeviceYcbcrImageArraysFeaturesEXT {
18981    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT`.
18982    pub s_type: StructureType,
18983    ///Optional, may be null.
18984    pub p_next: *mut core::ffi::c_void,
18985    pub ycbcr_image_arrays: u32,
18986}
18987impl Default for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
18988    #[inline]
18989    fn default() -> Self {
18990        Self {
18991            s_type: StructureType::from_raw(1000252000i32),
18992            p_next: core::ptr::null_mut(),
18993            ycbcr_image_arrays: Default::default(),
18994        }
18995    }
18996}
18997///[`VkImageViewHandleInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewHandleInfoNVX.html)
18998/**
18999Provided by **VK_NVX_image_view_handle**.*/
19000#[repr(C)]
19001#[derive(Copy, Clone, Debug)]
19002#[doc(alias = "VkImageViewHandleInfoNVX")]
19003pub struct ImageViewHandleInfoNVX {
19004    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX`.
19005    pub s_type: StructureType,
19006    ///Optional, may be null.
19007    pub p_next: *const core::ffi::c_void,
19008    pub image_view: ImageView,
19009    pub descriptor_type: DescriptorType,
19010    pub sampler: Sampler,
19011}
19012impl Default for ImageViewHandleInfoNVX {
19013    #[inline]
19014    fn default() -> Self {
19015        Self {
19016            s_type: StructureType::from_raw(1000030000i32),
19017            p_next: core::ptr::null(),
19018            image_view: Default::default(),
19019            descriptor_type: Default::default(),
19020            sampler: Default::default(),
19021        }
19022    }
19023}
19024///[`VkImageViewAddressPropertiesNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewAddressPropertiesNVX.html)
19025/**
19026Provided by **VK_NVX_image_view_handle**.*/
19027/**
19028**Returned only**, filled by Vulkan, not constructed by the application.*/
19029#[repr(C)]
19030#[derive(Copy, Clone, Debug)]
19031#[doc(alias = "VkImageViewAddressPropertiesNVX")]
19032pub struct ImageViewAddressPropertiesNVX {
19033    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX`.
19034    pub s_type: StructureType,
19035    ///Optional, may be null.
19036    pub p_next: *mut core::ffi::c_void,
19037    pub device_address: u64,
19038    pub size: u64,
19039}
19040impl Default for ImageViewAddressPropertiesNVX {
19041    #[inline]
19042    fn default() -> Self {
19043        Self {
19044            s_type: StructureType::from_raw(1000030001i32),
19045            p_next: core::ptr::null_mut(),
19046            device_address: Default::default(),
19047            size: Default::default(),
19048        }
19049    }
19050}
19051///[`VkPresentFrameTokenGGP`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentFrameTokenGGP.html)
19052/**
19053Provided by **VK_GGP_frame_token**.*/
19054///
19055///# Extends
19056///- [`PresentInfoKHR`]
19057#[repr(C)]
19058#[derive(Copy, Clone, Debug)]
19059#[doc(alias = "VkPresentFrameTokenGGP")]
19060pub struct PresentFrameTokenGGP {
19061    ///Must be `VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP`.
19062    pub s_type: StructureType,
19063    ///Optional, may be null.
19064    pub p_next: *const core::ffi::c_void,
19065    pub frame_token: u32,
19066}
19067impl Default for PresentFrameTokenGGP {
19068    #[inline]
19069    fn default() -> Self {
19070        Self {
19071            s_type: StructureType::from_raw(1000191000i32),
19072            p_next: core::ptr::null(),
19073            frame_token: Default::default(),
19074        }
19075    }
19076}
19077///[`VkPipelineCreationFeedback`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCreationFeedback.html)
19078/**
19079Provided by **VK_COMPUTE_VERSION_1_3**.*/
19080/**
19081**Returned only**, filled by Vulkan, not constructed by the application.*/
19082#[repr(C)]
19083#[derive(Copy, Clone, Debug)]
19084#[doc(alias = "VkPipelineCreationFeedback")]
19085pub struct PipelineCreationFeedback {
19086    pub flags: PipelineCreationFeedbackFlags,
19087    pub duration: u64,
19088}
19089impl Default for PipelineCreationFeedback {
19090    #[inline]
19091    fn default() -> Self {
19092        unsafe { core::mem::zeroed() }
19093    }
19094}
19095///[`VkPipelineCreationFeedbackCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCreationFeedbackCreateInfo.html)
19096/**
19097Provided by **VK_COMPUTE_VERSION_1_3**.*/
19098///
19099///# Extends
19100///- [`GraphicsPipelineCreateInfo`]
19101///- [`ComputePipelineCreateInfo`]
19102///- [`RayTracingPipelineCreateInfoNV`]
19103///- [`RayTracingPipelineCreateInfoKHR`]
19104///- [`ExecutionGraphPipelineCreateInfoAMDX`]
19105///- [`DataGraphPipelineCreateInfoARM`]
19106#[repr(C)]
19107#[derive(Copy, Clone, Debug)]
19108#[doc(alias = "VkPipelineCreationFeedbackCreateInfo")]
19109pub struct PipelineCreationFeedbackCreateInfo {
19110    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO`.
19111    pub s_type: StructureType,
19112    ///Optional, may be null.
19113    pub p_next: *const core::ffi::c_void,
19114    pub p_pipeline_creation_feedback: *mut PipelineCreationFeedback,
19115    ///Length of `p_pipeline_stage_creation_feedbacks`.
19116    pub pipeline_stage_creation_feedback_count: u32,
19117    pub p_pipeline_stage_creation_feedbacks: *mut PipelineCreationFeedback,
19118}
19119impl Default for PipelineCreationFeedbackCreateInfo {
19120    #[inline]
19121    fn default() -> Self {
19122        Self {
19123            s_type: StructureType::from_raw(1000192000i32),
19124            p_next: core::ptr::null(),
19125            p_pipeline_creation_feedback: core::ptr::null_mut(),
19126            pipeline_stage_creation_feedback_count: Default::default(),
19127            p_pipeline_stage_creation_feedbacks: core::ptr::null_mut(),
19128        }
19129    }
19130}
19131///[`VkSurfaceFullScreenExclusiveInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFullScreenExclusiveInfoEXT.html)
19132/**
19133Provided by **VK_EXT_full_screen_exclusive**.*/
19134///
19135///# Extends
19136///- [`PhysicalDeviceSurfaceInfo2KHR`]
19137///- [`SwapchainCreateInfoKHR`]
19138#[repr(C)]
19139#[derive(Copy, Clone, Debug)]
19140#[doc(alias = "VkSurfaceFullScreenExclusiveInfoEXT")]
19141pub struct SurfaceFullScreenExclusiveInfoEXT {
19142    ///Must be `VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT`.
19143    pub s_type: StructureType,
19144    ///Optional, may be null.
19145    pub p_next: *mut core::ffi::c_void,
19146    pub full_screen_exclusive: FullScreenExclusiveEXT,
19147}
19148impl Default for SurfaceFullScreenExclusiveInfoEXT {
19149    #[inline]
19150    fn default() -> Self {
19151        Self {
19152            s_type: StructureType::from_raw(1000255000i32),
19153            p_next: core::ptr::null_mut(),
19154            full_screen_exclusive: Default::default(),
19155        }
19156    }
19157}
19158///[`VkSurfaceFullScreenExclusiveWin32InfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFullScreenExclusiveWin32InfoEXT.html)
19159/**
19160Provided by **VK_EXT_full_screen_exclusive**.*/
19161///
19162///# Extends
19163///- [`PhysicalDeviceSurfaceInfo2KHR`]
19164///- [`SwapchainCreateInfoKHR`]
19165#[repr(C)]
19166#[derive(Copy, Clone, Debug)]
19167#[doc(alias = "VkSurfaceFullScreenExclusiveWin32InfoEXT")]
19168pub struct SurfaceFullScreenExclusiveWin32InfoEXT {
19169    ///Must be `VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT`.
19170    pub s_type: StructureType,
19171    ///Optional, may be null.
19172    pub p_next: *const core::ffi::c_void,
19173    pub hmonitor: isize,
19174}
19175impl Default for SurfaceFullScreenExclusiveWin32InfoEXT {
19176    #[inline]
19177    fn default() -> Self {
19178        Self {
19179            s_type: StructureType::from_raw(1000255001i32),
19180            p_next: core::ptr::null(),
19181            hmonitor: Default::default(),
19182        }
19183    }
19184}
19185///[`VkSurfaceCapabilitiesFullScreenExclusiveEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesFullScreenExclusiveEXT.html)
19186/**
19187Provided by **VK_EXT_full_screen_exclusive**.*/
19188/**
19189**Returned only**, filled by Vulkan, not constructed by the application.*/
19190///
19191///# Extends
19192///- [`SurfaceCapabilities2KHR`]
19193#[repr(C)]
19194#[derive(Copy, Clone, Debug)]
19195#[doc(alias = "VkSurfaceCapabilitiesFullScreenExclusiveEXT")]
19196pub struct SurfaceCapabilitiesFullScreenExclusiveEXT {
19197    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT`.
19198    pub s_type: StructureType,
19199    ///Optional, may be null.
19200    pub p_next: *mut core::ffi::c_void,
19201    pub full_screen_exclusive_supported: u32,
19202}
19203impl Default for SurfaceCapabilitiesFullScreenExclusiveEXT {
19204    #[inline]
19205    fn default() -> Self {
19206        Self {
19207            s_type: StructureType::from_raw(1000255002i32),
19208            p_next: core::ptr::null_mut(),
19209            full_screen_exclusive_supported: Default::default(),
19210        }
19211    }
19212}
19213///[`VkPhysicalDevicePresentBarrierFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentBarrierFeaturesNV.html)
19214/**
19215Provided by **VK_NV_present_barrier**.*/
19216///
19217///# Extends
19218///- [`PhysicalDeviceFeatures2`]
19219///- [`DeviceCreateInfo`]
19220#[repr(C)]
19221#[derive(Copy, Clone, Debug)]
19222#[doc(alias = "VkPhysicalDevicePresentBarrierFeaturesNV")]
19223pub struct PhysicalDevicePresentBarrierFeaturesNV {
19224    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV`.
19225    pub s_type: StructureType,
19226    ///Optional, may be null.
19227    pub p_next: *mut core::ffi::c_void,
19228    pub present_barrier: u32,
19229}
19230impl Default for PhysicalDevicePresentBarrierFeaturesNV {
19231    #[inline]
19232    fn default() -> Self {
19233        Self {
19234            s_type: StructureType::from_raw(1000292000i32),
19235            p_next: core::ptr::null_mut(),
19236            present_barrier: Default::default(),
19237        }
19238    }
19239}
19240///[`VkSurfaceCapabilitiesPresentBarrierNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesPresentBarrierNV.html)
19241/**
19242Provided by **VK_NV_present_barrier**.*/
19243/**
19244**Returned only**, filled by Vulkan, not constructed by the application.*/
19245///
19246///# Extends
19247///- [`SurfaceCapabilities2KHR`]
19248#[repr(C)]
19249#[derive(Copy, Clone, Debug)]
19250#[doc(alias = "VkSurfaceCapabilitiesPresentBarrierNV")]
19251pub struct SurfaceCapabilitiesPresentBarrierNV {
19252    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV`.
19253    pub s_type: StructureType,
19254    ///Optional, may be null.
19255    pub p_next: *mut core::ffi::c_void,
19256    pub present_barrier_supported: u32,
19257}
19258impl Default for SurfaceCapabilitiesPresentBarrierNV {
19259    #[inline]
19260    fn default() -> Self {
19261        Self {
19262            s_type: StructureType::from_raw(1000292001i32),
19263            p_next: core::ptr::null_mut(),
19264            present_barrier_supported: Default::default(),
19265        }
19266    }
19267}
19268///[`VkSwapchainPresentBarrierCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentBarrierCreateInfoNV.html)
19269/**
19270Provided by **VK_NV_present_barrier**.*/
19271///
19272///# Extends
19273///- [`SwapchainCreateInfoKHR`]
19274#[repr(C)]
19275#[derive(Copy, Clone, Debug)]
19276#[doc(alias = "VkSwapchainPresentBarrierCreateInfoNV")]
19277pub struct SwapchainPresentBarrierCreateInfoNV {
19278    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV`.
19279    pub s_type: StructureType,
19280    ///Optional, may be null.
19281    pub p_next: *mut core::ffi::c_void,
19282    pub present_barrier_enable: u32,
19283}
19284impl Default for SwapchainPresentBarrierCreateInfoNV {
19285    #[inline]
19286    fn default() -> Self {
19287        Self {
19288            s_type: StructureType::from_raw(1000292002i32),
19289            p_next: core::ptr::null_mut(),
19290            present_barrier_enable: Default::default(),
19291        }
19292    }
19293}
19294///[`VkPhysicalDevicePerformanceQueryFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerformanceQueryFeaturesKHR.html)
19295/**
19296Provided by **VK_KHR_performance_query**.*/
19297///
19298///# Extends
19299///- [`PhysicalDeviceFeatures2`]
19300///- [`DeviceCreateInfo`]
19301#[repr(C)]
19302#[derive(Copy, Clone, Debug)]
19303#[doc(alias = "VkPhysicalDevicePerformanceQueryFeaturesKHR")]
19304pub struct PhysicalDevicePerformanceQueryFeaturesKHR {
19305    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR`.
19306    pub s_type: StructureType,
19307    ///Optional, may be null.
19308    pub p_next: *mut core::ffi::c_void,
19309    pub performance_counter_query_pools: u32,
19310    pub performance_counter_multiple_query_pools: u32,
19311}
19312impl Default for PhysicalDevicePerformanceQueryFeaturesKHR {
19313    #[inline]
19314    fn default() -> Self {
19315        Self {
19316            s_type: StructureType::from_raw(1000116000i32),
19317            p_next: core::ptr::null_mut(),
19318            performance_counter_query_pools: Default::default(),
19319            performance_counter_multiple_query_pools: Default::default(),
19320        }
19321    }
19322}
19323///[`VkPhysicalDevicePerformanceQueryPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerformanceQueryPropertiesKHR.html)
19324/**
19325Provided by **VK_KHR_performance_query**.*/
19326/**
19327**Returned only**, filled by Vulkan, not constructed by the application.*/
19328///
19329///# Extends
19330///- [`PhysicalDeviceProperties2`]
19331#[repr(C)]
19332#[derive(Copy, Clone, Debug)]
19333#[doc(alias = "VkPhysicalDevicePerformanceQueryPropertiesKHR")]
19334pub struct PhysicalDevicePerformanceQueryPropertiesKHR {
19335    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR`.
19336    pub s_type: StructureType,
19337    ///Optional, may be null.
19338    pub p_next: *mut core::ffi::c_void,
19339    pub allow_command_buffer_query_copies: u32,
19340}
19341impl Default for PhysicalDevicePerformanceQueryPropertiesKHR {
19342    #[inline]
19343    fn default() -> Self {
19344        Self {
19345            s_type: StructureType::from_raw(1000116001i32),
19346            p_next: core::ptr::null_mut(),
19347            allow_command_buffer_query_copies: Default::default(),
19348        }
19349    }
19350}
19351///[`VkPerformanceCounterKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterKHR.html)
19352/**
19353Provided by **VK_KHR_performance_query**.*/
19354/**
19355**Returned only**, filled by Vulkan, not constructed by the application.*/
19356#[repr(C)]
19357#[derive(Copy, Clone, Debug)]
19358#[doc(alias = "VkPerformanceCounterKHR")]
19359pub struct PerformanceCounterKHR {
19360    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR`.
19361    pub s_type: StructureType,
19362    ///Optional, may be null.
19363    pub p_next: *mut core::ffi::c_void,
19364    pub unit: PerformanceCounterUnitKHR,
19365    pub scope: PerformanceCounterScopeKHR,
19366    pub storage: PerformanceCounterStorageKHR,
19367    pub uuid: [u8; UUID_SIZE as usize],
19368}
19369impl Default for PerformanceCounterKHR {
19370    #[inline]
19371    fn default() -> Self {
19372        Self {
19373            s_type: StructureType::from_raw(1000116005i32),
19374            p_next: core::ptr::null_mut(),
19375            unit: Default::default(),
19376            scope: Default::default(),
19377            storage: Default::default(),
19378            uuid: unsafe { core::mem::zeroed() },
19379        }
19380    }
19381}
19382///[`VkPerformanceCounterDescriptionKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterDescriptionKHR.html)
19383/**
19384Provided by **VK_KHR_performance_query**.*/
19385/**
19386**Returned only**, filled by Vulkan, not constructed by the application.*/
19387#[repr(C)]
19388#[derive(Copy, Clone, Debug)]
19389#[doc(alias = "VkPerformanceCounterDescriptionKHR")]
19390pub struct PerformanceCounterDescriptionKHR {
19391    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR`.
19392    pub s_type: StructureType,
19393    ///Optional, may be null.
19394    pub p_next: *mut core::ffi::c_void,
19395    pub flags: PerformanceCounterDescriptionFlagsKHR,
19396    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
19397    pub category: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
19398    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
19399}
19400impl Default for PerformanceCounterDescriptionKHR {
19401    #[inline]
19402    fn default() -> Self {
19403        Self {
19404            s_type: StructureType::from_raw(1000116006i32),
19405            p_next: core::ptr::null_mut(),
19406            flags: Default::default(),
19407            name: unsafe { core::mem::zeroed() },
19408            category: unsafe { core::mem::zeroed() },
19409            description: unsafe { core::mem::zeroed() },
19410        }
19411    }
19412}
19413///[`VkQueryPoolPerformanceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolPerformanceCreateInfoKHR.html)
19414/**
19415Provided by **VK_KHR_performance_query**.*/
19416///
19417///# Extends
19418///- [`QueryPoolCreateInfo`]
19419#[repr(C)]
19420#[derive(Copy, Clone, Debug)]
19421#[doc(alias = "VkQueryPoolPerformanceCreateInfoKHR")]
19422pub struct QueryPoolPerformanceCreateInfoKHR {
19423    ///Must be `VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR`.
19424    pub s_type: StructureType,
19425    ///Optional, may be null.
19426    pub p_next: *const core::ffi::c_void,
19427    pub queue_family_index: u32,
19428    ///Length of `p_counter_indices`.
19429    pub counter_index_count: u32,
19430    pub p_counter_indices: *const u32,
19431}
19432impl Default for QueryPoolPerformanceCreateInfoKHR {
19433    #[inline]
19434    fn default() -> Self {
19435        Self {
19436            s_type: StructureType::from_raw(1000116002i32),
19437            p_next: core::ptr::null(),
19438            queue_family_index: Default::default(),
19439            counter_index_count: Default::default(),
19440            p_counter_indices: core::ptr::null(),
19441        }
19442    }
19443}
19444///[`VkPerformanceCounterResultKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterResultKHR.html)
19445/**
19446Provided by **VK_KHR_performance_query**.*/
19447#[repr(C)]
19448#[derive(Copy, Clone)]
19449#[doc(alias = "VkPerformanceCounterResultKHR")]
19450pub union PerformanceCounterResultKHR {
19451    pub int32: i32,
19452    pub int64: i64,
19453    pub uint32: u32,
19454    pub uint64: u64,
19455    pub float32: f32,
19456    pub float64: f64,
19457}
19458impl Default for PerformanceCounterResultKHR {
19459    #[inline]
19460    fn default() -> Self {
19461        unsafe { core::mem::zeroed() }
19462    }
19463}
19464impl core::fmt::Debug for PerformanceCounterResultKHR {
19465    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19466        f.write_str(stringify!(PerformanceCounterResultKHR))
19467    }
19468}
19469///[`VkAcquireProfilingLockInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAcquireProfilingLockInfoKHR.html)
19470/**
19471Provided by **VK_KHR_performance_query**.*/
19472#[repr(C)]
19473#[derive(Copy, Clone, Debug)]
19474#[doc(alias = "VkAcquireProfilingLockInfoKHR")]
19475pub struct AcquireProfilingLockInfoKHR {
19476    ///Must be `VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR`.
19477    pub s_type: StructureType,
19478    ///Optional, may be null.
19479    pub p_next: *const core::ffi::c_void,
19480    pub flags: AcquireProfilingLockFlagsKHR,
19481    pub timeout: u64,
19482}
19483impl Default for AcquireProfilingLockInfoKHR {
19484    #[inline]
19485    fn default() -> Self {
19486        Self {
19487            s_type: StructureType::from_raw(1000116004i32),
19488            p_next: core::ptr::null(),
19489            flags: Default::default(),
19490            timeout: Default::default(),
19491        }
19492    }
19493}
19494///[`VkPerformanceQuerySubmitInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceQuerySubmitInfoKHR.html)
19495/**
19496Provided by **VK_KHR_performance_query**.*/
19497///
19498///# Extends
19499///- [`SubmitInfo`]
19500///- [`SubmitInfo2`]
19501#[repr(C)]
19502#[derive(Copy, Clone, Debug)]
19503#[doc(alias = "VkPerformanceQuerySubmitInfoKHR")]
19504pub struct PerformanceQuerySubmitInfoKHR {
19505    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR`.
19506    pub s_type: StructureType,
19507    ///Optional, may be null.
19508    pub p_next: *const core::ffi::c_void,
19509    pub counter_pass_index: u32,
19510}
19511impl Default for PerformanceQuerySubmitInfoKHR {
19512    #[inline]
19513    fn default() -> Self {
19514        Self {
19515            s_type: StructureType::from_raw(1000116003i32),
19516            p_next: core::ptr::null(),
19517            counter_pass_index: Default::default(),
19518        }
19519    }
19520}
19521///[`VkPerformanceQueryReservationInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceQueryReservationInfoKHR.html)
19522///
19523///# Extends
19524///- [`DeviceCreateInfo`]
19525#[repr(C)]
19526#[derive(Copy, Clone, Debug)]
19527#[doc(alias = "VkPerformanceQueryReservationInfoKHR")]
19528pub struct PerformanceQueryReservationInfoKHR {
19529    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR`.
19530    pub s_type: StructureType,
19531    ///Optional, may be null.
19532    pub p_next: *const core::ffi::c_void,
19533    pub max_performance_queries_per_pool: u32,
19534}
19535impl Default for PerformanceQueryReservationInfoKHR {
19536    #[inline]
19537    fn default() -> Self {
19538        Self {
19539            s_type: StructureType::from_raw(1000116007i32),
19540            p_next: core::ptr::null(),
19541            max_performance_queries_per_pool: Default::default(),
19542        }
19543    }
19544}
19545///[`VkHeadlessSurfaceCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHeadlessSurfaceCreateInfoEXT.html)
19546/**
19547Provided by **VK_EXT_headless_surface**.*/
19548#[repr(C)]
19549#[derive(Copy, Clone, Debug)]
19550#[doc(alias = "VkHeadlessSurfaceCreateInfoEXT")]
19551pub struct HeadlessSurfaceCreateInfoEXT {
19552    ///Must be `VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT`.
19553    pub s_type: StructureType,
19554    ///Optional, may be null.
19555    pub p_next: *const core::ffi::c_void,
19556    pub flags: HeadlessSurfaceCreateFlagsEXT,
19557}
19558impl Default for HeadlessSurfaceCreateInfoEXT {
19559    #[inline]
19560    fn default() -> Self {
19561        Self {
19562            s_type: StructureType::from_raw(1000256000i32),
19563            p_next: core::ptr::null(),
19564            flags: Default::default(),
19565        }
19566    }
19567}
19568///[`VkPhysicalDeviceCoverageReductionModeFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCoverageReductionModeFeaturesNV.html)
19569/**
19570Provided by **VK_NV_coverage_reduction_mode**.*/
19571///
19572///# Extends
19573///- [`PhysicalDeviceFeatures2`]
19574///- [`DeviceCreateInfo`]
19575#[repr(C)]
19576#[derive(Copy, Clone, Debug)]
19577#[doc(alias = "VkPhysicalDeviceCoverageReductionModeFeaturesNV")]
19578pub struct PhysicalDeviceCoverageReductionModeFeaturesNV {
19579    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV`.
19580    pub s_type: StructureType,
19581    ///Optional, may be null.
19582    pub p_next: *mut core::ffi::c_void,
19583    pub coverage_reduction_mode: u32,
19584}
19585impl Default for PhysicalDeviceCoverageReductionModeFeaturesNV {
19586    #[inline]
19587    fn default() -> Self {
19588        Self {
19589            s_type: StructureType::from_raw(1000250000i32),
19590            p_next: core::ptr::null_mut(),
19591            coverage_reduction_mode: Default::default(),
19592        }
19593    }
19594}
19595///[`VkPipelineCoverageReductionStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCoverageReductionStateCreateInfoNV.html)
19596/**
19597Provided by **VK_NV_coverage_reduction_mode**.*/
19598///
19599///# Extends
19600///- [`PipelineMultisampleStateCreateInfo`]
19601#[repr(C)]
19602#[derive(Copy, Clone, Debug)]
19603#[doc(alias = "VkPipelineCoverageReductionStateCreateInfoNV")]
19604pub struct PipelineCoverageReductionStateCreateInfoNV {
19605    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV`.
19606    pub s_type: StructureType,
19607    ///Optional, may be null.
19608    pub p_next: *const core::ffi::c_void,
19609    pub flags: PipelineCoverageReductionStateCreateFlagsNV,
19610    pub coverage_reduction_mode: CoverageReductionModeNV,
19611}
19612impl Default for PipelineCoverageReductionStateCreateInfoNV {
19613    #[inline]
19614    fn default() -> Self {
19615        Self {
19616            s_type: StructureType::from_raw(1000250001i32),
19617            p_next: core::ptr::null(),
19618            flags: Default::default(),
19619            coverage_reduction_mode: Default::default(),
19620        }
19621    }
19622}
19623///[`VkFramebufferMixedSamplesCombinationNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferMixedSamplesCombinationNV.html)
19624/**
19625Provided by **VK_NV_coverage_reduction_mode**.*/
19626/**
19627**Returned only**, filled by Vulkan, not constructed by the application.*/
19628#[repr(C)]
19629#[derive(Copy, Clone, Debug)]
19630#[doc(alias = "VkFramebufferMixedSamplesCombinationNV")]
19631pub struct FramebufferMixedSamplesCombinationNV {
19632    ///Must be `VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV`.
19633    pub s_type: StructureType,
19634    ///Optional, may be null.
19635    pub p_next: *mut core::ffi::c_void,
19636    pub coverage_reduction_mode: CoverageReductionModeNV,
19637    pub rasterization_samples: SampleCountFlagBits,
19638    pub depth_stencil_samples: SampleCountFlags,
19639    pub color_samples: SampleCountFlags,
19640}
19641impl Default for FramebufferMixedSamplesCombinationNV {
19642    #[inline]
19643    fn default() -> Self {
19644        Self {
19645            s_type: StructureType::from_raw(1000250002i32),
19646            p_next: core::ptr::null_mut(),
19647            coverage_reduction_mode: Default::default(),
19648            rasterization_samples: Default::default(),
19649            depth_stencil_samples: Default::default(),
19650            color_samples: Default::default(),
19651        }
19652    }
19653}
19654///[`VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.html)
19655/**
19656Provided by **VK_INTEL_shader_integer_functions2**.*/
19657///
19658///# Extends
19659///- [`PhysicalDeviceFeatures2`]
19660///- [`DeviceCreateInfo`]
19661#[repr(C)]
19662#[derive(Copy, Clone, Debug)]
19663#[doc(alias = "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL")]
19664pub struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
19665    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL`.
19666    pub s_type: StructureType,
19667    ///Optional, may be null.
19668    pub p_next: *mut core::ffi::c_void,
19669    pub shader_integer_functions2: u32,
19670}
19671impl Default for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
19672    #[inline]
19673    fn default() -> Self {
19674        Self {
19675            s_type: StructureType::from_raw(1000209000i32),
19676            p_next: core::ptr::null_mut(),
19677            shader_integer_functions2: Default::default(),
19678        }
19679    }
19680}
19681///[`VkPerformanceValueDataINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceValueDataINTEL.html)
19682/**
19683Provided by **VK_INTEL_performance_query**.*/
19684#[repr(C)]
19685#[derive(Copy, Clone)]
19686#[doc(alias = "VkPerformanceValueDataINTEL")]
19687pub union PerformanceValueDataINTEL {
19688    pub value32: u32,
19689    pub value64: u64,
19690    pub value_float: f32,
19691    pub value_bool: u32,
19692    pub value_string: *const core::ffi::c_char,
19693}
19694impl Default for PerformanceValueDataINTEL {
19695    #[inline]
19696    fn default() -> Self {
19697        unsafe { core::mem::zeroed() }
19698    }
19699}
19700impl core::fmt::Debug for PerformanceValueDataINTEL {
19701    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19702        f.write_str(stringify!(PerformanceValueDataINTEL))
19703    }
19704}
19705///[`VkPerformanceValueINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceValueINTEL.html)
19706/**
19707Provided by **VK_INTEL_performance_query**.*/
19708/**
19709**Returned only**, filled by Vulkan, not constructed by the application.*/
19710#[repr(C)]
19711#[derive(Copy, Clone, Debug)]
19712#[doc(alias = "VkPerformanceValueINTEL")]
19713pub struct PerformanceValueINTEL {
19714    pub r#type: PerformanceValueTypeINTEL,
19715    pub data: PerformanceValueDataINTEL,
19716}
19717impl Default for PerformanceValueINTEL {
19718    #[inline]
19719    fn default() -> Self {
19720        unsafe { core::mem::zeroed() }
19721    }
19722}
19723///[`VkInitializePerformanceApiInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkInitializePerformanceApiInfoINTEL.html)
19724/**
19725Provided by **VK_INTEL_performance_query**.*/
19726#[repr(C)]
19727#[derive(Copy, Clone, Debug)]
19728#[doc(alias = "VkInitializePerformanceApiInfoINTEL")]
19729pub struct InitializePerformanceApiInfoINTEL {
19730    ///Must be `VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL`.
19731    pub s_type: StructureType,
19732    ///Optional, may be null.
19733    pub p_next: *const core::ffi::c_void,
19734    ///Optional, may be null.
19735    pub p_user_data: *mut core::ffi::c_void,
19736}
19737impl Default for InitializePerformanceApiInfoINTEL {
19738    #[inline]
19739    fn default() -> Self {
19740        Self {
19741            s_type: StructureType::from_raw(1000210001i32),
19742            p_next: core::ptr::null(),
19743            p_user_data: core::ptr::null_mut(),
19744        }
19745    }
19746}
19747///[`VkQueryPoolPerformanceQueryCreateInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolPerformanceQueryCreateInfoINTEL.html)
19748/**
19749Provided by **VK_INTEL_performance_query**.*/
19750///
19751///# Extends
19752///- [`QueryPoolCreateInfo`]
19753#[repr(C)]
19754#[derive(Copy, Clone, Debug)]
19755#[doc(alias = "VkQueryPoolPerformanceQueryCreateInfoINTEL")]
19756pub struct QueryPoolPerformanceQueryCreateInfoINTEL {
19757    ///Must be `VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL`.
19758    pub s_type: StructureType,
19759    ///Optional, may be null.
19760    pub p_next: *const core::ffi::c_void,
19761    pub performance_counters_sampling: QueryPoolSamplingModeINTEL,
19762}
19763impl Default for QueryPoolPerformanceQueryCreateInfoINTEL {
19764    #[inline]
19765    fn default() -> Self {
19766        Self {
19767            s_type: StructureType::from_raw(1000210000i32),
19768            p_next: core::ptr::null(),
19769            performance_counters_sampling: Default::default(),
19770        }
19771    }
19772}
19773///[`VkPerformanceMarkerInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceMarkerInfoINTEL.html)
19774/**
19775Provided by **VK_INTEL_performance_query**.*/
19776#[repr(C)]
19777#[derive(Copy, Clone, Debug)]
19778#[doc(alias = "VkPerformanceMarkerInfoINTEL")]
19779pub struct PerformanceMarkerInfoINTEL {
19780    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL`.
19781    pub s_type: StructureType,
19782    ///Optional, may be null.
19783    pub p_next: *const core::ffi::c_void,
19784    pub marker: u64,
19785}
19786impl Default for PerformanceMarkerInfoINTEL {
19787    #[inline]
19788    fn default() -> Self {
19789        Self {
19790            s_type: StructureType::from_raw(1000210002i32),
19791            p_next: core::ptr::null(),
19792            marker: Default::default(),
19793        }
19794    }
19795}
19796///[`VkPerformanceStreamMarkerInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceStreamMarkerInfoINTEL.html)
19797/**
19798Provided by **VK_INTEL_performance_query**.*/
19799#[repr(C)]
19800#[derive(Copy, Clone, Debug)]
19801#[doc(alias = "VkPerformanceStreamMarkerInfoINTEL")]
19802pub struct PerformanceStreamMarkerInfoINTEL {
19803    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL`.
19804    pub s_type: StructureType,
19805    ///Optional, may be null.
19806    pub p_next: *const core::ffi::c_void,
19807    pub marker: u32,
19808}
19809impl Default for PerformanceStreamMarkerInfoINTEL {
19810    #[inline]
19811    fn default() -> Self {
19812        Self {
19813            s_type: StructureType::from_raw(1000210003i32),
19814            p_next: core::ptr::null(),
19815            marker: Default::default(),
19816        }
19817    }
19818}
19819///[`VkPerformanceOverrideInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceOverrideInfoINTEL.html)
19820/**
19821Provided by **VK_INTEL_performance_query**.*/
19822#[repr(C)]
19823#[derive(Copy, Clone, Debug)]
19824#[doc(alias = "VkPerformanceOverrideInfoINTEL")]
19825pub struct PerformanceOverrideInfoINTEL {
19826    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL`.
19827    pub s_type: StructureType,
19828    ///Optional, may be null.
19829    pub p_next: *const core::ffi::c_void,
19830    pub r#type: PerformanceOverrideTypeINTEL,
19831    pub enable: u32,
19832    pub parameter: u64,
19833}
19834impl Default for PerformanceOverrideInfoINTEL {
19835    #[inline]
19836    fn default() -> Self {
19837        Self {
19838            s_type: StructureType::from_raw(1000210004i32),
19839            p_next: core::ptr::null(),
19840            r#type: Default::default(),
19841            enable: Default::default(),
19842            parameter: Default::default(),
19843        }
19844    }
19845}
19846///[`VkPerformanceConfigurationAcquireInfoINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceConfigurationAcquireInfoINTEL.html)
19847/**
19848Provided by **VK_INTEL_performance_query**.*/
19849#[repr(C)]
19850#[derive(Copy, Clone, Debug)]
19851#[doc(alias = "VkPerformanceConfigurationAcquireInfoINTEL")]
19852pub struct PerformanceConfigurationAcquireInfoINTEL {
19853    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL`.
19854    pub s_type: StructureType,
19855    ///Optional, may be null.
19856    pub p_next: *const core::ffi::c_void,
19857    pub r#type: PerformanceConfigurationTypeINTEL,
19858}
19859impl Default for PerformanceConfigurationAcquireInfoINTEL {
19860    #[inline]
19861    fn default() -> Self {
19862        Self {
19863            s_type: StructureType::from_raw(1000210005i32),
19864            p_next: core::ptr::null(),
19865            r#type: Default::default(),
19866        }
19867    }
19868}
19869///[`VkPhysicalDeviceShaderClockFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderClockFeaturesKHR.html)
19870/**
19871Provided by **VK_KHR_shader_clock**.*/
19872///
19873///# Extends
19874///- [`PhysicalDeviceFeatures2`]
19875///- [`DeviceCreateInfo`]
19876#[repr(C)]
19877#[derive(Copy, Clone, Debug)]
19878#[doc(alias = "VkPhysicalDeviceShaderClockFeaturesKHR")]
19879pub struct PhysicalDeviceShaderClockFeaturesKHR {
19880    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR`.
19881    pub s_type: StructureType,
19882    ///Optional, may be null.
19883    pub p_next: *mut core::ffi::c_void,
19884    pub shader_subgroup_clock: u32,
19885    pub shader_device_clock: u32,
19886}
19887impl Default for PhysicalDeviceShaderClockFeaturesKHR {
19888    #[inline]
19889    fn default() -> Self {
19890        Self {
19891            s_type: StructureType::from_raw(1000181000i32),
19892            p_next: core::ptr::null_mut(),
19893            shader_subgroup_clock: Default::default(),
19894            shader_device_clock: Default::default(),
19895        }
19896    }
19897}
19898///[`VkPhysicalDeviceIndexTypeUint8Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceIndexTypeUint8Features.html)
19899/**
19900Provided by **VK_BASE_VERSION_1_4**.*/
19901///
19902///# Extends
19903///- [`PhysicalDeviceFeatures2`]
19904///- [`DeviceCreateInfo`]
19905#[repr(C)]
19906#[derive(Copy, Clone, Debug)]
19907#[doc(alias = "VkPhysicalDeviceIndexTypeUint8Features")]
19908pub struct PhysicalDeviceIndexTypeUint8Features {
19909    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES`.
19910    pub s_type: StructureType,
19911    ///Optional, may be null.
19912    pub p_next: *mut core::ffi::c_void,
19913    pub index_type_uint8: u32,
19914}
19915impl Default for PhysicalDeviceIndexTypeUint8Features {
19916    #[inline]
19917    fn default() -> Self {
19918        Self {
19919            s_type: StructureType::from_raw(1000265000i32),
19920            p_next: core::ptr::null_mut(),
19921            index_type_uint8: Default::default(),
19922        }
19923    }
19924}
19925///[`VkPhysicalDeviceShaderSMBuiltinsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSMBuiltinsPropertiesNV.html)
19926/**
19927Provided by **VK_NV_shader_sm_builtins**.*/
19928/**
19929**Returned only**, filled by Vulkan, not constructed by the application.*/
19930///
19931///# Extends
19932///- [`PhysicalDeviceProperties2`]
19933#[repr(C)]
19934#[derive(Copy, Clone, Debug)]
19935#[doc(alias = "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV")]
19936pub struct PhysicalDeviceShaderSMBuiltinsPropertiesNV {
19937    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV`.
19938    pub s_type: StructureType,
19939    ///Optional, may be null.
19940    pub p_next: *mut core::ffi::c_void,
19941    pub shader_sm_count: u32,
19942    pub shader_warps_per_sm: u32,
19943}
19944impl Default for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
19945    #[inline]
19946    fn default() -> Self {
19947        Self {
19948            s_type: StructureType::from_raw(1000154001i32),
19949            p_next: core::ptr::null_mut(),
19950            shader_sm_count: Default::default(),
19951            shader_warps_per_sm: Default::default(),
19952        }
19953    }
19954}
19955///[`VkPhysicalDeviceShaderSMBuiltinsFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.html)
19956/**
19957Provided by **VK_NV_shader_sm_builtins**.*/
19958///
19959///# Extends
19960///- [`PhysicalDeviceFeatures2`]
19961///- [`DeviceCreateInfo`]
19962#[repr(C)]
19963#[derive(Copy, Clone, Debug)]
19964#[doc(alias = "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV")]
19965pub struct PhysicalDeviceShaderSMBuiltinsFeaturesNV {
19966    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV`.
19967    pub s_type: StructureType,
19968    ///Optional, may be null.
19969    pub p_next: *mut core::ffi::c_void,
19970    pub shader_sm_builtins: u32,
19971}
19972impl Default for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
19973    #[inline]
19974    fn default() -> Self {
19975        Self {
19976            s_type: StructureType::from_raw(1000154000i32),
19977            p_next: core::ptr::null_mut(),
19978            shader_sm_builtins: Default::default(),
19979        }
19980    }
19981}
19982///[`VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.html)
19983/**
19984Provided by **VK_EXT_fragment_shader_interlock**.*/
19985///
19986///# Extends
19987///- [`PhysicalDeviceFeatures2`]
19988///- [`DeviceCreateInfo`]
19989#[repr(C)]
19990#[derive(Copy, Clone, Debug)]
19991#[doc(alias = "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT")]
19992pub struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
19993    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT`.
19994    pub s_type: StructureType,
19995    ///Optional, may be null.
19996    pub p_next: *mut core::ffi::c_void,
19997    pub fragment_shader_sample_interlock: u32,
19998    pub fragment_shader_pixel_interlock: u32,
19999    pub fragment_shader_shading_rate_interlock: u32,
20000}
20001impl Default for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
20002    #[inline]
20003    fn default() -> Self {
20004        Self {
20005            s_type: StructureType::from_raw(1000251000i32),
20006            p_next: core::ptr::null_mut(),
20007            fragment_shader_sample_interlock: Default::default(),
20008            fragment_shader_pixel_interlock: Default::default(),
20009            fragment_shader_shading_rate_interlock: Default::default(),
20010        }
20011    }
20012}
20013///[`VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.html)
20014/**
20015Provided by **VK_GRAPHICS_VERSION_1_2**.*/
20016///
20017///# Extends
20018///- [`PhysicalDeviceFeatures2`]
20019///- [`DeviceCreateInfo`]
20020#[repr(C)]
20021#[derive(Copy, Clone, Debug)]
20022#[doc(alias = "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures")]
20023pub struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
20024    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES`.
20025    pub s_type: StructureType,
20026    ///Optional, may be null.
20027    pub p_next: *mut core::ffi::c_void,
20028    pub separate_depth_stencil_layouts: u32,
20029}
20030impl Default for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
20031    #[inline]
20032    fn default() -> Self {
20033        Self {
20034            s_type: StructureType::from_raw(1000241000i32),
20035            p_next: core::ptr::null_mut(),
20036            separate_depth_stencil_layouts: Default::default(),
20037        }
20038    }
20039}
20040///[`VkAttachmentReferenceStencilLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentReferenceStencilLayout.html)
20041/**
20042Provided by **VK_GRAPHICS_VERSION_1_2**.*/
20043///
20044///# Extends
20045///- [`AttachmentReference2`]
20046#[repr(C)]
20047#[derive(Copy, Clone, Debug)]
20048#[doc(alias = "VkAttachmentReferenceStencilLayout")]
20049pub struct AttachmentReferenceStencilLayout {
20050    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT`.
20051    pub s_type: StructureType,
20052    ///Optional, may be null.
20053    pub p_next: *mut core::ffi::c_void,
20054    pub stencil_layout: ImageLayout,
20055}
20056impl Default for AttachmentReferenceStencilLayout {
20057    #[inline]
20058    fn default() -> Self {
20059        Self {
20060            s_type: StructureType::from_raw(1000241001i32),
20061            p_next: core::ptr::null_mut(),
20062            stencil_layout: Default::default(),
20063        }
20064    }
20065}
20066///[`VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.html)
20067/**
20068Provided by **VK_EXT_primitive_topology_list_restart**.*/
20069///
20070///# Extends
20071///- [`PhysicalDeviceFeatures2`]
20072///- [`DeviceCreateInfo`]
20073#[repr(C)]
20074#[derive(Copy, Clone, Debug)]
20075#[doc(alias = "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT")]
20076pub struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
20077    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT`.
20078    pub s_type: StructureType,
20079    ///Optional, may be null.
20080    pub p_next: *mut core::ffi::c_void,
20081    pub primitive_topology_list_restart: u32,
20082    pub primitive_topology_patch_list_restart: u32,
20083}
20084impl Default for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
20085    #[inline]
20086    fn default() -> Self {
20087        Self {
20088            s_type: StructureType::from_raw(1000356000i32),
20089            p_next: core::ptr::null_mut(),
20090            primitive_topology_list_restart: Default::default(),
20091            primitive_topology_patch_list_restart: Default::default(),
20092        }
20093    }
20094}
20095///[`VkAttachmentDescriptionStencilLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentDescriptionStencilLayout.html)
20096/**
20097Provided by **VK_GRAPHICS_VERSION_1_2**.*/
20098///
20099///# Extends
20100///- [`AttachmentDescription2`]
20101#[repr(C)]
20102#[derive(Copy, Clone, Debug)]
20103#[doc(alias = "VkAttachmentDescriptionStencilLayout")]
20104pub struct AttachmentDescriptionStencilLayout {
20105    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT`.
20106    pub s_type: StructureType,
20107    ///Optional, may be null.
20108    pub p_next: *mut core::ffi::c_void,
20109    pub stencil_initial_layout: ImageLayout,
20110    pub stencil_final_layout: ImageLayout,
20111}
20112impl Default for AttachmentDescriptionStencilLayout {
20113    #[inline]
20114    fn default() -> Self {
20115        Self {
20116            s_type: StructureType::from_raw(1000241002i32),
20117            p_next: core::ptr::null_mut(),
20118            stencil_initial_layout: Default::default(),
20119            stencil_final_layout: Default::default(),
20120        }
20121    }
20122}
20123///[`VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.html)
20124/**
20125Provided by **VK_KHR_pipeline_executable_properties**.*/
20126///
20127///# Extends
20128///- [`PhysicalDeviceFeatures2`]
20129///- [`DeviceCreateInfo`]
20130#[repr(C)]
20131#[derive(Copy, Clone, Debug)]
20132#[doc(alias = "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR")]
20133pub struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
20134    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR`.
20135    pub s_type: StructureType,
20136    ///Optional, may be null.
20137    pub p_next: *mut core::ffi::c_void,
20138    pub pipeline_executable_info: u32,
20139}
20140impl Default for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
20141    #[inline]
20142    fn default() -> Self {
20143        Self {
20144            s_type: StructureType::from_raw(1000269000i32),
20145            p_next: core::ptr::null_mut(),
20146            pipeline_executable_info: Default::default(),
20147        }
20148    }
20149}
20150///[`VkPipelineInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineInfoKHR.html)
20151/**
20152Provided by **VK_KHR_pipeline_executable_properties**.*/
20153#[repr(C)]
20154#[derive(Copy, Clone, Debug)]
20155#[doc(alias = "VkPipelineInfoKHR")]
20156pub struct PipelineInfoKHR {
20157    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR`.
20158    pub s_type: StructureType,
20159    ///Optional, may be null.
20160    pub p_next: *const core::ffi::c_void,
20161    pub pipeline: Pipeline,
20162}
20163impl Default for PipelineInfoKHR {
20164    #[inline]
20165    fn default() -> Self {
20166        Self {
20167            s_type: StructureType::from_raw(1000269001i32),
20168            p_next: core::ptr::null(),
20169            pipeline: Default::default(),
20170        }
20171    }
20172}
20173///[`VkPipelineExecutablePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutablePropertiesKHR.html)
20174/**
20175Provided by **VK_KHR_pipeline_executable_properties**.*/
20176/**
20177**Returned only**, filled by Vulkan, not constructed by the application.*/
20178#[repr(C)]
20179#[derive(Copy, Clone, Debug)]
20180#[doc(alias = "VkPipelineExecutablePropertiesKHR")]
20181pub struct PipelineExecutablePropertiesKHR {
20182    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR`.
20183    pub s_type: StructureType,
20184    ///Optional, may be null.
20185    pub p_next: *mut core::ffi::c_void,
20186    pub stages: ShaderStageFlags,
20187    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20188    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20189    pub subgroup_size: u32,
20190}
20191impl Default for PipelineExecutablePropertiesKHR {
20192    #[inline]
20193    fn default() -> Self {
20194        Self {
20195            s_type: StructureType::from_raw(1000269002i32),
20196            p_next: core::ptr::null_mut(),
20197            stages: Default::default(),
20198            name: unsafe { core::mem::zeroed() },
20199            description: unsafe { core::mem::zeroed() },
20200            subgroup_size: Default::default(),
20201        }
20202    }
20203}
20204///[`VkPipelineExecutableInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutableInfoKHR.html)
20205/**
20206Provided by **VK_KHR_pipeline_executable_properties**.*/
20207#[repr(C)]
20208#[derive(Copy, Clone, Debug)]
20209#[doc(alias = "VkPipelineExecutableInfoKHR")]
20210pub struct PipelineExecutableInfoKHR {
20211    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR`.
20212    pub s_type: StructureType,
20213    ///Optional, may be null.
20214    pub p_next: *const core::ffi::c_void,
20215    pub pipeline: Pipeline,
20216    pub executable_index: u32,
20217}
20218impl Default for PipelineExecutableInfoKHR {
20219    #[inline]
20220    fn default() -> Self {
20221        Self {
20222            s_type: StructureType::from_raw(1000269003i32),
20223            p_next: core::ptr::null(),
20224            pipeline: Default::default(),
20225            executable_index: Default::default(),
20226        }
20227    }
20228}
20229///[`VkPipelineExecutableStatisticValueKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutableStatisticValueKHR.html)
20230/**
20231Provided by **VK_KHR_pipeline_executable_properties**.*/
20232/**
20233**Returned only**, filled by Vulkan, not constructed by the application.*/
20234#[repr(C)]
20235#[derive(Copy, Clone)]
20236#[doc(alias = "VkPipelineExecutableStatisticValueKHR")]
20237pub union PipelineExecutableStatisticValueKHR {
20238    pub b32: u32,
20239    pub i64: i64,
20240    pub u64: u64,
20241    pub f64: f64,
20242}
20243impl Default for PipelineExecutableStatisticValueKHR {
20244    #[inline]
20245    fn default() -> Self {
20246        unsafe { core::mem::zeroed() }
20247    }
20248}
20249impl core::fmt::Debug for PipelineExecutableStatisticValueKHR {
20250    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20251        f.write_str(stringify!(PipelineExecutableStatisticValueKHR))
20252    }
20253}
20254///[`VkPipelineExecutableStatisticKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutableStatisticKHR.html)
20255/**
20256Provided by **VK_KHR_pipeline_executable_properties**.*/
20257/**
20258**Returned only**, filled by Vulkan, not constructed by the application.*/
20259#[repr(C)]
20260#[derive(Copy, Clone, Debug)]
20261#[doc(alias = "VkPipelineExecutableStatisticKHR")]
20262pub struct PipelineExecutableStatisticKHR {
20263    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR`.
20264    pub s_type: StructureType,
20265    ///Optional, may be null.
20266    pub p_next: *mut core::ffi::c_void,
20267    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20268    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20269    pub format: PipelineExecutableStatisticFormatKHR,
20270    pub value: PipelineExecutableStatisticValueKHR,
20271}
20272impl Default for PipelineExecutableStatisticKHR {
20273    #[inline]
20274    fn default() -> Self {
20275        Self {
20276            s_type: StructureType::from_raw(1000269004i32),
20277            p_next: core::ptr::null_mut(),
20278            name: unsafe { core::mem::zeroed() },
20279            description: unsafe { core::mem::zeroed() },
20280            format: Default::default(),
20281            value: Default::default(),
20282        }
20283    }
20284}
20285///[`VkPipelineExecutableInternalRepresentationKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineExecutableInternalRepresentationKHR.html)
20286/**
20287Provided by **VK_KHR_pipeline_executable_properties**.*/
20288/**
20289**Returned only**, filled by Vulkan, not constructed by the application.*/
20290#[repr(C)]
20291#[derive(Copy, Clone, Debug)]
20292#[doc(alias = "VkPipelineExecutableInternalRepresentationKHR")]
20293pub struct PipelineExecutableInternalRepresentationKHR {
20294    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR`.
20295    pub s_type: StructureType,
20296    ///Optional, may be null.
20297    pub p_next: *mut core::ffi::c_void,
20298    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20299    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
20300    pub is_text: u32,
20301    ///Length of `p_data`.
20302    pub data_size: usize,
20303    ///Optional, may be null.
20304    pub p_data: *mut core::ffi::c_void,
20305}
20306impl Default for PipelineExecutableInternalRepresentationKHR {
20307    #[inline]
20308    fn default() -> Self {
20309        Self {
20310            s_type: StructureType::from_raw(1000269005i32),
20311            p_next: core::ptr::null_mut(),
20312            name: unsafe { core::mem::zeroed() },
20313            description: unsafe { core::mem::zeroed() },
20314            is_text: Default::default(),
20315            data_size: Default::default(),
20316            p_data: core::ptr::null_mut(),
20317        }
20318    }
20319}
20320///[`VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures.html)
20321/**
20322Provided by **VK_COMPUTE_VERSION_1_3**.*/
20323///
20324///# Extends
20325///- [`PhysicalDeviceFeatures2`]
20326///- [`DeviceCreateInfo`]
20327#[repr(C)]
20328#[derive(Copy, Clone, Debug)]
20329#[doc(alias = "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures")]
20330pub struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
20331    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES`.
20332    pub s_type: StructureType,
20333    ///Optional, may be null.
20334    pub p_next: *mut core::ffi::c_void,
20335    pub shader_demote_to_helper_invocation: u32,
20336}
20337impl Default for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
20338    #[inline]
20339    fn default() -> Self {
20340        Self {
20341            s_type: StructureType::from_raw(1000276000i32),
20342            p_next: core::ptr::null_mut(),
20343            shader_demote_to_helper_invocation: Default::default(),
20344        }
20345    }
20346}
20347///[`VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.html)
20348/**
20349Provided by **VK_EXT_texel_buffer_alignment**.*/
20350///
20351///# Extends
20352///- [`PhysicalDeviceFeatures2`]
20353///- [`DeviceCreateInfo`]
20354#[repr(C)]
20355#[derive(Copy, Clone, Debug)]
20356#[doc(alias = "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT")]
20357pub struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
20358    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT`.
20359    pub s_type: StructureType,
20360    ///Optional, may be null.
20361    pub p_next: *mut core::ffi::c_void,
20362    pub texel_buffer_alignment: u32,
20363}
20364impl Default for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
20365    #[inline]
20366    fn default() -> Self {
20367        Self {
20368            s_type: StructureType::from_raw(1000281000i32),
20369            p_next: core::ptr::null_mut(),
20370            texel_buffer_alignment: Default::default(),
20371        }
20372    }
20373}
20374///[`VkPhysicalDeviceTexelBufferAlignmentProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTexelBufferAlignmentProperties.html)
20375/**
20376Provided by **VK_COMPUTE_VERSION_1_3**.*/
20377/**
20378**Returned only**, filled by Vulkan, not constructed by the application.*/
20379///
20380///# Extends
20381///- [`PhysicalDeviceProperties2`]
20382#[repr(C)]
20383#[derive(Copy, Clone, Debug)]
20384#[doc(alias = "VkPhysicalDeviceTexelBufferAlignmentProperties")]
20385pub struct PhysicalDeviceTexelBufferAlignmentProperties {
20386    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES`.
20387    pub s_type: StructureType,
20388    ///Optional, may be null.
20389    pub p_next: *mut core::ffi::c_void,
20390    pub storage_texel_buffer_offset_alignment_bytes: u64,
20391    pub storage_texel_buffer_offset_single_texel_alignment: u32,
20392    pub uniform_texel_buffer_offset_alignment_bytes: u64,
20393    pub uniform_texel_buffer_offset_single_texel_alignment: u32,
20394}
20395impl Default for PhysicalDeviceTexelBufferAlignmentProperties {
20396    #[inline]
20397    fn default() -> Self {
20398        Self {
20399            s_type: StructureType::from_raw(1000281001i32),
20400            p_next: core::ptr::null_mut(),
20401            storage_texel_buffer_offset_alignment_bytes: Default::default(),
20402            storage_texel_buffer_offset_single_texel_alignment: Default::default(),
20403            uniform_texel_buffer_offset_alignment_bytes: Default::default(),
20404            uniform_texel_buffer_offset_single_texel_alignment: Default::default(),
20405        }
20406    }
20407}
20408///[`VkPhysicalDeviceSubgroupSizeControlFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubgroupSizeControlFeatures.html)
20409/**
20410Provided by **VK_COMPUTE_VERSION_1_3**.*/
20411///
20412///# Extends
20413///- [`PhysicalDeviceFeatures2`]
20414///- [`DeviceCreateInfo`]
20415#[repr(C)]
20416#[derive(Copy, Clone, Debug)]
20417#[doc(alias = "VkPhysicalDeviceSubgroupSizeControlFeatures")]
20418pub struct PhysicalDeviceSubgroupSizeControlFeatures {
20419    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES`.
20420    pub s_type: StructureType,
20421    ///Optional, may be null.
20422    pub p_next: *mut core::ffi::c_void,
20423    pub subgroup_size_control: u32,
20424    pub compute_full_subgroups: u32,
20425}
20426impl Default for PhysicalDeviceSubgroupSizeControlFeatures {
20427    #[inline]
20428    fn default() -> Self {
20429        Self {
20430            s_type: StructureType::from_raw(1000225002i32),
20431            p_next: core::ptr::null_mut(),
20432            subgroup_size_control: Default::default(),
20433            compute_full_subgroups: Default::default(),
20434        }
20435    }
20436}
20437///[`VkPhysicalDeviceSubgroupSizeControlProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubgroupSizeControlProperties.html)
20438/**
20439Provided by **VK_COMPUTE_VERSION_1_3**.*/
20440/**
20441**Returned only**, filled by Vulkan, not constructed by the application.*/
20442///
20443///# Extends
20444///- [`PhysicalDeviceProperties2`]
20445#[repr(C)]
20446#[derive(Copy, Clone, Debug)]
20447#[doc(alias = "VkPhysicalDeviceSubgroupSizeControlProperties")]
20448pub struct PhysicalDeviceSubgroupSizeControlProperties {
20449    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES`.
20450    pub s_type: StructureType,
20451    ///Optional, may be null.
20452    pub p_next: *mut core::ffi::c_void,
20453    pub min_subgroup_size: u32,
20454    pub max_subgroup_size: u32,
20455    pub max_compute_workgroup_subgroups: u32,
20456    pub required_subgroup_size_stages: ShaderStageFlags,
20457}
20458impl Default for PhysicalDeviceSubgroupSizeControlProperties {
20459    #[inline]
20460    fn default() -> Self {
20461        Self {
20462            s_type: StructureType::from_raw(1000225000i32),
20463            p_next: core::ptr::null_mut(),
20464            min_subgroup_size: Default::default(),
20465            max_subgroup_size: Default::default(),
20466            max_compute_workgroup_subgroups: Default::default(),
20467            required_subgroup_size_stages: Default::default(),
20468        }
20469    }
20470}
20471///[`VkPipelineShaderStageRequiredSubgroupSizeCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineShaderStageRequiredSubgroupSizeCreateInfo.html)
20472/**
20473Provided by **VK_COMPUTE_VERSION_1_3**.*/
20474///
20475///# Extends
20476///- [`PipelineShaderStageCreateInfo`]
20477///- [`ShaderCreateInfoEXT`]
20478#[repr(C)]
20479#[derive(Copy, Clone, Debug)]
20480#[doc(alias = "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo")]
20481pub struct PipelineShaderStageRequiredSubgroupSizeCreateInfo {
20482    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO`.
20483    pub s_type: StructureType,
20484    ///Optional, may be null.
20485    pub p_next: *const core::ffi::c_void,
20486    pub required_subgroup_size: u32,
20487}
20488impl Default for PipelineShaderStageRequiredSubgroupSizeCreateInfo {
20489    #[inline]
20490    fn default() -> Self {
20491        Self {
20492            s_type: StructureType::from_raw(1000225001i32),
20493            p_next: core::ptr::null(),
20494            required_subgroup_size: Default::default(),
20495        }
20496    }
20497}
20498///[`VkSubpassShadingPipelineCreateInfoHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassShadingPipelineCreateInfoHUAWEI.html)
20499/**
20500Provided by **VK_HUAWEI_subpass_shading**.*/
20501///
20502///# Extends
20503///- [`ComputePipelineCreateInfo`]
20504#[repr(C)]
20505#[derive(Copy, Clone, Debug)]
20506#[doc(alias = "VkSubpassShadingPipelineCreateInfoHUAWEI")]
20507pub struct SubpassShadingPipelineCreateInfoHUAWEI {
20508    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI`.
20509    pub s_type: StructureType,
20510    ///Optional, may be null.
20511    pub p_next: *mut core::ffi::c_void,
20512    pub render_pass: RenderPass,
20513    pub subpass: u32,
20514}
20515impl Default for SubpassShadingPipelineCreateInfoHUAWEI {
20516    #[inline]
20517    fn default() -> Self {
20518        Self {
20519            s_type: StructureType::from_raw(1000369000i32),
20520            p_next: core::ptr::null_mut(),
20521            render_pass: Default::default(),
20522            subpass: Default::default(),
20523        }
20524    }
20525}
20526///[`VkPhysicalDeviceSubpassShadingPropertiesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubpassShadingPropertiesHUAWEI.html)
20527/**
20528Provided by **VK_HUAWEI_subpass_shading**.*/
20529/**
20530**Returned only**, filled by Vulkan, not constructed by the application.*/
20531///
20532///# Extends
20533///- [`PhysicalDeviceProperties2`]
20534#[repr(C)]
20535#[derive(Copy, Clone, Debug)]
20536#[doc(alias = "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI")]
20537pub struct PhysicalDeviceSubpassShadingPropertiesHUAWEI {
20538    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI`.
20539    pub s_type: StructureType,
20540    ///Optional, may be null.
20541    pub p_next: *mut core::ffi::c_void,
20542    pub max_subpass_shading_workgroup_size_aspect_ratio: u32,
20543}
20544impl Default for PhysicalDeviceSubpassShadingPropertiesHUAWEI {
20545    #[inline]
20546    fn default() -> Self {
20547        Self {
20548            s_type: StructureType::from_raw(1000369002i32),
20549            p_next: core::ptr::null_mut(),
20550            max_subpass_shading_workgroup_size_aspect_ratio: Default::default(),
20551        }
20552    }
20553}
20554///[`VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI.html)
20555/**
20556Provided by **VK_HUAWEI_cluster_culling_shader**.*/
20557/**
20558**Returned only**, filled by Vulkan, not constructed by the application.*/
20559///
20560///# Extends
20561///- [`PhysicalDeviceProperties2`]
20562#[repr(C)]
20563#[derive(Copy, Clone, Debug)]
20564#[doc(alias = "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI")]
20565pub struct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
20566    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI`.
20567    pub s_type: StructureType,
20568    ///Optional, may be null.
20569    pub p_next: *mut core::ffi::c_void,
20570    pub max_work_group_count: [u32; 3usize],
20571    pub max_work_group_size: [u32; 3usize],
20572    pub max_output_cluster_count: u32,
20573    pub indirect_buffer_offset_alignment: u64,
20574}
20575impl Default for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
20576    #[inline]
20577    fn default() -> Self {
20578        Self {
20579            s_type: StructureType::from_raw(1000404001i32),
20580            p_next: core::ptr::null_mut(),
20581            max_work_group_count: unsafe { core::mem::zeroed() },
20582            max_work_group_size: unsafe { core::mem::zeroed() },
20583            max_output_cluster_count: Default::default(),
20584            indirect_buffer_offset_alignment: Default::default(),
20585        }
20586    }
20587}
20588///[`VkMemoryOpaqueCaptureAddressAllocateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryOpaqueCaptureAddressAllocateInfo.html)
20589/**
20590Provided by **VK_BASE_VERSION_1_2**.*/
20591///
20592///# Extends
20593///- [`MemoryAllocateInfo`]
20594#[repr(C)]
20595#[derive(Copy, Clone, Debug)]
20596#[doc(alias = "VkMemoryOpaqueCaptureAddressAllocateInfo")]
20597pub struct MemoryOpaqueCaptureAddressAllocateInfo {
20598    ///Must be `VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO`.
20599    pub s_type: StructureType,
20600    ///Optional, may be null.
20601    pub p_next: *const core::ffi::c_void,
20602    pub opaque_capture_address: u64,
20603}
20604impl Default for MemoryOpaqueCaptureAddressAllocateInfo {
20605    #[inline]
20606    fn default() -> Self {
20607        Self {
20608            s_type: StructureType::from_raw(1000257003i32),
20609            p_next: core::ptr::null(),
20610            opaque_capture_address: Default::default(),
20611        }
20612    }
20613}
20614///[`VkDeviceMemoryOpaqueCaptureAddressInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryOpaqueCaptureAddressInfo.html)
20615/**
20616Provided by **VK_BASE_VERSION_1_2**.*/
20617#[repr(C)]
20618#[derive(Copy, Clone, Debug)]
20619#[doc(alias = "VkDeviceMemoryOpaqueCaptureAddressInfo")]
20620pub struct DeviceMemoryOpaqueCaptureAddressInfo {
20621    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO`.
20622    pub s_type: StructureType,
20623    ///Optional, may be null.
20624    pub p_next: *const core::ffi::c_void,
20625    pub memory: DeviceMemory,
20626}
20627impl Default for DeviceMemoryOpaqueCaptureAddressInfo {
20628    #[inline]
20629    fn default() -> Self {
20630        Self {
20631            s_type: StructureType::from_raw(1000257004i32),
20632            p_next: core::ptr::null(),
20633            memory: Default::default(),
20634        }
20635    }
20636}
20637///[`VkPhysicalDeviceLineRasterizationFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLineRasterizationFeatures.html)
20638/**
20639Provided by **VK_GRAPHICS_VERSION_1_4**.*/
20640///
20641///# Extends
20642///- [`PhysicalDeviceFeatures2`]
20643///- [`DeviceCreateInfo`]
20644#[repr(C)]
20645#[derive(Copy, Clone, Debug)]
20646#[doc(alias = "VkPhysicalDeviceLineRasterizationFeatures")]
20647pub struct PhysicalDeviceLineRasterizationFeatures {
20648    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES`.
20649    pub s_type: StructureType,
20650    ///Optional, may be null.
20651    pub p_next: *mut core::ffi::c_void,
20652    pub rectangular_lines: u32,
20653    pub bresenham_lines: u32,
20654    pub smooth_lines: u32,
20655    pub stippled_rectangular_lines: u32,
20656    pub stippled_bresenham_lines: u32,
20657    pub stippled_smooth_lines: u32,
20658}
20659impl Default for PhysicalDeviceLineRasterizationFeatures {
20660    #[inline]
20661    fn default() -> Self {
20662        Self {
20663            s_type: StructureType::from_raw(1000259000i32),
20664            p_next: core::ptr::null_mut(),
20665            rectangular_lines: Default::default(),
20666            bresenham_lines: Default::default(),
20667            smooth_lines: Default::default(),
20668            stippled_rectangular_lines: Default::default(),
20669            stippled_bresenham_lines: Default::default(),
20670            stippled_smooth_lines: Default::default(),
20671        }
20672    }
20673}
20674///[`VkPhysicalDeviceLineRasterizationProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLineRasterizationProperties.html)
20675/**
20676Provided by **VK_GRAPHICS_VERSION_1_4**.*/
20677/**
20678**Returned only**, filled by Vulkan, not constructed by the application.*/
20679///
20680///# Extends
20681///- [`PhysicalDeviceProperties2`]
20682#[repr(C)]
20683#[derive(Copy, Clone, Debug)]
20684#[doc(alias = "VkPhysicalDeviceLineRasterizationProperties")]
20685pub struct PhysicalDeviceLineRasterizationProperties {
20686    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES`.
20687    pub s_type: StructureType,
20688    ///Optional, may be null.
20689    pub p_next: *mut core::ffi::c_void,
20690    pub line_sub_pixel_precision_bits: u32,
20691}
20692impl Default for PhysicalDeviceLineRasterizationProperties {
20693    #[inline]
20694    fn default() -> Self {
20695        Self {
20696            s_type: StructureType::from_raw(1000259002i32),
20697            p_next: core::ptr::null_mut(),
20698            line_sub_pixel_precision_bits: Default::default(),
20699        }
20700    }
20701}
20702///[`VkPipelineRasterizationLineStateCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationLineStateCreateInfo.html)
20703/**
20704Provided by **VK_GRAPHICS_VERSION_1_4**.*/
20705///
20706///# Extends
20707///- [`PipelineRasterizationStateCreateInfo`]
20708#[repr(C)]
20709#[derive(Copy, Clone, Debug)]
20710#[doc(alias = "VkPipelineRasterizationLineStateCreateInfo")]
20711pub struct PipelineRasterizationLineStateCreateInfo {
20712    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO`.
20713    pub s_type: StructureType,
20714    ///Optional, may be null.
20715    pub p_next: *const core::ffi::c_void,
20716    pub line_rasterization_mode: LineRasterizationMode,
20717    pub stippled_line_enable: u32,
20718    pub line_stipple_factor: u32,
20719    pub line_stipple_pattern: u16,
20720}
20721impl Default for PipelineRasterizationLineStateCreateInfo {
20722    #[inline]
20723    fn default() -> Self {
20724        Self {
20725            s_type: StructureType::from_raw(1000259001i32),
20726            p_next: core::ptr::null(),
20727            line_rasterization_mode: Default::default(),
20728            stippled_line_enable: Default::default(),
20729            line_stipple_factor: Default::default(),
20730            line_stipple_pattern: Default::default(),
20731        }
20732    }
20733}
20734///[`VkPhysicalDevicePipelineCreationCacheControlFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineCreationCacheControlFeatures.html)
20735/**
20736Provided by **VK_COMPUTE_VERSION_1_3**.*/
20737///
20738///# Extends
20739///- [`PhysicalDeviceFeatures2`]
20740///- [`DeviceCreateInfo`]
20741#[repr(C)]
20742#[derive(Copy, Clone, Debug)]
20743#[doc(alias = "VkPhysicalDevicePipelineCreationCacheControlFeatures")]
20744pub struct PhysicalDevicePipelineCreationCacheControlFeatures {
20745    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES`.
20746    pub s_type: StructureType,
20747    ///Optional, may be null.
20748    pub p_next: *mut core::ffi::c_void,
20749    pub pipeline_creation_cache_control: u32,
20750}
20751impl Default for PhysicalDevicePipelineCreationCacheControlFeatures {
20752    #[inline]
20753    fn default() -> Self {
20754        Self {
20755            s_type: StructureType::from_raw(1000297000i32),
20756            p_next: core::ptr::null_mut(),
20757            pipeline_creation_cache_control: Default::default(),
20758        }
20759    }
20760}
20761///[`VkPhysicalDeviceVulkan11Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan11Features.html)
20762/**
20763Provided by **VK_BASE_VERSION_1_2**.*/
20764///
20765///# Extends
20766///- [`PhysicalDeviceFeatures2`]
20767///- [`DeviceCreateInfo`]
20768#[repr(C)]
20769#[derive(Copy, Clone, Debug)]
20770#[doc(alias = "VkPhysicalDeviceVulkan11Features")]
20771pub struct PhysicalDeviceVulkan11Features {
20772    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES`.
20773    pub s_type: StructureType,
20774    ///Optional, may be null.
20775    pub p_next: *mut core::ffi::c_void,
20776    pub storage_buffer16_bit_access: u32,
20777    pub uniform_and_storage_buffer16_bit_access: u32,
20778    pub storage_push_constant16: u32,
20779    pub storage_input_output16: u32,
20780    pub multiview: u32,
20781    pub multiview_geometry_shader: u32,
20782    pub multiview_tessellation_shader: u32,
20783    pub variable_pointers_storage_buffer: u32,
20784    pub variable_pointers: u32,
20785    pub protected_memory: u32,
20786    pub sampler_ycbcr_conversion: u32,
20787    pub shader_draw_parameters: u32,
20788}
20789impl Default for PhysicalDeviceVulkan11Features {
20790    #[inline]
20791    fn default() -> Self {
20792        Self {
20793            s_type: StructureType::from_raw(49i32),
20794            p_next: core::ptr::null_mut(),
20795            storage_buffer16_bit_access: Default::default(),
20796            uniform_and_storage_buffer16_bit_access: Default::default(),
20797            storage_push_constant16: Default::default(),
20798            storage_input_output16: Default::default(),
20799            multiview: Default::default(),
20800            multiview_geometry_shader: Default::default(),
20801            multiview_tessellation_shader: Default::default(),
20802            variable_pointers_storage_buffer: Default::default(),
20803            variable_pointers: Default::default(),
20804            protected_memory: Default::default(),
20805            sampler_ycbcr_conversion: Default::default(),
20806            shader_draw_parameters: Default::default(),
20807        }
20808    }
20809}
20810///[`VkPhysicalDeviceVulkan11Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan11Properties.html)
20811/**
20812Provided by **VK_BASE_VERSION_1_2**.*/
20813/**
20814**Returned only**, filled by Vulkan, not constructed by the application.*/
20815///
20816///# Extends
20817///- [`PhysicalDeviceProperties2`]
20818#[repr(C)]
20819#[derive(Copy, Clone, Debug)]
20820#[doc(alias = "VkPhysicalDeviceVulkan11Properties")]
20821pub struct PhysicalDeviceVulkan11Properties {
20822    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES`.
20823    pub s_type: StructureType,
20824    ///Optional, may be null.
20825    pub p_next: *mut core::ffi::c_void,
20826    pub device_uuid: [u8; UUID_SIZE as usize],
20827    pub driver_uuid: [u8; UUID_SIZE as usize],
20828    pub device_luid: [u8; LUID_SIZE as usize],
20829    pub device_node_mask: u32,
20830    pub device_luid_valid: u32,
20831    pub subgroup_size: u32,
20832    pub subgroup_supported_stages: ShaderStageFlags,
20833    pub subgroup_supported_operations: SubgroupFeatureFlags,
20834    pub subgroup_quad_operations_in_all_stages: u32,
20835    pub point_clipping_behavior: PointClippingBehavior,
20836    pub max_multiview_view_count: u32,
20837    pub max_multiview_instance_index: u32,
20838    pub protected_no_fault: u32,
20839    pub max_per_set_descriptors: u32,
20840    pub max_memory_allocation_size: u64,
20841}
20842impl Default for PhysicalDeviceVulkan11Properties {
20843    #[inline]
20844    fn default() -> Self {
20845        Self {
20846            s_type: StructureType::from_raw(50i32),
20847            p_next: core::ptr::null_mut(),
20848            device_uuid: unsafe { core::mem::zeroed() },
20849            driver_uuid: unsafe { core::mem::zeroed() },
20850            device_luid: unsafe { core::mem::zeroed() },
20851            device_node_mask: Default::default(),
20852            device_luid_valid: Default::default(),
20853            subgroup_size: Default::default(),
20854            subgroup_supported_stages: Default::default(),
20855            subgroup_supported_operations: Default::default(),
20856            subgroup_quad_operations_in_all_stages: Default::default(),
20857            point_clipping_behavior: Default::default(),
20858            max_multiview_view_count: Default::default(),
20859            max_multiview_instance_index: Default::default(),
20860            protected_no_fault: Default::default(),
20861            max_per_set_descriptors: Default::default(),
20862            max_memory_allocation_size: Default::default(),
20863        }
20864    }
20865}
20866///[`VkPhysicalDeviceVulkan12Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan12Features.html)
20867/**
20868Provided by **VK_BASE_VERSION_1_2**.*/
20869///
20870///# Extends
20871///- [`PhysicalDeviceFeatures2`]
20872///- [`DeviceCreateInfo`]
20873#[repr(C)]
20874#[derive(Copy, Clone, Debug)]
20875#[doc(alias = "VkPhysicalDeviceVulkan12Features")]
20876pub struct PhysicalDeviceVulkan12Features {
20877    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES`.
20878    pub s_type: StructureType,
20879    ///Optional, may be null.
20880    pub p_next: *mut core::ffi::c_void,
20881    pub sampler_mirror_clamp_to_edge: u32,
20882    pub draw_indirect_count: u32,
20883    pub storage_buffer8_bit_access: u32,
20884    pub uniform_and_storage_buffer8_bit_access: u32,
20885    pub storage_push_constant8: u32,
20886    pub shader_buffer_int64_atomics: u32,
20887    pub shader_shared_int64_atomics: u32,
20888    pub shader_float16: u32,
20889    pub shader_int8: u32,
20890    pub descriptor_indexing: u32,
20891    pub shader_input_attachment_array_dynamic_indexing: u32,
20892    pub shader_uniform_texel_buffer_array_dynamic_indexing: u32,
20893    pub shader_storage_texel_buffer_array_dynamic_indexing: u32,
20894    pub shader_uniform_buffer_array_non_uniform_indexing: u32,
20895    pub shader_sampled_image_array_non_uniform_indexing: u32,
20896    pub shader_storage_buffer_array_non_uniform_indexing: u32,
20897    pub shader_storage_image_array_non_uniform_indexing: u32,
20898    pub shader_input_attachment_array_non_uniform_indexing: u32,
20899    pub shader_uniform_texel_buffer_array_non_uniform_indexing: u32,
20900    pub shader_storage_texel_buffer_array_non_uniform_indexing: u32,
20901    pub descriptor_binding_uniform_buffer_update_after_bind: u32,
20902    pub descriptor_binding_sampled_image_update_after_bind: u32,
20903    pub descriptor_binding_storage_image_update_after_bind: u32,
20904    pub descriptor_binding_storage_buffer_update_after_bind: u32,
20905    pub descriptor_binding_uniform_texel_buffer_update_after_bind: u32,
20906    pub descriptor_binding_storage_texel_buffer_update_after_bind: u32,
20907    pub descriptor_binding_update_unused_while_pending: u32,
20908    pub descriptor_binding_partially_bound: u32,
20909    pub descriptor_binding_variable_descriptor_count: u32,
20910    pub runtime_descriptor_array: u32,
20911    pub sampler_filter_minmax: u32,
20912    pub scalar_block_layout: u32,
20913    pub imageless_framebuffer: u32,
20914    pub uniform_buffer_standard_layout: u32,
20915    pub shader_subgroup_extended_types: u32,
20916    pub separate_depth_stencil_layouts: u32,
20917    pub host_query_reset: u32,
20918    pub timeline_semaphore: u32,
20919    pub buffer_device_address: u32,
20920    pub buffer_device_address_capture_replay: u32,
20921    pub buffer_device_address_multi_device: u32,
20922    pub vulkan_memory_model: u32,
20923    pub vulkan_memory_model_device_scope: u32,
20924    pub vulkan_memory_model_availability_visibility_chains: u32,
20925    pub shader_output_viewport_index: u32,
20926    pub shader_output_layer: u32,
20927    pub subgroup_broadcast_dynamic_id: u32,
20928}
20929impl Default for PhysicalDeviceVulkan12Features {
20930    #[inline]
20931    fn default() -> Self {
20932        Self {
20933            s_type: StructureType::from_raw(51i32),
20934            p_next: core::ptr::null_mut(),
20935            sampler_mirror_clamp_to_edge: Default::default(),
20936            draw_indirect_count: Default::default(),
20937            storage_buffer8_bit_access: Default::default(),
20938            uniform_and_storage_buffer8_bit_access: Default::default(),
20939            storage_push_constant8: Default::default(),
20940            shader_buffer_int64_atomics: Default::default(),
20941            shader_shared_int64_atomics: Default::default(),
20942            shader_float16: Default::default(),
20943            shader_int8: Default::default(),
20944            descriptor_indexing: Default::default(),
20945            shader_input_attachment_array_dynamic_indexing: Default::default(),
20946            shader_uniform_texel_buffer_array_dynamic_indexing: Default::default(),
20947            shader_storage_texel_buffer_array_dynamic_indexing: Default::default(),
20948            shader_uniform_buffer_array_non_uniform_indexing: Default::default(),
20949            shader_sampled_image_array_non_uniform_indexing: Default::default(),
20950            shader_storage_buffer_array_non_uniform_indexing: Default::default(),
20951            shader_storage_image_array_non_uniform_indexing: Default::default(),
20952            shader_input_attachment_array_non_uniform_indexing: Default::default(),
20953            shader_uniform_texel_buffer_array_non_uniform_indexing: Default::default(),
20954            shader_storage_texel_buffer_array_non_uniform_indexing: Default::default(),
20955            descriptor_binding_uniform_buffer_update_after_bind: Default::default(),
20956            descriptor_binding_sampled_image_update_after_bind: Default::default(),
20957            descriptor_binding_storage_image_update_after_bind: Default::default(),
20958            descriptor_binding_storage_buffer_update_after_bind: Default::default(),
20959            descriptor_binding_uniform_texel_buffer_update_after_bind: Default::default(),
20960            descriptor_binding_storage_texel_buffer_update_after_bind: Default::default(),
20961            descriptor_binding_update_unused_while_pending: Default::default(),
20962            descriptor_binding_partially_bound: Default::default(),
20963            descriptor_binding_variable_descriptor_count: Default::default(),
20964            runtime_descriptor_array: Default::default(),
20965            sampler_filter_minmax: Default::default(),
20966            scalar_block_layout: Default::default(),
20967            imageless_framebuffer: Default::default(),
20968            uniform_buffer_standard_layout: Default::default(),
20969            shader_subgroup_extended_types: Default::default(),
20970            separate_depth_stencil_layouts: Default::default(),
20971            host_query_reset: Default::default(),
20972            timeline_semaphore: Default::default(),
20973            buffer_device_address: Default::default(),
20974            buffer_device_address_capture_replay: Default::default(),
20975            buffer_device_address_multi_device: Default::default(),
20976            vulkan_memory_model: Default::default(),
20977            vulkan_memory_model_device_scope: Default::default(),
20978            vulkan_memory_model_availability_visibility_chains: Default::default(),
20979            shader_output_viewport_index: Default::default(),
20980            shader_output_layer: Default::default(),
20981            subgroup_broadcast_dynamic_id: Default::default(),
20982        }
20983    }
20984}
20985///[`VkPhysicalDeviceVulkan12Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan12Properties.html)
20986/**
20987Provided by **VK_BASE_VERSION_1_2**.*/
20988/**
20989**Returned only**, filled by Vulkan, not constructed by the application.*/
20990///
20991///# Extends
20992///- [`PhysicalDeviceProperties2`]
20993#[repr(C)]
20994#[derive(Copy, Clone, Debug)]
20995#[doc(alias = "VkPhysicalDeviceVulkan12Properties")]
20996pub struct PhysicalDeviceVulkan12Properties {
20997    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES`.
20998    pub s_type: StructureType,
20999    ///Optional, may be null.
21000    pub p_next: *mut core::ffi::c_void,
21001    pub driver_id: DriverId,
21002    pub driver_name: crate::StringArray<{ MAX_DRIVER_NAME_SIZE as usize }>,
21003    pub driver_info: crate::StringArray<{ MAX_DRIVER_INFO_SIZE as usize }>,
21004    pub conformance_version: ConformanceVersion,
21005    pub denorm_behavior_independence: ShaderFloatControlsIndependence,
21006    pub rounding_mode_independence: ShaderFloatControlsIndependence,
21007    pub shader_signed_zero_inf_nan_preserve_float16: u32,
21008    pub shader_signed_zero_inf_nan_preserve_float32: u32,
21009    pub shader_signed_zero_inf_nan_preserve_float64: u32,
21010    pub shader_denorm_preserve_float16: u32,
21011    pub shader_denorm_preserve_float32: u32,
21012    pub shader_denorm_preserve_float64: u32,
21013    pub shader_denorm_flush_to_zero_float16: u32,
21014    pub shader_denorm_flush_to_zero_float32: u32,
21015    pub shader_denorm_flush_to_zero_float64: u32,
21016    pub shader_rounding_mode_rte_float16: u32,
21017    pub shader_rounding_mode_rte_float32: u32,
21018    pub shader_rounding_mode_rte_float64: u32,
21019    pub shader_rounding_mode_rtz_float16: u32,
21020    pub shader_rounding_mode_rtz_float32: u32,
21021    pub shader_rounding_mode_rtz_float64: u32,
21022    pub max_update_after_bind_descriptors_in_all_pools: u32,
21023    pub shader_uniform_buffer_array_non_uniform_indexing_native: u32,
21024    pub shader_sampled_image_array_non_uniform_indexing_native: u32,
21025    pub shader_storage_buffer_array_non_uniform_indexing_native: u32,
21026    pub shader_storage_image_array_non_uniform_indexing_native: u32,
21027    pub shader_input_attachment_array_non_uniform_indexing_native: u32,
21028    pub robust_buffer_access_update_after_bind: u32,
21029    pub quad_divergent_implicit_lod: u32,
21030    pub max_per_stage_descriptor_update_after_bind_samplers: u32,
21031    pub max_per_stage_descriptor_update_after_bind_uniform_buffers: u32,
21032    pub max_per_stage_descriptor_update_after_bind_storage_buffers: u32,
21033    pub max_per_stage_descriptor_update_after_bind_sampled_images: u32,
21034    pub max_per_stage_descriptor_update_after_bind_storage_images: u32,
21035    pub max_per_stage_descriptor_update_after_bind_input_attachments: u32,
21036    pub max_per_stage_update_after_bind_resources: u32,
21037    pub max_descriptor_set_update_after_bind_samplers: u32,
21038    pub max_descriptor_set_update_after_bind_uniform_buffers: u32,
21039    pub max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32,
21040    pub max_descriptor_set_update_after_bind_storage_buffers: u32,
21041    pub max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32,
21042    pub max_descriptor_set_update_after_bind_sampled_images: u32,
21043    pub max_descriptor_set_update_after_bind_storage_images: u32,
21044    pub max_descriptor_set_update_after_bind_input_attachments: u32,
21045    pub supported_depth_resolve_modes: ResolveModeFlags,
21046    pub supported_stencil_resolve_modes: ResolveModeFlags,
21047    pub independent_resolve_none: u32,
21048    pub independent_resolve: u32,
21049    pub filter_minmax_single_component_formats: u32,
21050    pub filter_minmax_image_component_mapping: u32,
21051    pub max_timeline_semaphore_value_difference: u64,
21052    pub framebuffer_integer_color_sample_counts: SampleCountFlags,
21053}
21054impl Default for PhysicalDeviceVulkan12Properties {
21055    #[inline]
21056    fn default() -> Self {
21057        Self {
21058            s_type: StructureType::from_raw(52i32),
21059            p_next: core::ptr::null_mut(),
21060            driver_id: Default::default(),
21061            driver_name: unsafe { core::mem::zeroed() },
21062            driver_info: unsafe { core::mem::zeroed() },
21063            conformance_version: Default::default(),
21064            denorm_behavior_independence: Default::default(),
21065            rounding_mode_independence: Default::default(),
21066            shader_signed_zero_inf_nan_preserve_float16: Default::default(),
21067            shader_signed_zero_inf_nan_preserve_float32: Default::default(),
21068            shader_signed_zero_inf_nan_preserve_float64: Default::default(),
21069            shader_denorm_preserve_float16: Default::default(),
21070            shader_denorm_preserve_float32: Default::default(),
21071            shader_denorm_preserve_float64: Default::default(),
21072            shader_denorm_flush_to_zero_float16: Default::default(),
21073            shader_denorm_flush_to_zero_float32: Default::default(),
21074            shader_denorm_flush_to_zero_float64: Default::default(),
21075            shader_rounding_mode_rte_float16: Default::default(),
21076            shader_rounding_mode_rte_float32: Default::default(),
21077            shader_rounding_mode_rte_float64: Default::default(),
21078            shader_rounding_mode_rtz_float16: Default::default(),
21079            shader_rounding_mode_rtz_float32: Default::default(),
21080            shader_rounding_mode_rtz_float64: Default::default(),
21081            max_update_after_bind_descriptors_in_all_pools: Default::default(),
21082            shader_uniform_buffer_array_non_uniform_indexing_native: Default::default(),
21083            shader_sampled_image_array_non_uniform_indexing_native: Default::default(),
21084            shader_storage_buffer_array_non_uniform_indexing_native: Default::default(),
21085            shader_storage_image_array_non_uniform_indexing_native: Default::default(),
21086            shader_input_attachment_array_non_uniform_indexing_native: Default::default(),
21087            robust_buffer_access_update_after_bind: Default::default(),
21088            quad_divergent_implicit_lod: Default::default(),
21089            max_per_stage_descriptor_update_after_bind_samplers: Default::default(),
21090            max_per_stage_descriptor_update_after_bind_uniform_buffers: Default::default(),
21091            max_per_stage_descriptor_update_after_bind_storage_buffers: Default::default(),
21092            max_per_stage_descriptor_update_after_bind_sampled_images: Default::default(),
21093            max_per_stage_descriptor_update_after_bind_storage_images: Default::default(),
21094            max_per_stage_descriptor_update_after_bind_input_attachments: Default::default(),
21095            max_per_stage_update_after_bind_resources: Default::default(),
21096            max_descriptor_set_update_after_bind_samplers: Default::default(),
21097            max_descriptor_set_update_after_bind_uniform_buffers: Default::default(),
21098            max_descriptor_set_update_after_bind_uniform_buffers_dynamic: Default::default(),
21099            max_descriptor_set_update_after_bind_storage_buffers: Default::default(),
21100            max_descriptor_set_update_after_bind_storage_buffers_dynamic: Default::default(),
21101            max_descriptor_set_update_after_bind_sampled_images: Default::default(),
21102            max_descriptor_set_update_after_bind_storage_images: Default::default(),
21103            max_descriptor_set_update_after_bind_input_attachments: Default::default(),
21104            supported_depth_resolve_modes: Default::default(),
21105            supported_stencil_resolve_modes: Default::default(),
21106            independent_resolve_none: Default::default(),
21107            independent_resolve: Default::default(),
21108            filter_minmax_single_component_formats: Default::default(),
21109            filter_minmax_image_component_mapping: Default::default(),
21110            max_timeline_semaphore_value_difference: Default::default(),
21111            framebuffer_integer_color_sample_counts: Default::default(),
21112        }
21113    }
21114}
21115///[`VkPhysicalDeviceVulkan13Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan13Features.html)
21116/**
21117Provided by **VK_BASE_VERSION_1_3**.*/
21118///
21119///# Extends
21120///- [`PhysicalDeviceFeatures2`]
21121///- [`DeviceCreateInfo`]
21122#[repr(C)]
21123#[derive(Copy, Clone, Debug)]
21124#[doc(alias = "VkPhysicalDeviceVulkan13Features")]
21125pub struct PhysicalDeviceVulkan13Features {
21126    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES`.
21127    pub s_type: StructureType,
21128    ///Optional, may be null.
21129    pub p_next: *mut core::ffi::c_void,
21130    pub robust_image_access: u32,
21131    pub inline_uniform_block: u32,
21132    pub descriptor_binding_inline_uniform_block_update_after_bind: u32,
21133    pub pipeline_creation_cache_control: u32,
21134    pub private_data: u32,
21135    pub shader_demote_to_helper_invocation: u32,
21136    pub shader_terminate_invocation: u32,
21137    pub subgroup_size_control: u32,
21138    pub compute_full_subgroups: u32,
21139    pub synchronization2: u32,
21140    pub texture_compression_astc_hdr: u32,
21141    pub shader_zero_initialize_workgroup_memory: u32,
21142    pub dynamic_rendering: u32,
21143    pub shader_integer_dot_product: u32,
21144    pub maintenance4: u32,
21145}
21146impl Default for PhysicalDeviceVulkan13Features {
21147    #[inline]
21148    fn default() -> Self {
21149        Self {
21150            s_type: StructureType::from_raw(53i32),
21151            p_next: core::ptr::null_mut(),
21152            robust_image_access: Default::default(),
21153            inline_uniform_block: Default::default(),
21154            descriptor_binding_inline_uniform_block_update_after_bind: Default::default(),
21155            pipeline_creation_cache_control: Default::default(),
21156            private_data: Default::default(),
21157            shader_demote_to_helper_invocation: Default::default(),
21158            shader_terminate_invocation: Default::default(),
21159            subgroup_size_control: Default::default(),
21160            compute_full_subgroups: Default::default(),
21161            synchronization2: Default::default(),
21162            texture_compression_astc_hdr: Default::default(),
21163            shader_zero_initialize_workgroup_memory: Default::default(),
21164            dynamic_rendering: Default::default(),
21165            shader_integer_dot_product: Default::default(),
21166            maintenance4: Default::default(),
21167        }
21168    }
21169}
21170///[`VkPhysicalDeviceVulkan13Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan13Properties.html)
21171/**
21172Provided by **VK_BASE_VERSION_1_3**.*/
21173/**
21174**Returned only**, filled by Vulkan, not constructed by the application.*/
21175///
21176///# Extends
21177///- [`PhysicalDeviceProperties2`]
21178#[repr(C)]
21179#[derive(Copy, Clone, Debug)]
21180#[doc(alias = "VkPhysicalDeviceVulkan13Properties")]
21181pub struct PhysicalDeviceVulkan13Properties {
21182    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES`.
21183    pub s_type: StructureType,
21184    ///Optional, may be null.
21185    pub p_next: *mut core::ffi::c_void,
21186    pub min_subgroup_size: u32,
21187    pub max_subgroup_size: u32,
21188    pub max_compute_workgroup_subgroups: u32,
21189    pub required_subgroup_size_stages: ShaderStageFlags,
21190    pub max_inline_uniform_block_size: u32,
21191    pub max_per_stage_descriptor_inline_uniform_blocks: u32,
21192    pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
21193    pub max_descriptor_set_inline_uniform_blocks: u32,
21194    pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
21195    pub max_inline_uniform_total_size: u32,
21196    pub integer_dot_product8_bit_unsigned_accelerated: u32,
21197    pub integer_dot_product8_bit_signed_accelerated: u32,
21198    pub integer_dot_product8_bit_mixed_signedness_accelerated: u32,
21199    pub integer_dot_product4x8_bit_packed_unsigned_accelerated: u32,
21200    pub integer_dot_product4x8_bit_packed_signed_accelerated: u32,
21201    pub integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: u32,
21202    pub integer_dot_product16_bit_unsigned_accelerated: u32,
21203    pub integer_dot_product16_bit_signed_accelerated: u32,
21204    pub integer_dot_product16_bit_mixed_signedness_accelerated: u32,
21205    pub integer_dot_product32_bit_unsigned_accelerated: u32,
21206    pub integer_dot_product32_bit_signed_accelerated: u32,
21207    pub integer_dot_product32_bit_mixed_signedness_accelerated: u32,
21208    pub integer_dot_product64_bit_unsigned_accelerated: u32,
21209    pub integer_dot_product64_bit_signed_accelerated: u32,
21210    pub integer_dot_product64_bit_mixed_signedness_accelerated: u32,
21211    pub integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: u32,
21212    pub integer_dot_product_accumulating_saturating8_bit_signed_accelerated: u32,
21213    pub integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: u32,
21214    pub integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: u32,
21215    pub integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: u32,
21216    pub integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: u32,
21217    pub integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: u32,
21218    pub integer_dot_product_accumulating_saturating16_bit_signed_accelerated: u32,
21219    pub integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: u32,
21220    pub integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: u32,
21221    pub integer_dot_product_accumulating_saturating32_bit_signed_accelerated: u32,
21222    pub integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: u32,
21223    pub integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: u32,
21224    pub integer_dot_product_accumulating_saturating64_bit_signed_accelerated: u32,
21225    pub integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: u32,
21226    pub storage_texel_buffer_offset_alignment_bytes: u64,
21227    pub storage_texel_buffer_offset_single_texel_alignment: u32,
21228    pub uniform_texel_buffer_offset_alignment_bytes: u64,
21229    pub uniform_texel_buffer_offset_single_texel_alignment: u32,
21230    pub max_buffer_size: u64,
21231}
21232impl Default for PhysicalDeviceVulkan13Properties {
21233    #[inline]
21234    fn default() -> Self {
21235        Self {
21236            s_type: StructureType::from_raw(54i32),
21237            p_next: core::ptr::null_mut(),
21238            min_subgroup_size: Default::default(),
21239            max_subgroup_size: Default::default(),
21240            max_compute_workgroup_subgroups: Default::default(),
21241            required_subgroup_size_stages: Default::default(),
21242            max_inline_uniform_block_size: Default::default(),
21243            max_per_stage_descriptor_inline_uniform_blocks: Default::default(),
21244            max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: Default::default(),
21245            max_descriptor_set_inline_uniform_blocks: Default::default(),
21246            max_descriptor_set_update_after_bind_inline_uniform_blocks: Default::default(),
21247            max_inline_uniform_total_size: Default::default(),
21248            integer_dot_product8_bit_unsigned_accelerated: Default::default(),
21249            integer_dot_product8_bit_signed_accelerated: Default::default(),
21250            integer_dot_product8_bit_mixed_signedness_accelerated: Default::default(),
21251            integer_dot_product4x8_bit_packed_unsigned_accelerated: Default::default(),
21252            integer_dot_product4x8_bit_packed_signed_accelerated: Default::default(),
21253            integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: Default::default(),
21254            integer_dot_product16_bit_unsigned_accelerated: Default::default(),
21255            integer_dot_product16_bit_signed_accelerated: Default::default(),
21256            integer_dot_product16_bit_mixed_signedness_accelerated: Default::default(),
21257            integer_dot_product32_bit_unsigned_accelerated: Default::default(),
21258            integer_dot_product32_bit_signed_accelerated: Default::default(),
21259            integer_dot_product32_bit_mixed_signedness_accelerated: Default::default(),
21260            integer_dot_product64_bit_unsigned_accelerated: Default::default(),
21261            integer_dot_product64_bit_signed_accelerated: Default::default(),
21262            integer_dot_product64_bit_mixed_signedness_accelerated: Default::default(),
21263            integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: Default::default(),
21264            integer_dot_product_accumulating_saturating8_bit_signed_accelerated: Default::default(),
21265            integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: Default::default(),
21266            integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: Default::default(),
21267            integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: Default::default(),
21268            integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: Default::default(),
21269            integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: Default::default(),
21270            integer_dot_product_accumulating_saturating16_bit_signed_accelerated: Default::default(),
21271            integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: Default::default(),
21272            integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: Default::default(),
21273            integer_dot_product_accumulating_saturating32_bit_signed_accelerated: Default::default(),
21274            integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: Default::default(),
21275            integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: Default::default(),
21276            integer_dot_product_accumulating_saturating64_bit_signed_accelerated: Default::default(),
21277            integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: Default::default(),
21278            storage_texel_buffer_offset_alignment_bytes: Default::default(),
21279            storage_texel_buffer_offset_single_texel_alignment: Default::default(),
21280            uniform_texel_buffer_offset_alignment_bytes: Default::default(),
21281            uniform_texel_buffer_offset_single_texel_alignment: Default::default(),
21282            max_buffer_size: Default::default(),
21283        }
21284    }
21285}
21286///[`VkPhysicalDeviceVulkan14Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan14Features.html)
21287/**
21288Provided by **VK_BASE_VERSION_1_4**.*/
21289///
21290///# Extends
21291///- [`PhysicalDeviceFeatures2`]
21292///- [`DeviceCreateInfo`]
21293#[repr(C)]
21294#[derive(Copy, Clone, Debug)]
21295#[doc(alias = "VkPhysicalDeviceVulkan14Features")]
21296pub struct PhysicalDeviceVulkan14Features {
21297    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES`.
21298    pub s_type: StructureType,
21299    ///Optional, may be null.
21300    pub p_next: *mut core::ffi::c_void,
21301    pub global_priority_query: u32,
21302    pub shader_subgroup_rotate: u32,
21303    pub shader_subgroup_rotate_clustered: u32,
21304    pub shader_float_controls2: u32,
21305    pub shader_expect_assume: u32,
21306    pub rectangular_lines: u32,
21307    pub bresenham_lines: u32,
21308    pub smooth_lines: u32,
21309    pub stippled_rectangular_lines: u32,
21310    pub stippled_bresenham_lines: u32,
21311    pub stippled_smooth_lines: u32,
21312    pub vertex_attribute_instance_rate_divisor: u32,
21313    pub vertex_attribute_instance_rate_zero_divisor: u32,
21314    pub index_type_uint8: u32,
21315    pub dynamic_rendering_local_read: u32,
21316    pub maintenance5: u32,
21317    pub maintenance6: u32,
21318    pub pipeline_protected_access: u32,
21319    pub pipeline_robustness: u32,
21320    pub host_image_copy: u32,
21321    pub push_descriptor: u32,
21322}
21323impl Default for PhysicalDeviceVulkan14Features {
21324    #[inline]
21325    fn default() -> Self {
21326        Self {
21327            s_type: StructureType::from_raw(55i32),
21328            p_next: core::ptr::null_mut(),
21329            global_priority_query: Default::default(),
21330            shader_subgroup_rotate: Default::default(),
21331            shader_subgroup_rotate_clustered: Default::default(),
21332            shader_float_controls2: Default::default(),
21333            shader_expect_assume: Default::default(),
21334            rectangular_lines: Default::default(),
21335            bresenham_lines: Default::default(),
21336            smooth_lines: Default::default(),
21337            stippled_rectangular_lines: Default::default(),
21338            stippled_bresenham_lines: Default::default(),
21339            stippled_smooth_lines: Default::default(),
21340            vertex_attribute_instance_rate_divisor: Default::default(),
21341            vertex_attribute_instance_rate_zero_divisor: Default::default(),
21342            index_type_uint8: Default::default(),
21343            dynamic_rendering_local_read: Default::default(),
21344            maintenance5: Default::default(),
21345            maintenance6: Default::default(),
21346            pipeline_protected_access: Default::default(),
21347            pipeline_robustness: Default::default(),
21348            host_image_copy: Default::default(),
21349            push_descriptor: Default::default(),
21350        }
21351    }
21352}
21353///[`VkPhysicalDeviceVulkan14Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkan14Properties.html)
21354/**
21355Provided by **VK_BASE_VERSION_1_4**.*/
21356/**
21357**Returned only**, filled by Vulkan, not constructed by the application.*/
21358///
21359///# Extends
21360///- [`PhysicalDeviceProperties2`]
21361#[repr(C)]
21362#[derive(Copy, Clone, Debug)]
21363#[doc(alias = "VkPhysicalDeviceVulkan14Properties")]
21364pub struct PhysicalDeviceVulkan14Properties {
21365    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES`.
21366    pub s_type: StructureType,
21367    ///Optional, may be null.
21368    pub p_next: *mut core::ffi::c_void,
21369    pub line_sub_pixel_precision_bits: u32,
21370    pub max_vertex_attrib_divisor: u32,
21371    pub supports_non_zero_first_instance: u32,
21372    pub max_push_descriptors: u32,
21373    pub dynamic_rendering_local_read_depth_stencil_attachments: u32,
21374    pub dynamic_rendering_local_read_multisampled_attachments: u32,
21375    pub early_fragment_multisample_coverage_after_sample_counting: u32,
21376    pub early_fragment_sample_mask_test_before_sample_counting: u32,
21377    pub depth_stencil_swizzle_one_support: u32,
21378    pub polygon_mode_point_size: u32,
21379    pub non_strict_single_pixel_wide_lines_use_parallelogram: u32,
21380    pub non_strict_wide_lines_use_parallelogram: u32,
21381    pub block_texel_view_compatible_multiple_layers: u32,
21382    pub max_combined_image_sampler_descriptor_count: u32,
21383    pub fragment_shading_rate_clamp_combiner_inputs: u32,
21384    pub default_robustness_storage_buffers: PipelineRobustnessBufferBehavior,
21385    pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior,
21386    pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior,
21387    pub default_robustness_images: PipelineRobustnessImageBehavior,
21388    ///Length of `p_copy_src_layouts`.
21389    pub copy_src_layout_count: u32,
21390    ///Optional, may be null.
21391    pub p_copy_src_layouts: *mut ImageLayout,
21392    ///Length of `p_copy_dst_layouts`.
21393    pub copy_dst_layout_count: u32,
21394    ///Optional, may be null.
21395    pub p_copy_dst_layouts: *mut ImageLayout,
21396    pub optimal_tiling_layout_uuid: [u8; UUID_SIZE as usize],
21397    pub identical_memory_type_requirements: u32,
21398}
21399impl Default for PhysicalDeviceVulkan14Properties {
21400    #[inline]
21401    fn default() -> Self {
21402        Self {
21403            s_type: StructureType::from_raw(56i32),
21404            p_next: core::ptr::null_mut(),
21405            line_sub_pixel_precision_bits: Default::default(),
21406            max_vertex_attrib_divisor: Default::default(),
21407            supports_non_zero_first_instance: Default::default(),
21408            max_push_descriptors: Default::default(),
21409            dynamic_rendering_local_read_depth_stencil_attachments: Default::default(),
21410            dynamic_rendering_local_read_multisampled_attachments: Default::default(),
21411            early_fragment_multisample_coverage_after_sample_counting: Default::default(),
21412            early_fragment_sample_mask_test_before_sample_counting: Default::default(),
21413            depth_stencil_swizzle_one_support: Default::default(),
21414            polygon_mode_point_size: Default::default(),
21415            non_strict_single_pixel_wide_lines_use_parallelogram: Default::default(),
21416            non_strict_wide_lines_use_parallelogram: Default::default(),
21417            block_texel_view_compatible_multiple_layers: Default::default(),
21418            max_combined_image_sampler_descriptor_count: Default::default(),
21419            fragment_shading_rate_clamp_combiner_inputs: Default::default(),
21420            default_robustness_storage_buffers: Default::default(),
21421            default_robustness_uniform_buffers: Default::default(),
21422            default_robustness_vertex_inputs: Default::default(),
21423            default_robustness_images: Default::default(),
21424            copy_src_layout_count: Default::default(),
21425            p_copy_src_layouts: core::ptr::null_mut(),
21426            copy_dst_layout_count: Default::default(),
21427            p_copy_dst_layouts: core::ptr::null_mut(),
21428            optimal_tiling_layout_uuid: unsafe { core::mem::zeroed() },
21429            identical_memory_type_requirements: Default::default(),
21430        }
21431    }
21432}
21433///[`VkPipelineCompilerControlCreateInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineCompilerControlCreateInfoAMD.html)
21434/**
21435Provided by **VK_AMD_pipeline_compiler_control**.*/
21436///
21437///# Extends
21438///- [`GraphicsPipelineCreateInfo`]
21439///- [`ComputePipelineCreateInfo`]
21440///- [`ExecutionGraphPipelineCreateInfoAMDX`]
21441#[repr(C)]
21442#[derive(Copy, Clone, Debug)]
21443#[doc(alias = "VkPipelineCompilerControlCreateInfoAMD")]
21444pub struct PipelineCompilerControlCreateInfoAMD {
21445    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD`.
21446    pub s_type: StructureType,
21447    ///Optional, may be null.
21448    pub p_next: *const core::ffi::c_void,
21449    pub compiler_control_flags: PipelineCompilerControlFlagsAMD,
21450}
21451impl Default for PipelineCompilerControlCreateInfoAMD {
21452    #[inline]
21453    fn default() -> Self {
21454        Self {
21455            s_type: StructureType::from_raw(1000183000i32),
21456            p_next: core::ptr::null(),
21457            compiler_control_flags: Default::default(),
21458        }
21459    }
21460}
21461///[`VkPhysicalDeviceCoherentMemoryFeaturesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCoherentMemoryFeaturesAMD.html)
21462/**
21463Provided by **VK_AMD_device_coherent_memory**.*/
21464///
21465///# Extends
21466///- [`PhysicalDeviceFeatures2`]
21467///- [`DeviceCreateInfo`]
21468#[repr(C)]
21469#[derive(Copy, Clone, Debug)]
21470#[doc(alias = "VkPhysicalDeviceCoherentMemoryFeaturesAMD")]
21471pub struct PhysicalDeviceCoherentMemoryFeaturesAMD {
21472    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD`.
21473    pub s_type: StructureType,
21474    ///Optional, may be null.
21475    pub p_next: *mut core::ffi::c_void,
21476    pub device_coherent_memory: u32,
21477}
21478impl Default for PhysicalDeviceCoherentMemoryFeaturesAMD {
21479    #[inline]
21480    fn default() -> Self {
21481        Self {
21482            s_type: StructureType::from_raw(1000229000i32),
21483            p_next: core::ptr::null_mut(),
21484            device_coherent_memory: Default::default(),
21485        }
21486    }
21487}
21488///[`VkFaultData`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFaultData.html)
21489/**
21490Provided by **VKSC_VERSION_1_0**.*/
21491/**
21492**Returned only**, filled by Vulkan, not constructed by the application.*/
21493#[repr(C)]
21494#[derive(Copy, Clone, Debug)]
21495#[doc(alias = "VkFaultData")]
21496pub struct FaultData {
21497    ///Must be `VK_STRUCTURE_TYPE_FAULT_DATA`.
21498    pub s_type: StructureType,
21499    ///Optional, may be null.
21500    pub p_next: *mut core::ffi::c_void,
21501    pub fault_level: FaultLevel,
21502    pub fault_type: FaultType,
21503}
21504impl Default for FaultData {
21505    #[inline]
21506    fn default() -> Self {
21507        Self {
21508            s_type: StructureType::from_raw(1000298007i32),
21509            p_next: core::ptr::null_mut(),
21510            fault_level: Default::default(),
21511            fault_type: Default::default(),
21512        }
21513    }
21514}
21515///[`VkFaultCallbackInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFaultCallbackInfo.html)
21516/**
21517Provided by **VKSC_VERSION_1_0**.*/
21518///
21519///# Extends
21520///- [`DeviceCreateInfo`]
21521#[repr(C)]
21522#[derive(Copy, Clone, Debug)]
21523#[doc(alias = "VkFaultCallbackInfo")]
21524pub struct FaultCallbackInfo {
21525    ///Must be `VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO`.
21526    pub s_type: StructureType,
21527    ///Optional, may be null.
21528    pub p_next: *const core::ffi::c_void,
21529    ///Length of `p_faults`.
21530    pub fault_count: u32,
21531    ///Optional, may be null.
21532    pub p_faults: *mut FaultData,
21533    pub pfn_fault_callback: PFN_vkFaultCallbackFunction,
21534}
21535impl Default for FaultCallbackInfo {
21536    #[inline]
21537    fn default() -> Self {
21538        Self {
21539            s_type: StructureType::from_raw(1000298008i32),
21540            p_next: core::ptr::null(),
21541            fault_count: Default::default(),
21542            p_faults: core::ptr::null_mut(),
21543            pfn_fault_callback: Default::default(),
21544        }
21545    }
21546}
21547///[`VkPhysicalDeviceToolProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceToolProperties.html)
21548/**
21549Provided by **VK_BASE_VERSION_1_3**.*/
21550/**
21551**Returned only**, filled by Vulkan, not constructed by the application.*/
21552#[repr(C)]
21553#[derive(Copy, Clone, Debug)]
21554#[doc(alias = "VkPhysicalDeviceToolProperties")]
21555pub struct PhysicalDeviceToolProperties {
21556    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES`.
21557    pub s_type: StructureType,
21558    ///Optional, may be null.
21559    pub p_next: *mut core::ffi::c_void,
21560    pub name: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
21561    pub version: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
21562    pub purposes: ToolPurposeFlags,
21563    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
21564    pub layer: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
21565}
21566impl Default for PhysicalDeviceToolProperties {
21567    #[inline]
21568    fn default() -> Self {
21569        Self {
21570            s_type: StructureType::from_raw(1000245000i32),
21571            p_next: core::ptr::null_mut(),
21572            name: unsafe { core::mem::zeroed() },
21573            version: unsafe { core::mem::zeroed() },
21574            purposes: Default::default(),
21575            description: unsafe { core::mem::zeroed() },
21576            layer: unsafe { core::mem::zeroed() },
21577        }
21578    }
21579}
21580///[`VkSamplerCustomBorderColorCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCustomBorderColorCreateInfoEXT.html)
21581/**
21582Provided by **VK_EXT_custom_border_color**.*/
21583///
21584///# Extends
21585///- [`SamplerCreateInfo`]
21586#[repr(C)]
21587#[derive(Copy, Clone, Debug)]
21588#[doc(alias = "VkSamplerCustomBorderColorCreateInfoEXT")]
21589pub struct SamplerCustomBorderColorCreateInfoEXT {
21590    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT`.
21591    pub s_type: StructureType,
21592    ///Optional, may be null.
21593    pub p_next: *const core::ffi::c_void,
21594    pub custom_border_color: ClearColorValue,
21595    pub format: Format,
21596}
21597impl Default for SamplerCustomBorderColorCreateInfoEXT {
21598    #[inline]
21599    fn default() -> Self {
21600        Self {
21601            s_type: StructureType::from_raw(1000287000i32),
21602            p_next: core::ptr::null(),
21603            custom_border_color: Default::default(),
21604            format: Default::default(),
21605        }
21606    }
21607}
21608///[`VkPhysicalDeviceCustomBorderColorPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCustomBorderColorPropertiesEXT.html)
21609/**
21610Provided by **VK_EXT_custom_border_color**.*/
21611/**
21612**Returned only**, filled by Vulkan, not constructed by the application.*/
21613///
21614///# Extends
21615///- [`PhysicalDeviceProperties2`]
21616#[repr(C)]
21617#[derive(Copy, Clone, Debug)]
21618#[doc(alias = "VkPhysicalDeviceCustomBorderColorPropertiesEXT")]
21619pub struct PhysicalDeviceCustomBorderColorPropertiesEXT {
21620    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT`.
21621    pub s_type: StructureType,
21622    ///Optional, may be null.
21623    pub p_next: *mut core::ffi::c_void,
21624    pub max_custom_border_color_samplers: u32,
21625}
21626impl Default for PhysicalDeviceCustomBorderColorPropertiesEXT {
21627    #[inline]
21628    fn default() -> Self {
21629        Self {
21630            s_type: StructureType::from_raw(1000287001i32),
21631            p_next: core::ptr::null_mut(),
21632            max_custom_border_color_samplers: Default::default(),
21633        }
21634    }
21635}
21636///[`VkPhysicalDeviceCustomBorderColorFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCustomBorderColorFeaturesEXT.html)
21637/**
21638Provided by **VK_EXT_custom_border_color**.*/
21639///
21640///# Extends
21641///- [`PhysicalDeviceFeatures2`]
21642///- [`DeviceCreateInfo`]
21643#[repr(C)]
21644#[derive(Copy, Clone, Debug)]
21645#[doc(alias = "VkPhysicalDeviceCustomBorderColorFeaturesEXT")]
21646pub struct PhysicalDeviceCustomBorderColorFeaturesEXT {
21647    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT`.
21648    pub s_type: StructureType,
21649    ///Optional, may be null.
21650    pub p_next: *mut core::ffi::c_void,
21651    pub custom_border_colors: u32,
21652    pub custom_border_color_without_format: u32,
21653}
21654impl Default for PhysicalDeviceCustomBorderColorFeaturesEXT {
21655    #[inline]
21656    fn default() -> Self {
21657        Self {
21658            s_type: StructureType::from_raw(1000287002i32),
21659            p_next: core::ptr::null_mut(),
21660            custom_border_colors: Default::default(),
21661            custom_border_color_without_format: Default::default(),
21662        }
21663    }
21664}
21665///[`VkSamplerBorderColorComponentMappingCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerBorderColorComponentMappingCreateInfoEXT.html)
21666/**
21667Provided by **VK_EXT_border_color_swizzle**.*/
21668///
21669///# Extends
21670///- [`SamplerCreateInfo`]
21671#[repr(C)]
21672#[derive(Copy, Clone, Debug)]
21673#[doc(alias = "VkSamplerBorderColorComponentMappingCreateInfoEXT")]
21674pub struct SamplerBorderColorComponentMappingCreateInfoEXT {
21675    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT`.
21676    pub s_type: StructureType,
21677    ///Optional, may be null.
21678    pub p_next: *const core::ffi::c_void,
21679    pub components: ComponentMapping,
21680    pub srgb: u32,
21681}
21682impl Default for SamplerBorderColorComponentMappingCreateInfoEXT {
21683    #[inline]
21684    fn default() -> Self {
21685        Self {
21686            s_type: StructureType::from_raw(1000411001i32),
21687            p_next: core::ptr::null(),
21688            components: Default::default(),
21689            srgb: Default::default(),
21690        }
21691    }
21692}
21693///[`VkPhysicalDeviceBorderColorSwizzleFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.html)
21694/**
21695Provided by **VK_EXT_border_color_swizzle**.*/
21696///
21697///# Extends
21698///- [`PhysicalDeviceFeatures2`]
21699///- [`DeviceCreateInfo`]
21700#[repr(C)]
21701#[derive(Copy, Clone, Debug)]
21702#[doc(alias = "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT")]
21703pub struct PhysicalDeviceBorderColorSwizzleFeaturesEXT {
21704    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT`.
21705    pub s_type: StructureType,
21706    ///Optional, may be null.
21707    pub p_next: *mut core::ffi::c_void,
21708    pub border_color_swizzle: u32,
21709    pub border_color_swizzle_from_image: u32,
21710}
21711impl Default for PhysicalDeviceBorderColorSwizzleFeaturesEXT {
21712    #[inline]
21713    fn default() -> Self {
21714        Self {
21715            s_type: StructureType::from_raw(1000411000i32),
21716            p_next: core::ptr::null_mut(),
21717            border_color_swizzle: Default::default(),
21718            border_color_swizzle_from_image: Default::default(),
21719        }
21720    }
21721}
21722///[`VkDeviceOrHostAddressKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceOrHostAddressKHR.html)
21723/**
21724Provided by **VK_KHR_acceleration_structure**.*/
21725#[repr(C)]
21726#[derive(Copy, Clone)]
21727#[doc(alias = "VkDeviceOrHostAddressKHR")]
21728pub union DeviceOrHostAddressKHR {
21729    pub device_address: u64,
21730    pub host_address: *mut core::ffi::c_void,
21731}
21732impl Default for DeviceOrHostAddressKHR {
21733    #[inline]
21734    fn default() -> Self {
21735        unsafe { core::mem::zeroed() }
21736    }
21737}
21738impl core::fmt::Debug for DeviceOrHostAddressKHR {
21739    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21740        f.write_str(stringify!(DeviceOrHostAddressKHR))
21741    }
21742}
21743///[`VkDeviceOrHostAddressConstKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceOrHostAddressConstKHR.html)
21744/**
21745Provided by **VK_KHR_acceleration_structure**.*/
21746#[repr(C)]
21747#[derive(Copy, Clone)]
21748#[doc(alias = "VkDeviceOrHostAddressConstKHR")]
21749pub union DeviceOrHostAddressConstKHR {
21750    pub device_address: u64,
21751    pub host_address: *const core::ffi::c_void,
21752}
21753impl Default for DeviceOrHostAddressConstKHR {
21754    #[inline]
21755    fn default() -> Self {
21756        unsafe { core::mem::zeroed() }
21757    }
21758}
21759impl core::fmt::Debug for DeviceOrHostAddressConstKHR {
21760    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21761        f.write_str(stringify!(DeviceOrHostAddressConstKHR))
21762    }
21763}
21764///[`VkDeviceOrHostAddressConstAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceOrHostAddressConstAMDX.html)
21765/**
21766Provided by **VK_AMDX_shader_enqueue**.*/
21767#[repr(C)]
21768#[derive(Copy, Clone)]
21769#[doc(alias = "VkDeviceOrHostAddressConstAMDX")]
21770pub union DeviceOrHostAddressConstAMDX {
21771    pub device_address: u64,
21772    pub host_address: *const core::ffi::c_void,
21773}
21774impl Default for DeviceOrHostAddressConstAMDX {
21775    #[inline]
21776    fn default() -> Self {
21777        unsafe { core::mem::zeroed() }
21778    }
21779}
21780impl core::fmt::Debug for DeviceOrHostAddressConstAMDX {
21781    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21782        f.write_str(stringify!(DeviceOrHostAddressConstAMDX))
21783    }
21784}
21785///[`VkAccelerationStructureGeometryTrianglesDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryTrianglesDataKHR.html)
21786/**
21787Provided by **VK_KHR_acceleration_structure**.*/
21788///
21789///# Extended By
21790///- [`AccelerationStructureGeometryMotionTrianglesDataNV`]
21791///- [`AccelerationStructureTrianglesDisplacementMicromapNV`]
21792///- [`AccelerationStructureTrianglesOpacityMicromapEXT`]
21793#[repr(C)]
21794#[derive(Copy, Clone, Debug)]
21795#[doc(alias = "VkAccelerationStructureGeometryTrianglesDataKHR")]
21796pub struct AccelerationStructureGeometryTrianglesDataKHR {
21797    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR`.
21798    pub s_type: StructureType,
21799    ///Optional, may be null.
21800    pub p_next: *const core::ffi::c_void,
21801    pub vertex_format: Format,
21802    pub vertex_data: DeviceOrHostAddressConstKHR,
21803    pub vertex_stride: u64,
21804    pub max_vertex: u32,
21805    pub index_type: IndexType,
21806    pub index_data: DeviceOrHostAddressConstKHR,
21807    pub transform_data: DeviceOrHostAddressConstKHR,
21808}
21809impl Default for AccelerationStructureGeometryTrianglesDataKHR {
21810    #[inline]
21811    fn default() -> Self {
21812        Self {
21813            s_type: StructureType::from_raw(1000150005i32),
21814            p_next: core::ptr::null(),
21815            vertex_format: Default::default(),
21816            vertex_data: Default::default(),
21817            vertex_stride: Default::default(),
21818            max_vertex: Default::default(),
21819            index_type: Default::default(),
21820            index_data: Default::default(),
21821            transform_data: Default::default(),
21822        }
21823    }
21824}
21825///[`VkAccelerationStructureGeometryAabbsDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryAabbsDataKHR.html)
21826/**
21827Provided by **VK_KHR_acceleration_structure**.*/
21828#[repr(C)]
21829#[derive(Copy, Clone, Debug)]
21830#[doc(alias = "VkAccelerationStructureGeometryAabbsDataKHR")]
21831pub struct AccelerationStructureGeometryAabbsDataKHR {
21832    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR`.
21833    pub s_type: StructureType,
21834    ///Optional, may be null.
21835    pub p_next: *const core::ffi::c_void,
21836    pub data: DeviceOrHostAddressConstKHR,
21837    pub stride: u64,
21838}
21839impl Default for AccelerationStructureGeometryAabbsDataKHR {
21840    #[inline]
21841    fn default() -> Self {
21842        Self {
21843            s_type: StructureType::from_raw(1000150003i32),
21844            p_next: core::ptr::null(),
21845            data: Default::default(),
21846            stride: Default::default(),
21847        }
21848    }
21849}
21850///[`VkAccelerationStructureGeometryInstancesDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryInstancesDataKHR.html)
21851/**
21852Provided by **VK_KHR_acceleration_structure**.*/
21853#[repr(C)]
21854#[derive(Copy, Clone, Debug)]
21855#[doc(alias = "VkAccelerationStructureGeometryInstancesDataKHR")]
21856pub struct AccelerationStructureGeometryInstancesDataKHR {
21857    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR`.
21858    pub s_type: StructureType,
21859    ///Optional, may be null.
21860    pub p_next: *const core::ffi::c_void,
21861    pub array_of_pointers: u32,
21862    pub data: DeviceOrHostAddressConstKHR,
21863}
21864impl Default for AccelerationStructureGeometryInstancesDataKHR {
21865    #[inline]
21866    fn default() -> Self {
21867        Self {
21868            s_type: StructureType::from_raw(1000150004i32),
21869            p_next: core::ptr::null(),
21870            array_of_pointers: Default::default(),
21871            data: Default::default(),
21872        }
21873    }
21874}
21875///[`VkAccelerationStructureGeometryLinearSweptSpheresDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryLinearSweptSpheresDataNV.html)
21876/**
21877Provided by **VK_NV_ray_tracing_linear_swept_spheres**.*/
21878///
21879///# Extends
21880///- [`AccelerationStructureGeometryKHR`]
21881#[repr(C)]
21882#[derive(Copy, Clone, Debug)]
21883#[doc(alias = "VkAccelerationStructureGeometryLinearSweptSpheresDataNV")]
21884pub struct AccelerationStructureGeometryLinearSweptSpheresDataNV {
21885    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV`.
21886    pub s_type: StructureType,
21887    ///Optional, may be null.
21888    pub p_next: *const core::ffi::c_void,
21889    pub vertex_format: Format,
21890    pub vertex_data: DeviceOrHostAddressConstKHR,
21891    pub vertex_stride: u64,
21892    pub radius_format: Format,
21893    pub radius_data: DeviceOrHostAddressConstKHR,
21894    pub radius_stride: u64,
21895    pub index_type: IndexType,
21896    pub index_data: DeviceOrHostAddressConstKHR,
21897    pub index_stride: u64,
21898    pub indexing_mode: RayTracingLssIndexingModeNV,
21899    pub end_caps_mode: RayTracingLssPrimitiveEndCapsModeNV,
21900}
21901impl Default for AccelerationStructureGeometryLinearSweptSpheresDataNV {
21902    #[inline]
21903    fn default() -> Self {
21904        Self {
21905            s_type: StructureType::from_raw(1000429009i32),
21906            p_next: core::ptr::null(),
21907            vertex_format: Default::default(),
21908            vertex_data: Default::default(),
21909            vertex_stride: Default::default(),
21910            radius_format: Default::default(),
21911            radius_data: Default::default(),
21912            radius_stride: Default::default(),
21913            index_type: Default::default(),
21914            index_data: Default::default(),
21915            index_stride: Default::default(),
21916            indexing_mode: Default::default(),
21917            end_caps_mode: Default::default(),
21918        }
21919    }
21920}
21921///[`VkAccelerationStructureGeometrySpheresDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometrySpheresDataNV.html)
21922/**
21923Provided by **VK_NV_ray_tracing_linear_swept_spheres**.*/
21924///
21925///# Extends
21926///- [`AccelerationStructureGeometryKHR`]
21927#[repr(C)]
21928#[derive(Copy, Clone, Debug)]
21929#[doc(alias = "VkAccelerationStructureGeometrySpheresDataNV")]
21930pub struct AccelerationStructureGeometrySpheresDataNV {
21931    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV`.
21932    pub s_type: StructureType,
21933    ///Optional, may be null.
21934    pub p_next: *const core::ffi::c_void,
21935    pub vertex_format: Format,
21936    pub vertex_data: DeviceOrHostAddressConstKHR,
21937    pub vertex_stride: u64,
21938    pub radius_format: Format,
21939    pub radius_data: DeviceOrHostAddressConstKHR,
21940    pub radius_stride: u64,
21941    pub index_type: IndexType,
21942    pub index_data: DeviceOrHostAddressConstKHR,
21943    pub index_stride: u64,
21944}
21945impl Default for AccelerationStructureGeometrySpheresDataNV {
21946    #[inline]
21947    fn default() -> Self {
21948        Self {
21949            s_type: StructureType::from_raw(1000429010i32),
21950            p_next: core::ptr::null(),
21951            vertex_format: Default::default(),
21952            vertex_data: Default::default(),
21953            vertex_stride: Default::default(),
21954            radius_format: Default::default(),
21955            radius_data: Default::default(),
21956            radius_stride: Default::default(),
21957            index_type: Default::default(),
21958            index_data: Default::default(),
21959            index_stride: Default::default(),
21960        }
21961    }
21962}
21963///[`VkAccelerationStructureGeometryDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryDataKHR.html)
21964/**
21965Provided by **VK_KHR_acceleration_structure**.*/
21966#[repr(C)]
21967#[derive(Copy, Clone)]
21968#[doc(alias = "VkAccelerationStructureGeometryDataKHR")]
21969pub union AccelerationStructureGeometryDataKHR {
21970    pub triangles: AccelerationStructureGeometryTrianglesDataKHR,
21971    pub aabbs: AccelerationStructureGeometryAabbsDataKHR,
21972    pub instances: AccelerationStructureGeometryInstancesDataKHR,
21973}
21974impl Default for AccelerationStructureGeometryDataKHR {
21975    #[inline]
21976    fn default() -> Self {
21977        unsafe { core::mem::zeroed() }
21978    }
21979}
21980impl core::fmt::Debug for AccelerationStructureGeometryDataKHR {
21981    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21982        f.write_str(stringify!(AccelerationStructureGeometryDataKHR))
21983    }
21984}
21985///[`VkAccelerationStructureGeometryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryKHR.html)
21986/**
21987Provided by **VK_KHR_acceleration_structure**.*/
21988///
21989///# Extended By
21990///- [`AccelerationStructureDenseGeometryFormatTrianglesDataAMDX`]
21991///- [`AccelerationStructureGeometryLinearSweptSpheresDataNV`]
21992///- [`AccelerationStructureGeometrySpheresDataNV`]
21993#[repr(C)]
21994#[derive(Copy, Clone, Debug)]
21995#[doc(alias = "VkAccelerationStructureGeometryKHR")]
21996pub struct AccelerationStructureGeometryKHR {
21997    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR`.
21998    pub s_type: StructureType,
21999    ///Optional, may be null.
22000    pub p_next: *const core::ffi::c_void,
22001    pub geometry_type: GeometryTypeKHR,
22002    pub geometry: AccelerationStructureGeometryDataKHR,
22003    pub flags: GeometryFlagsKHR,
22004}
22005impl Default for AccelerationStructureGeometryKHR {
22006    #[inline]
22007    fn default() -> Self {
22008        Self {
22009            s_type: StructureType::from_raw(1000150006i32),
22010            p_next: core::ptr::null(),
22011            geometry_type: Default::default(),
22012            geometry: Default::default(),
22013            flags: Default::default(),
22014        }
22015    }
22016}
22017///[`VkAccelerationStructureBuildGeometryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureBuildGeometryInfoKHR.html)
22018/**
22019Provided by **VK_KHR_acceleration_structure**.*/
22020#[repr(C)]
22021#[derive(Copy, Clone, Debug)]
22022#[doc(alias = "VkAccelerationStructureBuildGeometryInfoKHR")]
22023pub struct AccelerationStructureBuildGeometryInfoKHR {
22024    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR`.
22025    pub s_type: StructureType,
22026    ///Optional, may be null.
22027    pub p_next: *const core::ffi::c_void,
22028    pub r#type: AccelerationStructureTypeKHR,
22029    pub flags: BuildAccelerationStructureFlagsKHR,
22030    pub mode: BuildAccelerationStructureModeKHR,
22031    pub src_acceleration_structure: AccelerationStructureKHR,
22032    pub dst_acceleration_structure: AccelerationStructureKHR,
22033    ///Length of `pp_geometries`.
22034    pub geometry_count: u32,
22035    ///Optional, may be null.
22036    pub p_geometries: *const AccelerationStructureGeometryKHR,
22037    ///Optional, may be null.
22038    pub pp_geometries: *const *const AccelerationStructureGeometryKHR,
22039    pub scratch_data: DeviceOrHostAddressKHR,
22040}
22041impl Default for AccelerationStructureBuildGeometryInfoKHR {
22042    #[inline]
22043    fn default() -> Self {
22044        Self {
22045            s_type: StructureType::from_raw(1000150000i32),
22046            p_next: core::ptr::null(),
22047            r#type: Default::default(),
22048            flags: Default::default(),
22049            mode: Default::default(),
22050            src_acceleration_structure: Default::default(),
22051            dst_acceleration_structure: Default::default(),
22052            geometry_count: Default::default(),
22053            p_geometries: core::ptr::null(),
22054            pp_geometries: core::ptr::null(),
22055            scratch_data: Default::default(),
22056        }
22057    }
22058}
22059///[`VkAccelerationStructureBuildRangeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureBuildRangeInfoKHR.html)
22060/**
22061Provided by **VK_KHR_acceleration_structure**.*/
22062#[repr(C)]
22063#[derive(Copy, Clone, Debug)]
22064#[doc(alias = "VkAccelerationStructureBuildRangeInfoKHR")]
22065pub struct AccelerationStructureBuildRangeInfoKHR {
22066    pub primitive_count: u32,
22067    pub primitive_offset: u32,
22068    pub first_vertex: u32,
22069    pub transform_offset: u32,
22070}
22071impl Default for AccelerationStructureBuildRangeInfoKHR {
22072    #[inline]
22073    fn default() -> Self {
22074        unsafe { core::mem::zeroed() }
22075    }
22076}
22077///[`VkAccelerationStructureCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureCreateInfoKHR.html)
22078/**
22079Provided by **VK_KHR_acceleration_structure**.*/
22080///
22081///# Extended By
22082///- [`AccelerationStructureMotionInfoNV`]
22083///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
22084#[repr(C)]
22085#[derive(Copy, Clone, Debug)]
22086#[doc(alias = "VkAccelerationStructureCreateInfoKHR")]
22087pub struct AccelerationStructureCreateInfoKHR {
22088    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR`.
22089    pub s_type: StructureType,
22090    ///Optional, may be null.
22091    pub p_next: *const core::ffi::c_void,
22092    pub create_flags: AccelerationStructureCreateFlagsKHR,
22093    pub buffer: Buffer,
22094    pub offset: u64,
22095    pub size: u64,
22096    pub r#type: AccelerationStructureTypeKHR,
22097    pub device_address: u64,
22098}
22099impl Default for AccelerationStructureCreateInfoKHR {
22100    #[inline]
22101    fn default() -> Self {
22102        Self {
22103            s_type: StructureType::from_raw(1000150017i32),
22104            p_next: core::ptr::null(),
22105            create_flags: Default::default(),
22106            buffer: Default::default(),
22107            offset: Default::default(),
22108            size: Default::default(),
22109            r#type: Default::default(),
22110            device_address: Default::default(),
22111        }
22112    }
22113}
22114///[`VkAabbPositionsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAabbPositionsKHR.html)
22115/**
22116Provided by **VK_KHR_acceleration_structure**.*/
22117#[repr(C)]
22118#[derive(Copy, Clone, Debug)]
22119#[doc(alias = "VkAabbPositionsKHR")]
22120pub struct AabbPositionsKHR {
22121    pub min_x: f32,
22122    pub min_y: f32,
22123    pub min_z: f32,
22124    pub max_x: f32,
22125    pub max_y: f32,
22126    pub max_z: f32,
22127}
22128impl Default for AabbPositionsKHR {
22129    #[inline]
22130    fn default() -> Self {
22131        unsafe { core::mem::zeroed() }
22132    }
22133}
22134///[`VkTransformMatrixKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTransformMatrixKHR.html)
22135/**
22136Provided by **VK_KHR_acceleration_structure**.*/
22137#[repr(C)]
22138#[derive(Copy, Clone, Debug)]
22139#[doc(alias = "VkTransformMatrixKHR")]
22140pub struct TransformMatrixKHR {
22141    pub matrix: [[f32; 4usize]; 3usize],
22142}
22143impl Default for TransformMatrixKHR {
22144    #[inline]
22145    fn default() -> Self {
22146        unsafe { core::mem::zeroed() }
22147    }
22148}
22149///[`VkAccelerationStructureInstanceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureInstanceKHR.html)
22150/**
22151Provided by **VK_KHR_acceleration_structure**.*/
22152#[repr(C)]
22153#[derive(Copy, Clone, Debug)]
22154#[doc(alias = "VkAccelerationStructureInstanceKHR")]
22155pub struct AccelerationStructureInstanceKHR {
22156    pub transform: TransformMatrixKHR,
22157    pub bitfield_0: u32,
22158    pub bitfield_1: u32,
22159    pub acceleration_structure_reference: u64,
22160}
22161impl Default for AccelerationStructureInstanceKHR {
22162    #[inline]
22163    fn default() -> Self {
22164        unsafe { core::mem::zeroed() }
22165    }
22166}
22167impl AccelerationStructureInstanceKHR {
22168    #[inline]
22169    pub fn instance_custom_index(&self) -> u32 {
22170        self.bitfield_0 & 16777215u32
22171    }
22172    #[inline]
22173    pub fn set_instance_custom_index(&mut self, val: u32) {
22174        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
22175    }
22176    #[inline]
22177    pub fn mask(&self) -> u32 {
22178        (self.bitfield_0 >> 24u32) & 255u32
22179    }
22180    #[inline]
22181    pub fn set_mask(&mut self, val: u32) {
22182        self.bitfield_0 = (self.bitfield_0 & !(255u32 << 24u32))
22183            | ((val & 255u32) << 24u32);
22184    }
22185    #[inline]
22186    pub fn instance_shader_binding_table_record_offset(&self) -> u32 {
22187        self.bitfield_1 & 16777215u32
22188    }
22189    #[inline]
22190    pub fn set_instance_shader_binding_table_record_offset(&mut self, val: u32) {
22191        self.bitfield_1 = (self.bitfield_1 & !16777215u32) | (val & 16777215u32);
22192    }
22193    #[inline]
22194    pub fn flags(&self) -> u32 {
22195        (self.bitfield_1 >> 24u32) & 255u32
22196    }
22197    #[inline]
22198    pub fn set_flags(&mut self, val: u32) {
22199        self.bitfield_1 = (self.bitfield_1 & !(255u32 << 24u32))
22200            | ((val & 255u32) << 24u32);
22201    }
22202}
22203///[`VkAccelerationStructureDeviceAddressInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureDeviceAddressInfoKHR.html)
22204/**
22205Provided by **VK_KHR_acceleration_structure**.*/
22206#[repr(C)]
22207#[derive(Copy, Clone, Debug)]
22208#[doc(alias = "VkAccelerationStructureDeviceAddressInfoKHR")]
22209pub struct AccelerationStructureDeviceAddressInfoKHR {
22210    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR`.
22211    pub s_type: StructureType,
22212    ///Optional, may be null.
22213    pub p_next: *const core::ffi::c_void,
22214    pub acceleration_structure: AccelerationStructureKHR,
22215}
22216impl Default for AccelerationStructureDeviceAddressInfoKHR {
22217    #[inline]
22218    fn default() -> Self {
22219        Self {
22220            s_type: StructureType::from_raw(1000150002i32),
22221            p_next: core::ptr::null(),
22222            acceleration_structure: Default::default(),
22223        }
22224    }
22225}
22226///[`VkAccelerationStructureVersionInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureVersionInfoKHR.html)
22227/**
22228Provided by **VK_KHR_acceleration_structure**.*/
22229#[repr(C)]
22230#[derive(Copy, Clone, Debug)]
22231#[doc(alias = "VkAccelerationStructureVersionInfoKHR")]
22232pub struct AccelerationStructureVersionInfoKHR {
22233    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR`.
22234    pub s_type: StructureType,
22235    ///Optional, may be null.
22236    pub p_next: *const core::ffi::c_void,
22237    pub p_version_data: *const u8,
22238}
22239impl Default for AccelerationStructureVersionInfoKHR {
22240    #[inline]
22241    fn default() -> Self {
22242        Self {
22243            s_type: StructureType::from_raw(1000150009i32),
22244            p_next: core::ptr::null(),
22245            p_version_data: core::ptr::null(),
22246        }
22247    }
22248}
22249///[`VkCopyAccelerationStructureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyAccelerationStructureInfoKHR.html)
22250/**
22251Provided by **VK_KHR_acceleration_structure**.*/
22252#[repr(C)]
22253#[derive(Copy, Clone, Debug)]
22254#[doc(alias = "VkCopyAccelerationStructureInfoKHR")]
22255pub struct CopyAccelerationStructureInfoKHR {
22256    ///Must be `VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR`.
22257    pub s_type: StructureType,
22258    ///Optional, may be null.
22259    pub p_next: *const core::ffi::c_void,
22260    pub src: AccelerationStructureKHR,
22261    pub dst: AccelerationStructureKHR,
22262    pub mode: CopyAccelerationStructureModeKHR,
22263}
22264impl Default for CopyAccelerationStructureInfoKHR {
22265    #[inline]
22266    fn default() -> Self {
22267        Self {
22268            s_type: StructureType::from_raw(1000150010i32),
22269            p_next: core::ptr::null(),
22270            src: Default::default(),
22271            dst: Default::default(),
22272            mode: Default::default(),
22273        }
22274    }
22275}
22276///[`VkCopyAccelerationStructureToMemoryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyAccelerationStructureToMemoryInfoKHR.html)
22277/**
22278Provided by **VK_KHR_acceleration_structure**.*/
22279#[repr(C)]
22280#[derive(Copy, Clone, Debug)]
22281#[doc(alias = "VkCopyAccelerationStructureToMemoryInfoKHR")]
22282pub struct CopyAccelerationStructureToMemoryInfoKHR {
22283    ///Must be `VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR`.
22284    pub s_type: StructureType,
22285    ///Optional, may be null.
22286    pub p_next: *const core::ffi::c_void,
22287    pub src: AccelerationStructureKHR,
22288    pub dst: DeviceOrHostAddressKHR,
22289    pub mode: CopyAccelerationStructureModeKHR,
22290}
22291impl Default for CopyAccelerationStructureToMemoryInfoKHR {
22292    #[inline]
22293    fn default() -> Self {
22294        Self {
22295            s_type: StructureType::from_raw(1000150011i32),
22296            p_next: core::ptr::null(),
22297            src: Default::default(),
22298            dst: Default::default(),
22299            mode: Default::default(),
22300        }
22301    }
22302}
22303///[`VkCopyMemoryToAccelerationStructureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToAccelerationStructureInfoKHR.html)
22304/**
22305Provided by **VK_KHR_acceleration_structure**.*/
22306#[repr(C)]
22307#[derive(Copy, Clone, Debug)]
22308#[doc(alias = "VkCopyMemoryToAccelerationStructureInfoKHR")]
22309pub struct CopyMemoryToAccelerationStructureInfoKHR {
22310    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR`.
22311    pub s_type: StructureType,
22312    ///Optional, may be null.
22313    pub p_next: *const core::ffi::c_void,
22314    pub src: DeviceOrHostAddressConstKHR,
22315    pub dst: AccelerationStructureKHR,
22316    pub mode: CopyAccelerationStructureModeKHR,
22317}
22318impl Default for CopyMemoryToAccelerationStructureInfoKHR {
22319    #[inline]
22320    fn default() -> Self {
22321        Self {
22322            s_type: StructureType::from_raw(1000150012i32),
22323            p_next: core::ptr::null(),
22324            src: Default::default(),
22325            dst: Default::default(),
22326            mode: Default::default(),
22327        }
22328    }
22329}
22330///[`VkRayTracingPipelineInterfaceCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRayTracingPipelineInterfaceCreateInfoKHR.html)
22331/**
22332Provided by **VK_KHR_ray_tracing_pipeline**.*/
22333#[repr(C)]
22334#[derive(Copy, Clone, Debug)]
22335#[doc(alias = "VkRayTracingPipelineInterfaceCreateInfoKHR")]
22336pub struct RayTracingPipelineInterfaceCreateInfoKHR {
22337    ///Must be `VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR`.
22338    pub s_type: StructureType,
22339    ///Optional, may be null.
22340    pub p_next: *const core::ffi::c_void,
22341    pub max_pipeline_ray_payload_size: u32,
22342    pub max_pipeline_ray_hit_attribute_size: u32,
22343}
22344impl Default for RayTracingPipelineInterfaceCreateInfoKHR {
22345    #[inline]
22346    fn default() -> Self {
22347        Self {
22348            s_type: StructureType::from_raw(1000150018i32),
22349            p_next: core::ptr::null(),
22350            max_pipeline_ray_payload_size: Default::default(),
22351            max_pipeline_ray_hit_attribute_size: Default::default(),
22352        }
22353    }
22354}
22355///[`VkPipelineLibraryCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineLibraryCreateInfoKHR.html)
22356/**
22357Provided by **VK_KHR_pipeline_library**.*/
22358///
22359///# Extends
22360///- [`GraphicsPipelineCreateInfo`]
22361#[repr(C)]
22362#[derive(Copy, Clone, Debug)]
22363#[doc(alias = "VkPipelineLibraryCreateInfoKHR")]
22364pub struct PipelineLibraryCreateInfoKHR {
22365    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR`.
22366    pub s_type: StructureType,
22367    ///Optional, may be null.
22368    pub p_next: *const core::ffi::c_void,
22369    ///Length of `p_libraries`.
22370    pub library_count: u32,
22371    pub p_libraries: *const Pipeline,
22372}
22373impl Default for PipelineLibraryCreateInfoKHR {
22374    #[inline]
22375    fn default() -> Self {
22376        Self {
22377            s_type: StructureType::from_raw(1000290000i32),
22378            p_next: core::ptr::null(),
22379            library_count: Default::default(),
22380            p_libraries: core::ptr::null(),
22381        }
22382    }
22383}
22384///[`VkRefreshObjectKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRefreshObjectKHR.html)
22385#[repr(C)]
22386#[derive(Copy, Clone, Debug)]
22387#[doc(alias = "VkRefreshObjectKHR")]
22388pub struct RefreshObjectKHR {
22389    pub object_type: ObjectType,
22390    ///**Thread safety:** must be externally synchronized.
22391    pub object_handle: u64,
22392    pub flags: RefreshObjectFlagsKHR,
22393}
22394impl Default for RefreshObjectKHR {
22395    #[inline]
22396    fn default() -> Self {
22397        unsafe { core::mem::zeroed() }
22398    }
22399}
22400///[`VkRefreshObjectListKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRefreshObjectListKHR.html)
22401#[repr(C)]
22402#[derive(Copy, Clone, Debug)]
22403#[doc(alias = "VkRefreshObjectListKHR")]
22404pub struct RefreshObjectListKHR {
22405    ///Must be `VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR`.
22406    pub s_type: StructureType,
22407    ///Optional, may be null.
22408    pub p_next: *const core::ffi::c_void,
22409    ///Length of `p_objects`.
22410    pub object_count: u32,
22411    pub p_objects: *const RefreshObjectKHR,
22412}
22413impl Default for RefreshObjectListKHR {
22414    #[inline]
22415    fn default() -> Self {
22416        Self {
22417            s_type: Default::default(),
22418            p_next: core::ptr::null(),
22419            object_count: Default::default(),
22420            p_objects: core::ptr::null(),
22421        }
22422    }
22423}
22424///[`VkPhysicalDeviceExtendedDynamicStateFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.html)
22425/**
22426Provided by **VK_EXT_extended_dynamic_state**.*/
22427///
22428///# Extends
22429///- [`PhysicalDeviceFeatures2`]
22430///- [`DeviceCreateInfo`]
22431#[repr(C)]
22432#[derive(Copy, Clone, Debug)]
22433#[doc(alias = "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT")]
22434pub struct PhysicalDeviceExtendedDynamicStateFeaturesEXT {
22435    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT`.
22436    pub s_type: StructureType,
22437    ///Optional, may be null.
22438    pub p_next: *mut core::ffi::c_void,
22439    pub extended_dynamic_state: u32,
22440}
22441impl Default for PhysicalDeviceExtendedDynamicStateFeaturesEXT {
22442    #[inline]
22443    fn default() -> Self {
22444        Self {
22445            s_type: StructureType::from_raw(1000267000i32),
22446            p_next: core::ptr::null_mut(),
22447            extended_dynamic_state: Default::default(),
22448        }
22449    }
22450}
22451///[`VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.html)
22452/**
22453Provided by **VK_EXT_extended_dynamic_state2**.*/
22454///
22455///# Extends
22456///- [`PhysicalDeviceFeatures2`]
22457///- [`DeviceCreateInfo`]
22458#[repr(C)]
22459#[derive(Copy, Clone, Debug)]
22460#[doc(alias = "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT")]
22461pub struct PhysicalDeviceExtendedDynamicState2FeaturesEXT {
22462    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT`.
22463    pub s_type: StructureType,
22464    ///Optional, may be null.
22465    pub p_next: *mut core::ffi::c_void,
22466    pub extended_dynamic_state2: u32,
22467    pub extended_dynamic_state2_logic_op: u32,
22468    pub extended_dynamic_state2_patch_control_points: u32,
22469}
22470impl Default for PhysicalDeviceExtendedDynamicState2FeaturesEXT {
22471    #[inline]
22472    fn default() -> Self {
22473        Self {
22474            s_type: StructureType::from_raw(1000377000i32),
22475            p_next: core::ptr::null_mut(),
22476            extended_dynamic_state2: Default::default(),
22477            extended_dynamic_state2_logic_op: Default::default(),
22478            extended_dynamic_state2_patch_control_points: Default::default(),
22479        }
22480    }
22481}
22482///[`VkPhysicalDeviceExtendedDynamicState3FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicState3FeaturesEXT.html)
22483/**
22484Provided by **VK_EXT_extended_dynamic_state3**.*/
22485///
22486///# Extends
22487///- [`PhysicalDeviceFeatures2`]
22488///- [`DeviceCreateInfo`]
22489#[repr(C)]
22490#[derive(Copy, Clone, Debug)]
22491#[doc(alias = "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT")]
22492pub struct PhysicalDeviceExtendedDynamicState3FeaturesEXT {
22493    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_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_state3_tessellation_domain_origin: u32,
22498    pub extended_dynamic_state3_depth_clamp_enable: u32,
22499    pub extended_dynamic_state3_polygon_mode: u32,
22500    pub extended_dynamic_state3_rasterization_samples: u32,
22501    pub extended_dynamic_state3_sample_mask: u32,
22502    pub extended_dynamic_state3_alpha_to_coverage_enable: u32,
22503    pub extended_dynamic_state3_alpha_to_one_enable: u32,
22504    pub extended_dynamic_state3_logic_op_enable: u32,
22505    pub extended_dynamic_state3_color_blend_enable: u32,
22506    pub extended_dynamic_state3_color_blend_equation: u32,
22507    pub extended_dynamic_state3_color_write_mask: u32,
22508    pub extended_dynamic_state3_rasterization_stream: u32,
22509    pub extended_dynamic_state3_conservative_rasterization_mode: u32,
22510    pub extended_dynamic_state3_extra_primitive_overestimation_size: u32,
22511    pub extended_dynamic_state3_depth_clip_enable: u32,
22512    pub extended_dynamic_state3_sample_locations_enable: u32,
22513    pub extended_dynamic_state3_color_blend_advanced: u32,
22514    pub extended_dynamic_state3_provoking_vertex_mode: u32,
22515    pub extended_dynamic_state3_line_rasterization_mode: u32,
22516    pub extended_dynamic_state3_line_stipple_enable: u32,
22517    pub extended_dynamic_state3_depth_clip_negative_one_to_one: u32,
22518    pub extended_dynamic_state3_viewport_w_scaling_enable: u32,
22519    pub extended_dynamic_state3_viewport_swizzle: u32,
22520    pub extended_dynamic_state3_coverage_to_color_enable: u32,
22521    pub extended_dynamic_state3_coverage_to_color_location: u32,
22522    pub extended_dynamic_state3_coverage_modulation_mode: u32,
22523    pub extended_dynamic_state3_coverage_modulation_table_enable: u32,
22524    pub extended_dynamic_state3_coverage_modulation_table: u32,
22525    pub extended_dynamic_state3_coverage_reduction_mode: u32,
22526    pub extended_dynamic_state3_representative_fragment_test_enable: u32,
22527    pub extended_dynamic_state3_shading_rate_image_enable: u32,
22528}
22529impl Default for PhysicalDeviceExtendedDynamicState3FeaturesEXT {
22530    #[inline]
22531    fn default() -> Self {
22532        Self {
22533            s_type: StructureType::from_raw(1000455000i32),
22534            p_next: core::ptr::null_mut(),
22535            extended_dynamic_state3_tessellation_domain_origin: Default::default(),
22536            extended_dynamic_state3_depth_clamp_enable: Default::default(),
22537            extended_dynamic_state3_polygon_mode: Default::default(),
22538            extended_dynamic_state3_rasterization_samples: Default::default(),
22539            extended_dynamic_state3_sample_mask: Default::default(),
22540            extended_dynamic_state3_alpha_to_coverage_enable: Default::default(),
22541            extended_dynamic_state3_alpha_to_one_enable: Default::default(),
22542            extended_dynamic_state3_logic_op_enable: Default::default(),
22543            extended_dynamic_state3_color_blend_enable: Default::default(),
22544            extended_dynamic_state3_color_blend_equation: Default::default(),
22545            extended_dynamic_state3_color_write_mask: Default::default(),
22546            extended_dynamic_state3_rasterization_stream: Default::default(),
22547            extended_dynamic_state3_conservative_rasterization_mode: Default::default(),
22548            extended_dynamic_state3_extra_primitive_overestimation_size: Default::default(),
22549            extended_dynamic_state3_depth_clip_enable: Default::default(),
22550            extended_dynamic_state3_sample_locations_enable: Default::default(),
22551            extended_dynamic_state3_color_blend_advanced: Default::default(),
22552            extended_dynamic_state3_provoking_vertex_mode: Default::default(),
22553            extended_dynamic_state3_line_rasterization_mode: Default::default(),
22554            extended_dynamic_state3_line_stipple_enable: Default::default(),
22555            extended_dynamic_state3_depth_clip_negative_one_to_one: Default::default(),
22556            extended_dynamic_state3_viewport_w_scaling_enable: Default::default(),
22557            extended_dynamic_state3_viewport_swizzle: Default::default(),
22558            extended_dynamic_state3_coverage_to_color_enable: Default::default(),
22559            extended_dynamic_state3_coverage_to_color_location: Default::default(),
22560            extended_dynamic_state3_coverage_modulation_mode: Default::default(),
22561            extended_dynamic_state3_coverage_modulation_table_enable: Default::default(),
22562            extended_dynamic_state3_coverage_modulation_table: Default::default(),
22563            extended_dynamic_state3_coverage_reduction_mode: Default::default(),
22564            extended_dynamic_state3_representative_fragment_test_enable: Default::default(),
22565            extended_dynamic_state3_shading_rate_image_enable: Default::default(),
22566        }
22567    }
22568}
22569///[`VkPhysicalDeviceExtendedDynamicState3PropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicState3PropertiesEXT.html)
22570/**
22571Provided by **VK_EXT_extended_dynamic_state3**.*/
22572/**
22573**Returned only**, filled by Vulkan, not constructed by the application.*/
22574///
22575///# Extends
22576///- [`PhysicalDeviceProperties2`]
22577#[repr(C)]
22578#[derive(Copy, Clone, Debug)]
22579#[doc(alias = "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT")]
22580pub struct PhysicalDeviceExtendedDynamicState3PropertiesEXT {
22581    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT`.
22582    pub s_type: StructureType,
22583    ///Optional, may be null.
22584    pub p_next: *mut core::ffi::c_void,
22585    pub dynamic_primitive_topology_unrestricted: u32,
22586}
22587impl Default for PhysicalDeviceExtendedDynamicState3PropertiesEXT {
22588    #[inline]
22589    fn default() -> Self {
22590        Self {
22591            s_type: StructureType::from_raw(1000455001i32),
22592            p_next: core::ptr::null_mut(),
22593            dynamic_primitive_topology_unrestricted: Default::default(),
22594        }
22595    }
22596}
22597///[`VkColorBlendEquationEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkColorBlendEquationEXT.html)
22598/**
22599Provided by **VK_EXT_extended_dynamic_state3**.*/
22600#[repr(C)]
22601#[derive(Copy, Clone, Debug)]
22602#[doc(alias = "VkColorBlendEquationEXT")]
22603pub struct ColorBlendEquationEXT {
22604    pub src_color_blend_factor: BlendFactor,
22605    pub dst_color_blend_factor: BlendFactor,
22606    pub color_blend_op: BlendOp,
22607    pub src_alpha_blend_factor: BlendFactor,
22608    pub dst_alpha_blend_factor: BlendFactor,
22609    pub alpha_blend_op: BlendOp,
22610}
22611impl Default for ColorBlendEquationEXT {
22612    #[inline]
22613    fn default() -> Self {
22614        unsafe { core::mem::zeroed() }
22615    }
22616}
22617///[`VkColorBlendAdvancedEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkColorBlendAdvancedEXT.html)
22618/**
22619Provided by **VK_EXT_extended_dynamic_state3**.*/
22620#[repr(C)]
22621#[derive(Copy, Clone, Debug)]
22622#[doc(alias = "VkColorBlendAdvancedEXT")]
22623pub struct ColorBlendAdvancedEXT {
22624    pub advanced_blend_op: BlendOp,
22625    pub src_premultiplied: u32,
22626    pub dst_premultiplied: u32,
22627    pub blend_overlap: BlendOverlapEXT,
22628    pub clamp_results: u32,
22629}
22630impl Default for ColorBlendAdvancedEXT {
22631    #[inline]
22632    fn default() -> Self {
22633        unsafe { core::mem::zeroed() }
22634    }
22635}
22636///[`VkRenderPassTransformBeginInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassTransformBeginInfoQCOM.html)
22637/**
22638Provided by **VK_QCOM_render_pass_transform**.*/
22639///
22640///# Extends
22641///- [`RenderPassBeginInfo`]
22642#[repr(C)]
22643#[derive(Copy, Clone, Debug)]
22644#[doc(alias = "VkRenderPassTransformBeginInfoQCOM")]
22645pub struct RenderPassTransformBeginInfoQCOM {
22646    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM`.
22647    pub s_type: StructureType,
22648    ///Optional, may be null.
22649    pub p_next: *const core::ffi::c_void,
22650    pub transform: SurfaceTransformFlagBitsKHR,
22651}
22652impl Default for RenderPassTransformBeginInfoQCOM {
22653    #[inline]
22654    fn default() -> Self {
22655        Self {
22656            s_type: StructureType::from_raw(1000282001i32),
22657            p_next: core::ptr::null(),
22658            transform: Default::default(),
22659        }
22660    }
22661}
22662///[`VkCopyCommandTransformInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyCommandTransformInfoQCOM.html)
22663/**
22664Provided by **VK_QCOM_rotated_copy_commands**.*/
22665///
22666///# Extends
22667///- [`BufferImageCopy2`]
22668///- [`ImageBlit2`]
22669///- [`DeviceMemoryImageCopyKHR`]
22670#[repr(C)]
22671#[derive(Copy, Clone, Debug)]
22672#[doc(alias = "VkCopyCommandTransformInfoQCOM")]
22673pub struct CopyCommandTransformInfoQCOM {
22674    ///Must be `VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM`.
22675    pub s_type: StructureType,
22676    ///Optional, may be null.
22677    pub p_next: *const core::ffi::c_void,
22678    pub transform: SurfaceTransformFlagBitsKHR,
22679}
22680impl Default for CopyCommandTransformInfoQCOM {
22681    #[inline]
22682    fn default() -> Self {
22683        Self {
22684            s_type: StructureType::from_raw(1000333000i32),
22685            p_next: core::ptr::null(),
22686            transform: Default::default(),
22687        }
22688    }
22689}
22690///[`VkCommandBufferInheritanceRenderPassTransformInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceRenderPassTransformInfoQCOM.html)
22691/**
22692Provided by **VK_QCOM_render_pass_transform**.*/
22693///
22694///# Extends
22695///- [`CommandBufferInheritanceInfo`]
22696#[repr(C)]
22697#[derive(Copy, Clone, Debug)]
22698#[doc(alias = "VkCommandBufferInheritanceRenderPassTransformInfoQCOM")]
22699pub struct CommandBufferInheritanceRenderPassTransformInfoQCOM {
22700    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM`.
22701    pub s_type: StructureType,
22702    ///Optional, may be null.
22703    pub p_next: *const core::ffi::c_void,
22704    pub transform: SurfaceTransformFlagBitsKHR,
22705    pub render_area: Rect2D,
22706}
22707impl Default for CommandBufferInheritanceRenderPassTransformInfoQCOM {
22708    #[inline]
22709    fn default() -> Self {
22710        Self {
22711            s_type: StructureType::from_raw(1000282000i32),
22712            p_next: core::ptr::null(),
22713            transform: Default::default(),
22714            render_area: Default::default(),
22715        }
22716    }
22717}
22718///[`VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV.html)
22719/**
22720Provided by **VK_NV_partitioned_acceleration_structure**.*/
22721///
22722///# Extends
22723///- [`PhysicalDeviceFeatures2`]
22724///- [`DeviceCreateInfo`]
22725#[repr(C)]
22726#[derive(Copy, Clone, Debug)]
22727#[doc(alias = "VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV")]
22728pub struct PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
22729    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV`.
22730    pub s_type: StructureType,
22731    ///Optional, may be null.
22732    pub p_next: *mut core::ffi::c_void,
22733    pub partitioned_acceleration_structure: u32,
22734}
22735impl Default for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
22736    #[inline]
22737    fn default() -> Self {
22738        Self {
22739            s_type: StructureType::from_raw(1000570000i32),
22740            p_next: core::ptr::null_mut(),
22741            partitioned_acceleration_structure: Default::default(),
22742        }
22743    }
22744}
22745///[`VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV.html)
22746/**
22747Provided by **VK_NV_partitioned_acceleration_structure**.*/
22748/**
22749**Returned only**, filled by Vulkan, not constructed by the application.*/
22750///
22751///# Extends
22752///- [`PhysicalDeviceProperties2`]
22753#[repr(C)]
22754#[derive(Copy, Clone, Debug)]
22755#[doc(alias = "VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV")]
22756pub struct PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
22757    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV`.
22758    pub s_type: StructureType,
22759    ///Optional, may be null.
22760    pub p_next: *mut core::ffi::c_void,
22761    pub max_partition_count: u32,
22762}
22763impl Default for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
22764    #[inline]
22765    fn default() -> Self {
22766        Self {
22767            s_type: StructureType::from_raw(1000570001i32),
22768            p_next: core::ptr::null_mut(),
22769            max_partition_count: Default::default(),
22770        }
22771    }
22772}
22773///[`VkBuildPartitionedAccelerationStructureIndirectCommandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBuildPartitionedAccelerationStructureIndirectCommandNV.html)
22774/**
22775Provided by **VK_NV_partitioned_acceleration_structure**.*/
22776#[repr(C)]
22777#[derive(Copy, Clone, Debug)]
22778#[doc(alias = "VkBuildPartitionedAccelerationStructureIndirectCommandNV")]
22779pub struct BuildPartitionedAccelerationStructureIndirectCommandNV {
22780    pub op_type: PartitionedAccelerationStructureOpTypeNV,
22781    pub arg_count: u32,
22782    pub arg_data: StridedDeviceAddressNV,
22783}
22784impl Default for BuildPartitionedAccelerationStructureIndirectCommandNV {
22785    #[inline]
22786    fn default() -> Self {
22787        unsafe { core::mem::zeroed() }
22788    }
22789}
22790///[`VkPartitionedAccelerationStructureFlagsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureFlagsNV.html)
22791/**
22792Provided by **VK_NV_partitioned_acceleration_structure**.*/
22793///
22794///# Extends
22795///- [`PartitionedAccelerationStructureInstancesInputNV`]
22796#[repr(C)]
22797#[derive(Copy, Clone, Debug)]
22798#[doc(alias = "VkPartitionedAccelerationStructureFlagsNV")]
22799pub struct PartitionedAccelerationStructureFlagsNV {
22800    ///Must be `VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV`.
22801    pub s_type: StructureType,
22802    ///Optional, may be null.
22803    pub p_next: *mut core::ffi::c_void,
22804    pub enable_partition_translation: u32,
22805}
22806impl Default for PartitionedAccelerationStructureFlagsNV {
22807    #[inline]
22808    fn default() -> Self {
22809        Self {
22810            s_type: StructureType::from_raw(1000570005i32),
22811            p_next: core::ptr::null_mut(),
22812            enable_partition_translation: Default::default(),
22813        }
22814    }
22815}
22816///[`VkPartitionedAccelerationStructureWriteInstanceDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureWriteInstanceDataNV.html)
22817/**
22818Provided by **VK_NV_partitioned_acceleration_structure**.*/
22819#[repr(C)]
22820#[derive(Copy, Clone, Debug)]
22821#[doc(alias = "VkPartitionedAccelerationStructureWriteInstanceDataNV")]
22822pub struct PartitionedAccelerationStructureWriteInstanceDataNV {
22823    pub transform: TransformMatrixKHR,
22824    pub explicit_aabb: [f32; 6usize],
22825    pub instance_id: u32,
22826    pub instance_mask: u32,
22827    pub instance_contribution_to_hit_group_index: u32,
22828    pub instance_flags: PartitionedAccelerationStructureInstanceFlagsNV,
22829    pub instance_index: u32,
22830    pub partition_index: u32,
22831    pub acceleration_structure: u64,
22832}
22833impl Default for PartitionedAccelerationStructureWriteInstanceDataNV {
22834    #[inline]
22835    fn default() -> Self {
22836        unsafe { core::mem::zeroed() }
22837    }
22838}
22839///[`VkPartitionedAccelerationStructureUpdateInstanceDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureUpdateInstanceDataNV.html)
22840/**
22841Provided by **VK_NV_partitioned_acceleration_structure**.*/
22842#[repr(C)]
22843#[derive(Copy, Clone, Debug)]
22844#[doc(alias = "VkPartitionedAccelerationStructureUpdateInstanceDataNV")]
22845pub struct PartitionedAccelerationStructureUpdateInstanceDataNV {
22846    pub instance_index: u32,
22847    pub instance_contribution_to_hit_group_index: u32,
22848    pub acceleration_structure: u64,
22849}
22850impl Default for PartitionedAccelerationStructureUpdateInstanceDataNV {
22851    #[inline]
22852    fn default() -> Self {
22853        unsafe { core::mem::zeroed() }
22854    }
22855}
22856///[`VkPartitionedAccelerationStructureWritePartitionTranslationDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureWritePartitionTranslationDataNV.html)
22857/**
22858Provided by **VK_NV_partitioned_acceleration_structure**.*/
22859#[repr(C)]
22860#[derive(Copy, Clone, Debug)]
22861#[doc(alias = "VkPartitionedAccelerationStructureWritePartitionTranslationDataNV")]
22862pub struct PartitionedAccelerationStructureWritePartitionTranslationDataNV {
22863    pub partition_index: u32,
22864    pub partition_translation: [f32; 3usize],
22865}
22866impl Default for PartitionedAccelerationStructureWritePartitionTranslationDataNV {
22867    #[inline]
22868    fn default() -> Self {
22869        unsafe { core::mem::zeroed() }
22870    }
22871}
22872///[`VkWriteDescriptorSetPartitionedAccelerationStructureNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetPartitionedAccelerationStructureNV.html)
22873/**
22874Provided by **VK_NV_partitioned_acceleration_structure**.*/
22875///
22876///# Extends
22877///- [`WriteDescriptorSet`]
22878#[repr(C)]
22879#[derive(Copy, Clone, Debug)]
22880#[doc(alias = "VkWriteDescriptorSetPartitionedAccelerationStructureNV")]
22881pub struct WriteDescriptorSetPartitionedAccelerationStructureNV {
22882    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV`.
22883    pub s_type: StructureType,
22884    ///Optional, may be null.
22885    pub p_next: *mut core::ffi::c_void,
22886    ///Length of `p_acceleration_structures`.
22887    pub acceleration_structure_count: u32,
22888    ///Optional, may be null.
22889    pub p_acceleration_structures: *const u64,
22890}
22891impl Default for WriteDescriptorSetPartitionedAccelerationStructureNV {
22892    #[inline]
22893    fn default() -> Self {
22894        Self {
22895            s_type: StructureType::from_raw(1000570002i32),
22896            p_next: core::ptr::null_mut(),
22897            acceleration_structure_count: Default::default(),
22898            p_acceleration_structures: core::ptr::null(),
22899        }
22900    }
22901}
22902///[`VkPartitionedAccelerationStructureInstancesInputNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureInstancesInputNV.html)
22903/**
22904Provided by **VK_NV_partitioned_acceleration_structure**.*/
22905///
22906///# Extended By
22907///- [`PartitionedAccelerationStructureFlagsNV`]
22908#[repr(C)]
22909#[derive(Copy, Clone, Debug)]
22910#[doc(alias = "VkPartitionedAccelerationStructureInstancesInputNV")]
22911pub struct PartitionedAccelerationStructureInstancesInputNV {
22912    ///Must be `VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV`.
22913    pub s_type: StructureType,
22914    ///Optional, may be null.
22915    pub p_next: *mut core::ffi::c_void,
22916    pub flags: BuildAccelerationStructureFlagsKHR,
22917    pub instance_count: u32,
22918    pub max_instance_per_partition_count: u32,
22919    pub partition_count: u32,
22920    pub max_instance_in_global_partition_count: u32,
22921}
22922impl Default for PartitionedAccelerationStructureInstancesInputNV {
22923    #[inline]
22924    fn default() -> Self {
22925        Self {
22926            s_type: StructureType::from_raw(1000570003i32),
22927            p_next: core::ptr::null_mut(),
22928            flags: Default::default(),
22929            instance_count: Default::default(),
22930            max_instance_per_partition_count: Default::default(),
22931            partition_count: Default::default(),
22932            max_instance_in_global_partition_count: Default::default(),
22933        }
22934    }
22935}
22936///[`VkBuildPartitionedAccelerationStructureInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBuildPartitionedAccelerationStructureInfoNV.html)
22937/**
22938Provided by **VK_NV_partitioned_acceleration_structure**.*/
22939#[repr(C)]
22940#[derive(Copy, Clone, Debug)]
22941#[doc(alias = "VkBuildPartitionedAccelerationStructureInfoNV")]
22942pub struct BuildPartitionedAccelerationStructureInfoNV {
22943    ///Must be `VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV`.
22944    pub s_type: StructureType,
22945    ///Optional, may be null.
22946    pub p_next: *mut core::ffi::c_void,
22947    pub input: PartitionedAccelerationStructureInstancesInputNV,
22948    pub src_acceleration_structure_data: u64,
22949    pub dst_acceleration_structure_data: u64,
22950    pub scratch_data: u64,
22951    pub src_infos: u64,
22952    pub src_infos_count: u64,
22953}
22954impl Default for BuildPartitionedAccelerationStructureInfoNV {
22955    #[inline]
22956    fn default() -> Self {
22957        Self {
22958            s_type: StructureType::from_raw(1000570004i32),
22959            p_next: core::ptr::null_mut(),
22960            input: Default::default(),
22961            src_acceleration_structure_data: Default::default(),
22962            dst_acceleration_structure_data: Default::default(),
22963            scratch_data: Default::default(),
22964            src_infos: Default::default(),
22965            src_infos_count: Default::default(),
22966        }
22967    }
22968}
22969///[`VkPhysicalDeviceDiagnosticsConfigFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.html)
22970/**
22971Provided by **VK_NV_device_diagnostics_config**.*/
22972///
22973///# Extends
22974///- [`PhysicalDeviceFeatures2`]
22975///- [`DeviceCreateInfo`]
22976#[repr(C)]
22977#[derive(Copy, Clone, Debug)]
22978#[doc(alias = "VkPhysicalDeviceDiagnosticsConfigFeaturesNV")]
22979pub struct PhysicalDeviceDiagnosticsConfigFeaturesNV {
22980    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV`.
22981    pub s_type: StructureType,
22982    ///Optional, may be null.
22983    pub p_next: *mut core::ffi::c_void,
22984    pub diagnostics_config: u32,
22985}
22986impl Default for PhysicalDeviceDiagnosticsConfigFeaturesNV {
22987    #[inline]
22988    fn default() -> Self {
22989        Self {
22990            s_type: StructureType::from_raw(1000300000i32),
22991            p_next: core::ptr::null_mut(),
22992            diagnostics_config: Default::default(),
22993        }
22994    }
22995}
22996///[`VkDeviceDiagnosticsConfigCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceDiagnosticsConfigCreateInfoNV.html)
22997/**
22998Provided by **VK_NV_device_diagnostics_config**.*/
22999///
23000///# Extends
23001///- [`DeviceCreateInfo`]
23002#[repr(C)]
23003#[derive(Copy, Clone, Debug)]
23004#[doc(alias = "VkDeviceDiagnosticsConfigCreateInfoNV")]
23005pub struct DeviceDiagnosticsConfigCreateInfoNV {
23006    ///Must be `VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV`.
23007    pub s_type: StructureType,
23008    ///Optional, may be null.
23009    pub p_next: *const core::ffi::c_void,
23010    pub flags: DeviceDiagnosticsConfigFlagsNV,
23011}
23012impl Default for DeviceDiagnosticsConfigCreateInfoNV {
23013    #[inline]
23014    fn default() -> Self {
23015        Self {
23016            s_type: StructureType::from_raw(1000300001i32),
23017            p_next: core::ptr::null(),
23018            flags: Default::default(),
23019        }
23020    }
23021}
23022///[`VkPipelineOfflineCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineOfflineCreateInfo.html)
23023/**
23024Provided by **VKSC_VERSION_1_0**.*/
23025///
23026///# Extends
23027///- [`GraphicsPipelineCreateInfo`]
23028///- [`ComputePipelineCreateInfo`]
23029///- [`RayTracingPipelineCreateInfoKHR`]
23030///- [`RayTracingPipelineCreateInfoNV`]
23031#[repr(C)]
23032#[derive(Copy, Clone, Debug)]
23033#[doc(alias = "VkPipelineOfflineCreateInfo")]
23034pub struct PipelineOfflineCreateInfo {
23035    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO`.
23036    pub s_type: StructureType,
23037    ///Optional, may be null.
23038    pub p_next: *const core::ffi::c_void,
23039    pub pipeline_identifier: [u8; UUID_SIZE as usize],
23040    pub match_control: PipelineMatchControl,
23041    pub pool_entry_size: u64,
23042}
23043impl Default for PipelineOfflineCreateInfo {
23044    #[inline]
23045    fn default() -> Self {
23046        Self {
23047            s_type: StructureType::from_raw(1000298010i32),
23048            p_next: core::ptr::null(),
23049            pipeline_identifier: unsafe { core::mem::zeroed() },
23050            match_control: Default::default(),
23051            pool_entry_size: Default::default(),
23052        }
23053    }
23054}
23055///[`VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures.html)
23056/**
23057Provided by **VK_COMPUTE_VERSION_1_3**.*/
23058///
23059///# Extends
23060///- [`PhysicalDeviceFeatures2`]
23061///- [`DeviceCreateInfo`]
23062#[repr(C)]
23063#[derive(Copy, Clone, Debug)]
23064#[doc(alias = "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures")]
23065pub struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
23066    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES`.
23067    pub s_type: StructureType,
23068    ///Optional, may be null.
23069    pub p_next: *mut core::ffi::c_void,
23070    pub shader_zero_initialize_workgroup_memory: u32,
23071}
23072impl Default for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
23073    #[inline]
23074    fn default() -> Self {
23075        Self {
23076            s_type: StructureType::from_raw(1000325000i32),
23077            p_next: core::ptr::null_mut(),
23078            shader_zero_initialize_workgroup_memory: Default::default(),
23079        }
23080    }
23081}
23082///[`VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.html)
23083/**
23084Provided by **VK_KHR_shader_subgroup_uniform_control_flow**.*/
23085///
23086///# Extends
23087///- [`PhysicalDeviceFeatures2`]
23088///- [`DeviceCreateInfo`]
23089#[repr(C)]
23090#[derive(Copy, Clone, Debug)]
23091#[doc(alias = "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR")]
23092pub struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
23093    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR`.
23094    pub s_type: StructureType,
23095    ///Optional, may be null.
23096    pub p_next: *mut core::ffi::c_void,
23097    pub shader_subgroup_uniform_control_flow: u32,
23098}
23099impl Default for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
23100    #[inline]
23101    fn default() -> Self {
23102        Self {
23103            s_type: StructureType::from_raw(1000323000i32),
23104            p_next: core::ptr::null_mut(),
23105            shader_subgroup_uniform_control_flow: Default::default(),
23106        }
23107    }
23108}
23109///[`VkPhysicalDeviceRobustness2FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRobustness2FeaturesKHR.html)
23110/**
23111Provided by **VK_KHR_robustness2**.*/
23112///
23113///# Extends
23114///- [`PhysicalDeviceFeatures2`]
23115///- [`DeviceCreateInfo`]
23116#[repr(C)]
23117#[derive(Copy, Clone, Debug)]
23118#[doc(alias = "VkPhysicalDeviceRobustness2FeaturesKHR")]
23119pub struct PhysicalDeviceRobustness2FeaturesKHR {
23120    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR`.
23121    pub s_type: StructureType,
23122    ///Optional, may be null.
23123    pub p_next: *mut core::ffi::c_void,
23124    pub robust_buffer_access2: u32,
23125    pub robust_image_access2: u32,
23126    pub null_descriptor: u32,
23127}
23128impl Default for PhysicalDeviceRobustness2FeaturesKHR {
23129    #[inline]
23130    fn default() -> Self {
23131        Self {
23132            s_type: StructureType::from_raw(1000286000i32),
23133            p_next: core::ptr::null_mut(),
23134            robust_buffer_access2: Default::default(),
23135            robust_image_access2: Default::default(),
23136            null_descriptor: Default::default(),
23137        }
23138    }
23139}
23140///[`VkPhysicalDeviceRobustness2PropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRobustness2PropertiesKHR.html)
23141/**
23142Provided by **VK_KHR_robustness2**.*/
23143/**
23144**Returned only**, filled by Vulkan, not constructed by the application.*/
23145///
23146///# Extends
23147///- [`PhysicalDeviceProperties2`]
23148#[repr(C)]
23149#[derive(Copy, Clone, Debug)]
23150#[doc(alias = "VkPhysicalDeviceRobustness2PropertiesKHR")]
23151pub struct PhysicalDeviceRobustness2PropertiesKHR {
23152    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR`.
23153    pub s_type: StructureType,
23154    ///Optional, may be null.
23155    pub p_next: *mut core::ffi::c_void,
23156    pub robust_storage_buffer_access_size_alignment: u64,
23157    pub robust_uniform_buffer_access_size_alignment: u64,
23158}
23159impl Default for PhysicalDeviceRobustness2PropertiesKHR {
23160    #[inline]
23161    fn default() -> Self {
23162        Self {
23163            s_type: StructureType::from_raw(1000286001i32),
23164            p_next: core::ptr::null_mut(),
23165            robust_storage_buffer_access_size_alignment: Default::default(),
23166            robust_uniform_buffer_access_size_alignment: Default::default(),
23167        }
23168    }
23169}
23170///[`VkPhysicalDeviceImageRobustnessFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageRobustnessFeatures.html)
23171/**
23172Provided by **VK_COMPUTE_VERSION_1_3**.*/
23173///
23174///# Extends
23175///- [`PhysicalDeviceFeatures2`]
23176///- [`DeviceCreateInfo`]
23177#[repr(C)]
23178#[derive(Copy, Clone, Debug)]
23179#[doc(alias = "VkPhysicalDeviceImageRobustnessFeatures")]
23180pub struct PhysicalDeviceImageRobustnessFeatures {
23181    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES`.
23182    pub s_type: StructureType,
23183    ///Optional, may be null.
23184    pub p_next: *mut core::ffi::c_void,
23185    pub robust_image_access: u32,
23186}
23187impl Default for PhysicalDeviceImageRobustnessFeatures {
23188    #[inline]
23189    fn default() -> Self {
23190        Self {
23191            s_type: StructureType::from_raw(1000335000i32),
23192            p_next: core::ptr::null_mut(),
23193            robust_image_access: Default::default(),
23194        }
23195    }
23196}
23197///[`VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.html)
23198/**
23199Provided by **VK_KHR_workgroup_memory_explicit_layout**.*/
23200///
23201///# Extends
23202///- [`PhysicalDeviceFeatures2`]
23203///- [`DeviceCreateInfo`]
23204#[repr(C)]
23205#[derive(Copy, Clone, Debug)]
23206#[doc(alias = "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR")]
23207pub struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
23208    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR`.
23209    pub s_type: StructureType,
23210    ///Optional, may be null.
23211    pub p_next: *mut core::ffi::c_void,
23212    pub workgroup_memory_explicit_layout: u32,
23213    pub workgroup_memory_explicit_layout_scalar_block_layout: u32,
23214    pub workgroup_memory_explicit_layout8_bit_access: u32,
23215    pub workgroup_memory_explicit_layout16_bit_access: u32,
23216}
23217impl Default for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
23218    #[inline]
23219    fn default() -> Self {
23220        Self {
23221            s_type: StructureType::from_raw(1000336000i32),
23222            p_next: core::ptr::null_mut(),
23223            workgroup_memory_explicit_layout: Default::default(),
23224            workgroup_memory_explicit_layout_scalar_block_layout: Default::default(),
23225            workgroup_memory_explicit_layout8_bit_access: Default::default(),
23226            workgroup_memory_explicit_layout16_bit_access: Default::default(),
23227        }
23228    }
23229}
23230///[`VkPhysicalDevicePortabilitySubsetFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePortabilitySubsetFeaturesKHR.html)
23231/**
23232Provided by **VK_KHR_portability_subset**.*/
23233///
23234///# Extends
23235///- [`PhysicalDeviceFeatures2`]
23236///- [`DeviceCreateInfo`]
23237#[repr(C)]
23238#[derive(Copy, Clone, Debug)]
23239#[doc(alias = "VkPhysicalDevicePortabilitySubsetFeaturesKHR")]
23240pub struct PhysicalDevicePortabilitySubsetFeaturesKHR {
23241    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR`.
23242    pub s_type: StructureType,
23243    ///Optional, may be null.
23244    pub p_next: *mut core::ffi::c_void,
23245    pub constant_alpha_color_blend_factors: u32,
23246    pub events: u32,
23247    pub image_view_format_reinterpretation: u32,
23248    pub image_view_format_swizzle: u32,
23249    pub image_view2_d_on3_d_image: u32,
23250    pub multisample_array_image: u32,
23251    pub mutable_comparison_samplers: u32,
23252    pub point_polygons: u32,
23253    pub sampler_mip_lod_bias: u32,
23254    pub separate_stencil_mask_ref: u32,
23255    pub shader_sample_rate_interpolation_functions: u32,
23256    pub tessellation_isolines: u32,
23257    pub tessellation_point_mode: u32,
23258    pub triangle_fans: u32,
23259    pub vertex_attribute_access_beyond_stride: u32,
23260}
23261impl Default for PhysicalDevicePortabilitySubsetFeaturesKHR {
23262    #[inline]
23263    fn default() -> Self {
23264        Self {
23265            s_type: StructureType::from_raw(1000163000i32),
23266            p_next: core::ptr::null_mut(),
23267            constant_alpha_color_blend_factors: Default::default(),
23268            events: Default::default(),
23269            image_view_format_reinterpretation: Default::default(),
23270            image_view_format_swizzle: Default::default(),
23271            image_view2_d_on3_d_image: Default::default(),
23272            multisample_array_image: Default::default(),
23273            mutable_comparison_samplers: Default::default(),
23274            point_polygons: Default::default(),
23275            sampler_mip_lod_bias: Default::default(),
23276            separate_stencil_mask_ref: Default::default(),
23277            shader_sample_rate_interpolation_functions: Default::default(),
23278            tessellation_isolines: Default::default(),
23279            tessellation_point_mode: Default::default(),
23280            triangle_fans: Default::default(),
23281            vertex_attribute_access_beyond_stride: Default::default(),
23282        }
23283    }
23284}
23285///[`VkPhysicalDevicePortabilitySubsetPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePortabilitySubsetPropertiesKHR.html)
23286/**
23287Provided by **VK_KHR_portability_subset**.*/
23288/**
23289**Returned only**, filled by Vulkan, not constructed by the application.*/
23290///
23291///# Extends
23292///- [`PhysicalDeviceProperties2`]
23293#[repr(C)]
23294#[derive(Copy, Clone, Debug)]
23295#[doc(alias = "VkPhysicalDevicePortabilitySubsetPropertiesKHR")]
23296pub struct PhysicalDevicePortabilitySubsetPropertiesKHR {
23297    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR`.
23298    pub s_type: StructureType,
23299    ///Optional, may be null.
23300    pub p_next: *mut core::ffi::c_void,
23301    pub min_vertex_input_binding_stride_alignment: u32,
23302}
23303impl Default for PhysicalDevicePortabilitySubsetPropertiesKHR {
23304    #[inline]
23305    fn default() -> Self {
23306        Self {
23307            s_type: StructureType::from_raw(1000163001i32),
23308            p_next: core::ptr::null_mut(),
23309            min_vertex_input_binding_stride_alignment: Default::default(),
23310        }
23311    }
23312}
23313///[`VkPhysicalDevice4444FormatsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevice4444FormatsFeaturesEXT.html)
23314/**
23315Provided by **VK_EXT_4444_formats**.*/
23316///
23317///# Extends
23318///- [`PhysicalDeviceFeatures2`]
23319///- [`DeviceCreateInfo`]
23320#[repr(C)]
23321#[derive(Copy, Clone, Debug)]
23322#[doc(alias = "VkPhysicalDevice4444FormatsFeaturesEXT")]
23323pub struct PhysicalDevice4444FormatsFeaturesEXT {
23324    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT`.
23325    pub s_type: StructureType,
23326    ///Optional, may be null.
23327    pub p_next: *mut core::ffi::c_void,
23328    pub format_a4r4g4b4: u32,
23329    pub format_a4b4g4r4: u32,
23330}
23331impl Default for PhysicalDevice4444FormatsFeaturesEXT {
23332    #[inline]
23333    fn default() -> Self {
23334        Self {
23335            s_type: StructureType::from_raw(1000340000i32),
23336            p_next: core::ptr::null_mut(),
23337            format_a4r4g4b4: Default::default(),
23338            format_a4b4g4r4: Default::default(),
23339        }
23340    }
23341}
23342///[`VkPhysicalDeviceSubpassShadingFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.html)
23343/**
23344Provided by **VK_HUAWEI_subpass_shading**.*/
23345///
23346///# Extends
23347///- [`PhysicalDeviceFeatures2`]
23348///- [`DeviceCreateInfo`]
23349#[repr(C)]
23350#[derive(Copy, Clone, Debug)]
23351#[doc(alias = "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI")]
23352pub struct PhysicalDeviceSubpassShadingFeaturesHUAWEI {
23353    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI`.
23354    pub s_type: StructureType,
23355    ///Optional, may be null.
23356    pub p_next: *mut core::ffi::c_void,
23357    pub subpass_shading: u32,
23358}
23359impl Default for PhysicalDeviceSubpassShadingFeaturesHUAWEI {
23360    #[inline]
23361    fn default() -> Self {
23362        Self {
23363            s_type: StructureType::from_raw(1000369001i32),
23364            p_next: core::ptr::null_mut(),
23365            subpass_shading: Default::default(),
23366        }
23367    }
23368}
23369///[`VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI.html)
23370/**
23371Provided by **VK_HUAWEI_cluster_culling_shader**.*/
23372///
23373///# Extends
23374///- [`PhysicalDeviceFeatures2`]
23375///- [`DeviceCreateInfo`]
23376///
23377///# Extended By
23378///- [`PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI`]
23379#[repr(C)]
23380#[derive(Copy, Clone, Debug)]
23381#[doc(alias = "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI")]
23382pub struct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
23383    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI`.
23384    pub s_type: StructureType,
23385    ///Optional, may be null.
23386    pub p_next: *mut core::ffi::c_void,
23387    pub clusterculling_shader: u32,
23388    pub multiview_cluster_culling_shader: u32,
23389}
23390impl Default for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
23391    #[inline]
23392    fn default() -> Self {
23393        Self {
23394            s_type: StructureType::from_raw(1000404000i32),
23395            p_next: core::ptr::null_mut(),
23396            clusterculling_shader: Default::default(),
23397            multiview_cluster_culling_shader: Default::default(),
23398        }
23399    }
23400}
23401///[`VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.html)
23402/**
23403Provided by **VK_HUAWEI_cluster_culling_shader**.*/
23404///
23405///# Extends
23406///- [`PhysicalDeviceClusterCullingShaderFeaturesHUAWEI`]
23407#[repr(C)]
23408#[derive(Copy, Clone, Debug)]
23409#[doc(alias = "VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI")]
23410pub struct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
23411    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI`.
23412    pub s_type: StructureType,
23413    ///Optional, may be null.
23414    pub p_next: *mut core::ffi::c_void,
23415    pub cluster_shading_rate: u32,
23416}
23417impl Default for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
23418    #[inline]
23419    fn default() -> Self {
23420        Self {
23421            s_type: StructureType::from_raw(1000404002i32),
23422            p_next: core::ptr::null_mut(),
23423            cluster_shading_rate: Default::default(),
23424        }
23425    }
23426}
23427///[`VkBufferCopy2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCopy2.html)
23428/**
23429Provided by **VK_BASE_VERSION_1_3**.*/
23430#[repr(C)]
23431#[derive(Copy, Clone, Debug)]
23432#[doc(alias = "VkBufferCopy2")]
23433pub struct BufferCopy2 {
23434    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COPY_2`.
23435    pub s_type: StructureType,
23436    ///Optional, may be null.
23437    pub p_next: *const core::ffi::c_void,
23438    pub src_offset: u64,
23439    pub dst_offset: u64,
23440    pub size: u64,
23441}
23442impl Default for BufferCopy2 {
23443    #[inline]
23444    fn default() -> Self {
23445        Self {
23446            s_type: StructureType::from_raw(1000337006i32),
23447            p_next: core::ptr::null(),
23448            src_offset: Default::default(),
23449            dst_offset: Default::default(),
23450            size: Default::default(),
23451        }
23452    }
23453}
23454///[`VkImageCopy2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCopy2.html)
23455/**
23456Provided by **VK_BASE_VERSION_1_3**.*/
23457#[repr(C)]
23458#[derive(Copy, Clone, Debug)]
23459#[doc(alias = "VkImageCopy2")]
23460pub struct ImageCopy2 {
23461    ///Must be `VK_STRUCTURE_TYPE_IMAGE_COPY_2`.
23462    pub s_type: StructureType,
23463    ///Optional, may be null.
23464    pub p_next: *const core::ffi::c_void,
23465    pub src_subresource: ImageSubresourceLayers,
23466    pub src_offset: Offset3D,
23467    pub dst_subresource: ImageSubresourceLayers,
23468    pub dst_offset: Offset3D,
23469    pub extent: Extent3D,
23470}
23471impl Default for ImageCopy2 {
23472    #[inline]
23473    fn default() -> Self {
23474        Self {
23475            s_type: StructureType::from_raw(1000337007i32),
23476            p_next: core::ptr::null(),
23477            src_subresource: Default::default(),
23478            src_offset: Default::default(),
23479            dst_subresource: Default::default(),
23480            dst_offset: Default::default(),
23481            extent: Default::default(),
23482        }
23483    }
23484}
23485///[`VkImageBlit2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageBlit2.html)
23486/**
23487Provided by **VK_GRAPHICS_VERSION_1_3**.*/
23488///
23489///# Extended By
23490///- [`CopyCommandTransformInfoQCOM`]
23491#[repr(C)]
23492#[derive(Copy, Clone, Debug)]
23493#[doc(alias = "VkImageBlit2")]
23494pub struct ImageBlit2 {
23495    ///Must be `VK_STRUCTURE_TYPE_IMAGE_BLIT_2`.
23496    pub s_type: StructureType,
23497    ///Optional, may be null.
23498    pub p_next: *const core::ffi::c_void,
23499    pub src_subresource: ImageSubresourceLayers,
23500    pub src_offsets: [Offset3D; 2usize],
23501    pub dst_subresource: ImageSubresourceLayers,
23502    pub dst_offsets: [Offset3D; 2usize],
23503}
23504impl Default for ImageBlit2 {
23505    #[inline]
23506    fn default() -> Self {
23507        Self {
23508            s_type: StructureType::from_raw(1000337008i32),
23509            p_next: core::ptr::null(),
23510            src_subresource: Default::default(),
23511            src_offsets: unsafe { core::mem::zeroed() },
23512            dst_subresource: Default::default(),
23513            dst_offsets: unsafe { core::mem::zeroed() },
23514        }
23515    }
23516}
23517///[`VkBufferImageCopy2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferImageCopy2.html)
23518/**
23519Provided by **VK_BASE_VERSION_1_3**.*/
23520///
23521///# Extended By
23522///- [`CopyCommandTransformInfoQCOM`]
23523#[repr(C)]
23524#[derive(Copy, Clone, Debug)]
23525#[doc(alias = "VkBufferImageCopy2")]
23526pub struct BufferImageCopy2 {
23527    ///Must be `VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2`.
23528    pub s_type: StructureType,
23529    ///Optional, may be null.
23530    pub p_next: *const core::ffi::c_void,
23531    pub buffer_offset: u64,
23532    pub buffer_row_length: u32,
23533    pub buffer_image_height: u32,
23534    pub image_subresource: ImageSubresourceLayers,
23535    pub image_offset: Offset3D,
23536    pub image_extent: Extent3D,
23537}
23538impl Default for BufferImageCopy2 {
23539    #[inline]
23540    fn default() -> Self {
23541        Self {
23542            s_type: StructureType::from_raw(1000337009i32),
23543            p_next: core::ptr::null(),
23544            buffer_offset: Default::default(),
23545            buffer_row_length: Default::default(),
23546            buffer_image_height: Default::default(),
23547            image_subresource: Default::default(),
23548            image_offset: Default::default(),
23549            image_extent: Default::default(),
23550        }
23551    }
23552}
23553///[`VkImageResolve2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageResolve2.html)
23554/**
23555Provided by **VK_GRAPHICS_VERSION_1_3**.*/
23556#[repr(C)]
23557#[derive(Copy, Clone, Debug)]
23558#[doc(alias = "VkImageResolve2")]
23559pub struct ImageResolve2 {
23560    ///Must be `VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2`.
23561    pub s_type: StructureType,
23562    ///Optional, may be null.
23563    pub p_next: *const core::ffi::c_void,
23564    pub src_subresource: ImageSubresourceLayers,
23565    pub src_offset: Offset3D,
23566    pub dst_subresource: ImageSubresourceLayers,
23567    pub dst_offset: Offset3D,
23568    pub extent: Extent3D,
23569}
23570impl Default for ImageResolve2 {
23571    #[inline]
23572    fn default() -> Self {
23573        Self {
23574            s_type: StructureType::from_raw(1000337010i32),
23575            p_next: core::ptr::null(),
23576            src_subresource: Default::default(),
23577            src_offset: Default::default(),
23578            dst_subresource: Default::default(),
23579            dst_offset: Default::default(),
23580            extent: Default::default(),
23581        }
23582    }
23583}
23584///[`VkCopyBufferInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyBufferInfo2.html)
23585/**
23586Provided by **VK_BASE_VERSION_1_3**.*/
23587#[repr(C)]
23588#[derive(Copy, Clone, Debug)]
23589#[doc(alias = "VkCopyBufferInfo2")]
23590pub struct CopyBufferInfo2 {
23591    ///Must be `VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2`.
23592    pub s_type: StructureType,
23593    ///Optional, may be null.
23594    pub p_next: *const core::ffi::c_void,
23595    pub src_buffer: Buffer,
23596    pub dst_buffer: Buffer,
23597    ///Length of `p_regions`.
23598    pub region_count: u32,
23599    pub p_regions: *const BufferCopy2,
23600}
23601impl Default for CopyBufferInfo2 {
23602    #[inline]
23603    fn default() -> Self {
23604        Self {
23605            s_type: StructureType::from_raw(1000337000i32),
23606            p_next: core::ptr::null(),
23607            src_buffer: Default::default(),
23608            dst_buffer: Default::default(),
23609            region_count: Default::default(),
23610            p_regions: core::ptr::null(),
23611        }
23612    }
23613}
23614///[`VkCopyImageInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyImageInfo2.html)
23615/**
23616Provided by **VK_BASE_VERSION_1_3**.*/
23617#[repr(C)]
23618#[derive(Copy, Clone, Debug)]
23619#[doc(alias = "VkCopyImageInfo2")]
23620pub struct CopyImageInfo2 {
23621    ///Must be `VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2`.
23622    pub s_type: StructureType,
23623    ///Optional, may be null.
23624    pub p_next: *const core::ffi::c_void,
23625    pub src_image: Image,
23626    pub src_image_layout: ImageLayout,
23627    pub dst_image: Image,
23628    pub dst_image_layout: ImageLayout,
23629    ///Length of `p_regions`.
23630    pub region_count: u32,
23631    pub p_regions: *const ImageCopy2,
23632}
23633impl Default for CopyImageInfo2 {
23634    #[inline]
23635    fn default() -> Self {
23636        Self {
23637            s_type: StructureType::from_raw(1000337001i32),
23638            p_next: core::ptr::null(),
23639            src_image: Default::default(),
23640            src_image_layout: Default::default(),
23641            dst_image: Default::default(),
23642            dst_image_layout: Default::default(),
23643            region_count: Default::default(),
23644            p_regions: core::ptr::null(),
23645        }
23646    }
23647}
23648///[`VkBlitImageInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBlitImageInfo2.html)
23649/**
23650Provided by **VK_GRAPHICS_VERSION_1_3**.*/
23651///
23652///# Extended By
23653///- [`BlitImageCubicWeightsInfoQCOM`]
23654#[repr(C)]
23655#[derive(Copy, Clone, Debug)]
23656#[doc(alias = "VkBlitImageInfo2")]
23657pub struct BlitImageInfo2 {
23658    ///Must be `VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2`.
23659    pub s_type: StructureType,
23660    ///Optional, may be null.
23661    pub p_next: *const core::ffi::c_void,
23662    pub src_image: Image,
23663    pub src_image_layout: ImageLayout,
23664    pub dst_image: Image,
23665    pub dst_image_layout: ImageLayout,
23666    ///Length of `p_regions`.
23667    pub region_count: u32,
23668    pub p_regions: *const ImageBlit2,
23669    pub filter: Filter,
23670}
23671impl Default for BlitImageInfo2 {
23672    #[inline]
23673    fn default() -> Self {
23674        Self {
23675            s_type: StructureType::from_raw(1000337004i32),
23676            p_next: core::ptr::null(),
23677            src_image: Default::default(),
23678            src_image_layout: Default::default(),
23679            dst_image: Default::default(),
23680            dst_image_layout: Default::default(),
23681            region_count: Default::default(),
23682            p_regions: core::ptr::null(),
23683            filter: Default::default(),
23684        }
23685    }
23686}
23687///[`VkCopyBufferToImageInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyBufferToImageInfo2.html)
23688/**
23689Provided by **VK_BASE_VERSION_1_3**.*/
23690#[repr(C)]
23691#[derive(Copy, Clone, Debug)]
23692#[doc(alias = "VkCopyBufferToImageInfo2")]
23693pub struct CopyBufferToImageInfo2 {
23694    ///Must be `VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2`.
23695    pub s_type: StructureType,
23696    ///Optional, may be null.
23697    pub p_next: *const core::ffi::c_void,
23698    pub src_buffer: Buffer,
23699    pub dst_image: Image,
23700    pub dst_image_layout: ImageLayout,
23701    ///Length of `p_regions`.
23702    pub region_count: u32,
23703    pub p_regions: *const BufferImageCopy2,
23704}
23705impl Default for CopyBufferToImageInfo2 {
23706    #[inline]
23707    fn default() -> Self {
23708        Self {
23709            s_type: StructureType::from_raw(1000337002i32),
23710            p_next: core::ptr::null(),
23711            src_buffer: Default::default(),
23712            dst_image: Default::default(),
23713            dst_image_layout: Default::default(),
23714            region_count: Default::default(),
23715            p_regions: core::ptr::null(),
23716        }
23717    }
23718}
23719///[`VkCopyImageToBufferInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyImageToBufferInfo2.html)
23720/**
23721Provided by **VK_BASE_VERSION_1_3**.*/
23722#[repr(C)]
23723#[derive(Copy, Clone, Debug)]
23724#[doc(alias = "VkCopyImageToBufferInfo2")]
23725pub struct CopyImageToBufferInfo2 {
23726    ///Must be `VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2`.
23727    pub s_type: StructureType,
23728    ///Optional, may be null.
23729    pub p_next: *const core::ffi::c_void,
23730    pub src_image: Image,
23731    pub src_image_layout: ImageLayout,
23732    pub dst_buffer: Buffer,
23733    ///Length of `p_regions`.
23734    pub region_count: u32,
23735    pub p_regions: *const BufferImageCopy2,
23736}
23737impl Default for CopyImageToBufferInfo2 {
23738    #[inline]
23739    fn default() -> Self {
23740        Self {
23741            s_type: StructureType::from_raw(1000337003i32),
23742            p_next: core::ptr::null(),
23743            src_image: Default::default(),
23744            src_image_layout: Default::default(),
23745            dst_buffer: Default::default(),
23746            region_count: Default::default(),
23747            p_regions: core::ptr::null(),
23748        }
23749    }
23750}
23751///[`VkResolveImageInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkResolveImageInfo2.html)
23752/**
23753Provided by **VK_GRAPHICS_VERSION_1_3**.*/
23754///
23755///# Extended By
23756///- [`ResolveImageModeInfoKHR`]
23757#[repr(C)]
23758#[derive(Copy, Clone, Debug)]
23759#[doc(alias = "VkResolveImageInfo2")]
23760pub struct ResolveImageInfo2 {
23761    ///Must be `VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2`.
23762    pub s_type: StructureType,
23763    ///Optional, may be null.
23764    pub p_next: *const core::ffi::c_void,
23765    pub src_image: Image,
23766    pub src_image_layout: ImageLayout,
23767    pub dst_image: Image,
23768    pub dst_image_layout: ImageLayout,
23769    ///Length of `p_regions`.
23770    pub region_count: u32,
23771    pub p_regions: *const ImageResolve2,
23772}
23773impl Default for ResolveImageInfo2 {
23774    #[inline]
23775    fn default() -> Self {
23776        Self {
23777            s_type: StructureType::from_raw(1000337005i32),
23778            p_next: core::ptr::null(),
23779            src_image: Default::default(),
23780            src_image_layout: Default::default(),
23781            dst_image: Default::default(),
23782            dst_image_layout: Default::default(),
23783            region_count: Default::default(),
23784            p_regions: core::ptr::null(),
23785        }
23786    }
23787}
23788///[`VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.html)
23789/**
23790Provided by **VK_EXT_shader_image_atomic_int64**.*/
23791///
23792///# Extends
23793///- [`PhysicalDeviceFeatures2`]
23794///- [`DeviceCreateInfo`]
23795#[repr(C)]
23796#[derive(Copy, Clone, Debug)]
23797#[doc(alias = "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT")]
23798pub struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
23799    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT`.
23800    pub s_type: StructureType,
23801    ///Optional, may be null.
23802    pub p_next: *mut core::ffi::c_void,
23803    pub shader_image_int64_atomics: u32,
23804    pub sparse_image_int64_atomics: u32,
23805}
23806impl Default for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
23807    #[inline]
23808    fn default() -> Self {
23809        Self {
23810            s_type: StructureType::from_raw(1000234000i32),
23811            p_next: core::ptr::null_mut(),
23812            shader_image_int64_atomics: Default::default(),
23813            sparse_image_int64_atomics: Default::default(),
23814        }
23815    }
23816}
23817///[`VkFragmentShadingRateAttachmentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFragmentShadingRateAttachmentInfoKHR.html)
23818/**
23819Provided by **VK_KHR_fragment_shading_rate**.*/
23820///
23821///# Extends
23822///- [`SubpassDescription2`]
23823#[repr(C)]
23824#[derive(Copy, Clone, Debug)]
23825#[doc(alias = "VkFragmentShadingRateAttachmentInfoKHR")]
23826pub struct FragmentShadingRateAttachmentInfoKHR {
23827    ///Must be `VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR`.
23828    pub s_type: StructureType,
23829    ///Optional, may be null.
23830    pub p_next: *const core::ffi::c_void,
23831    ///Optional, may be null.
23832    pub p_fragment_shading_rate_attachment: *const AttachmentReference2,
23833    pub shading_rate_attachment_texel_size: Extent2D,
23834}
23835impl Default for FragmentShadingRateAttachmentInfoKHR {
23836    #[inline]
23837    fn default() -> Self {
23838        Self {
23839            s_type: StructureType::from_raw(1000226000i32),
23840            p_next: core::ptr::null(),
23841            p_fragment_shading_rate_attachment: core::ptr::null(),
23842            shading_rate_attachment_texel_size: Default::default(),
23843        }
23844    }
23845}
23846///[`VkPipelineFragmentShadingRateStateCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineFragmentShadingRateStateCreateInfoKHR.html)
23847/**
23848Provided by **VK_KHR_fragment_shading_rate**.*/
23849///
23850///# Extends
23851///- [`GraphicsPipelineCreateInfo`]
23852#[repr(C)]
23853#[derive(Copy, Clone, Debug)]
23854#[doc(alias = "VkPipelineFragmentShadingRateStateCreateInfoKHR")]
23855pub struct PipelineFragmentShadingRateStateCreateInfoKHR {
23856    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR`.
23857    pub s_type: StructureType,
23858    ///Optional, may be null.
23859    pub p_next: *const core::ffi::c_void,
23860    pub fragment_size: Extent2D,
23861    pub combiner_ops: [FragmentShadingRateCombinerOpKHR; 2usize],
23862}
23863impl Default for PipelineFragmentShadingRateStateCreateInfoKHR {
23864    #[inline]
23865    fn default() -> Self {
23866        Self {
23867            s_type: StructureType::from_raw(1000226001i32),
23868            p_next: core::ptr::null(),
23869            fragment_size: Default::default(),
23870            combiner_ops: unsafe { core::mem::zeroed() },
23871        }
23872    }
23873}
23874///[`VkPhysicalDeviceFragmentShadingRateFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.html)
23875/**
23876Provided by **VK_KHR_fragment_shading_rate**.*/
23877///
23878///# Extends
23879///- [`PhysicalDeviceFeatures2`]
23880///- [`DeviceCreateInfo`]
23881#[repr(C)]
23882#[derive(Copy, Clone, Debug)]
23883#[doc(alias = "VkPhysicalDeviceFragmentShadingRateFeaturesKHR")]
23884pub struct PhysicalDeviceFragmentShadingRateFeaturesKHR {
23885    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR`.
23886    pub s_type: StructureType,
23887    ///Optional, may be null.
23888    pub p_next: *mut core::ffi::c_void,
23889    pub pipeline_fragment_shading_rate: u32,
23890    pub primitive_fragment_shading_rate: u32,
23891    pub attachment_fragment_shading_rate: u32,
23892}
23893impl Default for PhysicalDeviceFragmentShadingRateFeaturesKHR {
23894    #[inline]
23895    fn default() -> Self {
23896        Self {
23897            s_type: StructureType::from_raw(1000226003i32),
23898            p_next: core::ptr::null_mut(),
23899            pipeline_fragment_shading_rate: Default::default(),
23900            primitive_fragment_shading_rate: Default::default(),
23901            attachment_fragment_shading_rate: Default::default(),
23902        }
23903    }
23904}
23905///[`VkPhysicalDeviceFragmentShadingRatePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRatePropertiesKHR.html)
23906/**
23907Provided by **VK_KHR_fragment_shading_rate**.*/
23908/**
23909**Returned only**, filled by Vulkan, not constructed by the application.*/
23910///
23911///# Extends
23912///- [`PhysicalDeviceProperties2`]
23913#[repr(C)]
23914#[derive(Copy, Clone, Debug)]
23915#[doc(alias = "VkPhysicalDeviceFragmentShadingRatePropertiesKHR")]
23916pub struct PhysicalDeviceFragmentShadingRatePropertiesKHR {
23917    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR`.
23918    pub s_type: StructureType,
23919    ///Optional, may be null.
23920    pub p_next: *mut core::ffi::c_void,
23921    pub min_fragment_shading_rate_attachment_texel_size: Extent2D,
23922    pub max_fragment_shading_rate_attachment_texel_size: Extent2D,
23923    pub max_fragment_shading_rate_attachment_texel_size_aspect_ratio: u32,
23924    pub primitive_fragment_shading_rate_with_multiple_viewports: u32,
23925    pub layered_shading_rate_attachments: u32,
23926    pub fragment_shading_rate_non_trivial_combiner_ops: u32,
23927    pub max_fragment_size: Extent2D,
23928    pub max_fragment_size_aspect_ratio: u32,
23929    pub max_fragment_shading_rate_coverage_samples: u32,
23930    pub max_fragment_shading_rate_rasterization_samples: SampleCountFlagBits,
23931    pub fragment_shading_rate_with_shader_depth_stencil_writes: u32,
23932    pub fragment_shading_rate_with_sample_mask: u32,
23933    pub fragment_shading_rate_with_shader_sample_mask: u32,
23934    pub fragment_shading_rate_with_conservative_rasterization: u32,
23935    pub fragment_shading_rate_with_fragment_shader_interlock: u32,
23936    pub fragment_shading_rate_with_custom_sample_locations: u32,
23937    pub fragment_shading_rate_strict_multiply_combiner: u32,
23938}
23939impl Default for PhysicalDeviceFragmentShadingRatePropertiesKHR {
23940    #[inline]
23941    fn default() -> Self {
23942        Self {
23943            s_type: StructureType::from_raw(1000226002i32),
23944            p_next: core::ptr::null_mut(),
23945            min_fragment_shading_rate_attachment_texel_size: Default::default(),
23946            max_fragment_shading_rate_attachment_texel_size: Default::default(),
23947            max_fragment_shading_rate_attachment_texel_size_aspect_ratio: Default::default(),
23948            primitive_fragment_shading_rate_with_multiple_viewports: Default::default(),
23949            layered_shading_rate_attachments: Default::default(),
23950            fragment_shading_rate_non_trivial_combiner_ops: Default::default(),
23951            max_fragment_size: Default::default(),
23952            max_fragment_size_aspect_ratio: Default::default(),
23953            max_fragment_shading_rate_coverage_samples: Default::default(),
23954            max_fragment_shading_rate_rasterization_samples: Default::default(),
23955            fragment_shading_rate_with_shader_depth_stencil_writes: Default::default(),
23956            fragment_shading_rate_with_sample_mask: Default::default(),
23957            fragment_shading_rate_with_shader_sample_mask: Default::default(),
23958            fragment_shading_rate_with_conservative_rasterization: Default::default(),
23959            fragment_shading_rate_with_fragment_shader_interlock: Default::default(),
23960            fragment_shading_rate_with_custom_sample_locations: Default::default(),
23961            fragment_shading_rate_strict_multiply_combiner: Default::default(),
23962        }
23963    }
23964}
23965///[`VkPhysicalDeviceFragmentShadingRateKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRateKHR.html)
23966/**
23967Provided by **VK_KHR_fragment_shading_rate**.*/
23968/**
23969**Returned only**, filled by Vulkan, not constructed by the application.*/
23970#[repr(C)]
23971#[derive(Copy, Clone, Debug)]
23972#[doc(alias = "VkPhysicalDeviceFragmentShadingRateKHR")]
23973pub struct PhysicalDeviceFragmentShadingRateKHR {
23974    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR`.
23975    pub s_type: StructureType,
23976    ///Optional, may be null.
23977    pub p_next: *mut core::ffi::c_void,
23978    pub sample_counts: SampleCountFlags,
23979    pub fragment_size: Extent2D,
23980}
23981impl Default for PhysicalDeviceFragmentShadingRateKHR {
23982    #[inline]
23983    fn default() -> Self {
23984        Self {
23985            s_type: StructureType::from_raw(1000226004i32),
23986            p_next: core::ptr::null_mut(),
23987            sample_counts: Default::default(),
23988            fragment_size: Default::default(),
23989        }
23990    }
23991}
23992///[`VkPhysicalDeviceShaderTerminateInvocationFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderTerminateInvocationFeatures.html)
23993/**
23994Provided by **VK_COMPUTE_VERSION_1_3**.*/
23995///
23996///# Extends
23997///- [`PhysicalDeviceFeatures2`]
23998///- [`DeviceCreateInfo`]
23999#[repr(C)]
24000#[derive(Copy, Clone, Debug)]
24001#[doc(alias = "VkPhysicalDeviceShaderTerminateInvocationFeatures")]
24002pub struct PhysicalDeviceShaderTerminateInvocationFeatures {
24003    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES`.
24004    pub s_type: StructureType,
24005    ///Optional, may be null.
24006    pub p_next: *mut core::ffi::c_void,
24007    pub shader_terminate_invocation: u32,
24008}
24009impl Default for PhysicalDeviceShaderTerminateInvocationFeatures {
24010    #[inline]
24011    fn default() -> Self {
24012        Self {
24013            s_type: StructureType::from_raw(1000215000i32),
24014            p_next: core::ptr::null_mut(),
24015            shader_terminate_invocation: Default::default(),
24016        }
24017    }
24018}
24019///[`VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.html)
24020/**
24021Provided by **VK_NV_fragment_shading_rate_enums**.*/
24022///
24023///# Extends
24024///- [`PhysicalDeviceFeatures2`]
24025///- [`DeviceCreateInfo`]
24026#[repr(C)]
24027#[derive(Copy, Clone, Debug)]
24028#[doc(alias = "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV")]
24029pub struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
24030    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV`.
24031    pub s_type: StructureType,
24032    ///Optional, may be null.
24033    pub p_next: *mut core::ffi::c_void,
24034    pub fragment_shading_rate_enums: u32,
24035    pub supersample_fragment_shading_rates: u32,
24036    pub no_invocation_fragment_shading_rates: u32,
24037}
24038impl Default for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
24039    #[inline]
24040    fn default() -> Self {
24041        Self {
24042            s_type: StructureType::from_raw(1000326001i32),
24043            p_next: core::ptr::null_mut(),
24044            fragment_shading_rate_enums: Default::default(),
24045            supersample_fragment_shading_rates: Default::default(),
24046            no_invocation_fragment_shading_rates: Default::default(),
24047        }
24048    }
24049}
24050///[`VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV.html)
24051/**
24052Provided by **VK_NV_fragment_shading_rate_enums**.*/
24053/**
24054**Returned only**, filled by Vulkan, not constructed by the application.*/
24055///
24056///# Extends
24057///- [`PhysicalDeviceProperties2`]
24058#[repr(C)]
24059#[derive(Copy, Clone, Debug)]
24060#[doc(alias = "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV")]
24061pub struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
24062    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV`.
24063    pub s_type: StructureType,
24064    ///Optional, may be null.
24065    pub p_next: *mut core::ffi::c_void,
24066    pub max_fragment_shading_rate_invocation_count: SampleCountFlagBits,
24067}
24068impl Default for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
24069    #[inline]
24070    fn default() -> Self {
24071        Self {
24072            s_type: StructureType::from_raw(1000326000i32),
24073            p_next: core::ptr::null_mut(),
24074            max_fragment_shading_rate_invocation_count: Default::default(),
24075        }
24076    }
24077}
24078///[`VkPipelineFragmentShadingRateEnumStateCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineFragmentShadingRateEnumStateCreateInfoNV.html)
24079/**
24080Provided by **VK_NV_fragment_shading_rate_enums**.*/
24081///
24082///# Extends
24083///- [`GraphicsPipelineCreateInfo`]
24084#[repr(C)]
24085#[derive(Copy, Clone, Debug)]
24086#[doc(alias = "VkPipelineFragmentShadingRateEnumStateCreateInfoNV")]
24087pub struct PipelineFragmentShadingRateEnumStateCreateInfoNV {
24088    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV`.
24089    pub s_type: StructureType,
24090    ///Optional, may be null.
24091    pub p_next: *const core::ffi::c_void,
24092    pub shading_rate_type: FragmentShadingRateTypeNV,
24093    pub shading_rate: FragmentShadingRateNV,
24094    pub combiner_ops: [FragmentShadingRateCombinerOpKHR; 2usize],
24095}
24096impl Default for PipelineFragmentShadingRateEnumStateCreateInfoNV {
24097    #[inline]
24098    fn default() -> Self {
24099        Self {
24100            s_type: StructureType::from_raw(1000326002i32),
24101            p_next: core::ptr::null(),
24102            shading_rate_type: Default::default(),
24103            shading_rate: Default::default(),
24104            combiner_ops: unsafe { core::mem::zeroed() },
24105        }
24106    }
24107}
24108///[`VkAccelerationStructureBuildSizesInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureBuildSizesInfoKHR.html)
24109/**
24110Provided by **VK_KHR_acceleration_structure**.*/
24111/**
24112**Returned only**, filled by Vulkan, not constructed by the application.*/
24113#[repr(C)]
24114#[derive(Copy, Clone, Debug)]
24115#[doc(alias = "VkAccelerationStructureBuildSizesInfoKHR")]
24116pub struct AccelerationStructureBuildSizesInfoKHR {
24117    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR`.
24118    pub s_type: StructureType,
24119    ///Optional, may be null.
24120    pub p_next: *mut core::ffi::c_void,
24121    pub acceleration_structure_size: u64,
24122    pub update_scratch_size: u64,
24123    pub build_scratch_size: u64,
24124}
24125impl Default for AccelerationStructureBuildSizesInfoKHR {
24126    #[inline]
24127    fn default() -> Self {
24128        Self {
24129            s_type: StructureType::from_raw(1000150020i32),
24130            p_next: core::ptr::null_mut(),
24131            acceleration_structure_size: Default::default(),
24132            update_scratch_size: Default::default(),
24133            build_scratch_size: Default::default(),
24134        }
24135    }
24136}
24137///[`VkPhysicalDeviceImage2DViewOf3DFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.html)
24138/**
24139Provided by **VK_EXT_image_2d_view_of_3d**.*/
24140///
24141///# Extends
24142///- [`PhysicalDeviceFeatures2`]
24143///- [`DeviceCreateInfo`]
24144#[repr(C)]
24145#[derive(Copy, Clone, Debug)]
24146#[doc(alias = "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT")]
24147pub struct PhysicalDeviceImage2DViewOf3DFeaturesEXT {
24148    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT`.
24149    pub s_type: StructureType,
24150    ///Optional, may be null.
24151    pub p_next: *mut core::ffi::c_void,
24152    pub image2_d_view_of3_d: u32,
24153    pub sampler2_d_view_of3_d: u32,
24154}
24155impl Default for PhysicalDeviceImage2DViewOf3DFeaturesEXT {
24156    #[inline]
24157    fn default() -> Self {
24158        Self {
24159            s_type: StructureType::from_raw(1000393000i32),
24160            p_next: core::ptr::null_mut(),
24161            image2_d_view_of3_d: Default::default(),
24162            sampler2_d_view_of3_d: Default::default(),
24163        }
24164    }
24165}
24166///[`VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT.html)
24167/**
24168Provided by **VK_EXT_image_sliced_view_of_3d**.*/
24169///
24170///# Extends
24171///- [`PhysicalDeviceFeatures2`]
24172///- [`DeviceCreateInfo`]
24173#[repr(C)]
24174#[derive(Copy, Clone, Debug)]
24175#[doc(alias = "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT")]
24176pub struct PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
24177    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT`.
24178    pub s_type: StructureType,
24179    ///Optional, may be null.
24180    pub p_next: *mut core::ffi::c_void,
24181    pub image_sliced_view_of3_d: u32,
24182}
24183impl Default for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
24184    #[inline]
24185    fn default() -> Self {
24186        Self {
24187            s_type: StructureType::from_raw(1000418000i32),
24188            p_next: core::ptr::null_mut(),
24189            image_sliced_view_of3_d: Default::default(),
24190        }
24191    }
24192}
24193///[`VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.html)
24194/**
24195Provided by **VK_EXT_attachment_feedback_loop_dynamic_state**.*/
24196///
24197///# Extends
24198///- [`PhysicalDeviceFeatures2`]
24199///- [`DeviceCreateInfo`]
24200#[repr(C)]
24201#[derive(Copy, Clone, Debug)]
24202#[doc(alias = "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT")]
24203pub struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
24204    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT`.
24205    pub s_type: StructureType,
24206    ///Optional, may be null.
24207    pub p_next: *mut core::ffi::c_void,
24208    pub attachment_feedback_loop_dynamic_state: u32,
24209}
24210impl Default for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
24211    #[inline]
24212    fn default() -> Self {
24213        Self {
24214            s_type: StructureType::from_raw(1000524000i32),
24215            p_next: core::ptr::null_mut(),
24216            attachment_feedback_loop_dynamic_state: Default::default(),
24217        }
24218    }
24219}
24220///[`VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT.html)
24221/**
24222Provided by **VK_EXT_legacy_vertex_attributes**.*/
24223///
24224///# Extends
24225///- [`PhysicalDeviceFeatures2`]
24226///- [`DeviceCreateInfo`]
24227#[repr(C)]
24228#[derive(Copy, Clone, Debug)]
24229#[doc(alias = "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT")]
24230pub struct PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
24231    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT`.
24232    pub s_type: StructureType,
24233    ///Optional, may be null.
24234    pub p_next: *mut core::ffi::c_void,
24235    pub legacy_vertex_attributes: u32,
24236}
24237impl Default for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
24238    #[inline]
24239    fn default() -> Self {
24240        Self {
24241            s_type: StructureType::from_raw(1000495000i32),
24242            p_next: core::ptr::null_mut(),
24243            legacy_vertex_attributes: Default::default(),
24244        }
24245    }
24246}
24247///[`VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT.html)
24248/**
24249Provided by **VK_EXT_legacy_vertex_attributes**.*/
24250/**
24251**Returned only**, filled by Vulkan, not constructed by the application.*/
24252///
24253///# Extends
24254///- [`PhysicalDeviceProperties2`]
24255#[repr(C)]
24256#[derive(Copy, Clone, Debug)]
24257#[doc(alias = "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT")]
24258pub struct PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
24259    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT`.
24260    pub s_type: StructureType,
24261    ///Optional, may be null.
24262    pub p_next: *mut core::ffi::c_void,
24263    pub native_unaligned_performance: u32,
24264}
24265impl Default for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
24266    #[inline]
24267    fn default() -> Self {
24268        Self {
24269            s_type: StructureType::from_raw(1000495001i32),
24270            p_next: core::ptr::null_mut(),
24271            native_unaligned_performance: Default::default(),
24272        }
24273    }
24274}
24275///[`VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT.html)
24276/**
24277Provided by **VK_EXT_mutable_descriptor_type**.*/
24278///
24279///# Extends
24280///- [`PhysicalDeviceFeatures2`]
24281///- [`DeviceCreateInfo`]
24282#[repr(C)]
24283#[derive(Copy, Clone, Debug)]
24284#[doc(alias = "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT")]
24285pub struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
24286    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT`.
24287    pub s_type: StructureType,
24288    ///Optional, may be null.
24289    pub p_next: *mut core::ffi::c_void,
24290    pub mutable_descriptor_type: u32,
24291}
24292impl Default for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
24293    #[inline]
24294    fn default() -> Self {
24295        Self {
24296            s_type: StructureType::from_raw(1000351000i32),
24297            p_next: core::ptr::null_mut(),
24298            mutable_descriptor_type: Default::default(),
24299        }
24300    }
24301}
24302///[`VkMutableDescriptorTypeListEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMutableDescriptorTypeListEXT.html)
24303/**
24304Provided by **VK_EXT_mutable_descriptor_type**.*/
24305#[repr(C)]
24306#[derive(Copy, Clone, Debug)]
24307#[doc(alias = "VkMutableDescriptorTypeListEXT")]
24308pub struct MutableDescriptorTypeListEXT {
24309    ///Length of `p_descriptor_types`.
24310    pub descriptor_type_count: u32,
24311    pub p_descriptor_types: *const DescriptorType,
24312}
24313impl Default for MutableDescriptorTypeListEXT {
24314    #[inline]
24315    fn default() -> Self {
24316        unsafe { core::mem::zeroed() }
24317    }
24318}
24319///[`VkMutableDescriptorTypeCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMutableDescriptorTypeCreateInfoEXT.html)
24320/**
24321Provided by **VK_EXT_mutable_descriptor_type**.*/
24322///
24323///# Extends
24324///- [`DescriptorSetLayoutCreateInfo`]
24325///- [`DescriptorPoolCreateInfo`]
24326#[repr(C)]
24327#[derive(Copy, Clone, Debug)]
24328#[doc(alias = "VkMutableDescriptorTypeCreateInfoEXT")]
24329pub struct MutableDescriptorTypeCreateInfoEXT {
24330    ///Must be `VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT`.
24331    pub s_type: StructureType,
24332    ///Optional, may be null.
24333    pub p_next: *const core::ffi::c_void,
24334    ///Length of `p_mutable_descriptor_type_lists`.
24335    pub mutable_descriptor_type_list_count: u32,
24336    pub p_mutable_descriptor_type_lists: *const MutableDescriptorTypeListEXT,
24337}
24338impl Default for MutableDescriptorTypeCreateInfoEXT {
24339    #[inline]
24340    fn default() -> Self {
24341        Self {
24342            s_type: StructureType::from_raw(1000351002i32),
24343            p_next: core::ptr::null(),
24344            mutable_descriptor_type_list_count: Default::default(),
24345            p_mutable_descriptor_type_lists: core::ptr::null(),
24346        }
24347    }
24348}
24349///[`VkPhysicalDeviceDepthClipControlFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthClipControlFeaturesEXT.html)
24350/**
24351Provided by **VK_EXT_depth_clip_control**.*/
24352///
24353///# Extends
24354///- [`PhysicalDeviceFeatures2`]
24355///- [`DeviceCreateInfo`]
24356#[repr(C)]
24357#[derive(Copy, Clone, Debug)]
24358#[doc(alias = "VkPhysicalDeviceDepthClipControlFeaturesEXT")]
24359pub struct PhysicalDeviceDepthClipControlFeaturesEXT {
24360    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT`.
24361    pub s_type: StructureType,
24362    ///Optional, may be null.
24363    pub p_next: *mut core::ffi::c_void,
24364    pub depth_clip_control: u32,
24365}
24366impl Default for PhysicalDeviceDepthClipControlFeaturesEXT {
24367    #[inline]
24368    fn default() -> Self {
24369        Self {
24370            s_type: StructureType::from_raw(1000355000i32),
24371            p_next: core::ptr::null_mut(),
24372            depth_clip_control: Default::default(),
24373        }
24374    }
24375}
24376///[`VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT.html)
24377/**
24378Provided by **VK_EXT_zero_initialize_device_memory**.*/
24379///
24380///# Extends
24381///- [`PhysicalDeviceFeatures2`]
24382///- [`DeviceCreateInfo`]
24383#[repr(C)]
24384#[derive(Copy, Clone, Debug)]
24385#[doc(alias = "VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT")]
24386pub struct PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
24387    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT`.
24388    pub s_type: StructureType,
24389    ///Optional, may be null.
24390    pub p_next: *mut core::ffi::c_void,
24391    pub zero_initialize_device_memory: u32,
24392}
24393impl Default for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
24394    #[inline]
24395    fn default() -> Self {
24396        Self {
24397            s_type: StructureType::from_raw(1000620000i32),
24398            p_next: core::ptr::null_mut(),
24399            zero_initialize_device_memory: Default::default(),
24400        }
24401    }
24402}
24403///[`VkBeginCustomResolveInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBeginCustomResolveInfoEXT.html)
24404/**
24405Provided by **VK_EXT_custom_resolve**.*/
24406#[repr(C)]
24407#[derive(Copy, Clone, Debug)]
24408#[doc(alias = "VkBeginCustomResolveInfoEXT")]
24409pub struct BeginCustomResolveInfoEXT {
24410    ///Must be `VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT`.
24411    pub s_type: StructureType,
24412    ///Optional, may be null.
24413    pub p_next: *mut core::ffi::c_void,
24414}
24415impl Default for BeginCustomResolveInfoEXT {
24416    #[inline]
24417    fn default() -> Self {
24418        Self {
24419            s_type: StructureType::from_raw(1000628001i32),
24420            p_next: core::ptr::null_mut(),
24421        }
24422    }
24423}
24424///[`VkPhysicalDeviceCustomResolveFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCustomResolveFeaturesEXT.html)
24425/**
24426Provided by **VK_EXT_custom_resolve**.*/
24427///
24428///# Extends
24429///- [`PhysicalDeviceFeatures2`]
24430///- [`DeviceCreateInfo`]
24431#[repr(C)]
24432#[derive(Copy, Clone, Debug)]
24433#[doc(alias = "VkPhysicalDeviceCustomResolveFeaturesEXT")]
24434pub struct PhysicalDeviceCustomResolveFeaturesEXT {
24435    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT`.
24436    pub s_type: StructureType,
24437    ///Optional, may be null.
24438    pub p_next: *mut core::ffi::c_void,
24439    pub custom_resolve: u32,
24440}
24441impl Default for PhysicalDeviceCustomResolveFeaturesEXT {
24442    #[inline]
24443    fn default() -> Self {
24444        Self {
24445            s_type: StructureType::from_raw(1000628000i32),
24446            p_next: core::ptr::null_mut(),
24447            custom_resolve: Default::default(),
24448        }
24449    }
24450}
24451///[`VkCustomResolveCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCustomResolveCreateInfoEXT.html)
24452/**
24453Provided by **VK_EXT_custom_resolve**.*/
24454///
24455///# Extends
24456///- [`GraphicsPipelineCreateInfo`]
24457///- [`CommandBufferInheritanceInfo`]
24458///- [`ShaderCreateInfoEXT`]
24459#[repr(C)]
24460#[derive(Copy, Clone, Debug)]
24461#[doc(alias = "VkCustomResolveCreateInfoEXT")]
24462pub struct CustomResolveCreateInfoEXT {
24463    ///Must be `VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT`.
24464    pub s_type: StructureType,
24465    ///Optional, may be null.
24466    pub p_next: *const core::ffi::c_void,
24467    pub custom_resolve: u32,
24468    ///Length of `p_color_attachment_formats`.
24469    pub color_attachment_count: u32,
24470    pub p_color_attachment_formats: *const Format,
24471    pub depth_attachment_format: Format,
24472    pub stencil_attachment_format: Format,
24473}
24474impl Default for CustomResolveCreateInfoEXT {
24475    #[inline]
24476    fn default() -> Self {
24477        Self {
24478            s_type: StructureType::from_raw(1000628002i32),
24479            p_next: core::ptr::null(),
24480            custom_resolve: Default::default(),
24481            color_attachment_count: Default::default(),
24482            p_color_attachment_formats: core::ptr::null(),
24483            depth_attachment_format: Default::default(),
24484            stencil_attachment_format: Default::default(),
24485        }
24486    }
24487}
24488///[`VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT.html)
24489/**
24490Provided by **VK_EXT_device_generated_commands**.*/
24491///
24492///# Extends
24493///- [`PhysicalDeviceFeatures2`]
24494///- [`DeviceCreateInfo`]
24495#[repr(C)]
24496#[derive(Copy, Clone, Debug)]
24497#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT")]
24498pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
24499    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT`.
24500    pub s_type: StructureType,
24501    ///Optional, may be null.
24502    pub p_next: *mut core::ffi::c_void,
24503    pub device_generated_commands: u32,
24504    pub dynamic_generated_pipeline_layout: u32,
24505}
24506impl Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
24507    #[inline]
24508    fn default() -> Self {
24509        Self {
24510            s_type: StructureType::from_raw(1000572000i32),
24511            p_next: core::ptr::null_mut(),
24512            device_generated_commands: Default::default(),
24513            dynamic_generated_pipeline_layout: Default::default(),
24514        }
24515    }
24516}
24517///[`VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT.html)
24518/**
24519Provided by **VK_EXT_device_generated_commands**.*/
24520/**
24521**Returned only**, filled by Vulkan, not constructed by the application.*/
24522///
24523///# Extends
24524///- [`PhysicalDeviceProperties2`]
24525#[repr(C)]
24526#[derive(Copy, Clone, Debug)]
24527#[doc(alias = "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT")]
24528pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
24529    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT`.
24530    pub s_type: StructureType,
24531    ///Optional, may be null.
24532    pub p_next: *mut core::ffi::c_void,
24533    pub max_indirect_pipeline_count: u32,
24534    pub max_indirect_shader_object_count: u32,
24535    pub max_indirect_sequence_count: u32,
24536    pub max_indirect_commands_token_count: u32,
24537    pub max_indirect_commands_token_offset: u32,
24538    pub max_indirect_commands_indirect_stride: u32,
24539    pub supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT,
24540    pub supported_indirect_commands_shader_stages: ShaderStageFlags,
24541    pub supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags,
24542    pub supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags,
24543    pub device_generated_commands_transform_feedback: u32,
24544    pub device_generated_commands_multi_draw_indirect_count: u32,
24545}
24546impl Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
24547    #[inline]
24548    fn default() -> Self {
24549        Self {
24550            s_type: StructureType::from_raw(1000572001i32),
24551            p_next: core::ptr::null_mut(),
24552            max_indirect_pipeline_count: Default::default(),
24553            max_indirect_shader_object_count: Default::default(),
24554            max_indirect_sequence_count: Default::default(),
24555            max_indirect_commands_token_count: Default::default(),
24556            max_indirect_commands_token_offset: Default::default(),
24557            max_indirect_commands_indirect_stride: Default::default(),
24558            supported_indirect_commands_input_modes: Default::default(),
24559            supported_indirect_commands_shader_stages: Default::default(),
24560            supported_indirect_commands_shader_stages_pipeline_binding: Default::default(),
24561            supported_indirect_commands_shader_stages_shader_binding: Default::default(),
24562            device_generated_commands_transform_feedback: Default::default(),
24563            device_generated_commands_multi_draw_indirect_count: Default::default(),
24564        }
24565    }
24566}
24567///[`VkGeneratedCommandsPipelineInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsPipelineInfoEXT.html)
24568/**
24569Provided by **VK_EXT_device_generated_commands**.*/
24570///
24571///# Extends
24572///- [`GeneratedCommandsInfoEXT`]
24573///- [`GeneratedCommandsMemoryRequirementsInfoEXT`]
24574#[repr(C)]
24575#[derive(Copy, Clone, Debug)]
24576#[doc(alias = "VkGeneratedCommandsPipelineInfoEXT")]
24577pub struct GeneratedCommandsPipelineInfoEXT {
24578    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT`.
24579    pub s_type: StructureType,
24580    ///Optional, may be null.
24581    pub p_next: *mut core::ffi::c_void,
24582    pub pipeline: Pipeline,
24583}
24584impl Default for GeneratedCommandsPipelineInfoEXT {
24585    #[inline]
24586    fn default() -> Self {
24587        Self {
24588            s_type: StructureType::from_raw(1000572013i32),
24589            p_next: core::ptr::null_mut(),
24590            pipeline: Default::default(),
24591        }
24592    }
24593}
24594///[`VkGeneratedCommandsShaderInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsShaderInfoEXT.html)
24595/**
24596Provided by **VK_EXT_device_generated_commands**.*/
24597///
24598///# Extends
24599///- [`GeneratedCommandsInfoEXT`]
24600///- [`GeneratedCommandsMemoryRequirementsInfoEXT`]
24601#[repr(C)]
24602#[derive(Copy, Clone, Debug)]
24603#[doc(alias = "VkGeneratedCommandsShaderInfoEXT")]
24604pub struct GeneratedCommandsShaderInfoEXT {
24605    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT`.
24606    pub s_type: StructureType,
24607    ///Optional, may be null.
24608    pub p_next: *mut core::ffi::c_void,
24609    ///Length of `p_shaders`.
24610    pub shader_count: u32,
24611    pub p_shaders: *const ShaderEXT,
24612}
24613impl Default for GeneratedCommandsShaderInfoEXT {
24614    #[inline]
24615    fn default() -> Self {
24616        Self {
24617            s_type: StructureType::from_raw(1000572014i32),
24618            p_next: core::ptr::null_mut(),
24619            shader_count: Default::default(),
24620            p_shaders: core::ptr::null(),
24621        }
24622    }
24623}
24624///[`VkGeneratedCommandsMemoryRequirementsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsMemoryRequirementsInfoEXT.html)
24625/**
24626Provided by **VK_EXT_device_generated_commands**.*/
24627///
24628///# Extended By
24629///- [`GeneratedCommandsPipelineInfoEXT`]
24630///- [`GeneratedCommandsShaderInfoEXT`]
24631#[repr(C)]
24632#[derive(Copy, Clone, Debug)]
24633#[doc(alias = "VkGeneratedCommandsMemoryRequirementsInfoEXT")]
24634pub struct GeneratedCommandsMemoryRequirementsInfoEXT {
24635    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT`.
24636    pub s_type: StructureType,
24637    ///Optional, may be null.
24638    pub p_next: *const core::ffi::c_void,
24639    pub indirect_execution_set: IndirectExecutionSetEXT,
24640    pub indirect_commands_layout: IndirectCommandsLayoutEXT,
24641    pub max_sequence_count: u32,
24642    pub max_draw_count: u32,
24643}
24644impl Default for GeneratedCommandsMemoryRequirementsInfoEXT {
24645    #[inline]
24646    fn default() -> Self {
24647        Self {
24648            s_type: StructureType::from_raw(1000572002i32),
24649            p_next: core::ptr::null(),
24650            indirect_execution_set: Default::default(),
24651            indirect_commands_layout: Default::default(),
24652            max_sequence_count: Default::default(),
24653            max_draw_count: Default::default(),
24654        }
24655    }
24656}
24657///[`VkIndirectExecutionSetPipelineInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetPipelineInfoEXT.html)
24658/**
24659Provided by **VK_EXT_device_generated_commands**.*/
24660#[repr(C)]
24661#[derive(Copy, Clone, Debug)]
24662#[doc(alias = "VkIndirectExecutionSetPipelineInfoEXT")]
24663pub struct IndirectExecutionSetPipelineInfoEXT {
24664    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT`.
24665    pub s_type: StructureType,
24666    ///Optional, may be null.
24667    pub p_next: *const core::ffi::c_void,
24668    pub initial_pipeline: Pipeline,
24669    pub max_pipeline_count: u32,
24670}
24671impl Default for IndirectExecutionSetPipelineInfoEXT {
24672    #[inline]
24673    fn default() -> Self {
24674        Self {
24675            s_type: StructureType::from_raw(1000572010i32),
24676            p_next: core::ptr::null(),
24677            initial_pipeline: Default::default(),
24678            max_pipeline_count: Default::default(),
24679        }
24680    }
24681}
24682///[`VkIndirectExecutionSetShaderLayoutInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetShaderLayoutInfoEXT.html)
24683/**
24684Provided by **VK_EXT_device_generated_commands**.*/
24685#[repr(C)]
24686#[derive(Copy, Clone, Debug)]
24687#[doc(alias = "VkIndirectExecutionSetShaderLayoutInfoEXT")]
24688pub struct IndirectExecutionSetShaderLayoutInfoEXT {
24689    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT`.
24690    pub s_type: StructureType,
24691    ///Optional, may be null.
24692    pub p_next: *const core::ffi::c_void,
24693    ///Length of `p_set_layouts`.
24694    pub set_layout_count: u32,
24695    ///Optional, may be null.
24696    pub p_set_layouts: *const DescriptorSetLayout,
24697}
24698impl Default for IndirectExecutionSetShaderLayoutInfoEXT {
24699    #[inline]
24700    fn default() -> Self {
24701        Self {
24702            s_type: StructureType::from_raw(1000572012i32),
24703            p_next: core::ptr::null(),
24704            set_layout_count: Default::default(),
24705            p_set_layouts: core::ptr::null(),
24706        }
24707    }
24708}
24709///[`VkIndirectExecutionSetShaderInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetShaderInfoEXT.html)
24710/**
24711Provided by **VK_EXT_device_generated_commands**.*/
24712#[repr(C)]
24713#[derive(Copy, Clone, Debug)]
24714#[doc(alias = "VkIndirectExecutionSetShaderInfoEXT")]
24715pub struct IndirectExecutionSetShaderInfoEXT {
24716    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT`.
24717    pub s_type: StructureType,
24718    ///Optional, may be null.
24719    pub p_next: *const core::ffi::c_void,
24720    ///Length of `p_set_layout_infos`.
24721    pub shader_count: u32,
24722    pub p_initial_shaders: *const ShaderEXT,
24723    ///Optional, may be null.
24724    pub p_set_layout_infos: *const IndirectExecutionSetShaderLayoutInfoEXT,
24725    pub max_shader_count: u32,
24726    ///Length of `p_push_constant_ranges`.
24727    pub push_constant_range_count: u32,
24728    pub p_push_constant_ranges: *const PushConstantRange,
24729}
24730impl Default for IndirectExecutionSetShaderInfoEXT {
24731    #[inline]
24732    fn default() -> Self {
24733        Self {
24734            s_type: StructureType::from_raw(1000572011i32),
24735            p_next: core::ptr::null(),
24736            shader_count: Default::default(),
24737            p_initial_shaders: core::ptr::null(),
24738            p_set_layout_infos: core::ptr::null(),
24739            max_shader_count: Default::default(),
24740            push_constant_range_count: Default::default(),
24741            p_push_constant_ranges: core::ptr::null(),
24742        }
24743    }
24744}
24745///[`VkIndirectExecutionSetInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetInfoEXT.html)
24746/**
24747Provided by **VK_EXT_device_generated_commands**.*/
24748#[repr(C)]
24749#[derive(Copy, Clone)]
24750#[doc(alias = "VkIndirectExecutionSetInfoEXT")]
24751pub union IndirectExecutionSetInfoEXT {
24752    pub p_pipeline_info: *const IndirectExecutionSetPipelineInfoEXT,
24753    pub p_shader_info: *const IndirectExecutionSetShaderInfoEXT,
24754}
24755impl Default for IndirectExecutionSetInfoEXT {
24756    #[inline]
24757    fn default() -> Self {
24758        unsafe { core::mem::zeroed() }
24759    }
24760}
24761impl core::fmt::Debug for IndirectExecutionSetInfoEXT {
24762    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
24763        f.write_str(stringify!(IndirectExecutionSetInfoEXT))
24764    }
24765}
24766///[`VkIndirectExecutionSetCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectExecutionSetCreateInfoEXT.html)
24767/**
24768Provided by **VK_EXT_device_generated_commands**.*/
24769#[repr(C)]
24770#[derive(Copy, Clone, Debug)]
24771#[doc(alias = "VkIndirectExecutionSetCreateInfoEXT")]
24772pub struct IndirectExecutionSetCreateInfoEXT {
24773    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT`.
24774    pub s_type: StructureType,
24775    ///Optional, may be null.
24776    pub p_next: *const core::ffi::c_void,
24777    pub r#type: IndirectExecutionSetInfoTypeEXT,
24778    pub info: IndirectExecutionSetInfoEXT,
24779}
24780impl Default for IndirectExecutionSetCreateInfoEXT {
24781    #[inline]
24782    fn default() -> Self {
24783        Self {
24784            s_type: StructureType::from_raw(1000572003i32),
24785            p_next: core::ptr::null(),
24786            r#type: Default::default(),
24787            info: Default::default(),
24788        }
24789    }
24790}
24791///[`VkGeneratedCommandsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGeneratedCommandsInfoEXT.html)
24792/**
24793Provided by **VK_EXT_device_generated_commands**.*/
24794///
24795///# Extended By
24796///- [`GeneratedCommandsPipelineInfoEXT`]
24797///- [`GeneratedCommandsShaderInfoEXT`]
24798#[repr(C)]
24799#[derive(Copy, Clone, Debug)]
24800#[doc(alias = "VkGeneratedCommandsInfoEXT")]
24801pub struct GeneratedCommandsInfoEXT {
24802    ///Must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT`.
24803    pub s_type: StructureType,
24804    ///Optional, may be null.
24805    pub p_next: *const core::ffi::c_void,
24806    pub shader_stages: ShaderStageFlags,
24807    pub indirect_execution_set: IndirectExecutionSetEXT,
24808    pub indirect_commands_layout: IndirectCommandsLayoutEXT,
24809    pub indirect_address: u64,
24810    pub indirect_address_size: u64,
24811    pub preprocess_address: u64,
24812    pub preprocess_size: u64,
24813    pub max_sequence_count: u32,
24814    pub sequence_count_address: u64,
24815    pub max_draw_count: u32,
24816}
24817impl Default for GeneratedCommandsInfoEXT {
24818    #[inline]
24819    fn default() -> Self {
24820        Self {
24821            s_type: StructureType::from_raw(1000572004i32),
24822            p_next: core::ptr::null(),
24823            shader_stages: Default::default(),
24824            indirect_execution_set: Default::default(),
24825            indirect_commands_layout: Default::default(),
24826            indirect_address: Default::default(),
24827            indirect_address_size: Default::default(),
24828            preprocess_address: Default::default(),
24829            preprocess_size: Default::default(),
24830            max_sequence_count: Default::default(),
24831            sequence_count_address: Default::default(),
24832            max_draw_count: Default::default(),
24833        }
24834    }
24835}
24836///[`VkWriteIndirectExecutionSetPipelineEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteIndirectExecutionSetPipelineEXT.html)
24837/**
24838Provided by **VK_EXT_device_generated_commands**.*/
24839#[repr(C)]
24840#[derive(Copy, Clone, Debug)]
24841#[doc(alias = "VkWriteIndirectExecutionSetPipelineEXT")]
24842pub struct WriteIndirectExecutionSetPipelineEXT {
24843    ///Must be `VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT`.
24844    pub s_type: StructureType,
24845    ///Optional, may be null.
24846    pub p_next: *const core::ffi::c_void,
24847    pub index: u32,
24848    pub pipeline: Pipeline,
24849}
24850impl Default for WriteIndirectExecutionSetPipelineEXT {
24851    #[inline]
24852    fn default() -> Self {
24853        Self {
24854            s_type: StructureType::from_raw(1000572008i32),
24855            p_next: core::ptr::null(),
24856            index: Default::default(),
24857            pipeline: Default::default(),
24858        }
24859    }
24860}
24861///[`VkWriteIndirectExecutionSetShaderEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteIndirectExecutionSetShaderEXT.html)
24862/**
24863Provided by **VK_EXT_device_generated_commands**.*/
24864#[repr(C)]
24865#[derive(Copy, Clone, Debug)]
24866#[doc(alias = "VkWriteIndirectExecutionSetShaderEXT")]
24867pub struct WriteIndirectExecutionSetShaderEXT {
24868    ///Must be `VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT`.
24869    pub s_type: StructureType,
24870    ///Optional, may be null.
24871    pub p_next: *const core::ffi::c_void,
24872    pub index: u32,
24873    pub shader: ShaderEXT,
24874}
24875impl Default for WriteIndirectExecutionSetShaderEXT {
24876    #[inline]
24877    fn default() -> Self {
24878        Self {
24879            s_type: StructureType::from_raw(1000572009i32),
24880            p_next: core::ptr::null(),
24881            index: Default::default(),
24882            shader: Default::default(),
24883        }
24884    }
24885}
24886///[`VkIndirectCommandsLayoutCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutCreateInfoEXT.html)
24887/**
24888Provided by **VK_EXT_device_generated_commands**.*/
24889///
24890///# Extended By
24891///- [`PipelineLayoutCreateInfo`]
24892#[repr(C)]
24893#[derive(Copy, Clone, Debug)]
24894#[doc(alias = "VkIndirectCommandsLayoutCreateInfoEXT")]
24895pub struct IndirectCommandsLayoutCreateInfoEXT {
24896    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT`.
24897    pub s_type: StructureType,
24898    ///Optional, may be null.
24899    pub p_next: *const core::ffi::c_void,
24900    pub flags: IndirectCommandsLayoutUsageFlagsEXT,
24901    pub shader_stages: ShaderStageFlags,
24902    pub indirect_stride: u32,
24903    pub pipeline_layout: PipelineLayout,
24904    ///Length of `p_tokens`.
24905    pub token_count: u32,
24906    pub p_tokens: *const IndirectCommandsLayoutTokenEXT,
24907}
24908impl Default for IndirectCommandsLayoutCreateInfoEXT {
24909    #[inline]
24910    fn default() -> Self {
24911        Self {
24912            s_type: StructureType::from_raw(1000572006i32),
24913            p_next: core::ptr::null(),
24914            flags: Default::default(),
24915            shader_stages: Default::default(),
24916            indirect_stride: Default::default(),
24917            pipeline_layout: Default::default(),
24918            token_count: Default::default(),
24919            p_tokens: core::ptr::null(),
24920        }
24921    }
24922}
24923///[`VkIndirectCommandsLayoutTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutTokenEXT.html)
24924/**
24925Provided by **VK_EXT_device_generated_commands**.*/
24926///
24927///# Extended By
24928///- [`PushConstantBankInfoNV`]
24929#[repr(C)]
24930#[derive(Copy, Clone, Debug)]
24931#[doc(alias = "VkIndirectCommandsLayoutTokenEXT")]
24932pub struct IndirectCommandsLayoutTokenEXT {
24933    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT`.
24934    pub s_type: StructureType,
24935    ///Optional, may be null.
24936    pub p_next: *const core::ffi::c_void,
24937    pub r#type: IndirectCommandsTokenTypeEXT,
24938    pub data: IndirectCommandsTokenDataEXT,
24939    pub offset: u32,
24940}
24941impl Default for IndirectCommandsLayoutTokenEXT {
24942    #[inline]
24943    fn default() -> Self {
24944        Self {
24945            s_type: StructureType::from_raw(1000572007i32),
24946            p_next: core::ptr::null(),
24947            r#type: Default::default(),
24948            data: Default::default(),
24949            offset: Default::default(),
24950        }
24951    }
24952}
24953///[`VkDrawIndirectCountIndirectCommandEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndirectCountIndirectCommandEXT.html)
24954/**
24955Provided by **VK_EXT_device_generated_commands**.*/
24956#[repr(C)]
24957#[derive(Copy, Clone, Debug)]
24958#[doc(alias = "VkDrawIndirectCountIndirectCommandEXT")]
24959pub struct DrawIndirectCountIndirectCommandEXT {
24960    pub buffer_address: u64,
24961    pub stride: u32,
24962    pub command_count: u32,
24963}
24964impl Default for DrawIndirectCountIndirectCommandEXT {
24965    #[inline]
24966    fn default() -> Self {
24967        unsafe { core::mem::zeroed() }
24968    }
24969}
24970///[`VkIndirectCommandsVertexBufferTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsVertexBufferTokenEXT.html)
24971/**
24972Provided by **VK_EXT_device_generated_commands**.*/
24973#[repr(C)]
24974#[derive(Copy, Clone, Debug)]
24975#[doc(alias = "VkIndirectCommandsVertexBufferTokenEXT")]
24976pub struct IndirectCommandsVertexBufferTokenEXT {
24977    pub vertex_binding_unit: u32,
24978}
24979impl Default for IndirectCommandsVertexBufferTokenEXT {
24980    #[inline]
24981    fn default() -> Self {
24982        unsafe { core::mem::zeroed() }
24983    }
24984}
24985///[`VkBindVertexBufferIndirectCommandEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVertexBufferIndirectCommandEXT.html)
24986/**
24987Provided by **VK_EXT_device_generated_commands**.*/
24988#[repr(C)]
24989#[derive(Copy, Clone, Debug)]
24990#[doc(alias = "VkBindVertexBufferIndirectCommandEXT")]
24991pub struct BindVertexBufferIndirectCommandEXT {
24992    pub buffer_address: u64,
24993    pub size: u32,
24994    pub stride: u32,
24995}
24996impl Default for BindVertexBufferIndirectCommandEXT {
24997    #[inline]
24998    fn default() -> Self {
24999        unsafe { core::mem::zeroed() }
25000    }
25001}
25002///[`VkIndirectCommandsIndexBufferTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsIndexBufferTokenEXT.html)
25003/**
25004Provided by **VK_EXT_device_generated_commands**.*/
25005#[repr(C)]
25006#[derive(Copy, Clone, Debug)]
25007#[doc(alias = "VkIndirectCommandsIndexBufferTokenEXT")]
25008pub struct IndirectCommandsIndexBufferTokenEXT {
25009    pub mode: IndirectCommandsInputModeFlagBitsEXT,
25010}
25011impl Default for IndirectCommandsIndexBufferTokenEXT {
25012    #[inline]
25013    fn default() -> Self {
25014        unsafe { core::mem::zeroed() }
25015    }
25016}
25017///[`VkBindIndexBufferIndirectCommandEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindIndexBufferIndirectCommandEXT.html)
25018/**
25019Provided by **VK_EXT_device_generated_commands**.*/
25020#[repr(C)]
25021#[derive(Copy, Clone, Debug)]
25022#[doc(alias = "VkBindIndexBufferIndirectCommandEXT")]
25023pub struct BindIndexBufferIndirectCommandEXT {
25024    pub buffer_address: u64,
25025    pub size: u32,
25026    pub index_type: IndexType,
25027}
25028impl Default for BindIndexBufferIndirectCommandEXT {
25029    #[inline]
25030    fn default() -> Self {
25031        unsafe { core::mem::zeroed() }
25032    }
25033}
25034///[`VkIndirectCommandsPushConstantTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsPushConstantTokenEXT.html)
25035/**
25036Provided by **VK_EXT_device_generated_commands**.*/
25037#[repr(C)]
25038#[derive(Copy, Clone, Debug)]
25039#[doc(alias = "VkIndirectCommandsPushConstantTokenEXT")]
25040pub struct IndirectCommandsPushConstantTokenEXT {
25041    pub update_range: PushConstantRange,
25042}
25043impl Default for IndirectCommandsPushConstantTokenEXT {
25044    #[inline]
25045    fn default() -> Self {
25046        unsafe { core::mem::zeroed() }
25047    }
25048}
25049///[`VkIndirectCommandsExecutionSetTokenEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsExecutionSetTokenEXT.html)
25050/**
25051Provided by **VK_EXT_device_generated_commands**.*/
25052#[repr(C)]
25053#[derive(Copy, Clone, Debug)]
25054#[doc(alias = "VkIndirectCommandsExecutionSetTokenEXT")]
25055pub struct IndirectCommandsExecutionSetTokenEXT {
25056    pub r#type: IndirectExecutionSetInfoTypeEXT,
25057    pub shader_stages: ShaderStageFlags,
25058}
25059impl Default for IndirectCommandsExecutionSetTokenEXT {
25060    #[inline]
25061    fn default() -> Self {
25062        unsafe { core::mem::zeroed() }
25063    }
25064}
25065///[`VkIndirectCommandsTokenDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsTokenDataEXT.html)
25066/**
25067Provided by **VK_EXT_device_generated_commands**.*/
25068#[repr(C)]
25069#[derive(Copy, Clone)]
25070#[doc(alias = "VkIndirectCommandsTokenDataEXT")]
25071pub union IndirectCommandsTokenDataEXT {
25072    pub p_push_constant: *const IndirectCommandsPushConstantTokenEXT,
25073    pub p_vertex_buffer: *const IndirectCommandsVertexBufferTokenEXT,
25074    pub p_index_buffer: *const IndirectCommandsIndexBufferTokenEXT,
25075    pub p_execution_set: *const IndirectCommandsExecutionSetTokenEXT,
25076}
25077impl Default for IndirectCommandsTokenDataEXT {
25078    #[inline]
25079    fn default() -> Self {
25080        unsafe { core::mem::zeroed() }
25081    }
25082}
25083impl core::fmt::Debug for IndirectCommandsTokenDataEXT {
25084    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25085        f.write_str(stringify!(IndirectCommandsTokenDataEXT))
25086    }
25087}
25088///[`VkPipelineViewportDepthClipControlCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportDepthClipControlCreateInfoEXT.html)
25089/**
25090Provided by **VK_EXT_depth_clip_control**.*/
25091///
25092///# Extends
25093///- [`PipelineViewportStateCreateInfo`]
25094#[repr(C)]
25095#[derive(Copy, Clone, Debug)]
25096#[doc(alias = "VkPipelineViewportDepthClipControlCreateInfoEXT")]
25097pub struct PipelineViewportDepthClipControlCreateInfoEXT {
25098    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT`.
25099    pub s_type: StructureType,
25100    ///Optional, may be null.
25101    pub p_next: *const core::ffi::c_void,
25102    pub negative_one_to_one: u32,
25103}
25104impl Default for PipelineViewportDepthClipControlCreateInfoEXT {
25105    #[inline]
25106    fn default() -> Self {
25107        Self {
25108            s_type: StructureType::from_raw(1000355001i32),
25109            p_next: core::ptr::null(),
25110            negative_one_to_one: Default::default(),
25111        }
25112    }
25113}
25114///[`VkPhysicalDeviceDepthClampControlFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthClampControlFeaturesEXT.html)
25115/**
25116Provided by **VK_EXT_depth_clamp_control**.*/
25117///
25118///# Extends
25119///- [`PhysicalDeviceFeatures2`]
25120///- [`DeviceCreateInfo`]
25121#[repr(C)]
25122#[derive(Copy, Clone, Debug)]
25123#[doc(alias = "VkPhysicalDeviceDepthClampControlFeaturesEXT")]
25124pub struct PhysicalDeviceDepthClampControlFeaturesEXT {
25125    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT`.
25126    pub s_type: StructureType,
25127    ///Optional, may be null.
25128    pub p_next: *mut core::ffi::c_void,
25129    pub depth_clamp_control: u32,
25130}
25131impl Default for PhysicalDeviceDepthClampControlFeaturesEXT {
25132    #[inline]
25133    fn default() -> Self {
25134        Self {
25135            s_type: StructureType::from_raw(1000582000i32),
25136            p_next: core::ptr::null_mut(),
25137            depth_clamp_control: Default::default(),
25138        }
25139    }
25140}
25141///[`VkPipelineViewportDepthClampControlCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineViewportDepthClampControlCreateInfoEXT.html)
25142/**
25143Provided by **VK_EXT_depth_clamp_control**.*/
25144///
25145///# Extends
25146///- [`PipelineViewportStateCreateInfo`]
25147#[repr(C)]
25148#[derive(Copy, Clone, Debug)]
25149#[doc(alias = "VkPipelineViewportDepthClampControlCreateInfoEXT")]
25150pub struct PipelineViewportDepthClampControlCreateInfoEXT {
25151    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT`.
25152    pub s_type: StructureType,
25153    ///Optional, may be null.
25154    pub p_next: *const core::ffi::c_void,
25155    pub depth_clamp_mode: DepthClampModeEXT,
25156    ///Optional, may be null.
25157    pub p_depth_clamp_range: *const DepthClampRangeEXT,
25158}
25159impl Default for PipelineViewportDepthClampControlCreateInfoEXT {
25160    #[inline]
25161    fn default() -> Self {
25162        Self {
25163            s_type: StructureType::from_raw(1000582001i32),
25164            p_next: core::ptr::null(),
25165            depth_clamp_mode: Default::default(),
25166            p_depth_clamp_range: core::ptr::null(),
25167        }
25168    }
25169}
25170///[`VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.html)
25171/**
25172Provided by **VK_EXT_vertex_input_dynamic_state**.*/
25173///
25174///# Extends
25175///- [`PhysicalDeviceFeatures2`]
25176///- [`DeviceCreateInfo`]
25177#[repr(C)]
25178#[derive(Copy, Clone, Debug)]
25179#[doc(alias = "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT")]
25180pub struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
25181    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT`.
25182    pub s_type: StructureType,
25183    ///Optional, may be null.
25184    pub p_next: *mut core::ffi::c_void,
25185    pub vertex_input_dynamic_state: u32,
25186}
25187impl Default for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
25188    #[inline]
25189    fn default() -> Self {
25190        Self {
25191            s_type: StructureType::from_raw(1000352000i32),
25192            p_next: core::ptr::null_mut(),
25193            vertex_input_dynamic_state: Default::default(),
25194        }
25195    }
25196}
25197///[`VkPhysicalDeviceExternalMemoryRDMAFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.html)
25198/**
25199Provided by **VK_NV_external_memory_rdma**.*/
25200///
25201///# Extends
25202///- [`PhysicalDeviceFeatures2`]
25203///- [`DeviceCreateInfo`]
25204#[repr(C)]
25205#[derive(Copy, Clone, Debug)]
25206#[doc(alias = "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV")]
25207pub struct PhysicalDeviceExternalMemoryRDMAFeaturesNV {
25208    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV`.
25209    pub s_type: StructureType,
25210    ///Optional, may be null.
25211    pub p_next: *mut core::ffi::c_void,
25212    pub external_memory_rdma: u32,
25213}
25214impl Default for PhysicalDeviceExternalMemoryRDMAFeaturesNV {
25215    #[inline]
25216    fn default() -> Self {
25217        Self {
25218            s_type: StructureType::from_raw(1000371001i32),
25219            p_next: core::ptr::null_mut(),
25220            external_memory_rdma: Default::default(),
25221        }
25222    }
25223}
25224///[`VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR.html)
25225/**
25226Provided by **VK_KHR_shader_relaxed_extended_instruction**.*/
25227///
25228///# Extends
25229///- [`PhysicalDeviceFeatures2`]
25230///- [`DeviceCreateInfo`]
25231#[repr(C)]
25232#[derive(Copy, Clone, Debug)]
25233#[doc(alias = "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR")]
25234pub struct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
25235    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR`.
25236    pub s_type: StructureType,
25237    ///Optional, may be null.
25238    pub p_next: *mut core::ffi::c_void,
25239    pub shader_relaxed_extended_instruction: u32,
25240}
25241impl Default for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
25242    #[inline]
25243    fn default() -> Self {
25244        Self {
25245            s_type: StructureType::from_raw(1000558000i32),
25246            p_next: core::ptr::null_mut(),
25247            shader_relaxed_extended_instruction: Default::default(),
25248        }
25249    }
25250}
25251///[`VkVertexInputBindingDescription2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputBindingDescription2EXT.html)
25252/**
25253Provided by **VK_EXT_vertex_input_dynamic_state**.*/
25254#[repr(C)]
25255#[derive(Copy, Clone, Debug)]
25256#[doc(alias = "VkVertexInputBindingDescription2EXT")]
25257pub struct VertexInputBindingDescription2EXT {
25258    ///Must be `VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT`.
25259    pub s_type: StructureType,
25260    ///Optional, may be null.
25261    pub p_next: *mut core::ffi::c_void,
25262    pub binding: u32,
25263    pub stride: u32,
25264    pub input_rate: VertexInputRate,
25265    pub divisor: u32,
25266}
25267impl Default for VertexInputBindingDescription2EXT {
25268    #[inline]
25269    fn default() -> Self {
25270        Self {
25271            s_type: StructureType::from_raw(1000352001i32),
25272            p_next: core::ptr::null_mut(),
25273            binding: Default::default(),
25274            stride: Default::default(),
25275            input_rate: Default::default(),
25276            divisor: Default::default(),
25277        }
25278    }
25279}
25280///[`VkVertexInputAttributeDescription2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVertexInputAttributeDescription2EXT.html)
25281/**
25282Provided by **VK_EXT_vertex_input_dynamic_state**.*/
25283#[repr(C)]
25284#[derive(Copy, Clone, Debug)]
25285#[doc(alias = "VkVertexInputAttributeDescription2EXT")]
25286pub struct VertexInputAttributeDescription2EXT {
25287    ///Must be `VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT`.
25288    pub s_type: StructureType,
25289    ///Optional, may be null.
25290    pub p_next: *mut core::ffi::c_void,
25291    pub location: u32,
25292    pub binding: u32,
25293    pub format: Format,
25294    pub offset: u32,
25295}
25296impl Default for VertexInputAttributeDescription2EXT {
25297    #[inline]
25298    fn default() -> Self {
25299        Self {
25300            s_type: StructureType::from_raw(1000352002i32),
25301            p_next: core::ptr::null_mut(),
25302            location: Default::default(),
25303            binding: Default::default(),
25304            format: Default::default(),
25305            offset: Default::default(),
25306        }
25307    }
25308}
25309///[`VkPhysicalDeviceColorWriteEnableFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceColorWriteEnableFeaturesEXT.html)
25310/**
25311Provided by **VK_EXT_color_write_enable**.*/
25312///
25313///# Extends
25314///- [`PhysicalDeviceFeatures2`]
25315///- [`DeviceCreateInfo`]
25316#[repr(C)]
25317#[derive(Copy, Clone, Debug)]
25318#[doc(alias = "VkPhysicalDeviceColorWriteEnableFeaturesEXT")]
25319pub struct PhysicalDeviceColorWriteEnableFeaturesEXT {
25320    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT`.
25321    pub s_type: StructureType,
25322    ///Optional, may be null.
25323    pub p_next: *mut core::ffi::c_void,
25324    pub color_write_enable: u32,
25325}
25326impl Default for PhysicalDeviceColorWriteEnableFeaturesEXT {
25327    #[inline]
25328    fn default() -> Self {
25329        Self {
25330            s_type: StructureType::from_raw(1000381000i32),
25331            p_next: core::ptr::null_mut(),
25332            color_write_enable: Default::default(),
25333        }
25334    }
25335}
25336///[`VkPipelineColorWriteCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineColorWriteCreateInfoEXT.html)
25337/**
25338Provided by **VK_EXT_color_write_enable**.*/
25339///
25340///# Extends
25341///- [`PipelineColorBlendStateCreateInfo`]
25342#[repr(C)]
25343#[derive(Copy, Clone, Debug)]
25344#[doc(alias = "VkPipelineColorWriteCreateInfoEXT")]
25345pub struct PipelineColorWriteCreateInfoEXT {
25346    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT`.
25347    pub s_type: StructureType,
25348    ///Optional, may be null.
25349    pub p_next: *const core::ffi::c_void,
25350    ///Length of `p_color_write_enables`.
25351    pub attachment_count: u32,
25352    pub p_color_write_enables: *const u32,
25353}
25354impl Default for PipelineColorWriteCreateInfoEXT {
25355    #[inline]
25356    fn default() -> Self {
25357        Self {
25358            s_type: StructureType::from_raw(1000381001i32),
25359            p_next: core::ptr::null(),
25360            attachment_count: Default::default(),
25361            p_color_write_enables: core::ptr::null(),
25362        }
25363    }
25364}
25365///[`VkMemoryBarrier2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryBarrier2.html)
25366/**
25367Provided by **VK_BASE_VERSION_1_3**.*/
25368///
25369///# Extends
25370///- [`SubpassDependency2`]
25371#[repr(C)]
25372#[derive(Copy, Clone, Debug)]
25373#[doc(alias = "VkMemoryBarrier2")]
25374pub struct MemoryBarrier2 {
25375    ///Must be `VK_STRUCTURE_TYPE_MEMORY_BARRIER_2`.
25376    pub s_type: StructureType,
25377    ///Optional, may be null.
25378    pub p_next: *const core::ffi::c_void,
25379    pub src_stage_mask: PipelineStageFlags2,
25380    pub src_access_mask: AccessFlags2,
25381    pub dst_stage_mask: PipelineStageFlags2,
25382    pub dst_access_mask: AccessFlags2,
25383}
25384impl Default for MemoryBarrier2 {
25385    #[inline]
25386    fn default() -> Self {
25387        Self {
25388            s_type: StructureType::from_raw(1000314000i32),
25389            p_next: core::ptr::null(),
25390            src_stage_mask: Default::default(),
25391            src_access_mask: Default::default(),
25392            dst_stage_mask: Default::default(),
25393            dst_access_mask: Default::default(),
25394        }
25395    }
25396}
25397///[`VkImageMemoryBarrier2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageMemoryBarrier2.html)
25398/**
25399Provided by **VK_BASE_VERSION_1_3**.*/
25400///
25401///# Extended By
25402///- [`ExternalMemoryAcquireUnmodifiedEXT`]
25403///- [`MemoryBarrierAccessFlags3KHR`]
25404///- [`SampleLocationsInfoEXT`]
25405#[repr(C)]
25406#[derive(Copy, Clone, Debug)]
25407#[doc(alias = "VkImageMemoryBarrier2")]
25408pub struct ImageMemoryBarrier2 {
25409    ///Must be `VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2`.
25410    pub s_type: StructureType,
25411    ///Optional, may be null.
25412    pub p_next: *const core::ffi::c_void,
25413    pub src_stage_mask: PipelineStageFlags2,
25414    pub src_access_mask: AccessFlags2,
25415    pub dst_stage_mask: PipelineStageFlags2,
25416    pub dst_access_mask: AccessFlags2,
25417    pub old_layout: ImageLayout,
25418    pub new_layout: ImageLayout,
25419    pub src_queue_family_index: u32,
25420    pub dst_queue_family_index: u32,
25421    pub image: Image,
25422    pub subresource_range: ImageSubresourceRange,
25423}
25424impl Default for ImageMemoryBarrier2 {
25425    #[inline]
25426    fn default() -> Self {
25427        Self {
25428            s_type: StructureType::from_raw(1000314002i32),
25429            p_next: core::ptr::null(),
25430            src_stage_mask: Default::default(),
25431            src_access_mask: Default::default(),
25432            dst_stage_mask: Default::default(),
25433            dst_access_mask: Default::default(),
25434            old_layout: Default::default(),
25435            new_layout: Default::default(),
25436            src_queue_family_index: Default::default(),
25437            dst_queue_family_index: Default::default(),
25438            image: Default::default(),
25439            subresource_range: Default::default(),
25440        }
25441    }
25442}
25443///[`VkBufferMemoryBarrier2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferMemoryBarrier2.html)
25444/**
25445Provided by **VK_BASE_VERSION_1_3**.*/
25446///
25447///# Extended By
25448///- [`ExternalMemoryAcquireUnmodifiedEXT`]
25449///- [`MemoryBarrierAccessFlags3KHR`]
25450#[repr(C)]
25451#[derive(Copy, Clone, Debug)]
25452#[doc(alias = "VkBufferMemoryBarrier2")]
25453pub struct BufferMemoryBarrier2 {
25454    ///Must be `VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2`.
25455    pub s_type: StructureType,
25456    ///Optional, may be null.
25457    pub p_next: *const core::ffi::c_void,
25458    pub src_stage_mask: PipelineStageFlags2,
25459    pub src_access_mask: AccessFlags2,
25460    pub dst_stage_mask: PipelineStageFlags2,
25461    pub dst_access_mask: AccessFlags2,
25462    pub src_queue_family_index: u32,
25463    pub dst_queue_family_index: u32,
25464    pub buffer: Buffer,
25465    pub offset: u64,
25466    pub size: u64,
25467}
25468impl Default for BufferMemoryBarrier2 {
25469    #[inline]
25470    fn default() -> Self {
25471        Self {
25472            s_type: StructureType::from_raw(1000314001i32),
25473            p_next: core::ptr::null(),
25474            src_stage_mask: Default::default(),
25475            src_access_mask: Default::default(),
25476            dst_stage_mask: Default::default(),
25477            dst_access_mask: Default::default(),
25478            src_queue_family_index: Default::default(),
25479            dst_queue_family_index: Default::default(),
25480            buffer: Default::default(),
25481            offset: Default::default(),
25482            size: Default::default(),
25483        }
25484    }
25485}
25486///[`VkMemoryBarrierAccessFlags3KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryBarrierAccessFlags3KHR.html)
25487/**
25488Provided by **VK_KHR_maintenance8**.*/
25489///
25490///# Extends
25491///- [`SubpassDependency2`]
25492///- [`BufferMemoryBarrier2`]
25493///- [`ImageMemoryBarrier2`]
25494#[repr(C)]
25495#[derive(Copy, Clone, Debug)]
25496#[doc(alias = "VkMemoryBarrierAccessFlags3KHR")]
25497pub struct MemoryBarrierAccessFlags3KHR {
25498    ///Must be `VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR`.
25499    pub s_type: StructureType,
25500    ///Optional, may be null.
25501    pub p_next: *const core::ffi::c_void,
25502    pub src_access_mask3: AccessFlags3KHR,
25503    pub dst_access_mask3: AccessFlags3KHR,
25504}
25505impl Default for MemoryBarrierAccessFlags3KHR {
25506    #[inline]
25507    fn default() -> Self {
25508        Self {
25509            s_type: StructureType::from_raw(1000574002i32),
25510            p_next: core::ptr::null(),
25511            src_access_mask3: Default::default(),
25512            dst_access_mask3: Default::default(),
25513        }
25514    }
25515}
25516///[`VkDependencyInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDependencyInfo.html)
25517/**
25518Provided by **VK_BASE_VERSION_1_3**.*/
25519///
25520///# Extended By
25521///- [`MemoryRangeBarriersInfoKHR`]
25522///- [`TensorDependencyInfoARM`]
25523///- [`TensorMemoryBarrierARM`]
25524#[repr(C)]
25525#[derive(Copy, Clone, Debug)]
25526#[doc(alias = "VkDependencyInfo")]
25527pub struct DependencyInfo {
25528    ///Must be `VK_STRUCTURE_TYPE_DEPENDENCY_INFO`.
25529    pub s_type: StructureType,
25530    ///Optional, may be null.
25531    pub p_next: *const core::ffi::c_void,
25532    pub dependency_flags: DependencyFlags,
25533    ///Length of `p_memory_barriers`.
25534    pub memory_barrier_count: u32,
25535    pub p_memory_barriers: *const MemoryBarrier2,
25536    ///Length of `p_buffer_memory_barriers`.
25537    pub buffer_memory_barrier_count: u32,
25538    pub p_buffer_memory_barriers: *const BufferMemoryBarrier2,
25539    ///Length of `p_image_memory_barriers`.
25540    pub image_memory_barrier_count: u32,
25541    pub p_image_memory_barriers: *const ImageMemoryBarrier2,
25542}
25543impl Default for DependencyInfo {
25544    #[inline]
25545    fn default() -> Self {
25546        Self {
25547            s_type: StructureType::from_raw(1000314003i32),
25548            p_next: core::ptr::null(),
25549            dependency_flags: Default::default(),
25550            memory_barrier_count: Default::default(),
25551            p_memory_barriers: core::ptr::null(),
25552            buffer_memory_barrier_count: Default::default(),
25553            p_buffer_memory_barriers: core::ptr::null(),
25554            image_memory_barrier_count: Default::default(),
25555            p_image_memory_barriers: core::ptr::null(),
25556        }
25557    }
25558}
25559///[`VkSemaphoreSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSemaphoreSubmitInfo.html)
25560/**
25561Provided by **VK_BASE_VERSION_1_3**.*/
25562#[repr(C)]
25563#[derive(Copy, Clone, Debug)]
25564#[doc(alias = "VkSemaphoreSubmitInfo")]
25565pub struct SemaphoreSubmitInfo {
25566    ///Must be `VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO`.
25567    pub s_type: StructureType,
25568    ///Optional, may be null.
25569    pub p_next: *const core::ffi::c_void,
25570    pub semaphore: Semaphore,
25571    pub value: u64,
25572    pub stage_mask: PipelineStageFlags2,
25573    pub device_index: u32,
25574}
25575impl Default for SemaphoreSubmitInfo {
25576    #[inline]
25577    fn default() -> Self {
25578        Self {
25579            s_type: StructureType::from_raw(1000314005i32),
25580            p_next: core::ptr::null(),
25581            semaphore: Default::default(),
25582            value: Default::default(),
25583            stage_mask: Default::default(),
25584            device_index: Default::default(),
25585        }
25586    }
25587}
25588///[`VkCommandBufferSubmitInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferSubmitInfo.html)
25589/**
25590Provided by **VK_BASE_VERSION_1_3**.*/
25591///
25592///# Extended By
25593///- [`RenderPassStripeSubmitInfoARM`]
25594#[repr(C)]
25595#[derive(Copy, Clone, Debug)]
25596#[doc(alias = "VkCommandBufferSubmitInfo")]
25597pub struct CommandBufferSubmitInfo {
25598    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO`.
25599    pub s_type: StructureType,
25600    ///Optional, may be null.
25601    pub p_next: *const core::ffi::c_void,
25602    pub command_buffer: CommandBuffer,
25603    pub device_mask: u32,
25604}
25605impl Default for CommandBufferSubmitInfo {
25606    #[inline]
25607    fn default() -> Self {
25608        Self {
25609            s_type: StructureType::from_raw(1000314006i32),
25610            p_next: core::ptr::null(),
25611            command_buffer: Default::default(),
25612            device_mask: Default::default(),
25613        }
25614    }
25615}
25616///[`VkSubmitInfo2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubmitInfo2.html)
25617/**
25618Provided by **VK_BASE_VERSION_1_3**.*/
25619///
25620///# Extended By
25621///- [`FrameBoundaryEXT`]
25622///- [`FrameBoundaryTensorsARM`]
25623///- [`LatencySubmissionPresentIdNV`]
25624///- [`PerformanceQuerySubmitInfoKHR`]
25625///- [`Win32KeyedMutexAcquireReleaseInfoKHR`]
25626///- [`Win32KeyedMutexAcquireReleaseInfoNV`]
25627#[repr(C)]
25628#[derive(Copy, Clone, Debug)]
25629#[doc(alias = "VkSubmitInfo2")]
25630pub struct SubmitInfo2 {
25631    ///Must be `VK_STRUCTURE_TYPE_SUBMIT_INFO_2`.
25632    pub s_type: StructureType,
25633    ///Optional, may be null.
25634    pub p_next: *const core::ffi::c_void,
25635    pub flags: SubmitFlags,
25636    ///Length of `p_wait_semaphore_infos`.
25637    pub wait_semaphore_info_count: u32,
25638    pub p_wait_semaphore_infos: *const SemaphoreSubmitInfo,
25639    ///Length of `p_command_buffer_infos`.
25640    pub command_buffer_info_count: u32,
25641    pub p_command_buffer_infos: *const CommandBufferSubmitInfo,
25642    ///Length of `p_signal_semaphore_infos`.
25643    pub signal_semaphore_info_count: u32,
25644    pub p_signal_semaphore_infos: *const SemaphoreSubmitInfo,
25645}
25646impl Default for SubmitInfo2 {
25647    #[inline]
25648    fn default() -> Self {
25649        Self {
25650            s_type: StructureType::from_raw(1000314004i32),
25651            p_next: core::ptr::null(),
25652            flags: Default::default(),
25653            wait_semaphore_info_count: Default::default(),
25654            p_wait_semaphore_infos: core::ptr::null(),
25655            command_buffer_info_count: Default::default(),
25656            p_command_buffer_infos: core::ptr::null(),
25657            signal_semaphore_info_count: Default::default(),
25658            p_signal_semaphore_infos: core::ptr::null(),
25659        }
25660    }
25661}
25662///[`VkQueueFamilyCheckpointProperties2NV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyCheckpointProperties2NV.html)
25663/**
25664Provided by **VK_NV_device_diagnostic_checkpoints**.*/
25665/**
25666**Returned only**, filled by Vulkan, not constructed by the application.*/
25667///
25668///# Extends
25669///- [`QueueFamilyProperties2`]
25670#[repr(C)]
25671#[derive(Copy, Clone, Debug)]
25672#[doc(alias = "VkQueueFamilyCheckpointProperties2NV")]
25673pub struct QueueFamilyCheckpointProperties2NV {
25674    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV`.
25675    pub s_type: StructureType,
25676    ///Optional, may be null.
25677    pub p_next: *mut core::ffi::c_void,
25678    pub checkpoint_execution_stage_mask: PipelineStageFlags2,
25679}
25680impl Default for QueueFamilyCheckpointProperties2NV {
25681    #[inline]
25682    fn default() -> Self {
25683        Self {
25684            s_type: StructureType::from_raw(1000314008i32),
25685            p_next: core::ptr::null_mut(),
25686            checkpoint_execution_stage_mask: Default::default(),
25687        }
25688    }
25689}
25690///[`VkCheckpointData2NV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCheckpointData2NV.html)
25691/**
25692Provided by **VK_NV_device_diagnostic_checkpoints**.*/
25693/**
25694**Returned only**, filled by Vulkan, not constructed by the application.*/
25695#[repr(C)]
25696#[derive(Copy, Clone, Debug)]
25697#[doc(alias = "VkCheckpointData2NV")]
25698pub struct CheckpointData2NV {
25699    ///Must be `VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV`.
25700    pub s_type: StructureType,
25701    ///Optional, may be null.
25702    pub p_next: *mut core::ffi::c_void,
25703    pub stage: PipelineStageFlags2,
25704    pub p_checkpoint_marker: *mut core::ffi::c_void,
25705}
25706impl Default for CheckpointData2NV {
25707    #[inline]
25708    fn default() -> Self {
25709        Self {
25710            s_type: StructureType::from_raw(1000314009i32),
25711            p_next: core::ptr::null_mut(),
25712            stage: Default::default(),
25713            p_checkpoint_marker: core::ptr::null_mut(),
25714        }
25715    }
25716}
25717///[`VkPhysicalDeviceSynchronization2Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSynchronization2Features.html)
25718/**
25719Provided by **VK_BASE_VERSION_1_3**.*/
25720///
25721///# Extends
25722///- [`PhysicalDeviceFeatures2`]
25723///- [`DeviceCreateInfo`]
25724#[repr(C)]
25725#[derive(Copy, Clone, Debug)]
25726#[doc(alias = "VkPhysicalDeviceSynchronization2Features")]
25727pub struct PhysicalDeviceSynchronization2Features {
25728    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES`.
25729    pub s_type: StructureType,
25730    ///Optional, may be null.
25731    pub p_next: *mut core::ffi::c_void,
25732    pub synchronization2: u32,
25733}
25734impl Default for PhysicalDeviceSynchronization2Features {
25735    #[inline]
25736    fn default() -> Self {
25737        Self {
25738            s_type: StructureType::from_raw(1000314007i32),
25739            p_next: core::ptr::null_mut(),
25740            synchronization2: Default::default(),
25741        }
25742    }
25743}
25744///[`VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR.html)
25745/**
25746Provided by **VK_KHR_unified_image_layouts**.*/
25747///
25748///# Extends
25749///- [`PhysicalDeviceFeatures2`]
25750///- [`DeviceCreateInfo`]
25751#[repr(C)]
25752#[derive(Copy, Clone, Debug)]
25753#[doc(alias = "VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR")]
25754pub struct PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
25755    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR`.
25756    pub s_type: StructureType,
25757    ///Optional, may be null.
25758    pub p_next: *mut core::ffi::c_void,
25759    pub unified_image_layouts: u32,
25760    pub unified_image_layouts_video: u32,
25761}
25762impl Default for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
25763    #[inline]
25764    fn default() -> Self {
25765        Self {
25766            s_type: StructureType::from_raw(1000527000i32),
25767            p_next: core::ptr::null_mut(),
25768            unified_image_layouts: Default::default(),
25769            unified_image_layouts_video: Default::default(),
25770        }
25771    }
25772}
25773///[`VkPhysicalDeviceHostImageCopyFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceHostImageCopyFeatures.html)
25774/**
25775Provided by **VK_BASE_VERSION_1_4**.*/
25776///
25777///# Extends
25778///- [`PhysicalDeviceFeatures2`]
25779///- [`DeviceCreateInfo`]
25780#[repr(C)]
25781#[derive(Copy, Clone, Debug)]
25782#[doc(alias = "VkPhysicalDeviceHostImageCopyFeatures")]
25783pub struct PhysicalDeviceHostImageCopyFeatures {
25784    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES`.
25785    pub s_type: StructureType,
25786    ///Optional, may be null.
25787    pub p_next: *mut core::ffi::c_void,
25788    pub host_image_copy: u32,
25789}
25790impl Default for PhysicalDeviceHostImageCopyFeatures {
25791    #[inline]
25792    fn default() -> Self {
25793        Self {
25794            s_type: StructureType::from_raw(1000270000i32),
25795            p_next: core::ptr::null_mut(),
25796            host_image_copy: Default::default(),
25797        }
25798    }
25799}
25800///[`VkPhysicalDeviceHostImageCopyProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceHostImageCopyProperties.html)
25801/**
25802Provided by **VK_BASE_VERSION_1_4**.*/
25803///
25804///# Extends
25805///- [`PhysicalDeviceProperties2`]
25806#[repr(C)]
25807#[derive(Copy, Clone, Debug)]
25808#[doc(alias = "VkPhysicalDeviceHostImageCopyProperties")]
25809pub struct PhysicalDeviceHostImageCopyProperties {
25810    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES`.
25811    pub s_type: StructureType,
25812    ///Optional, may be null.
25813    pub p_next: *mut core::ffi::c_void,
25814    ///Length of `p_copy_src_layouts`.
25815    pub copy_src_layout_count: u32,
25816    ///Optional, may be null.
25817    pub p_copy_src_layouts: *mut ImageLayout,
25818    ///Length of `p_copy_dst_layouts`.
25819    pub copy_dst_layout_count: u32,
25820    ///Optional, may be null.
25821    pub p_copy_dst_layouts: *mut ImageLayout,
25822    pub optimal_tiling_layout_uuid: [u8; UUID_SIZE as usize],
25823    pub identical_memory_type_requirements: u32,
25824}
25825impl Default for PhysicalDeviceHostImageCopyProperties {
25826    #[inline]
25827    fn default() -> Self {
25828        Self {
25829            s_type: StructureType::from_raw(1000270001i32),
25830            p_next: core::ptr::null_mut(),
25831            copy_src_layout_count: Default::default(),
25832            p_copy_src_layouts: core::ptr::null_mut(),
25833            copy_dst_layout_count: Default::default(),
25834            p_copy_dst_layouts: core::ptr::null_mut(),
25835            optimal_tiling_layout_uuid: unsafe { core::mem::zeroed() },
25836            identical_memory_type_requirements: Default::default(),
25837        }
25838    }
25839}
25840///[`VkMemoryToImageCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryToImageCopy.html)
25841/**
25842Provided by **VK_BASE_VERSION_1_4**.*/
25843#[repr(C)]
25844#[derive(Copy, Clone, Debug)]
25845#[doc(alias = "VkMemoryToImageCopy")]
25846pub struct MemoryToImageCopy {
25847    ///Must be `VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY`.
25848    pub s_type: StructureType,
25849    ///Optional, may be null.
25850    pub p_next: *const core::ffi::c_void,
25851    pub p_host_pointer: *const core::ffi::c_void,
25852    pub memory_row_length: u32,
25853    pub memory_image_height: u32,
25854    pub image_subresource: ImageSubresourceLayers,
25855    pub image_offset: Offset3D,
25856    pub image_extent: Extent3D,
25857}
25858impl Default for MemoryToImageCopy {
25859    #[inline]
25860    fn default() -> Self {
25861        Self {
25862            s_type: StructureType::from_raw(1000270002i32),
25863            p_next: core::ptr::null(),
25864            p_host_pointer: core::ptr::null(),
25865            memory_row_length: Default::default(),
25866            memory_image_height: Default::default(),
25867            image_subresource: Default::default(),
25868            image_offset: Default::default(),
25869            image_extent: Default::default(),
25870        }
25871    }
25872}
25873///[`VkImageToMemoryCopy`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageToMemoryCopy.html)
25874/**
25875Provided by **VK_BASE_VERSION_1_4**.*/
25876#[repr(C)]
25877#[derive(Copy, Clone, Debug)]
25878#[doc(alias = "VkImageToMemoryCopy")]
25879pub struct ImageToMemoryCopy {
25880    ///Must be `VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY`.
25881    pub s_type: StructureType,
25882    ///Optional, may be null.
25883    pub p_next: *const core::ffi::c_void,
25884    pub p_host_pointer: *mut core::ffi::c_void,
25885    pub memory_row_length: u32,
25886    pub memory_image_height: u32,
25887    pub image_subresource: ImageSubresourceLayers,
25888    pub image_offset: Offset3D,
25889    pub image_extent: Extent3D,
25890}
25891impl Default for ImageToMemoryCopy {
25892    #[inline]
25893    fn default() -> Self {
25894        Self {
25895            s_type: StructureType::from_raw(1000270003i32),
25896            p_next: core::ptr::null(),
25897            p_host_pointer: core::ptr::null_mut(),
25898            memory_row_length: Default::default(),
25899            memory_image_height: Default::default(),
25900            image_subresource: Default::default(),
25901            image_offset: Default::default(),
25902            image_extent: Default::default(),
25903        }
25904    }
25905}
25906///[`VkCopyMemoryToImageInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageInfo.html)
25907/**
25908Provided by **VK_BASE_VERSION_1_4**.*/
25909#[repr(C)]
25910#[derive(Copy, Clone, Debug)]
25911#[doc(alias = "VkCopyMemoryToImageInfo")]
25912pub struct CopyMemoryToImageInfo {
25913    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO`.
25914    pub s_type: StructureType,
25915    ///Optional, may be null.
25916    pub p_next: *const core::ffi::c_void,
25917    pub flags: HostImageCopyFlags,
25918    pub dst_image: Image,
25919    pub dst_image_layout: ImageLayout,
25920    ///Length of `p_regions`.
25921    pub region_count: u32,
25922    pub p_regions: *const MemoryToImageCopy,
25923}
25924impl Default for CopyMemoryToImageInfo {
25925    #[inline]
25926    fn default() -> Self {
25927        Self {
25928            s_type: StructureType::from_raw(1000270005i32),
25929            p_next: core::ptr::null(),
25930            flags: Default::default(),
25931            dst_image: Default::default(),
25932            dst_image_layout: Default::default(),
25933            region_count: Default::default(),
25934            p_regions: core::ptr::null(),
25935        }
25936    }
25937}
25938///[`VkCopyImageToMemoryInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyImageToMemoryInfo.html)
25939/**
25940Provided by **VK_BASE_VERSION_1_4**.*/
25941#[repr(C)]
25942#[derive(Copy, Clone, Debug)]
25943#[doc(alias = "VkCopyImageToMemoryInfo")]
25944pub struct CopyImageToMemoryInfo {
25945    ///Must be `VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO`.
25946    pub s_type: StructureType,
25947    ///Optional, may be null.
25948    pub p_next: *const core::ffi::c_void,
25949    pub flags: HostImageCopyFlags,
25950    pub src_image: Image,
25951    pub src_image_layout: ImageLayout,
25952    ///Length of `p_regions`.
25953    pub region_count: u32,
25954    pub p_regions: *const ImageToMemoryCopy,
25955}
25956impl Default for CopyImageToMemoryInfo {
25957    #[inline]
25958    fn default() -> Self {
25959        Self {
25960            s_type: StructureType::from_raw(1000270004i32),
25961            p_next: core::ptr::null(),
25962            flags: Default::default(),
25963            src_image: Default::default(),
25964            src_image_layout: Default::default(),
25965            region_count: Default::default(),
25966            p_regions: core::ptr::null(),
25967        }
25968    }
25969}
25970///[`VkCopyImageToImageInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyImageToImageInfo.html)
25971/**
25972Provided by **VK_BASE_VERSION_1_4**.*/
25973#[repr(C)]
25974#[derive(Copy, Clone, Debug)]
25975#[doc(alias = "VkCopyImageToImageInfo")]
25976pub struct CopyImageToImageInfo {
25977    ///Must be `VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO`.
25978    pub s_type: StructureType,
25979    ///Optional, may be null.
25980    pub p_next: *const core::ffi::c_void,
25981    pub flags: HostImageCopyFlags,
25982    pub src_image: Image,
25983    pub src_image_layout: ImageLayout,
25984    pub dst_image: Image,
25985    pub dst_image_layout: ImageLayout,
25986    ///Length of `p_regions`.
25987    pub region_count: u32,
25988    pub p_regions: *const ImageCopy2,
25989}
25990impl Default for CopyImageToImageInfo {
25991    #[inline]
25992    fn default() -> Self {
25993        Self {
25994            s_type: StructureType::from_raw(1000270007i32),
25995            p_next: core::ptr::null(),
25996            flags: Default::default(),
25997            src_image: Default::default(),
25998            src_image_layout: Default::default(),
25999            dst_image: Default::default(),
26000            dst_image_layout: Default::default(),
26001            region_count: Default::default(),
26002            p_regions: core::ptr::null(),
26003        }
26004    }
26005}
26006///[`VkHostImageLayoutTransitionInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostImageLayoutTransitionInfo.html)
26007/**
26008Provided by **VK_BASE_VERSION_1_4**.*/
26009#[repr(C)]
26010#[derive(Copy, Clone, Debug)]
26011#[doc(alias = "VkHostImageLayoutTransitionInfo")]
26012pub struct HostImageLayoutTransitionInfo {
26013    ///Must be `VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO`.
26014    pub s_type: StructureType,
26015    ///Optional, may be null.
26016    pub p_next: *const core::ffi::c_void,
26017    pub image: Image,
26018    pub old_layout: ImageLayout,
26019    pub new_layout: ImageLayout,
26020    pub subresource_range: ImageSubresourceRange,
26021}
26022impl Default for HostImageLayoutTransitionInfo {
26023    #[inline]
26024    fn default() -> Self {
26025        Self {
26026            s_type: StructureType::from_raw(1000270006i32),
26027            p_next: core::ptr::null(),
26028            image: Default::default(),
26029            old_layout: Default::default(),
26030            new_layout: Default::default(),
26031            subresource_range: Default::default(),
26032        }
26033    }
26034}
26035///[`VkSubresourceHostMemcpySize`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubresourceHostMemcpySize.html)
26036/**
26037Provided by **VK_BASE_VERSION_1_4**.*/
26038/**
26039**Returned only**, filled by Vulkan, not constructed by the application.*/
26040///
26041///# Extends
26042///- [`SubresourceLayout2`]
26043#[repr(C)]
26044#[derive(Copy, Clone, Debug)]
26045#[doc(alias = "VkSubresourceHostMemcpySize")]
26046pub struct SubresourceHostMemcpySize {
26047    ///Must be `VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE`.
26048    pub s_type: StructureType,
26049    ///Optional, may be null.
26050    pub p_next: *mut core::ffi::c_void,
26051    pub size: u64,
26052}
26053impl Default for SubresourceHostMemcpySize {
26054    #[inline]
26055    fn default() -> Self {
26056        Self {
26057            s_type: StructureType::from_raw(1000270008i32),
26058            p_next: core::ptr::null_mut(),
26059            size: Default::default(),
26060        }
26061    }
26062}
26063///[`VkHostImageCopyDevicePerformanceQuery`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostImageCopyDevicePerformanceQuery.html)
26064/**
26065Provided by **VK_BASE_VERSION_1_4**.*/
26066/**
26067**Returned only**, filled by Vulkan, not constructed by the application.*/
26068///
26069///# Extends
26070///- [`ImageFormatProperties2`]
26071#[repr(C)]
26072#[derive(Copy, Clone, Debug)]
26073#[doc(alias = "VkHostImageCopyDevicePerformanceQuery")]
26074pub struct HostImageCopyDevicePerformanceQuery {
26075    ///Must be `VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY`.
26076    pub s_type: StructureType,
26077    ///Optional, may be null.
26078    pub p_next: *mut core::ffi::c_void,
26079    pub optimal_device_access: u32,
26080    pub identical_memory_layout: u32,
26081}
26082impl Default for HostImageCopyDevicePerformanceQuery {
26083    #[inline]
26084    fn default() -> Self {
26085        Self {
26086            s_type: StructureType::from_raw(1000270009i32),
26087            p_next: core::ptr::null_mut(),
26088            optimal_device_access: Default::default(),
26089            identical_memory_layout: Default::default(),
26090        }
26091    }
26092}
26093///[`VkPhysicalDeviceVulkanSC10Properties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkanSC10Properties.html)
26094/**
26095Provided by **VKSC_VERSION_1_0**.*/
26096/**
26097**Returned only**, filled by Vulkan, not constructed by the application.*/
26098///
26099///# Extends
26100///- [`PhysicalDeviceProperties2`]
26101#[repr(C)]
26102#[derive(Copy, Clone, Debug)]
26103#[doc(alias = "VkPhysicalDeviceVulkanSC10Properties")]
26104pub struct PhysicalDeviceVulkanSC10Properties {
26105    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES`.
26106    pub s_type: StructureType,
26107    ///Optional, may be null.
26108    pub p_next: *mut core::ffi::c_void,
26109    pub device_no_dynamic_host_allocations: u32,
26110    pub device_destroy_frees_memory: u32,
26111    pub command_pool_multiple_command_buffers_recording: u32,
26112    pub command_pool_reset_command_buffer: u32,
26113    pub command_buffer_simultaneous_use: u32,
26114    pub secondary_command_buffer_null_or_imageless_framebuffer: u32,
26115    pub recycle_descriptor_set_memory: u32,
26116    pub recycle_pipeline_memory: u32,
26117    pub max_render_pass_subpasses: u32,
26118    pub max_render_pass_dependencies: u32,
26119    pub max_subpass_input_attachments: u32,
26120    pub max_subpass_preserve_attachments: u32,
26121    pub max_framebuffer_attachments: u32,
26122    pub max_descriptor_set_layout_bindings: u32,
26123    pub max_query_fault_count: u32,
26124    pub max_callback_fault_count: u32,
26125    pub max_command_pool_command_buffers: u32,
26126    pub max_command_buffer_size: u64,
26127}
26128impl Default for PhysicalDeviceVulkanSC10Properties {
26129    #[inline]
26130    fn default() -> Self {
26131        Self {
26132            s_type: StructureType::from_raw(1000298001i32),
26133            p_next: core::ptr::null_mut(),
26134            device_no_dynamic_host_allocations: Default::default(),
26135            device_destroy_frees_memory: Default::default(),
26136            command_pool_multiple_command_buffers_recording: Default::default(),
26137            command_pool_reset_command_buffer: Default::default(),
26138            command_buffer_simultaneous_use: Default::default(),
26139            secondary_command_buffer_null_or_imageless_framebuffer: Default::default(),
26140            recycle_descriptor_set_memory: Default::default(),
26141            recycle_pipeline_memory: Default::default(),
26142            max_render_pass_subpasses: Default::default(),
26143            max_render_pass_dependencies: Default::default(),
26144            max_subpass_input_attachments: Default::default(),
26145            max_subpass_preserve_attachments: Default::default(),
26146            max_framebuffer_attachments: Default::default(),
26147            max_descriptor_set_layout_bindings: Default::default(),
26148            max_query_fault_count: Default::default(),
26149            max_callback_fault_count: Default::default(),
26150            max_command_pool_command_buffers: Default::default(),
26151            max_command_buffer_size: Default::default(),
26152        }
26153    }
26154}
26155///[`VkPipelinePoolSize`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelinePoolSize.html)
26156/**
26157Provided by **VKSC_VERSION_1_0**.*/
26158#[repr(C)]
26159#[derive(Copy, Clone, Debug)]
26160#[doc(alias = "VkPipelinePoolSize")]
26161pub struct PipelinePoolSize {
26162    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE`.
26163    pub s_type: StructureType,
26164    ///Optional, may be null.
26165    pub p_next: *const core::ffi::c_void,
26166    pub pool_entry_size: u64,
26167    pub pool_entry_count: u32,
26168}
26169impl Default for PipelinePoolSize {
26170    #[inline]
26171    fn default() -> Self {
26172        Self {
26173            s_type: StructureType::from_raw(1000298005i32),
26174            p_next: core::ptr::null(),
26175            pool_entry_size: Default::default(),
26176            pool_entry_count: Default::default(),
26177        }
26178    }
26179}
26180///[`VkDeviceObjectReservationCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceObjectReservationCreateInfo.html)
26181/**
26182Provided by **VKSC_VERSION_1_0**.*/
26183///
26184///# Extends
26185///- [`DeviceCreateInfo`]
26186#[repr(C)]
26187#[derive(Copy, Clone, Debug)]
26188#[doc(alias = "VkDeviceObjectReservationCreateInfo")]
26189pub struct DeviceObjectReservationCreateInfo {
26190    ///Must be `VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO`.
26191    pub s_type: StructureType,
26192    ///Optional, may be null.
26193    pub p_next: *const core::ffi::c_void,
26194    ///Length of `p_pipeline_cache_create_infos`.
26195    pub pipeline_cache_create_info_count: u32,
26196    pub p_pipeline_cache_create_infos: *const PipelineCacheCreateInfo,
26197    ///Length of `p_pipeline_pool_sizes`.
26198    pub pipeline_pool_size_count: u32,
26199    pub p_pipeline_pool_sizes: *const PipelinePoolSize,
26200    pub semaphore_request_count: u32,
26201    pub command_buffer_request_count: u32,
26202    pub fence_request_count: u32,
26203    pub device_memory_request_count: u32,
26204    pub buffer_request_count: u32,
26205    pub image_request_count: u32,
26206    pub event_request_count: u32,
26207    pub query_pool_request_count: u32,
26208    pub buffer_view_request_count: u32,
26209    pub image_view_request_count: u32,
26210    pub layered_image_view_request_count: u32,
26211    pub pipeline_cache_request_count: u32,
26212    pub pipeline_layout_request_count: u32,
26213    pub render_pass_request_count: u32,
26214    pub graphics_pipeline_request_count: u32,
26215    pub compute_pipeline_request_count: u32,
26216    pub descriptor_set_layout_request_count: u32,
26217    pub sampler_request_count: u32,
26218    pub descriptor_pool_request_count: u32,
26219    pub descriptor_set_request_count: u32,
26220    pub framebuffer_request_count: u32,
26221    pub command_pool_request_count: u32,
26222    pub sampler_ycbcr_conversion_request_count: u32,
26223    pub surface_request_count: u32,
26224    pub swapchain_request_count: u32,
26225    pub display_mode_request_count: u32,
26226    pub subpass_description_request_count: u32,
26227    pub attachment_description_request_count: u32,
26228    pub descriptor_set_layout_binding_request_count: u32,
26229    pub descriptor_set_layout_binding_limit: u32,
26230    pub max_image_view_mip_levels: u32,
26231    pub max_image_view_array_layers: u32,
26232    pub max_layered_image_view_mip_levels: u32,
26233    pub max_occlusion_queries_per_pool: u32,
26234    pub max_pipeline_statistics_queries_per_pool: u32,
26235    pub max_timestamp_queries_per_pool: u32,
26236    pub max_immutable_samplers_per_descriptor_set_layout: u32,
26237}
26238impl Default for DeviceObjectReservationCreateInfo {
26239    #[inline]
26240    fn default() -> Self {
26241        Self {
26242            s_type: StructureType::from_raw(1000298002i32),
26243            p_next: core::ptr::null(),
26244            pipeline_cache_create_info_count: Default::default(),
26245            p_pipeline_cache_create_infos: core::ptr::null(),
26246            pipeline_pool_size_count: Default::default(),
26247            p_pipeline_pool_sizes: core::ptr::null(),
26248            semaphore_request_count: Default::default(),
26249            command_buffer_request_count: Default::default(),
26250            fence_request_count: Default::default(),
26251            device_memory_request_count: Default::default(),
26252            buffer_request_count: Default::default(),
26253            image_request_count: Default::default(),
26254            event_request_count: Default::default(),
26255            query_pool_request_count: Default::default(),
26256            buffer_view_request_count: Default::default(),
26257            image_view_request_count: Default::default(),
26258            layered_image_view_request_count: Default::default(),
26259            pipeline_cache_request_count: Default::default(),
26260            pipeline_layout_request_count: Default::default(),
26261            render_pass_request_count: Default::default(),
26262            graphics_pipeline_request_count: Default::default(),
26263            compute_pipeline_request_count: Default::default(),
26264            descriptor_set_layout_request_count: Default::default(),
26265            sampler_request_count: Default::default(),
26266            descriptor_pool_request_count: Default::default(),
26267            descriptor_set_request_count: Default::default(),
26268            framebuffer_request_count: Default::default(),
26269            command_pool_request_count: Default::default(),
26270            sampler_ycbcr_conversion_request_count: Default::default(),
26271            surface_request_count: Default::default(),
26272            swapchain_request_count: Default::default(),
26273            display_mode_request_count: Default::default(),
26274            subpass_description_request_count: Default::default(),
26275            attachment_description_request_count: Default::default(),
26276            descriptor_set_layout_binding_request_count: Default::default(),
26277            descriptor_set_layout_binding_limit: Default::default(),
26278            max_image_view_mip_levels: Default::default(),
26279            max_image_view_array_layers: Default::default(),
26280            max_layered_image_view_mip_levels: Default::default(),
26281            max_occlusion_queries_per_pool: Default::default(),
26282            max_pipeline_statistics_queries_per_pool: Default::default(),
26283            max_timestamp_queries_per_pool: Default::default(),
26284            max_immutable_samplers_per_descriptor_set_layout: Default::default(),
26285        }
26286    }
26287}
26288///[`VkCommandPoolMemoryReservationCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandPoolMemoryReservationCreateInfo.html)
26289/**
26290Provided by **VKSC_VERSION_1_0**.*/
26291///
26292///# Extends
26293///- [`CommandPoolCreateInfo`]
26294#[repr(C)]
26295#[derive(Copy, Clone, Debug)]
26296#[doc(alias = "VkCommandPoolMemoryReservationCreateInfo")]
26297pub struct CommandPoolMemoryReservationCreateInfo {
26298    ///Must be `VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO`.
26299    pub s_type: StructureType,
26300    ///Optional, may be null.
26301    pub p_next: *const core::ffi::c_void,
26302    pub command_pool_reserved_size: u64,
26303    pub command_pool_max_command_buffers: u32,
26304}
26305impl Default for CommandPoolMemoryReservationCreateInfo {
26306    #[inline]
26307    fn default() -> Self {
26308        Self {
26309            s_type: StructureType::from_raw(1000298003i32),
26310            p_next: core::ptr::null(),
26311            command_pool_reserved_size: Default::default(),
26312            command_pool_max_command_buffers: Default::default(),
26313        }
26314    }
26315}
26316///[`VkCommandPoolMemoryConsumption`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandPoolMemoryConsumption.html)
26317/**
26318Provided by **VKSC_VERSION_1_0**.*/
26319/**
26320**Returned only**, filled by Vulkan, not constructed by the application.*/
26321#[repr(C)]
26322#[derive(Copy, Clone, Debug)]
26323#[doc(alias = "VkCommandPoolMemoryConsumption")]
26324pub struct CommandPoolMemoryConsumption {
26325    ///Must be `VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION`.
26326    pub s_type: StructureType,
26327    ///Optional, may be null.
26328    pub p_next: *mut core::ffi::c_void,
26329    pub command_pool_allocated: u64,
26330    pub command_pool_reserved_size: u64,
26331    pub command_buffer_allocated: u64,
26332}
26333impl Default for CommandPoolMemoryConsumption {
26334    #[inline]
26335    fn default() -> Self {
26336        Self {
26337            s_type: StructureType::from_raw(1000298004i32),
26338            p_next: core::ptr::null_mut(),
26339            command_pool_allocated: Default::default(),
26340            command_pool_reserved_size: Default::default(),
26341            command_buffer_allocated: Default::default(),
26342        }
26343    }
26344}
26345///[`VkPhysicalDeviceVulkanSC10Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVulkanSC10Features.html)
26346/**
26347Provided by **VKSC_VERSION_1_0**.*/
26348///
26349///# Extends
26350///- [`PhysicalDeviceFeatures2`]
26351///- [`DeviceCreateInfo`]
26352#[repr(C)]
26353#[derive(Copy, Clone, Debug)]
26354#[doc(alias = "VkPhysicalDeviceVulkanSC10Features")]
26355pub struct PhysicalDeviceVulkanSC10Features {
26356    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES`.
26357    pub s_type: StructureType,
26358    ///Optional, may be null.
26359    pub p_next: *mut core::ffi::c_void,
26360    pub shader_atomic_instructions: u32,
26361}
26362impl Default for PhysicalDeviceVulkanSC10Features {
26363    #[inline]
26364    fn default() -> Self {
26365        Self {
26366            s_type: StructureType::from_raw(1000298000i32),
26367            p_next: core::ptr::null_mut(),
26368            shader_atomic_instructions: Default::default(),
26369        }
26370    }
26371}
26372///[`VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.html)
26373/**
26374Provided by **VK_EXT_primitives_generated_query**.*/
26375///
26376///# Extends
26377///- [`PhysicalDeviceFeatures2`]
26378///- [`DeviceCreateInfo`]
26379#[repr(C)]
26380#[derive(Copy, Clone, Debug)]
26381#[doc(alias = "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT")]
26382pub struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
26383    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT`.
26384    pub s_type: StructureType,
26385    ///Optional, may be null.
26386    pub p_next: *mut core::ffi::c_void,
26387    pub primitives_generated_query: u32,
26388    pub primitives_generated_query_with_rasterizer_discard: u32,
26389    pub primitives_generated_query_with_non_zero_streams: u32,
26390}
26391impl Default for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
26392    #[inline]
26393    fn default() -> Self {
26394        Self {
26395            s_type: StructureType::from_raw(1000382000i32),
26396            p_next: core::ptr::null_mut(),
26397            primitives_generated_query: Default::default(),
26398            primitives_generated_query_with_rasterizer_discard: Default::default(),
26399            primitives_generated_query_with_non_zero_streams: Default::default(),
26400        }
26401    }
26402}
26403///[`VkPhysicalDeviceLegacyDitheringFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLegacyDitheringFeaturesEXT.html)
26404/**
26405Provided by **VK_EXT_legacy_dithering**.*/
26406///
26407///# Extends
26408///- [`PhysicalDeviceFeatures2`]
26409///- [`DeviceCreateInfo`]
26410#[repr(C)]
26411#[derive(Copy, Clone, Debug)]
26412#[doc(alias = "VkPhysicalDeviceLegacyDitheringFeaturesEXT")]
26413pub struct PhysicalDeviceLegacyDitheringFeaturesEXT {
26414    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT`.
26415    pub s_type: StructureType,
26416    ///Optional, may be null.
26417    pub p_next: *mut core::ffi::c_void,
26418    pub legacy_dithering: u32,
26419}
26420impl Default for PhysicalDeviceLegacyDitheringFeaturesEXT {
26421    #[inline]
26422    fn default() -> Self {
26423        Self {
26424            s_type: StructureType::from_raw(1000465000i32),
26425            p_next: core::ptr::null_mut(),
26426            legacy_dithering: Default::default(),
26427        }
26428    }
26429}
26430///[`VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.html)
26431/**
26432Provided by **VK_EXT_multisampled_render_to_single_sampled**.*/
26433///
26434///# Extends
26435///- [`PhysicalDeviceFeatures2`]
26436///- [`DeviceCreateInfo`]
26437#[repr(C)]
26438#[derive(Copy, Clone, Debug)]
26439#[doc(alias = "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT")]
26440pub struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
26441    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT`.
26442    pub s_type: StructureType,
26443    ///Optional, may be null.
26444    pub p_next: *mut core::ffi::c_void,
26445    pub multisampled_render_to_single_sampled: u32,
26446}
26447impl Default for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
26448    #[inline]
26449    fn default() -> Self {
26450        Self {
26451            s_type: StructureType::from_raw(1000376000i32),
26452            p_next: core::ptr::null_mut(),
26453            multisampled_render_to_single_sampled: Default::default(),
26454        }
26455    }
26456}
26457///[`VkSurfaceCapabilitiesPresentId2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesPresentId2KHR.html)
26458/**
26459Provided by **VK_KHR_present_id2**.*/
26460///
26461///# Extends
26462///- [`SurfaceCapabilities2KHR`]
26463#[repr(C)]
26464#[derive(Copy, Clone, Debug)]
26465#[doc(alias = "VkSurfaceCapabilitiesPresentId2KHR")]
26466pub struct SurfaceCapabilitiesPresentId2KHR {
26467    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR`.
26468    pub s_type: StructureType,
26469    ///Optional, may be null.
26470    pub p_next: *mut core::ffi::c_void,
26471    pub present_id2_supported: u32,
26472}
26473impl Default for SurfaceCapabilitiesPresentId2KHR {
26474    #[inline]
26475    fn default() -> Self {
26476        Self {
26477            s_type: StructureType::from_raw(1000479000i32),
26478            p_next: core::ptr::null_mut(),
26479            present_id2_supported: Default::default(),
26480        }
26481    }
26482}
26483///[`VkSurfaceCapabilitiesPresentWait2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesPresentWait2KHR.html)
26484/**
26485Provided by **VK_KHR_present_wait2**.*/
26486///
26487///# Extends
26488///- [`SurfaceCapabilities2KHR`]
26489#[repr(C)]
26490#[derive(Copy, Clone, Debug)]
26491#[doc(alias = "VkSurfaceCapabilitiesPresentWait2KHR")]
26492pub struct SurfaceCapabilitiesPresentWait2KHR {
26493    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR`.
26494    pub s_type: StructureType,
26495    ///Optional, may be null.
26496    pub p_next: *mut core::ffi::c_void,
26497    pub present_wait2_supported: u32,
26498}
26499impl Default for SurfaceCapabilitiesPresentWait2KHR {
26500    #[inline]
26501    fn default() -> Self {
26502        Self {
26503            s_type: StructureType::from_raw(1000480000i32),
26504            p_next: core::ptr::null_mut(),
26505            present_wait2_supported: Default::default(),
26506        }
26507    }
26508}
26509///[`VkSubpassResolvePerformanceQueryEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassResolvePerformanceQueryEXT.html)
26510/**
26511Provided by **VK_EXT_multisampled_render_to_single_sampled**.*/
26512/**
26513**Returned only**, filled by Vulkan, not constructed by the application.*/
26514///
26515///# Extends
26516///- [`FormatProperties2`]
26517#[repr(C)]
26518#[derive(Copy, Clone, Debug)]
26519#[doc(alias = "VkSubpassResolvePerformanceQueryEXT")]
26520pub struct SubpassResolvePerformanceQueryEXT {
26521    ///Must be `VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT`.
26522    pub s_type: StructureType,
26523    ///Optional, may be null.
26524    pub p_next: *mut core::ffi::c_void,
26525    pub optimal: u32,
26526}
26527impl Default for SubpassResolvePerformanceQueryEXT {
26528    #[inline]
26529    fn default() -> Self {
26530        Self {
26531            s_type: StructureType::from_raw(1000376001i32),
26532            p_next: core::ptr::null_mut(),
26533            optimal: Default::default(),
26534        }
26535    }
26536}
26537///[`VkMultisampledRenderToSingleSampledInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultisampledRenderToSingleSampledInfoEXT.html)
26538/**
26539Provided by **VK_EXT_multisampled_render_to_single_sampled**.*/
26540///
26541///# Extends
26542///- [`SubpassDescription2`]
26543///- [`RenderingInfo`]
26544#[repr(C)]
26545#[derive(Copy, Clone, Debug)]
26546#[doc(alias = "VkMultisampledRenderToSingleSampledInfoEXT")]
26547pub struct MultisampledRenderToSingleSampledInfoEXT {
26548    ///Must be `VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT`.
26549    pub s_type: StructureType,
26550    ///Optional, may be null.
26551    pub p_next: *const core::ffi::c_void,
26552    pub multisampled_render_to_single_sampled_enable: u32,
26553    pub rasterization_samples: SampleCountFlagBits,
26554}
26555impl Default for MultisampledRenderToSingleSampledInfoEXT {
26556    #[inline]
26557    fn default() -> Self {
26558        Self {
26559            s_type: StructureType::from_raw(1000376002i32),
26560            p_next: core::ptr::null(),
26561            multisampled_render_to_single_sampled_enable: Default::default(),
26562            rasterization_samples: Default::default(),
26563        }
26564    }
26565}
26566///[`VkPhysicalDevicePipelineProtectedAccessFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineProtectedAccessFeatures.html)
26567/**
26568Provided by **VK_COMPUTE_VERSION_1_4**.*/
26569///
26570///# Extends
26571///- [`PhysicalDeviceFeatures2`]
26572///- [`DeviceCreateInfo`]
26573#[repr(C)]
26574#[derive(Copy, Clone, Debug)]
26575#[doc(alias = "VkPhysicalDevicePipelineProtectedAccessFeatures")]
26576pub struct PhysicalDevicePipelineProtectedAccessFeatures {
26577    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES`.
26578    pub s_type: StructureType,
26579    ///Optional, may be null.
26580    pub p_next: *mut core::ffi::c_void,
26581    pub pipeline_protected_access: u32,
26582}
26583impl Default for PhysicalDevicePipelineProtectedAccessFeatures {
26584    #[inline]
26585    fn default() -> Self {
26586        Self {
26587            s_type: StructureType::from_raw(1000466000i32),
26588            p_next: core::ptr::null_mut(),
26589            pipeline_protected_access: Default::default(),
26590        }
26591    }
26592}
26593///[`VkQueueFamilyVideoPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyVideoPropertiesKHR.html)
26594/**
26595Provided by **VK_KHR_video_queue**.*/
26596/**
26597**Returned only**, filled by Vulkan, not constructed by the application.*/
26598///
26599///# Extends
26600///- [`QueueFamilyProperties2`]
26601#[repr(C)]
26602#[derive(Copy, Clone, Debug)]
26603#[doc(alias = "VkQueueFamilyVideoPropertiesKHR")]
26604pub struct QueueFamilyVideoPropertiesKHR {
26605    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR`.
26606    pub s_type: StructureType,
26607    ///Optional, may be null.
26608    pub p_next: *mut core::ffi::c_void,
26609    pub video_codec_operations: VideoCodecOperationFlagsKHR,
26610}
26611impl Default for QueueFamilyVideoPropertiesKHR {
26612    #[inline]
26613    fn default() -> Self {
26614        Self {
26615            s_type: StructureType::from_raw(1000023012i32),
26616            p_next: core::ptr::null_mut(),
26617            video_codec_operations: Default::default(),
26618        }
26619    }
26620}
26621///[`VkQueueFamilyQueryResultStatusPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyQueryResultStatusPropertiesKHR.html)
26622/**
26623Provided by **VK_KHR_video_queue**.*/
26624/**
26625**Returned only**, filled by Vulkan, not constructed by the application.*/
26626///
26627///# Extends
26628///- [`QueueFamilyProperties2`]
26629#[repr(C)]
26630#[derive(Copy, Clone, Debug)]
26631#[doc(alias = "VkQueueFamilyQueryResultStatusPropertiesKHR")]
26632pub struct QueueFamilyQueryResultStatusPropertiesKHR {
26633    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR`.
26634    pub s_type: StructureType,
26635    ///Optional, may be null.
26636    pub p_next: *mut core::ffi::c_void,
26637    pub query_result_status_support: u32,
26638}
26639impl Default for QueueFamilyQueryResultStatusPropertiesKHR {
26640    #[inline]
26641    fn default() -> Self {
26642        Self {
26643            s_type: StructureType::from_raw(1000023016i32),
26644            p_next: core::ptr::null_mut(),
26645            query_result_status_support: Default::default(),
26646        }
26647    }
26648}
26649///[`VkVideoProfileListInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoProfileListInfoKHR.html)
26650/**
26651Provided by **VK_KHR_video_queue**.*/
26652///
26653///# Extends
26654///- [`PhysicalDeviceImageFormatInfo2`]
26655///- [`PhysicalDeviceVideoFormatInfoKHR`]
26656///- [`ImageCreateInfo`]
26657///- [`BufferCreateInfo`]
26658#[repr(C)]
26659#[derive(Copy, Clone, Debug)]
26660#[doc(alias = "VkVideoProfileListInfoKHR")]
26661pub struct VideoProfileListInfoKHR {
26662    ///Must be `VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR`.
26663    pub s_type: StructureType,
26664    ///Optional, may be null.
26665    pub p_next: *const core::ffi::c_void,
26666    ///Length of `p_profiles`.
26667    pub profile_count: u32,
26668    pub p_profiles: *const VideoProfileInfoKHR,
26669}
26670impl Default for VideoProfileListInfoKHR {
26671    #[inline]
26672    fn default() -> Self {
26673        Self {
26674            s_type: StructureType::from_raw(1000023013i32),
26675            p_next: core::ptr::null(),
26676            profile_count: Default::default(),
26677            p_profiles: core::ptr::null(),
26678        }
26679    }
26680}
26681///[`VkPhysicalDeviceVideoFormatInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoFormatInfoKHR.html)
26682/**
26683Provided by **VK_KHR_video_queue**.*/
26684///
26685///# Extended By
26686///- [`VideoProfileListInfoKHR`]
26687#[repr(C)]
26688#[derive(Copy, Clone, Debug)]
26689#[doc(alias = "VkPhysicalDeviceVideoFormatInfoKHR")]
26690pub struct PhysicalDeviceVideoFormatInfoKHR {
26691    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR`.
26692    pub s_type: StructureType,
26693    ///Optional, may be null.
26694    pub p_next: *const core::ffi::c_void,
26695    pub image_usage: ImageUsageFlags,
26696}
26697impl Default for PhysicalDeviceVideoFormatInfoKHR {
26698    #[inline]
26699    fn default() -> Self {
26700        Self {
26701            s_type: StructureType::from_raw(1000023014i32),
26702            p_next: core::ptr::null(),
26703            image_usage: Default::default(),
26704        }
26705    }
26706}
26707///[`VkVideoFormatPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoFormatPropertiesKHR.html)
26708/**
26709Provided by **VK_KHR_video_queue**.*/
26710/**
26711**Returned only**, filled by Vulkan, not constructed by the application.*/
26712///
26713///# Extended By
26714///- [`VideoFormatAV1QuantizationMapPropertiesKHR`]
26715///- [`VideoFormatH265QuantizationMapPropertiesKHR`]
26716///- [`VideoFormatQuantizationMapPropertiesKHR`]
26717#[repr(C)]
26718#[derive(Copy, Clone, Debug)]
26719#[doc(alias = "VkVideoFormatPropertiesKHR")]
26720pub struct VideoFormatPropertiesKHR {
26721    ///Must be `VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR`.
26722    pub s_type: StructureType,
26723    ///Optional, may be null.
26724    pub p_next: *mut core::ffi::c_void,
26725    pub format: Format,
26726    pub component_mapping: ComponentMapping,
26727    pub image_create_flags: ImageCreateFlags,
26728    pub image_type: ImageType,
26729    pub image_tiling: ImageTiling,
26730    pub image_usage_flags: ImageUsageFlags,
26731}
26732impl Default for VideoFormatPropertiesKHR {
26733    #[inline]
26734    fn default() -> Self {
26735        Self {
26736            s_type: StructureType::from_raw(1000023015i32),
26737            p_next: core::ptr::null_mut(),
26738            format: Default::default(),
26739            component_mapping: Default::default(),
26740            image_create_flags: Default::default(),
26741            image_type: Default::default(),
26742            image_tiling: Default::default(),
26743            image_usage_flags: Default::default(),
26744        }
26745    }
26746}
26747///[`VkVideoEncodeQuantizationMapCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQuantizationMapCapabilitiesKHR.html)
26748/**
26749Provided by **VK_KHR_video_encode_quantization_map**.*/
26750/**
26751**Returned only**, filled by Vulkan, not constructed by the application.*/
26752///
26753///# Extends
26754///- [`VideoCapabilitiesKHR`]
26755#[repr(C)]
26756#[derive(Copy, Clone, Debug)]
26757#[doc(alias = "VkVideoEncodeQuantizationMapCapabilitiesKHR")]
26758pub struct VideoEncodeQuantizationMapCapabilitiesKHR {
26759    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR`.
26760    pub s_type: StructureType,
26761    ///Optional, may be null.
26762    pub p_next: *mut core::ffi::c_void,
26763    pub max_quantization_map_extent: Extent2D,
26764}
26765impl Default for VideoEncodeQuantizationMapCapabilitiesKHR {
26766    #[inline]
26767    fn default() -> Self {
26768        Self {
26769            s_type: StructureType::from_raw(1000553000i32),
26770            p_next: core::ptr::null_mut(),
26771            max_quantization_map_extent: Default::default(),
26772        }
26773    }
26774}
26775///[`VkVideoEncodeH264QuantizationMapCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264QuantizationMapCapabilitiesKHR.html)
26776/**
26777Provided by **VK_KHR_video_encode_quantization_map**.*/
26778/**
26779**Returned only**, filled by Vulkan, not constructed by the application.*/
26780///
26781///# Extends
26782///- [`VideoCapabilitiesKHR`]
26783#[repr(C)]
26784#[derive(Copy, Clone, Debug)]
26785#[doc(alias = "VkVideoEncodeH264QuantizationMapCapabilitiesKHR")]
26786pub struct VideoEncodeH264QuantizationMapCapabilitiesKHR {
26787    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR`.
26788    pub s_type: StructureType,
26789    ///Optional, may be null.
26790    pub p_next: *mut core::ffi::c_void,
26791    pub min_qp_delta: i32,
26792    pub max_qp_delta: i32,
26793}
26794impl Default for VideoEncodeH264QuantizationMapCapabilitiesKHR {
26795    #[inline]
26796    fn default() -> Self {
26797        Self {
26798            s_type: StructureType::from_raw(1000553003i32),
26799            p_next: core::ptr::null_mut(),
26800            min_qp_delta: Default::default(),
26801            max_qp_delta: Default::default(),
26802        }
26803    }
26804}
26805///[`VkVideoEncodeH265QuantizationMapCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265QuantizationMapCapabilitiesKHR.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 = "VkVideoEncodeH265QuantizationMapCapabilitiesKHR")]
26816pub struct VideoEncodeH265QuantizationMapCapabilitiesKHR {
26817    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_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 min_qp_delta: i32,
26822    pub max_qp_delta: i32,
26823}
26824impl Default for VideoEncodeH265QuantizationMapCapabilitiesKHR {
26825    #[inline]
26826    fn default() -> Self {
26827        Self {
26828            s_type: StructureType::from_raw(1000553004i32),
26829            p_next: core::ptr::null_mut(),
26830            min_qp_delta: Default::default(),
26831            max_qp_delta: Default::default(),
26832        }
26833    }
26834}
26835///[`VkVideoEncodeAV1QuantizationMapCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1QuantizationMapCapabilitiesKHR.html)
26836/**
26837Provided by **VK_KHR_video_encode_quantization_map**.*/
26838/**
26839**Returned only**, filled by Vulkan, not constructed by the application.*/
26840///
26841///# Extends
26842///- [`VideoCapabilitiesKHR`]
26843#[repr(C)]
26844#[derive(Copy, Clone, Debug)]
26845#[doc(alias = "VkVideoEncodeAV1QuantizationMapCapabilitiesKHR")]
26846pub struct VideoEncodeAV1QuantizationMapCapabilitiesKHR {
26847    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR`.
26848    pub s_type: StructureType,
26849    ///Optional, may be null.
26850    pub p_next: *mut core::ffi::c_void,
26851    pub min_q_index_delta: i32,
26852    pub max_q_index_delta: i32,
26853}
26854impl Default for VideoEncodeAV1QuantizationMapCapabilitiesKHR {
26855    #[inline]
26856    fn default() -> Self {
26857        Self {
26858            s_type: StructureType::from_raw(1000553007i32),
26859            p_next: core::ptr::null_mut(),
26860            min_q_index_delta: Default::default(),
26861            max_q_index_delta: Default::default(),
26862        }
26863    }
26864}
26865///[`VkVideoFormatQuantizationMapPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoFormatQuantizationMapPropertiesKHR.html)
26866/**
26867Provided by **VK_KHR_video_encode_quantization_map**.*/
26868/**
26869**Returned only**, filled by Vulkan, not constructed by the application.*/
26870///
26871///# Extends
26872///- [`VideoFormatPropertiesKHR`]
26873#[repr(C)]
26874#[derive(Copy, Clone, Debug)]
26875#[doc(alias = "VkVideoFormatQuantizationMapPropertiesKHR")]
26876pub struct VideoFormatQuantizationMapPropertiesKHR {
26877    ///Must be `VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR`.
26878    pub s_type: StructureType,
26879    ///Optional, may be null.
26880    pub p_next: *mut core::ffi::c_void,
26881    pub quantization_map_texel_size: Extent2D,
26882}
26883impl Default for VideoFormatQuantizationMapPropertiesKHR {
26884    #[inline]
26885    fn default() -> Self {
26886        Self {
26887            s_type: StructureType::from_raw(1000553001i32),
26888            p_next: core::ptr::null_mut(),
26889            quantization_map_texel_size: Default::default(),
26890        }
26891    }
26892}
26893///[`VkVideoFormatH265QuantizationMapPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoFormatH265QuantizationMapPropertiesKHR.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///- [`VideoFormatPropertiesKHR`]
26901#[repr(C)]
26902#[derive(Copy, Clone, Debug)]
26903#[doc(alias = "VkVideoFormatH265QuantizationMapPropertiesKHR")]
26904pub struct VideoFormatH265QuantizationMapPropertiesKHR {
26905    ///Must be `VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR`.
26906    pub s_type: StructureType,
26907    ///Optional, may be null.
26908    pub p_next: *mut core::ffi::c_void,
26909    pub compatible_ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR,
26910}
26911impl Default for VideoFormatH265QuantizationMapPropertiesKHR {
26912    #[inline]
26913    fn default() -> Self {
26914        Self {
26915            s_type: StructureType::from_raw(1000553006i32),
26916            p_next: core::ptr::null_mut(),
26917            compatible_ctb_sizes: Default::default(),
26918        }
26919    }
26920}
26921///[`VkVideoFormatAV1QuantizationMapPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoFormatAV1QuantizationMapPropertiesKHR.html)
26922/**
26923Provided by **VK_KHR_video_encode_quantization_map**.*/
26924/**
26925**Returned only**, filled by Vulkan, not constructed by the application.*/
26926///
26927///# Extends
26928///- [`VideoFormatPropertiesKHR`]
26929#[repr(C)]
26930#[derive(Copy, Clone, Debug)]
26931#[doc(alias = "VkVideoFormatAV1QuantizationMapPropertiesKHR")]
26932pub struct VideoFormatAV1QuantizationMapPropertiesKHR {
26933    ///Must be `VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR`.
26934    pub s_type: StructureType,
26935    ///Optional, may be null.
26936    pub p_next: *mut core::ffi::c_void,
26937    pub compatible_superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR,
26938}
26939impl Default for VideoFormatAV1QuantizationMapPropertiesKHR {
26940    #[inline]
26941    fn default() -> Self {
26942        Self {
26943            s_type: StructureType::from_raw(1000553008i32),
26944            p_next: core::ptr::null_mut(),
26945            compatible_superblock_sizes: Default::default(),
26946        }
26947    }
26948}
26949///[`VkVideoProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoProfileInfoKHR.html)
26950/**
26951Provided by **VK_KHR_video_queue**.*/
26952///
26953///# Extends
26954///- [`QueryPoolCreateInfo`]
26955///
26956///# Extended By
26957///- [`VideoDecodeAV1ProfileInfoKHR`]
26958///- [`VideoDecodeH264ProfileInfoKHR`]
26959///- [`VideoDecodeH265ProfileInfoKHR`]
26960///- [`VideoDecodeUsageInfoKHR`]
26961///- [`VideoDecodeVP9ProfileInfoKHR`]
26962///- [`VideoEncodeAV1ProfileInfoKHR`]
26963///- [`VideoEncodeH264ProfileInfoKHR`]
26964///- [`VideoEncodeH265ProfileInfoKHR`]
26965///- [`VideoEncodeProfileRgbConversionInfoVALVE`]
26966///- [`VideoEncodeUsageInfoKHR`]
26967#[repr(C)]
26968#[derive(Copy, Clone, Debug)]
26969#[doc(alias = "VkVideoProfileInfoKHR")]
26970pub struct VideoProfileInfoKHR {
26971    ///Must be `VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR`.
26972    pub s_type: StructureType,
26973    ///Optional, may be null.
26974    pub p_next: *const core::ffi::c_void,
26975    pub video_codec_operation: VideoCodecOperationFlagBitsKHR,
26976    pub chroma_subsampling: VideoChromaSubsamplingFlagsKHR,
26977    pub luma_bit_depth: VideoComponentBitDepthFlagsKHR,
26978    pub chroma_bit_depth: VideoComponentBitDepthFlagsKHR,
26979}
26980impl Default for VideoProfileInfoKHR {
26981    #[inline]
26982    fn default() -> Self {
26983        Self {
26984            s_type: StructureType::from_raw(1000023000i32),
26985            p_next: core::ptr::null(),
26986            video_codec_operation: Default::default(),
26987            chroma_subsampling: Default::default(),
26988            luma_bit_depth: Default::default(),
26989            chroma_bit_depth: Default::default(),
26990        }
26991    }
26992}
26993///[`VkVideoCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoCapabilitiesKHR.html)
26994/**
26995Provided by **VK_KHR_video_queue**.*/
26996/**
26997**Returned only**, filled by Vulkan, not constructed by the application.*/
26998///
26999///# Extended By
27000///- [`VideoDecodeAV1CapabilitiesKHR`]
27001///- [`VideoDecodeCapabilitiesKHR`]
27002///- [`VideoDecodeH264CapabilitiesKHR`]
27003///- [`VideoDecodeH265CapabilitiesKHR`]
27004///- [`VideoDecodeVP9CapabilitiesKHR`]
27005///- [`VideoEncodeAV1CapabilitiesKHR`]
27006///- [`VideoEncodeAV1QuantizationMapCapabilitiesKHR`]
27007///- [`VideoEncodeCapabilitiesKHR`]
27008///- [`VideoEncodeH264CapabilitiesKHR`]
27009///- [`VideoEncodeH264QuantizationMapCapabilitiesKHR`]
27010///- [`VideoEncodeH265CapabilitiesKHR`]
27011///- [`VideoEncodeH265QuantizationMapCapabilitiesKHR`]
27012///- [`VideoEncodeIntraRefreshCapabilitiesKHR`]
27013///- [`VideoEncodeQuantizationMapCapabilitiesKHR`]
27014///- [`VideoEncodeRgbConversionCapabilitiesVALVE`]
27015#[repr(C)]
27016#[derive(Copy, Clone, Debug)]
27017#[doc(alias = "VkVideoCapabilitiesKHR")]
27018pub struct VideoCapabilitiesKHR {
27019    ///Must be `VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR`.
27020    pub s_type: StructureType,
27021    ///Optional, may be null.
27022    pub p_next: *mut core::ffi::c_void,
27023    pub flags: VideoCapabilityFlagsKHR,
27024    pub min_bitstream_buffer_offset_alignment: u64,
27025    pub min_bitstream_buffer_size_alignment: u64,
27026    pub picture_access_granularity: Extent2D,
27027    pub min_coded_extent: Extent2D,
27028    pub max_coded_extent: Extent2D,
27029    pub max_dpb_slots: u32,
27030    pub max_active_reference_pictures: u32,
27031    pub std_header_version: ExtensionProperties,
27032}
27033impl Default for VideoCapabilitiesKHR {
27034    #[inline]
27035    fn default() -> Self {
27036        Self {
27037            s_type: StructureType::from_raw(1000023001i32),
27038            p_next: core::ptr::null_mut(),
27039            flags: Default::default(),
27040            min_bitstream_buffer_offset_alignment: Default::default(),
27041            min_bitstream_buffer_size_alignment: Default::default(),
27042            picture_access_granularity: Default::default(),
27043            min_coded_extent: Default::default(),
27044            max_coded_extent: Default::default(),
27045            max_dpb_slots: Default::default(),
27046            max_active_reference_pictures: Default::default(),
27047            std_header_version: Default::default(),
27048        }
27049    }
27050}
27051///[`VkVideoSessionMemoryRequirementsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoSessionMemoryRequirementsKHR.html)
27052/**
27053Provided by **VK_KHR_video_queue**.*/
27054/**
27055**Returned only**, filled by Vulkan, not constructed by the application.*/
27056#[repr(C)]
27057#[derive(Copy, Clone, Debug)]
27058#[doc(alias = "VkVideoSessionMemoryRequirementsKHR")]
27059pub struct VideoSessionMemoryRequirementsKHR {
27060    ///Must be `VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR`.
27061    pub s_type: StructureType,
27062    ///Optional, may be null.
27063    pub p_next: *mut core::ffi::c_void,
27064    pub memory_bind_index: u32,
27065    pub memory_requirements: MemoryRequirements,
27066}
27067impl Default for VideoSessionMemoryRequirementsKHR {
27068    #[inline]
27069    fn default() -> Self {
27070        Self {
27071            s_type: StructureType::from_raw(1000023003i32),
27072            p_next: core::ptr::null_mut(),
27073            memory_bind_index: Default::default(),
27074            memory_requirements: Default::default(),
27075        }
27076    }
27077}
27078///[`VkBindVideoSessionMemoryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVideoSessionMemoryInfoKHR.html)
27079/**
27080Provided by **VK_KHR_video_queue**.*/
27081#[repr(C)]
27082#[derive(Copy, Clone, Debug)]
27083#[doc(alias = "VkBindVideoSessionMemoryInfoKHR")]
27084pub struct BindVideoSessionMemoryInfoKHR {
27085    ///Must be `VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR`.
27086    pub s_type: StructureType,
27087    ///Optional, may be null.
27088    pub p_next: *const core::ffi::c_void,
27089    pub memory_bind_index: u32,
27090    pub memory: DeviceMemory,
27091    pub memory_offset: u64,
27092    pub memory_size: u64,
27093}
27094impl Default for BindVideoSessionMemoryInfoKHR {
27095    #[inline]
27096    fn default() -> Self {
27097        Self {
27098            s_type: StructureType::from_raw(1000023004i32),
27099            p_next: core::ptr::null(),
27100            memory_bind_index: Default::default(),
27101            memory: Default::default(),
27102            memory_offset: Default::default(),
27103            memory_size: Default::default(),
27104        }
27105    }
27106}
27107///[`VkVideoPictureResourceInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoPictureResourceInfoKHR.html)
27108/**
27109Provided by **VK_KHR_video_queue**.*/
27110#[repr(C)]
27111#[derive(Copy, Clone, Debug)]
27112#[doc(alias = "VkVideoPictureResourceInfoKHR")]
27113pub struct VideoPictureResourceInfoKHR {
27114    ///Must be `VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR`.
27115    pub s_type: StructureType,
27116    ///Optional, may be null.
27117    pub p_next: *const core::ffi::c_void,
27118    pub coded_offset: Offset2D,
27119    pub coded_extent: Extent2D,
27120    pub base_array_layer: u32,
27121    pub image_view_binding: ImageView,
27122}
27123impl Default for VideoPictureResourceInfoKHR {
27124    #[inline]
27125    fn default() -> Self {
27126        Self {
27127            s_type: StructureType::from_raw(1000023002i32),
27128            p_next: core::ptr::null(),
27129            coded_offset: Default::default(),
27130            coded_extent: Default::default(),
27131            base_array_layer: Default::default(),
27132            image_view_binding: Default::default(),
27133        }
27134    }
27135}
27136///[`VkVideoReferenceSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoReferenceSlotInfoKHR.html)
27137/**
27138Provided by **VK_KHR_video_queue**.*/
27139///
27140///# Extended By
27141///- [`VideoDecodeAV1DpbSlotInfoKHR`]
27142///- [`VideoDecodeH264DpbSlotInfoKHR`]
27143///- [`VideoDecodeH265DpbSlotInfoKHR`]
27144///- [`VideoEncodeAV1DpbSlotInfoKHR`]
27145///- [`VideoEncodeH264DpbSlotInfoKHR`]
27146///- [`VideoEncodeH265DpbSlotInfoKHR`]
27147///- [`VideoReferenceIntraRefreshInfoKHR`]
27148#[repr(C)]
27149#[derive(Copy, Clone, Debug)]
27150#[doc(alias = "VkVideoReferenceSlotInfoKHR")]
27151pub struct VideoReferenceSlotInfoKHR {
27152    ///Must be `VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR`.
27153    pub s_type: StructureType,
27154    ///Optional, may be null.
27155    pub p_next: *const core::ffi::c_void,
27156    pub slot_index: i32,
27157    ///Optional, may be null.
27158    pub p_picture_resource: *const VideoPictureResourceInfoKHR,
27159}
27160impl Default for VideoReferenceSlotInfoKHR {
27161    #[inline]
27162    fn default() -> Self {
27163        Self {
27164            s_type: StructureType::from_raw(1000023011i32),
27165            p_next: core::ptr::null(),
27166            slot_index: Default::default(),
27167            p_picture_resource: core::ptr::null(),
27168        }
27169    }
27170}
27171///[`VkVideoDecodeCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeCapabilitiesKHR.html)
27172/**
27173Provided by **VK_KHR_video_decode_queue**.*/
27174/**
27175**Returned only**, filled by Vulkan, not constructed by the application.*/
27176///
27177///# Extends
27178///- [`VideoCapabilitiesKHR`]
27179#[repr(C)]
27180#[derive(Copy, Clone, Debug)]
27181#[doc(alias = "VkVideoDecodeCapabilitiesKHR")]
27182pub struct VideoDecodeCapabilitiesKHR {
27183    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR`.
27184    pub s_type: StructureType,
27185    ///Optional, may be null.
27186    pub p_next: *mut core::ffi::c_void,
27187    pub flags: VideoDecodeCapabilityFlagsKHR,
27188}
27189impl Default for VideoDecodeCapabilitiesKHR {
27190    #[inline]
27191    fn default() -> Self {
27192        Self {
27193            s_type: StructureType::from_raw(1000024001i32),
27194            p_next: core::ptr::null_mut(),
27195            flags: Default::default(),
27196        }
27197    }
27198}
27199///[`VkVideoDecodeUsageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeUsageInfoKHR.html)
27200/**
27201Provided by **VK_KHR_video_decode_queue**.*/
27202///
27203///# Extends
27204///- [`VideoProfileInfoKHR`]
27205///- [`QueryPoolCreateInfo`]
27206#[repr(C)]
27207#[derive(Copy, Clone, Debug)]
27208#[doc(alias = "VkVideoDecodeUsageInfoKHR")]
27209pub struct VideoDecodeUsageInfoKHR {
27210    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR`.
27211    pub s_type: StructureType,
27212    ///Optional, may be null.
27213    pub p_next: *const core::ffi::c_void,
27214    pub video_usage_hints: VideoDecodeUsageFlagsKHR,
27215}
27216impl Default for VideoDecodeUsageInfoKHR {
27217    #[inline]
27218    fn default() -> Self {
27219        Self {
27220            s_type: StructureType::from_raw(1000024002i32),
27221            p_next: core::ptr::null(),
27222            video_usage_hints: Default::default(),
27223        }
27224    }
27225}
27226///[`VkVideoDecodeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeInfoKHR.html)
27227/**
27228Provided by **VK_KHR_video_decode_queue**.*/
27229///
27230///# Extended By
27231///- [`VideoDecodeAV1InlineSessionParametersInfoKHR`]
27232///- [`VideoDecodeAV1PictureInfoKHR`]
27233///- [`VideoDecodeH264InlineSessionParametersInfoKHR`]
27234///- [`VideoDecodeH264PictureInfoKHR`]
27235///- [`VideoDecodeH265InlineSessionParametersInfoKHR`]
27236///- [`VideoDecodeH265PictureInfoKHR`]
27237///- [`VideoDecodeVP9PictureInfoKHR`]
27238///- [`VideoInlineQueryInfoKHR`]
27239#[repr(C)]
27240#[derive(Copy, Clone, Debug)]
27241#[doc(alias = "VkVideoDecodeInfoKHR")]
27242pub struct VideoDecodeInfoKHR {
27243    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR`.
27244    pub s_type: StructureType,
27245    ///Optional, may be null.
27246    pub p_next: *const core::ffi::c_void,
27247    pub flags: VideoDecodeFlagsKHR,
27248    pub src_buffer: Buffer,
27249    pub src_buffer_offset: u64,
27250    pub src_buffer_range: u64,
27251    pub dst_picture_resource: VideoPictureResourceInfoKHR,
27252    ///Optional, may be null.
27253    pub p_setup_reference_slot: *const VideoReferenceSlotInfoKHR,
27254    ///Length of `p_reference_slots`.
27255    pub reference_slot_count: u32,
27256    pub p_reference_slots: *const VideoReferenceSlotInfoKHR,
27257}
27258impl Default for VideoDecodeInfoKHR {
27259    #[inline]
27260    fn default() -> Self {
27261        Self {
27262            s_type: StructureType::from_raw(1000024000i32),
27263            p_next: core::ptr::null(),
27264            flags: Default::default(),
27265            src_buffer: Default::default(),
27266            src_buffer_offset: Default::default(),
27267            src_buffer_range: Default::default(),
27268            dst_picture_resource: Default::default(),
27269            p_setup_reference_slot: core::ptr::null(),
27270            reference_slot_count: Default::default(),
27271            p_reference_slots: core::ptr::null(),
27272        }
27273    }
27274}
27275///[`VkPhysicalDeviceVideoMaintenance1FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoMaintenance1FeaturesKHR.html)
27276/**
27277Provided by **VK_KHR_video_maintenance1**.*/
27278///
27279///# Extends
27280///- [`PhysicalDeviceFeatures2`]
27281///- [`DeviceCreateInfo`]
27282#[repr(C)]
27283#[derive(Copy, Clone, Debug)]
27284#[doc(alias = "VkPhysicalDeviceVideoMaintenance1FeaturesKHR")]
27285pub struct PhysicalDeviceVideoMaintenance1FeaturesKHR {
27286    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR`.
27287    pub s_type: StructureType,
27288    ///Optional, may be null.
27289    pub p_next: *mut core::ffi::c_void,
27290    pub video_maintenance1: u32,
27291}
27292impl Default for PhysicalDeviceVideoMaintenance1FeaturesKHR {
27293    #[inline]
27294    fn default() -> Self {
27295        Self {
27296            s_type: StructureType::from_raw(1000515000i32),
27297            p_next: core::ptr::null_mut(),
27298            video_maintenance1: Default::default(),
27299        }
27300    }
27301}
27302///[`VkPhysicalDeviceVideoMaintenance2FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoMaintenance2FeaturesKHR.html)
27303/**
27304Provided by **VK_KHR_video_maintenance2**.*/
27305///
27306///# Extends
27307///- [`PhysicalDeviceFeatures2`]
27308///- [`DeviceCreateInfo`]
27309#[repr(C)]
27310#[derive(Copy, Clone, Debug)]
27311#[doc(alias = "VkPhysicalDeviceVideoMaintenance2FeaturesKHR")]
27312pub struct PhysicalDeviceVideoMaintenance2FeaturesKHR {
27313    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR`.
27314    pub s_type: StructureType,
27315    ///Optional, may be null.
27316    pub p_next: *mut core::ffi::c_void,
27317    pub video_maintenance2: u32,
27318}
27319impl Default for PhysicalDeviceVideoMaintenance2FeaturesKHR {
27320    #[inline]
27321    fn default() -> Self {
27322        Self {
27323            s_type: StructureType::from_raw(1000586000i32),
27324            p_next: core::ptr::null_mut(),
27325            video_maintenance2: Default::default(),
27326        }
27327    }
27328}
27329///[`VkVideoInlineQueryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoInlineQueryInfoKHR.html)
27330/**
27331Provided by **VK_KHR_video_maintenance1**.*/
27332///
27333///# Extends
27334///- [`VideoDecodeInfoKHR`]
27335///- [`VideoEncodeInfoKHR`]
27336#[repr(C)]
27337#[derive(Copy, Clone, Debug)]
27338#[doc(alias = "VkVideoInlineQueryInfoKHR")]
27339pub struct VideoInlineQueryInfoKHR {
27340    ///Must be `VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR`.
27341    pub s_type: StructureType,
27342    ///Optional, may be null.
27343    pub p_next: *const core::ffi::c_void,
27344    pub query_pool: QueryPool,
27345    pub first_query: u32,
27346    pub query_count: u32,
27347}
27348impl Default for VideoInlineQueryInfoKHR {
27349    #[inline]
27350    fn default() -> Self {
27351        Self {
27352            s_type: StructureType::from_raw(1000515001i32),
27353            p_next: core::ptr::null(),
27354            query_pool: Default::default(),
27355            first_query: Default::default(),
27356            query_count: Default::default(),
27357        }
27358    }
27359}
27360///[`VkVideoDecodeH264ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264ProfileInfoKHR.html)
27361/**
27362Provided by **VK_KHR_video_decode_h264**.*/
27363///
27364///# Extends
27365///- [`VideoProfileInfoKHR`]
27366///- [`QueryPoolCreateInfo`]
27367#[repr(C)]
27368#[derive(Copy, Clone, Debug)]
27369#[doc(alias = "VkVideoDecodeH264ProfileInfoKHR")]
27370pub struct VideoDecodeH264ProfileInfoKHR {
27371    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR`.
27372    pub s_type: StructureType,
27373    ///Optional, may be null.
27374    pub p_next: *const core::ffi::c_void,
27375    pub std_profile_idc: StdVideoH264ProfileIdc,
27376    pub picture_layout: VideoDecodeH264PictureLayoutFlagBitsKHR,
27377}
27378impl Default for VideoDecodeH264ProfileInfoKHR {
27379    #[inline]
27380    fn default() -> Self {
27381        Self {
27382            s_type: StructureType::from_raw(1000040003i32),
27383            p_next: core::ptr::null(),
27384            std_profile_idc: Default::default(),
27385            picture_layout: Default::default(),
27386        }
27387    }
27388}
27389///[`VkVideoDecodeH264CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264CapabilitiesKHR.html)
27390/**
27391Provided by **VK_KHR_video_decode_h264**.*/
27392/**
27393**Returned only**, filled by Vulkan, not constructed by the application.*/
27394///
27395///# Extends
27396///- [`VideoCapabilitiesKHR`]
27397#[repr(C)]
27398#[derive(Copy, Clone, Debug)]
27399#[doc(alias = "VkVideoDecodeH264CapabilitiesKHR")]
27400pub struct VideoDecodeH264CapabilitiesKHR {
27401    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR`.
27402    pub s_type: StructureType,
27403    ///Optional, may be null.
27404    pub p_next: *mut core::ffi::c_void,
27405    pub max_level_idc: StdVideoH264LevelIdc,
27406    pub field_offset_granularity: Offset2D,
27407}
27408impl Default for VideoDecodeH264CapabilitiesKHR {
27409    #[inline]
27410    fn default() -> Self {
27411        Self {
27412            s_type: StructureType::from_raw(1000040000i32),
27413            p_next: core::ptr::null_mut(),
27414            max_level_idc: Default::default(),
27415            field_offset_granularity: Default::default(),
27416        }
27417    }
27418}
27419///[`VkVideoDecodeH264SessionParametersAddInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264SessionParametersAddInfoKHR.html)
27420/**
27421Provided by **VK_KHR_video_decode_h264**.*/
27422///
27423///# Extends
27424///- [`VideoSessionParametersUpdateInfoKHR`]
27425#[repr(C)]
27426#[derive(Copy, Clone, Debug)]
27427#[doc(alias = "VkVideoDecodeH264SessionParametersAddInfoKHR")]
27428pub struct VideoDecodeH264SessionParametersAddInfoKHR {
27429    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR`.
27430    pub s_type: StructureType,
27431    ///Optional, may be null.
27432    pub p_next: *const core::ffi::c_void,
27433    ///Length of `p_std_sp_ss`.
27434    pub std_sps_count: u32,
27435    pub p_std_sp_ss: *const StdVideoH264SequenceParameterSet,
27436    ///Length of `p_std_pp_ss`.
27437    pub std_pps_count: u32,
27438    pub p_std_pp_ss: *const StdVideoH264PictureParameterSet,
27439}
27440impl Default for VideoDecodeH264SessionParametersAddInfoKHR {
27441    #[inline]
27442    fn default() -> Self {
27443        Self {
27444            s_type: StructureType::from_raw(1000040005i32),
27445            p_next: core::ptr::null(),
27446            std_sps_count: Default::default(),
27447            p_std_sp_ss: core::ptr::null(),
27448            std_pps_count: Default::default(),
27449            p_std_pp_ss: core::ptr::null(),
27450        }
27451    }
27452}
27453///[`VkVideoDecodeH264SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264SessionParametersCreateInfoKHR.html)
27454/**
27455Provided by **VK_KHR_video_decode_h264**.*/
27456///
27457///# Extends
27458///- [`VideoSessionParametersCreateInfoKHR`]
27459#[repr(C)]
27460#[derive(Copy, Clone, Debug)]
27461#[doc(alias = "VkVideoDecodeH264SessionParametersCreateInfoKHR")]
27462pub struct VideoDecodeH264SessionParametersCreateInfoKHR {
27463    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR`.
27464    pub s_type: StructureType,
27465    ///Optional, may be null.
27466    pub p_next: *const core::ffi::c_void,
27467    pub max_std_sps_count: u32,
27468    pub max_std_pps_count: u32,
27469    ///Optional, may be null.
27470    pub p_parameters_add_info: *const VideoDecodeH264SessionParametersAddInfoKHR,
27471}
27472impl Default for VideoDecodeH264SessionParametersCreateInfoKHR {
27473    #[inline]
27474    fn default() -> Self {
27475        Self {
27476            s_type: StructureType::from_raw(1000040004i32),
27477            p_next: core::ptr::null(),
27478            max_std_sps_count: Default::default(),
27479            max_std_pps_count: Default::default(),
27480            p_parameters_add_info: core::ptr::null(),
27481        }
27482    }
27483}
27484///[`VkVideoDecodeH264InlineSessionParametersInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264InlineSessionParametersInfoKHR.html)
27485/**
27486Provided by **VK_KHR_video_maintenance2**.*/
27487///
27488///# Extends
27489///- [`VideoDecodeInfoKHR`]
27490#[repr(C)]
27491#[derive(Copy, Clone, Debug)]
27492#[doc(alias = "VkVideoDecodeH264InlineSessionParametersInfoKHR")]
27493pub struct VideoDecodeH264InlineSessionParametersInfoKHR {
27494    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR`.
27495    pub s_type: StructureType,
27496    ///Optional, may be null.
27497    pub p_next: *const core::ffi::c_void,
27498    ///Optional, may be null.
27499    pub p_std_sps: *const StdVideoH264SequenceParameterSet,
27500    ///Optional, may be null.
27501    pub p_std_pps: *const StdVideoH264PictureParameterSet,
27502}
27503impl Default for VideoDecodeH264InlineSessionParametersInfoKHR {
27504    #[inline]
27505    fn default() -> Self {
27506        Self {
27507            s_type: StructureType::from_raw(1000586001i32),
27508            p_next: core::ptr::null(),
27509            p_std_sps: core::ptr::null(),
27510            p_std_pps: core::ptr::null(),
27511        }
27512    }
27513}
27514///[`VkVideoDecodeH264PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264PictureInfoKHR.html)
27515/**
27516Provided by **VK_KHR_video_decode_h264**.*/
27517///
27518///# Extends
27519///- [`VideoDecodeInfoKHR`]
27520#[repr(C)]
27521#[derive(Copy, Clone, Debug)]
27522#[doc(alias = "VkVideoDecodeH264PictureInfoKHR")]
27523pub struct VideoDecodeH264PictureInfoKHR {
27524    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR`.
27525    pub s_type: StructureType,
27526    ///Optional, may be null.
27527    pub p_next: *const core::ffi::c_void,
27528    pub p_std_picture_info: *const StdVideoDecodeH264PictureInfo,
27529    ///Length of `p_slice_offsets`.
27530    pub slice_count: u32,
27531    pub p_slice_offsets: *const u32,
27532}
27533impl Default for VideoDecodeH264PictureInfoKHR {
27534    #[inline]
27535    fn default() -> Self {
27536        Self {
27537            s_type: StructureType::from_raw(1000040001i32),
27538            p_next: core::ptr::null(),
27539            p_std_picture_info: core::ptr::null(),
27540            slice_count: Default::default(),
27541            p_slice_offsets: core::ptr::null(),
27542        }
27543    }
27544}
27545///[`VkVideoDecodeH264DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH264DpbSlotInfoKHR.html)
27546/**
27547Provided by **VK_KHR_video_decode_h264**.*/
27548///
27549///# Extends
27550///- [`VideoReferenceSlotInfoKHR`]
27551#[repr(C)]
27552#[derive(Copy, Clone, Debug)]
27553#[doc(alias = "VkVideoDecodeH264DpbSlotInfoKHR")]
27554pub struct VideoDecodeH264DpbSlotInfoKHR {
27555    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR`.
27556    pub s_type: StructureType,
27557    ///Optional, may be null.
27558    pub p_next: *const core::ffi::c_void,
27559    pub p_std_reference_info: *const StdVideoDecodeH264ReferenceInfo,
27560}
27561impl Default for VideoDecodeH264DpbSlotInfoKHR {
27562    #[inline]
27563    fn default() -> Self {
27564        Self {
27565            s_type: StructureType::from_raw(1000040006i32),
27566            p_next: core::ptr::null(),
27567            p_std_reference_info: core::ptr::null(),
27568        }
27569    }
27570}
27571///[`VkVideoDecodeH265ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265ProfileInfoKHR.html)
27572/**
27573Provided by **VK_KHR_video_decode_h265**.*/
27574///
27575///# Extends
27576///- [`VideoProfileInfoKHR`]
27577///- [`QueryPoolCreateInfo`]
27578#[repr(C)]
27579#[derive(Copy, Clone, Debug)]
27580#[doc(alias = "VkVideoDecodeH265ProfileInfoKHR")]
27581pub struct VideoDecodeH265ProfileInfoKHR {
27582    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR`.
27583    pub s_type: StructureType,
27584    ///Optional, may be null.
27585    pub p_next: *const core::ffi::c_void,
27586    pub std_profile_idc: StdVideoH265ProfileIdc,
27587}
27588impl Default for VideoDecodeH265ProfileInfoKHR {
27589    #[inline]
27590    fn default() -> Self {
27591        Self {
27592            s_type: StructureType::from_raw(1000187003i32),
27593            p_next: core::ptr::null(),
27594            std_profile_idc: Default::default(),
27595        }
27596    }
27597}
27598///[`VkVideoDecodeH265CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265CapabilitiesKHR.html)
27599/**
27600Provided by **VK_KHR_video_decode_h265**.*/
27601/**
27602**Returned only**, filled by Vulkan, not constructed by the application.*/
27603///
27604///# Extends
27605///- [`VideoCapabilitiesKHR`]
27606#[repr(C)]
27607#[derive(Copy, Clone, Debug)]
27608#[doc(alias = "VkVideoDecodeH265CapabilitiesKHR")]
27609pub struct VideoDecodeH265CapabilitiesKHR {
27610    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR`.
27611    pub s_type: StructureType,
27612    ///Optional, may be null.
27613    pub p_next: *mut core::ffi::c_void,
27614    pub max_level_idc: StdVideoH265LevelIdc,
27615}
27616impl Default for VideoDecodeH265CapabilitiesKHR {
27617    #[inline]
27618    fn default() -> Self {
27619        Self {
27620            s_type: StructureType::from_raw(1000187000i32),
27621            p_next: core::ptr::null_mut(),
27622            max_level_idc: Default::default(),
27623        }
27624    }
27625}
27626///[`VkVideoDecodeH265SessionParametersAddInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265SessionParametersAddInfoKHR.html)
27627/**
27628Provided by **VK_KHR_video_decode_h265**.*/
27629///
27630///# Extends
27631///- [`VideoSessionParametersUpdateInfoKHR`]
27632#[repr(C)]
27633#[derive(Copy, Clone, Debug)]
27634#[doc(alias = "VkVideoDecodeH265SessionParametersAddInfoKHR")]
27635pub struct VideoDecodeH265SessionParametersAddInfoKHR {
27636    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR`.
27637    pub s_type: StructureType,
27638    ///Optional, may be null.
27639    pub p_next: *const core::ffi::c_void,
27640    ///Length of `p_std_vp_ss`.
27641    pub std_vps_count: u32,
27642    pub p_std_vp_ss: *const StdVideoH265VideoParameterSet,
27643    ///Length of `p_std_sp_ss`.
27644    pub std_sps_count: u32,
27645    pub p_std_sp_ss: *const StdVideoH265SequenceParameterSet,
27646    ///Length of `p_std_pp_ss`.
27647    pub std_pps_count: u32,
27648    pub p_std_pp_ss: *const StdVideoH265PictureParameterSet,
27649}
27650impl Default for VideoDecodeH265SessionParametersAddInfoKHR {
27651    #[inline]
27652    fn default() -> Self {
27653        Self {
27654            s_type: StructureType::from_raw(1000187002i32),
27655            p_next: core::ptr::null(),
27656            std_vps_count: Default::default(),
27657            p_std_vp_ss: core::ptr::null(),
27658            std_sps_count: Default::default(),
27659            p_std_sp_ss: core::ptr::null(),
27660            std_pps_count: Default::default(),
27661            p_std_pp_ss: core::ptr::null(),
27662        }
27663    }
27664}
27665///[`VkVideoDecodeH265SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265SessionParametersCreateInfoKHR.html)
27666/**
27667Provided by **VK_KHR_video_decode_h265**.*/
27668///
27669///# Extends
27670///- [`VideoSessionParametersCreateInfoKHR`]
27671#[repr(C)]
27672#[derive(Copy, Clone, Debug)]
27673#[doc(alias = "VkVideoDecodeH265SessionParametersCreateInfoKHR")]
27674pub struct VideoDecodeH265SessionParametersCreateInfoKHR {
27675    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR`.
27676    pub s_type: StructureType,
27677    ///Optional, may be null.
27678    pub p_next: *const core::ffi::c_void,
27679    pub max_std_vps_count: u32,
27680    pub max_std_sps_count: u32,
27681    pub max_std_pps_count: u32,
27682    ///Optional, may be null.
27683    pub p_parameters_add_info: *const VideoDecodeH265SessionParametersAddInfoKHR,
27684}
27685impl Default for VideoDecodeH265SessionParametersCreateInfoKHR {
27686    #[inline]
27687    fn default() -> Self {
27688        Self {
27689            s_type: StructureType::from_raw(1000187001i32),
27690            p_next: core::ptr::null(),
27691            max_std_vps_count: Default::default(),
27692            max_std_sps_count: Default::default(),
27693            max_std_pps_count: Default::default(),
27694            p_parameters_add_info: core::ptr::null(),
27695        }
27696    }
27697}
27698///[`VkVideoDecodeH265InlineSessionParametersInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265InlineSessionParametersInfoKHR.html)
27699/**
27700Provided by **VK_KHR_video_maintenance2**.*/
27701///
27702///# Extends
27703///- [`VideoDecodeInfoKHR`]
27704#[repr(C)]
27705#[derive(Copy, Clone, Debug)]
27706#[doc(alias = "VkVideoDecodeH265InlineSessionParametersInfoKHR")]
27707pub struct VideoDecodeH265InlineSessionParametersInfoKHR {
27708    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR`.
27709    pub s_type: StructureType,
27710    ///Optional, may be null.
27711    pub p_next: *const core::ffi::c_void,
27712    ///Optional, may be null.
27713    pub p_std_vps: *const StdVideoH265VideoParameterSet,
27714    ///Optional, may be null.
27715    pub p_std_sps: *const StdVideoH265SequenceParameterSet,
27716    ///Optional, may be null.
27717    pub p_std_pps: *const StdVideoH265PictureParameterSet,
27718}
27719impl Default for VideoDecodeH265InlineSessionParametersInfoKHR {
27720    #[inline]
27721    fn default() -> Self {
27722        Self {
27723            s_type: StructureType::from_raw(1000586002i32),
27724            p_next: core::ptr::null(),
27725            p_std_vps: core::ptr::null(),
27726            p_std_sps: core::ptr::null(),
27727            p_std_pps: core::ptr::null(),
27728        }
27729    }
27730}
27731///[`VkVideoDecodeH265PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265PictureInfoKHR.html)
27732/**
27733Provided by **VK_KHR_video_decode_h265**.*/
27734///
27735///# Extends
27736///- [`VideoDecodeInfoKHR`]
27737#[repr(C)]
27738#[derive(Copy, Clone, Debug)]
27739#[doc(alias = "VkVideoDecodeH265PictureInfoKHR")]
27740pub struct VideoDecodeH265PictureInfoKHR {
27741    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR`.
27742    pub s_type: StructureType,
27743    ///Optional, may be null.
27744    pub p_next: *const core::ffi::c_void,
27745    pub p_std_picture_info: *const StdVideoDecodeH265PictureInfo,
27746    ///Length of `p_slice_segment_offsets`.
27747    pub slice_segment_count: u32,
27748    pub p_slice_segment_offsets: *const u32,
27749}
27750impl Default for VideoDecodeH265PictureInfoKHR {
27751    #[inline]
27752    fn default() -> Self {
27753        Self {
27754            s_type: StructureType::from_raw(1000187004i32),
27755            p_next: core::ptr::null(),
27756            p_std_picture_info: core::ptr::null(),
27757            slice_segment_count: Default::default(),
27758            p_slice_segment_offsets: core::ptr::null(),
27759        }
27760    }
27761}
27762///[`VkVideoDecodeH265DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeH265DpbSlotInfoKHR.html)
27763/**
27764Provided by **VK_KHR_video_decode_h265**.*/
27765///
27766///# Extends
27767///- [`VideoReferenceSlotInfoKHR`]
27768#[repr(C)]
27769#[derive(Copy, Clone, Debug)]
27770#[doc(alias = "VkVideoDecodeH265DpbSlotInfoKHR")]
27771pub struct VideoDecodeH265DpbSlotInfoKHR {
27772    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR`.
27773    pub s_type: StructureType,
27774    ///Optional, may be null.
27775    pub p_next: *const core::ffi::c_void,
27776    pub p_std_reference_info: *const StdVideoDecodeH265ReferenceInfo,
27777}
27778impl Default for VideoDecodeH265DpbSlotInfoKHR {
27779    #[inline]
27780    fn default() -> Self {
27781        Self {
27782            s_type: StructureType::from_raw(1000187005i32),
27783            p_next: core::ptr::null(),
27784            p_std_reference_info: core::ptr::null(),
27785        }
27786    }
27787}
27788///[`VkPhysicalDeviceVideoDecodeVP9FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoDecodeVP9FeaturesKHR.html)
27789/**
27790Provided by **VK_KHR_video_decode_vp9**.*/
27791///
27792///# Extends
27793///- [`PhysicalDeviceFeatures2`]
27794///- [`DeviceCreateInfo`]
27795#[repr(C)]
27796#[derive(Copy, Clone, Debug)]
27797#[doc(alias = "VkPhysicalDeviceVideoDecodeVP9FeaturesKHR")]
27798pub struct PhysicalDeviceVideoDecodeVP9FeaturesKHR {
27799    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR`.
27800    pub s_type: StructureType,
27801    ///Optional, may be null.
27802    pub p_next: *mut core::ffi::c_void,
27803    pub video_decode_vp9: u32,
27804}
27805impl Default for PhysicalDeviceVideoDecodeVP9FeaturesKHR {
27806    #[inline]
27807    fn default() -> Self {
27808        Self {
27809            s_type: StructureType::from_raw(1000514000i32),
27810            p_next: core::ptr::null_mut(),
27811            video_decode_vp9: Default::default(),
27812        }
27813    }
27814}
27815///[`VkVideoDecodeVP9ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9ProfileInfoKHR.html)
27816/**
27817Provided by **VK_KHR_video_decode_vp9**.*/
27818///
27819///# Extends
27820///- [`VideoProfileInfoKHR`]
27821///- [`QueryPoolCreateInfo`]
27822#[repr(C)]
27823#[derive(Copy, Clone, Debug)]
27824#[doc(alias = "VkVideoDecodeVP9ProfileInfoKHR")]
27825pub struct VideoDecodeVP9ProfileInfoKHR {
27826    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR`.
27827    pub s_type: StructureType,
27828    ///Optional, may be null.
27829    pub p_next: *const core::ffi::c_void,
27830    pub std_profile: StdVideoVP9Profile,
27831}
27832impl Default for VideoDecodeVP9ProfileInfoKHR {
27833    #[inline]
27834    fn default() -> Self {
27835        Self {
27836            s_type: StructureType::from_raw(1000514003i32),
27837            p_next: core::ptr::null(),
27838            std_profile: Default::default(),
27839        }
27840    }
27841}
27842///[`VkVideoDecodeVP9CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9CapabilitiesKHR.html)
27843/**
27844Provided by **VK_KHR_video_decode_vp9**.*/
27845/**
27846**Returned only**, filled by Vulkan, not constructed by the application.*/
27847///
27848///# Extends
27849///- [`VideoCapabilitiesKHR`]
27850#[repr(C)]
27851#[derive(Copy, Clone, Debug)]
27852#[doc(alias = "VkVideoDecodeVP9CapabilitiesKHR")]
27853pub struct VideoDecodeVP9CapabilitiesKHR {
27854    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR`.
27855    pub s_type: StructureType,
27856    ///Optional, may be null.
27857    pub p_next: *mut core::ffi::c_void,
27858    pub max_level: StdVideoVP9Level,
27859}
27860impl Default for VideoDecodeVP9CapabilitiesKHR {
27861    #[inline]
27862    fn default() -> Self {
27863        Self {
27864            s_type: StructureType::from_raw(1000514001i32),
27865            p_next: core::ptr::null_mut(),
27866            max_level: Default::default(),
27867        }
27868    }
27869}
27870///[`VkVideoDecodeVP9PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9PictureInfoKHR.html)
27871/**
27872Provided by **VK_KHR_video_decode_vp9**.*/
27873///
27874///# Extends
27875///- [`VideoDecodeInfoKHR`]
27876#[repr(C)]
27877#[derive(Copy, Clone, Debug)]
27878#[doc(alias = "VkVideoDecodeVP9PictureInfoKHR")]
27879pub struct VideoDecodeVP9PictureInfoKHR {
27880    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR`.
27881    pub s_type: StructureType,
27882    ///Optional, may be null.
27883    pub p_next: *const core::ffi::c_void,
27884    pub p_std_picture_info: *const StdVideoDecodeVP9PictureInfo,
27885    pub reference_name_slot_indices: [i32; MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR
27886        as usize],
27887    pub uncompressed_header_offset: u32,
27888    pub compressed_header_offset: u32,
27889    pub tiles_offset: u32,
27890}
27891impl Default for VideoDecodeVP9PictureInfoKHR {
27892    #[inline]
27893    fn default() -> Self {
27894        Self {
27895            s_type: StructureType::from_raw(1000514002i32),
27896            p_next: core::ptr::null(),
27897            p_std_picture_info: core::ptr::null(),
27898            reference_name_slot_indices: unsafe { core::mem::zeroed() },
27899            uncompressed_header_offset: Default::default(),
27900            compressed_header_offset: Default::default(),
27901            tiles_offset: Default::default(),
27902        }
27903    }
27904}
27905///[`VkVideoDecodeAV1ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1ProfileInfoKHR.html)
27906/**
27907Provided by **VK_KHR_video_decode_av1**.*/
27908///
27909///# Extends
27910///- [`VideoProfileInfoKHR`]
27911///- [`QueryPoolCreateInfo`]
27912#[repr(C)]
27913#[derive(Copy, Clone, Debug)]
27914#[doc(alias = "VkVideoDecodeAV1ProfileInfoKHR")]
27915pub struct VideoDecodeAV1ProfileInfoKHR {
27916    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR`.
27917    pub s_type: StructureType,
27918    ///Optional, may be null.
27919    pub p_next: *const core::ffi::c_void,
27920    pub std_profile: StdVideoAV1Profile,
27921    pub film_grain_support: u32,
27922}
27923impl Default for VideoDecodeAV1ProfileInfoKHR {
27924    #[inline]
27925    fn default() -> Self {
27926        Self {
27927            s_type: StructureType::from_raw(1000512003i32),
27928            p_next: core::ptr::null(),
27929            std_profile: Default::default(),
27930            film_grain_support: Default::default(),
27931        }
27932    }
27933}
27934///[`VkVideoDecodeAV1CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1CapabilitiesKHR.html)
27935/**
27936Provided by **VK_KHR_video_decode_av1**.*/
27937/**
27938**Returned only**, filled by Vulkan, not constructed by the application.*/
27939///
27940///# Extends
27941///- [`VideoCapabilitiesKHR`]
27942#[repr(C)]
27943#[derive(Copy, Clone, Debug)]
27944#[doc(alias = "VkVideoDecodeAV1CapabilitiesKHR")]
27945pub struct VideoDecodeAV1CapabilitiesKHR {
27946    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR`.
27947    pub s_type: StructureType,
27948    ///Optional, may be null.
27949    pub p_next: *mut core::ffi::c_void,
27950    pub max_level: StdVideoAV1Level,
27951}
27952impl Default for VideoDecodeAV1CapabilitiesKHR {
27953    #[inline]
27954    fn default() -> Self {
27955        Self {
27956            s_type: StructureType::from_raw(1000512000i32),
27957            p_next: core::ptr::null_mut(),
27958            max_level: Default::default(),
27959        }
27960    }
27961}
27962///[`VkVideoDecodeAV1SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1SessionParametersCreateInfoKHR.html)
27963/**
27964Provided by **VK_KHR_video_decode_av1**.*/
27965///
27966///# Extends
27967///- [`VideoSessionParametersCreateInfoKHR`]
27968#[repr(C)]
27969#[derive(Copy, Clone, Debug)]
27970#[doc(alias = "VkVideoDecodeAV1SessionParametersCreateInfoKHR")]
27971pub struct VideoDecodeAV1SessionParametersCreateInfoKHR {
27972    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR`.
27973    pub s_type: StructureType,
27974    ///Optional, may be null.
27975    pub p_next: *const core::ffi::c_void,
27976    pub p_std_sequence_header: *const StdVideoAV1SequenceHeader,
27977}
27978impl Default for VideoDecodeAV1SessionParametersCreateInfoKHR {
27979    #[inline]
27980    fn default() -> Self {
27981        Self {
27982            s_type: StructureType::from_raw(1000512004i32),
27983            p_next: core::ptr::null(),
27984            p_std_sequence_header: core::ptr::null(),
27985        }
27986    }
27987}
27988///[`VkVideoDecodeAV1InlineSessionParametersInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1InlineSessionParametersInfoKHR.html)
27989/**
27990Provided by **VK_KHR_video_maintenance2**.*/
27991///
27992///# Extends
27993///- [`VideoDecodeInfoKHR`]
27994#[repr(C)]
27995#[derive(Copy, Clone, Debug)]
27996#[doc(alias = "VkVideoDecodeAV1InlineSessionParametersInfoKHR")]
27997pub struct VideoDecodeAV1InlineSessionParametersInfoKHR {
27998    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR`.
27999    pub s_type: StructureType,
28000    ///Optional, may be null.
28001    pub p_next: *const core::ffi::c_void,
28002    ///Optional, may be null.
28003    pub p_std_sequence_header: *const StdVideoAV1SequenceHeader,
28004}
28005impl Default for VideoDecodeAV1InlineSessionParametersInfoKHR {
28006    #[inline]
28007    fn default() -> Self {
28008        Self {
28009            s_type: StructureType::from_raw(1000586003i32),
28010            p_next: core::ptr::null(),
28011            p_std_sequence_header: core::ptr::null(),
28012        }
28013    }
28014}
28015///[`VkVideoDecodeAV1PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1PictureInfoKHR.html)
28016/**
28017Provided by **VK_KHR_video_decode_av1**.*/
28018///
28019///# Extends
28020///- [`VideoDecodeInfoKHR`]
28021#[repr(C)]
28022#[derive(Copy, Clone, Debug)]
28023#[doc(alias = "VkVideoDecodeAV1PictureInfoKHR")]
28024pub struct VideoDecodeAV1PictureInfoKHR {
28025    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR`.
28026    pub s_type: StructureType,
28027    ///Optional, may be null.
28028    pub p_next: *const core::ffi::c_void,
28029    pub p_std_picture_info: *const StdVideoDecodeAV1PictureInfo,
28030    pub reference_name_slot_indices: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR
28031        as usize],
28032    pub frame_header_offset: u32,
28033    ///Length of `p_tile_sizes`.
28034    pub tile_count: u32,
28035    pub p_tile_offsets: *const u32,
28036    pub p_tile_sizes: *const u32,
28037}
28038impl Default for VideoDecodeAV1PictureInfoKHR {
28039    #[inline]
28040    fn default() -> Self {
28041        Self {
28042            s_type: StructureType::from_raw(1000512001i32),
28043            p_next: core::ptr::null(),
28044            p_std_picture_info: core::ptr::null(),
28045            reference_name_slot_indices: unsafe { core::mem::zeroed() },
28046            frame_header_offset: Default::default(),
28047            tile_count: Default::default(),
28048            p_tile_offsets: core::ptr::null(),
28049            p_tile_sizes: core::ptr::null(),
28050        }
28051    }
28052}
28053///[`VkVideoDecodeAV1DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeAV1DpbSlotInfoKHR.html)
28054/**
28055Provided by **VK_KHR_video_decode_av1**.*/
28056///
28057///# Extends
28058///- [`VideoReferenceSlotInfoKHR`]
28059#[repr(C)]
28060#[derive(Copy, Clone, Debug)]
28061#[doc(alias = "VkVideoDecodeAV1DpbSlotInfoKHR")]
28062pub struct VideoDecodeAV1DpbSlotInfoKHR {
28063    ///Must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR`.
28064    pub s_type: StructureType,
28065    ///Optional, may be null.
28066    pub p_next: *const core::ffi::c_void,
28067    pub p_std_reference_info: *const StdVideoDecodeAV1ReferenceInfo,
28068}
28069impl Default for VideoDecodeAV1DpbSlotInfoKHR {
28070    #[inline]
28071    fn default() -> Self {
28072        Self {
28073            s_type: StructureType::from_raw(1000512005i32),
28074            p_next: core::ptr::null(),
28075            p_std_reference_info: core::ptr::null(),
28076        }
28077    }
28078}
28079///[`VkVideoSessionCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoSessionCreateInfoKHR.html)
28080/**
28081Provided by **VK_KHR_video_queue**.*/
28082///
28083///# Extended By
28084///- [`VideoEncodeAV1SessionCreateInfoKHR`]
28085///- [`VideoEncodeH264SessionCreateInfoKHR`]
28086///- [`VideoEncodeH265SessionCreateInfoKHR`]
28087///- [`VideoEncodeSessionIntraRefreshCreateInfoKHR`]
28088///- [`VideoEncodeSessionRgbConversionCreateInfoVALVE`]
28089#[repr(C)]
28090#[derive(Copy, Clone, Debug)]
28091#[doc(alias = "VkVideoSessionCreateInfoKHR")]
28092pub struct VideoSessionCreateInfoKHR {
28093    ///Must be `VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR`.
28094    pub s_type: StructureType,
28095    ///Optional, may be null.
28096    pub p_next: *const core::ffi::c_void,
28097    pub queue_family_index: u32,
28098    pub flags: VideoSessionCreateFlagsKHR,
28099    pub p_video_profile: *const VideoProfileInfoKHR,
28100    pub picture_format: Format,
28101    pub max_coded_extent: Extent2D,
28102    pub reference_picture_format: Format,
28103    pub max_dpb_slots: u32,
28104    pub max_active_reference_pictures: u32,
28105    pub p_std_header_version: *const ExtensionProperties,
28106}
28107impl Default for VideoSessionCreateInfoKHR {
28108    #[inline]
28109    fn default() -> Self {
28110        Self {
28111            s_type: StructureType::from_raw(1000023005i32),
28112            p_next: core::ptr::null(),
28113            queue_family_index: Default::default(),
28114            flags: Default::default(),
28115            p_video_profile: core::ptr::null(),
28116            picture_format: Default::default(),
28117            max_coded_extent: Default::default(),
28118            reference_picture_format: Default::default(),
28119            max_dpb_slots: Default::default(),
28120            max_active_reference_pictures: Default::default(),
28121            p_std_header_version: core::ptr::null(),
28122        }
28123    }
28124}
28125///[`VkVideoSessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoSessionParametersCreateInfoKHR.html)
28126/**
28127Provided by **VK_KHR_video_queue**.*/
28128///
28129///# Extended By
28130///- [`VideoDecodeAV1SessionParametersCreateInfoKHR`]
28131///- [`VideoDecodeH264SessionParametersCreateInfoKHR`]
28132///- [`VideoDecodeH265SessionParametersCreateInfoKHR`]
28133///- [`VideoEncodeAV1SessionParametersCreateInfoKHR`]
28134///- [`VideoEncodeH264SessionParametersCreateInfoKHR`]
28135///- [`VideoEncodeH265SessionParametersCreateInfoKHR`]
28136///- [`VideoEncodeQualityLevelInfoKHR`]
28137///- [`VideoEncodeQuantizationMapSessionParametersCreateInfoKHR`]
28138#[repr(C)]
28139#[derive(Copy, Clone, Debug)]
28140#[doc(alias = "VkVideoSessionParametersCreateInfoKHR")]
28141pub struct VideoSessionParametersCreateInfoKHR {
28142    ///Must be `VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR`.
28143    pub s_type: StructureType,
28144    ///Optional, may be null.
28145    pub p_next: *const core::ffi::c_void,
28146    pub flags: VideoSessionParametersCreateFlagsKHR,
28147    pub video_session_parameters_template: VideoSessionParametersKHR,
28148    pub video_session: VideoSessionKHR,
28149}
28150impl Default for VideoSessionParametersCreateInfoKHR {
28151    #[inline]
28152    fn default() -> Self {
28153        Self {
28154            s_type: StructureType::from_raw(1000023006i32),
28155            p_next: core::ptr::null(),
28156            flags: Default::default(),
28157            video_session_parameters_template: Default::default(),
28158            video_session: Default::default(),
28159        }
28160    }
28161}
28162///[`VkVideoSessionParametersUpdateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoSessionParametersUpdateInfoKHR.html)
28163/**
28164Provided by **VK_KHR_video_queue**.*/
28165///
28166///# Extended By
28167///- [`VideoDecodeH264SessionParametersAddInfoKHR`]
28168///- [`VideoDecodeH265SessionParametersAddInfoKHR`]
28169///- [`VideoEncodeH264SessionParametersAddInfoKHR`]
28170///- [`VideoEncodeH265SessionParametersAddInfoKHR`]
28171#[repr(C)]
28172#[derive(Copy, Clone, Debug)]
28173#[doc(alias = "VkVideoSessionParametersUpdateInfoKHR")]
28174pub struct VideoSessionParametersUpdateInfoKHR {
28175    ///Must be `VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR`.
28176    pub s_type: StructureType,
28177    ///Optional, may be null.
28178    pub p_next: *const core::ffi::c_void,
28179    pub update_sequence_count: u32,
28180}
28181impl Default for VideoSessionParametersUpdateInfoKHR {
28182    #[inline]
28183    fn default() -> Self {
28184        Self {
28185            s_type: StructureType::from_raw(1000023007i32),
28186            p_next: core::ptr::null(),
28187            update_sequence_count: Default::default(),
28188        }
28189    }
28190}
28191///[`VkVideoEncodeSessionParametersGetInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeSessionParametersGetInfoKHR.html)
28192/**
28193Provided by **VK_KHR_video_encode_queue**.*/
28194///
28195///# Extended By
28196///- [`VideoEncodeH264SessionParametersGetInfoKHR`]
28197///- [`VideoEncodeH265SessionParametersGetInfoKHR`]
28198#[repr(C)]
28199#[derive(Copy, Clone, Debug)]
28200#[doc(alias = "VkVideoEncodeSessionParametersGetInfoKHR")]
28201pub struct VideoEncodeSessionParametersGetInfoKHR {
28202    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR`.
28203    pub s_type: StructureType,
28204    ///Optional, may be null.
28205    pub p_next: *const core::ffi::c_void,
28206    pub video_session_parameters: VideoSessionParametersKHR,
28207}
28208impl Default for VideoEncodeSessionParametersGetInfoKHR {
28209    #[inline]
28210    fn default() -> Self {
28211        Self {
28212            s_type: StructureType::from_raw(1000299009i32),
28213            p_next: core::ptr::null(),
28214            video_session_parameters: Default::default(),
28215        }
28216    }
28217}
28218///[`VkVideoEncodeSessionParametersFeedbackInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeSessionParametersFeedbackInfoKHR.html)
28219/**
28220Provided by **VK_KHR_video_encode_queue**.*/
28221/**
28222**Returned only**, filled by Vulkan, not constructed by the application.*/
28223///
28224///# Extended By
28225///- [`VideoEncodeH264SessionParametersFeedbackInfoKHR`]
28226///- [`VideoEncodeH265SessionParametersFeedbackInfoKHR`]
28227#[repr(C)]
28228#[derive(Copy, Clone, Debug)]
28229#[doc(alias = "VkVideoEncodeSessionParametersFeedbackInfoKHR")]
28230pub struct VideoEncodeSessionParametersFeedbackInfoKHR {
28231    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR`.
28232    pub s_type: StructureType,
28233    ///Optional, may be null.
28234    pub p_next: *mut core::ffi::c_void,
28235    pub has_overrides: u32,
28236}
28237impl Default for VideoEncodeSessionParametersFeedbackInfoKHR {
28238    #[inline]
28239    fn default() -> Self {
28240        Self {
28241            s_type: StructureType::from_raw(1000299010i32),
28242            p_next: core::ptr::null_mut(),
28243            has_overrides: Default::default(),
28244        }
28245    }
28246}
28247///[`VkVideoBeginCodingInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoBeginCodingInfoKHR.html)
28248/**
28249Provided by **VK_KHR_video_queue**.*/
28250///
28251///# Extended By
28252///- [`VideoEncodeAV1GopRemainingFrameInfoKHR`]
28253///- [`VideoEncodeAV1RateControlInfoKHR`]
28254///- [`VideoEncodeH264GopRemainingFrameInfoKHR`]
28255///- [`VideoEncodeH264RateControlInfoKHR`]
28256///- [`VideoEncodeH265GopRemainingFrameInfoKHR`]
28257///- [`VideoEncodeH265RateControlInfoKHR`]
28258///- [`VideoEncodeRateControlInfoKHR`]
28259#[repr(C)]
28260#[derive(Copy, Clone, Debug)]
28261#[doc(alias = "VkVideoBeginCodingInfoKHR")]
28262pub struct VideoBeginCodingInfoKHR {
28263    ///Must be `VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR`.
28264    pub s_type: StructureType,
28265    ///Optional, may be null.
28266    pub p_next: *const core::ffi::c_void,
28267    pub flags: VideoBeginCodingFlagsKHR,
28268    pub video_session: VideoSessionKHR,
28269    pub video_session_parameters: VideoSessionParametersKHR,
28270    ///Length of `p_reference_slots`.
28271    pub reference_slot_count: u32,
28272    pub p_reference_slots: *const VideoReferenceSlotInfoKHR,
28273}
28274impl Default for VideoBeginCodingInfoKHR {
28275    #[inline]
28276    fn default() -> Self {
28277        Self {
28278            s_type: StructureType::from_raw(1000023008i32),
28279            p_next: core::ptr::null(),
28280            flags: Default::default(),
28281            video_session: Default::default(),
28282            video_session_parameters: Default::default(),
28283            reference_slot_count: Default::default(),
28284            p_reference_slots: core::ptr::null(),
28285        }
28286    }
28287}
28288///[`VkVideoEndCodingInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEndCodingInfoKHR.html)
28289/**
28290Provided by **VK_KHR_video_queue**.*/
28291#[repr(C)]
28292#[derive(Copy, Clone, Debug)]
28293#[doc(alias = "VkVideoEndCodingInfoKHR")]
28294pub struct VideoEndCodingInfoKHR {
28295    ///Must be `VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR`.
28296    pub s_type: StructureType,
28297    ///Optional, may be null.
28298    pub p_next: *const core::ffi::c_void,
28299    pub flags: VideoEndCodingFlagsKHR,
28300}
28301impl Default for VideoEndCodingInfoKHR {
28302    #[inline]
28303    fn default() -> Self {
28304        Self {
28305            s_type: StructureType::from_raw(1000023009i32),
28306            p_next: core::ptr::null(),
28307            flags: Default::default(),
28308        }
28309    }
28310}
28311///[`VkVideoCodingControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoCodingControlInfoKHR.html)
28312/**
28313Provided by **VK_KHR_video_queue**.*/
28314///
28315///# Extended By
28316///- [`VideoEncodeAV1RateControlInfoKHR`]
28317///- [`VideoEncodeH264RateControlInfoKHR`]
28318///- [`VideoEncodeH265RateControlInfoKHR`]
28319///- [`VideoEncodeQualityLevelInfoKHR`]
28320///- [`VideoEncodeRateControlInfoKHR`]
28321#[repr(C)]
28322#[derive(Copy, Clone, Debug)]
28323#[doc(alias = "VkVideoCodingControlInfoKHR")]
28324pub struct VideoCodingControlInfoKHR {
28325    ///Must be `VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR`.
28326    pub s_type: StructureType,
28327    ///Optional, may be null.
28328    pub p_next: *const core::ffi::c_void,
28329    pub flags: VideoCodingControlFlagsKHR,
28330}
28331impl Default for VideoCodingControlInfoKHR {
28332    #[inline]
28333    fn default() -> Self {
28334        Self {
28335            s_type: StructureType::from_raw(1000023010i32),
28336            p_next: core::ptr::null(),
28337            flags: Default::default(),
28338        }
28339    }
28340}
28341///[`VkVideoEncodeUsageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeUsageInfoKHR.html)
28342/**
28343Provided by **VK_KHR_video_encode_queue**.*/
28344///
28345///# Extends
28346///- [`VideoProfileInfoKHR`]
28347///- [`QueryPoolCreateInfo`]
28348#[repr(C)]
28349#[derive(Copy, Clone, Debug)]
28350#[doc(alias = "VkVideoEncodeUsageInfoKHR")]
28351pub struct VideoEncodeUsageInfoKHR {
28352    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR`.
28353    pub s_type: StructureType,
28354    ///Optional, may be null.
28355    pub p_next: *const core::ffi::c_void,
28356    pub video_usage_hints: VideoEncodeUsageFlagsKHR,
28357    pub video_content_hints: VideoEncodeContentFlagsKHR,
28358    pub tuning_mode: VideoEncodeTuningModeKHR,
28359}
28360impl Default for VideoEncodeUsageInfoKHR {
28361    #[inline]
28362    fn default() -> Self {
28363        Self {
28364            s_type: StructureType::from_raw(1000299004i32),
28365            p_next: core::ptr::null(),
28366            video_usage_hints: Default::default(),
28367            video_content_hints: Default::default(),
28368            tuning_mode: Default::default(),
28369        }
28370    }
28371}
28372///[`VkVideoEncodeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeInfoKHR.html)
28373/**
28374Provided by **VK_KHR_video_encode_queue**.*/
28375///
28376///# Extended By
28377///- [`VideoEncodeAV1PictureInfoKHR`]
28378///- [`VideoEncodeH264PictureInfoKHR`]
28379///- [`VideoEncodeH265PictureInfoKHR`]
28380///- [`VideoEncodeIntraRefreshInfoKHR`]
28381///- [`VideoEncodeQuantizationMapInfoKHR`]
28382///- [`VideoInlineQueryInfoKHR`]
28383#[repr(C)]
28384#[derive(Copy, Clone, Debug)]
28385#[doc(alias = "VkVideoEncodeInfoKHR")]
28386pub struct VideoEncodeInfoKHR {
28387    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR`.
28388    pub s_type: StructureType,
28389    ///Optional, may be null.
28390    pub p_next: *const core::ffi::c_void,
28391    pub flags: VideoEncodeFlagsKHR,
28392    pub dst_buffer: Buffer,
28393    pub dst_buffer_offset: u64,
28394    pub dst_buffer_range: u64,
28395    pub src_picture_resource: VideoPictureResourceInfoKHR,
28396    ///Optional, may be null.
28397    pub p_setup_reference_slot: *const VideoReferenceSlotInfoKHR,
28398    ///Length of `p_reference_slots`.
28399    pub reference_slot_count: u32,
28400    pub p_reference_slots: *const VideoReferenceSlotInfoKHR,
28401    pub preceding_externally_encoded_bytes: u32,
28402}
28403impl Default for VideoEncodeInfoKHR {
28404    #[inline]
28405    fn default() -> Self {
28406        Self {
28407            s_type: StructureType::from_raw(1000299000i32),
28408            p_next: core::ptr::null(),
28409            flags: Default::default(),
28410            dst_buffer: Default::default(),
28411            dst_buffer_offset: Default::default(),
28412            dst_buffer_range: Default::default(),
28413            src_picture_resource: Default::default(),
28414            p_setup_reference_slot: core::ptr::null(),
28415            reference_slot_count: Default::default(),
28416            p_reference_slots: core::ptr::null(),
28417            preceding_externally_encoded_bytes: Default::default(),
28418        }
28419    }
28420}
28421///[`VkVideoEncodeQuantizationMapInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQuantizationMapInfoKHR.html)
28422/**
28423Provided by **VK_KHR_video_encode_quantization_map**.*/
28424///
28425///# Extends
28426///- [`VideoEncodeInfoKHR`]
28427#[repr(C)]
28428#[derive(Copy, Clone, Debug)]
28429#[doc(alias = "VkVideoEncodeQuantizationMapInfoKHR")]
28430pub struct VideoEncodeQuantizationMapInfoKHR {
28431    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR`.
28432    pub s_type: StructureType,
28433    ///Optional, may be null.
28434    pub p_next: *const core::ffi::c_void,
28435    pub quantization_map: ImageView,
28436    pub quantization_map_extent: Extent2D,
28437}
28438impl Default for VideoEncodeQuantizationMapInfoKHR {
28439    #[inline]
28440    fn default() -> Self {
28441        Self {
28442            s_type: StructureType::from_raw(1000553002i32),
28443            p_next: core::ptr::null(),
28444            quantization_map: Default::default(),
28445            quantization_map_extent: Default::default(),
28446        }
28447    }
28448}
28449///[`VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR.html)
28450/**
28451Provided by **VK_KHR_video_encode_quantization_map**.*/
28452///
28453///# Extends
28454///- [`VideoSessionParametersCreateInfoKHR`]
28455#[repr(C)]
28456#[derive(Copy, Clone, Debug)]
28457#[doc(alias = "VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR")]
28458pub struct VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
28459    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR`.
28460    pub s_type: StructureType,
28461    ///Optional, may be null.
28462    pub p_next: *const core::ffi::c_void,
28463    pub quantization_map_texel_size: Extent2D,
28464}
28465impl Default for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
28466    #[inline]
28467    fn default() -> Self {
28468        Self {
28469            s_type: StructureType::from_raw(1000553005i32),
28470            p_next: core::ptr::null(),
28471            quantization_map_texel_size: Default::default(),
28472        }
28473    }
28474}
28475///[`VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR.html)
28476/**
28477Provided by **VK_KHR_video_encode_quantization_map**.*/
28478///
28479///# Extends
28480///- [`PhysicalDeviceFeatures2`]
28481///- [`DeviceCreateInfo`]
28482#[repr(C)]
28483#[derive(Copy, Clone, Debug)]
28484#[doc(alias = "VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR")]
28485pub struct PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
28486    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR`.
28487    pub s_type: StructureType,
28488    ///Optional, may be null.
28489    pub p_next: *mut core::ffi::c_void,
28490    pub video_encode_quantization_map: u32,
28491}
28492impl Default for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
28493    #[inline]
28494    fn default() -> Self {
28495        Self {
28496            s_type: StructureType::from_raw(1000553009i32),
28497            p_next: core::ptr::null_mut(),
28498            video_encode_quantization_map: Default::default(),
28499        }
28500    }
28501}
28502///[`VkQueryPoolVideoEncodeFeedbackCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolVideoEncodeFeedbackCreateInfoKHR.html)
28503/**
28504Provided by **VK_KHR_video_encode_queue**.*/
28505///
28506///# Extends
28507///- [`QueryPoolCreateInfo`]
28508#[repr(C)]
28509#[derive(Copy, Clone, Debug)]
28510#[doc(alias = "VkQueryPoolVideoEncodeFeedbackCreateInfoKHR")]
28511pub struct QueryPoolVideoEncodeFeedbackCreateInfoKHR {
28512    ///Must be `VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR`.
28513    pub s_type: StructureType,
28514    ///Optional, may be null.
28515    pub p_next: *const core::ffi::c_void,
28516    pub encode_feedback_flags: VideoEncodeFeedbackFlagsKHR,
28517}
28518impl Default for QueryPoolVideoEncodeFeedbackCreateInfoKHR {
28519    #[inline]
28520    fn default() -> Self {
28521        Self {
28522            s_type: StructureType::from_raw(1000299005i32),
28523            p_next: core::ptr::null(),
28524            encode_feedback_flags: Default::default(),
28525        }
28526    }
28527}
28528///[`VkVideoEncodeQualityLevelInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQualityLevelInfoKHR.html)
28529/**
28530Provided by **VK_KHR_video_encode_queue**.*/
28531///
28532///# Extends
28533///- [`VideoCodingControlInfoKHR`]
28534///- [`VideoSessionParametersCreateInfoKHR`]
28535#[repr(C)]
28536#[derive(Copy, Clone, Debug)]
28537#[doc(alias = "VkVideoEncodeQualityLevelInfoKHR")]
28538pub struct VideoEncodeQualityLevelInfoKHR {
28539    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR`.
28540    pub s_type: StructureType,
28541    ///Optional, may be null.
28542    pub p_next: *const core::ffi::c_void,
28543    pub quality_level: u32,
28544}
28545impl Default for VideoEncodeQualityLevelInfoKHR {
28546    #[inline]
28547    fn default() -> Self {
28548        Self {
28549            s_type: StructureType::from_raw(1000299008i32),
28550            p_next: core::ptr::null(),
28551            quality_level: Default::default(),
28552        }
28553    }
28554}
28555///[`VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR.html)
28556/**
28557Provided by **VK_KHR_video_encode_queue**.*/
28558#[repr(C)]
28559#[derive(Copy, Clone, Debug)]
28560#[doc(alias = "VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR")]
28561pub struct PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
28562    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR`.
28563    pub s_type: StructureType,
28564    ///Optional, may be null.
28565    pub p_next: *const core::ffi::c_void,
28566    pub p_video_profile: *const VideoProfileInfoKHR,
28567    pub quality_level: u32,
28568}
28569impl Default for PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
28570    #[inline]
28571    fn default() -> Self {
28572        Self {
28573            s_type: StructureType::from_raw(1000299006i32),
28574            p_next: core::ptr::null(),
28575            p_video_profile: core::ptr::null(),
28576            quality_level: Default::default(),
28577        }
28578    }
28579}
28580///[`VkVideoEncodeQualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeQualityLevelPropertiesKHR.html)
28581/**
28582Provided by **VK_KHR_video_encode_queue**.*/
28583/**
28584**Returned only**, filled by Vulkan, not constructed by the application.*/
28585///
28586///# Extended By
28587///- [`VideoEncodeAV1QualityLevelPropertiesKHR`]
28588///- [`VideoEncodeH264QualityLevelPropertiesKHR`]
28589///- [`VideoEncodeH265QualityLevelPropertiesKHR`]
28590#[repr(C)]
28591#[derive(Copy, Clone, Debug)]
28592#[doc(alias = "VkVideoEncodeQualityLevelPropertiesKHR")]
28593pub struct VideoEncodeQualityLevelPropertiesKHR {
28594    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR`.
28595    pub s_type: StructureType,
28596    ///Optional, may be null.
28597    pub p_next: *mut core::ffi::c_void,
28598    pub preferred_rate_control_mode: VideoEncodeRateControlModeFlagBitsKHR,
28599    pub preferred_rate_control_layer_count: u32,
28600}
28601impl Default for VideoEncodeQualityLevelPropertiesKHR {
28602    #[inline]
28603    fn default() -> Self {
28604        Self {
28605            s_type: StructureType::from_raw(1000299007i32),
28606            p_next: core::ptr::null_mut(),
28607            preferred_rate_control_mode: Default::default(),
28608            preferred_rate_control_layer_count: Default::default(),
28609        }
28610    }
28611}
28612///[`VkVideoEncodeRateControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeRateControlInfoKHR.html)
28613/**
28614Provided by **VK_KHR_video_encode_queue**.*/
28615///
28616///# Extends
28617///- [`VideoCodingControlInfoKHR`]
28618///- [`VideoBeginCodingInfoKHR`]
28619#[repr(C)]
28620#[derive(Copy, Clone, Debug)]
28621#[doc(alias = "VkVideoEncodeRateControlInfoKHR")]
28622pub struct VideoEncodeRateControlInfoKHR {
28623    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR`.
28624    pub s_type: StructureType,
28625    ///Optional, may be null.
28626    pub p_next: *const core::ffi::c_void,
28627    pub flags: VideoEncodeRateControlFlagsKHR,
28628    pub rate_control_mode: VideoEncodeRateControlModeFlagBitsKHR,
28629    ///Length of `p_layers`.
28630    pub layer_count: u32,
28631    pub p_layers: *const VideoEncodeRateControlLayerInfoKHR,
28632    pub virtual_buffer_size_in_ms: u32,
28633    pub initial_virtual_buffer_size_in_ms: u32,
28634}
28635impl Default for VideoEncodeRateControlInfoKHR {
28636    #[inline]
28637    fn default() -> Self {
28638        Self {
28639            s_type: StructureType::from_raw(1000299001i32),
28640            p_next: core::ptr::null(),
28641            flags: Default::default(),
28642            rate_control_mode: Default::default(),
28643            layer_count: Default::default(),
28644            p_layers: core::ptr::null(),
28645            virtual_buffer_size_in_ms: Default::default(),
28646            initial_virtual_buffer_size_in_ms: Default::default(),
28647        }
28648    }
28649}
28650///[`VkVideoEncodeRateControlLayerInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeRateControlLayerInfoKHR.html)
28651/**
28652Provided by **VK_KHR_video_encode_queue**.*/
28653///
28654///# Extended By
28655///- [`VideoEncodeAV1RateControlLayerInfoKHR`]
28656///- [`VideoEncodeH264RateControlLayerInfoKHR`]
28657///- [`VideoEncodeH265RateControlLayerInfoKHR`]
28658#[repr(C)]
28659#[derive(Copy, Clone, Debug)]
28660#[doc(alias = "VkVideoEncodeRateControlLayerInfoKHR")]
28661pub struct VideoEncodeRateControlLayerInfoKHR {
28662    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR`.
28663    pub s_type: StructureType,
28664    ///Optional, may be null.
28665    pub p_next: *const core::ffi::c_void,
28666    pub average_bitrate: u64,
28667    pub max_bitrate: u64,
28668    pub frame_rate_numerator: u32,
28669    pub frame_rate_denominator: u32,
28670}
28671impl Default for VideoEncodeRateControlLayerInfoKHR {
28672    #[inline]
28673    fn default() -> Self {
28674        Self {
28675            s_type: StructureType::from_raw(1000299002i32),
28676            p_next: core::ptr::null(),
28677            average_bitrate: Default::default(),
28678            max_bitrate: Default::default(),
28679            frame_rate_numerator: Default::default(),
28680            frame_rate_denominator: Default::default(),
28681        }
28682    }
28683}
28684///[`VkVideoEncodeCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeCapabilitiesKHR.html)
28685/**
28686Provided by **VK_KHR_video_encode_queue**.*/
28687/**
28688**Returned only**, filled by Vulkan, not constructed by the application.*/
28689///
28690///# Extends
28691///- [`VideoCapabilitiesKHR`]
28692#[repr(C)]
28693#[derive(Copy, Clone, Debug)]
28694#[doc(alias = "VkVideoEncodeCapabilitiesKHR")]
28695pub struct VideoEncodeCapabilitiesKHR {
28696    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR`.
28697    pub s_type: StructureType,
28698    ///Optional, may be null.
28699    pub p_next: *mut core::ffi::c_void,
28700    pub flags: VideoEncodeCapabilityFlagsKHR,
28701    pub rate_control_modes: VideoEncodeRateControlModeFlagsKHR,
28702    pub max_rate_control_layers: u32,
28703    pub max_bitrate: u64,
28704    pub max_quality_levels: u32,
28705    pub encode_input_picture_granularity: Extent2D,
28706    pub supported_encode_feedback_flags: VideoEncodeFeedbackFlagsKHR,
28707}
28708impl Default for VideoEncodeCapabilitiesKHR {
28709    #[inline]
28710    fn default() -> Self {
28711        Self {
28712            s_type: StructureType::from_raw(1000299003i32),
28713            p_next: core::ptr::null_mut(),
28714            flags: Default::default(),
28715            rate_control_modes: Default::default(),
28716            max_rate_control_layers: Default::default(),
28717            max_bitrate: Default::default(),
28718            max_quality_levels: Default::default(),
28719            encode_input_picture_granularity: Default::default(),
28720            supported_encode_feedback_flags: Default::default(),
28721        }
28722    }
28723}
28724///[`VkVideoEncodeH264CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264CapabilitiesKHR.html)
28725/**
28726Provided by **VK_KHR_video_encode_h264**.*/
28727/**
28728**Returned only**, filled by Vulkan, not constructed by the application.*/
28729///
28730///# Extends
28731///- [`VideoCapabilitiesKHR`]
28732#[repr(C)]
28733#[derive(Copy, Clone, Debug)]
28734#[doc(alias = "VkVideoEncodeH264CapabilitiesKHR")]
28735pub struct VideoEncodeH264CapabilitiesKHR {
28736    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR`.
28737    pub s_type: StructureType,
28738    ///Optional, may be null.
28739    pub p_next: *mut core::ffi::c_void,
28740    pub flags: VideoEncodeH264CapabilityFlagsKHR,
28741    pub max_level_idc: StdVideoH264LevelIdc,
28742    pub max_slice_count: u32,
28743    pub max_p_picture_l0_reference_count: u32,
28744    pub max_b_picture_l0_reference_count: u32,
28745    pub max_l1_reference_count: u32,
28746    pub max_temporal_layer_count: u32,
28747    pub expect_dyadic_temporal_layer_pattern: u32,
28748    pub min_qp: i32,
28749    pub max_qp: i32,
28750    pub prefers_gop_remaining_frames: u32,
28751    pub requires_gop_remaining_frames: u32,
28752    pub std_syntax_flags: VideoEncodeH264StdFlagsKHR,
28753}
28754impl Default for VideoEncodeH264CapabilitiesKHR {
28755    #[inline]
28756    fn default() -> Self {
28757        Self {
28758            s_type: StructureType::from_raw(1000038000i32),
28759            p_next: core::ptr::null_mut(),
28760            flags: Default::default(),
28761            max_level_idc: Default::default(),
28762            max_slice_count: Default::default(),
28763            max_p_picture_l0_reference_count: Default::default(),
28764            max_b_picture_l0_reference_count: Default::default(),
28765            max_l1_reference_count: Default::default(),
28766            max_temporal_layer_count: Default::default(),
28767            expect_dyadic_temporal_layer_pattern: Default::default(),
28768            min_qp: Default::default(),
28769            max_qp: Default::default(),
28770            prefers_gop_remaining_frames: Default::default(),
28771            requires_gop_remaining_frames: Default::default(),
28772            std_syntax_flags: Default::default(),
28773        }
28774    }
28775}
28776///[`VkVideoEncodeH264QualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264QualityLevelPropertiesKHR.html)
28777/**
28778Provided by **VK_KHR_video_encode_h264**.*/
28779/**
28780**Returned only**, filled by Vulkan, not constructed by the application.*/
28781///
28782///# Extends
28783///- [`VideoEncodeQualityLevelPropertiesKHR`]
28784#[repr(C)]
28785#[derive(Copy, Clone, Debug)]
28786#[doc(alias = "VkVideoEncodeH264QualityLevelPropertiesKHR")]
28787pub struct VideoEncodeH264QualityLevelPropertiesKHR {
28788    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR`.
28789    pub s_type: StructureType,
28790    ///Optional, may be null.
28791    pub p_next: *mut core::ffi::c_void,
28792    pub preferred_rate_control_flags: VideoEncodeH264RateControlFlagsKHR,
28793    pub preferred_gop_frame_count: u32,
28794    pub preferred_idr_period: u32,
28795    pub preferred_consecutive_b_frame_count: u32,
28796    pub preferred_temporal_layer_count: u32,
28797    pub preferred_constant_qp: VideoEncodeH264QpKHR,
28798    pub preferred_max_l0_reference_count: u32,
28799    pub preferred_max_l1_reference_count: u32,
28800    pub preferred_std_entropy_coding_mode_flag: u32,
28801}
28802impl Default for VideoEncodeH264QualityLevelPropertiesKHR {
28803    #[inline]
28804    fn default() -> Self {
28805        Self {
28806            s_type: StructureType::from_raw(1000038011i32),
28807            p_next: core::ptr::null_mut(),
28808            preferred_rate_control_flags: Default::default(),
28809            preferred_gop_frame_count: Default::default(),
28810            preferred_idr_period: Default::default(),
28811            preferred_consecutive_b_frame_count: Default::default(),
28812            preferred_temporal_layer_count: Default::default(),
28813            preferred_constant_qp: Default::default(),
28814            preferred_max_l0_reference_count: Default::default(),
28815            preferred_max_l1_reference_count: Default::default(),
28816            preferred_std_entropy_coding_mode_flag: Default::default(),
28817        }
28818    }
28819}
28820///[`VkVideoEncodeH264SessionCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionCreateInfoKHR.html)
28821/**
28822Provided by **VK_KHR_video_encode_h264**.*/
28823///
28824///# Extends
28825///- [`VideoSessionCreateInfoKHR`]
28826#[repr(C)]
28827#[derive(Copy, Clone, Debug)]
28828#[doc(alias = "VkVideoEncodeH264SessionCreateInfoKHR")]
28829pub struct VideoEncodeH264SessionCreateInfoKHR {
28830    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR`.
28831    pub s_type: StructureType,
28832    ///Optional, may be null.
28833    pub p_next: *const core::ffi::c_void,
28834    pub use_max_level_idc: u32,
28835    pub max_level_idc: StdVideoH264LevelIdc,
28836}
28837impl Default for VideoEncodeH264SessionCreateInfoKHR {
28838    #[inline]
28839    fn default() -> Self {
28840        Self {
28841            s_type: StructureType::from_raw(1000038010i32),
28842            p_next: core::ptr::null(),
28843            use_max_level_idc: Default::default(),
28844            max_level_idc: Default::default(),
28845        }
28846    }
28847}
28848///[`VkVideoEncodeH264SessionParametersAddInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionParametersAddInfoKHR.html)
28849/**
28850Provided by **VK_KHR_video_encode_h264**.*/
28851///
28852///# Extends
28853///- [`VideoSessionParametersUpdateInfoKHR`]
28854#[repr(C)]
28855#[derive(Copy, Clone, Debug)]
28856#[doc(alias = "VkVideoEncodeH264SessionParametersAddInfoKHR")]
28857pub struct VideoEncodeH264SessionParametersAddInfoKHR {
28858    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR`.
28859    pub s_type: StructureType,
28860    ///Optional, may be null.
28861    pub p_next: *const core::ffi::c_void,
28862    ///Length of `p_std_sp_ss`.
28863    pub std_sps_count: u32,
28864    ///Optional, may be null.
28865    pub p_std_sp_ss: *const StdVideoH264SequenceParameterSet,
28866    ///Length of `p_std_pp_ss`.
28867    pub std_pps_count: u32,
28868    ///Optional, may be null.
28869    pub p_std_pp_ss: *const StdVideoH264PictureParameterSet,
28870}
28871impl Default for VideoEncodeH264SessionParametersAddInfoKHR {
28872    #[inline]
28873    fn default() -> Self {
28874        Self {
28875            s_type: StructureType::from_raw(1000038002i32),
28876            p_next: core::ptr::null(),
28877            std_sps_count: Default::default(),
28878            p_std_sp_ss: core::ptr::null(),
28879            std_pps_count: Default::default(),
28880            p_std_pp_ss: core::ptr::null(),
28881        }
28882    }
28883}
28884///[`VkVideoEncodeH264SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionParametersCreateInfoKHR.html)
28885/**
28886Provided by **VK_KHR_video_encode_h264**.*/
28887///
28888///# Extends
28889///- [`VideoSessionParametersCreateInfoKHR`]
28890#[repr(C)]
28891#[derive(Copy, Clone, Debug)]
28892#[doc(alias = "VkVideoEncodeH264SessionParametersCreateInfoKHR")]
28893pub struct VideoEncodeH264SessionParametersCreateInfoKHR {
28894    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR`.
28895    pub s_type: StructureType,
28896    ///Optional, may be null.
28897    pub p_next: *const core::ffi::c_void,
28898    pub max_std_sps_count: u32,
28899    pub max_std_pps_count: u32,
28900    ///Optional, may be null.
28901    pub p_parameters_add_info: *const VideoEncodeH264SessionParametersAddInfoKHR,
28902}
28903impl Default for VideoEncodeH264SessionParametersCreateInfoKHR {
28904    #[inline]
28905    fn default() -> Self {
28906        Self {
28907            s_type: StructureType::from_raw(1000038001i32),
28908            p_next: core::ptr::null(),
28909            max_std_sps_count: Default::default(),
28910            max_std_pps_count: Default::default(),
28911            p_parameters_add_info: core::ptr::null(),
28912        }
28913    }
28914}
28915///[`VkVideoEncodeH264SessionParametersGetInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionParametersGetInfoKHR.html)
28916/**
28917Provided by **VK_KHR_video_encode_h264**.*/
28918///
28919///# Extends
28920///- [`VideoEncodeSessionParametersGetInfoKHR`]
28921#[repr(C)]
28922#[derive(Copy, Clone, Debug)]
28923#[doc(alias = "VkVideoEncodeH264SessionParametersGetInfoKHR")]
28924pub struct VideoEncodeH264SessionParametersGetInfoKHR {
28925    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR`.
28926    pub s_type: StructureType,
28927    ///Optional, may be null.
28928    pub p_next: *const core::ffi::c_void,
28929    pub write_std_sps: u32,
28930    pub write_std_pps: u32,
28931    pub std_sps_id: u32,
28932    pub std_pps_id: u32,
28933}
28934impl Default for VideoEncodeH264SessionParametersGetInfoKHR {
28935    #[inline]
28936    fn default() -> Self {
28937        Self {
28938            s_type: StructureType::from_raw(1000038012i32),
28939            p_next: core::ptr::null(),
28940            write_std_sps: Default::default(),
28941            write_std_pps: Default::default(),
28942            std_sps_id: Default::default(),
28943            std_pps_id: Default::default(),
28944        }
28945    }
28946}
28947///[`VkVideoEncodeH264SessionParametersFeedbackInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264SessionParametersFeedbackInfoKHR.html)
28948/**
28949Provided by **VK_KHR_video_encode_h264**.*/
28950/**
28951**Returned only**, filled by Vulkan, not constructed by the application.*/
28952///
28953///# Extends
28954///- [`VideoEncodeSessionParametersFeedbackInfoKHR`]
28955#[repr(C)]
28956#[derive(Copy, Clone, Debug)]
28957#[doc(alias = "VkVideoEncodeH264SessionParametersFeedbackInfoKHR")]
28958pub struct VideoEncodeH264SessionParametersFeedbackInfoKHR {
28959    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR`.
28960    pub s_type: StructureType,
28961    ///Optional, may be null.
28962    pub p_next: *mut core::ffi::c_void,
28963    pub has_std_sps_overrides: u32,
28964    pub has_std_pps_overrides: u32,
28965}
28966impl Default for VideoEncodeH264SessionParametersFeedbackInfoKHR {
28967    #[inline]
28968    fn default() -> Self {
28969        Self {
28970            s_type: StructureType::from_raw(1000038013i32),
28971            p_next: core::ptr::null_mut(),
28972            has_std_sps_overrides: Default::default(),
28973            has_std_pps_overrides: Default::default(),
28974        }
28975    }
28976}
28977///[`VkVideoEncodeH264DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264DpbSlotInfoKHR.html)
28978/**
28979Provided by **VK_KHR_video_encode_h264**.*/
28980///
28981///# Extends
28982///- [`VideoReferenceSlotInfoKHR`]
28983#[repr(C)]
28984#[derive(Copy, Clone, Debug)]
28985#[doc(alias = "VkVideoEncodeH264DpbSlotInfoKHR")]
28986pub struct VideoEncodeH264DpbSlotInfoKHR {
28987    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR`.
28988    pub s_type: StructureType,
28989    ///Optional, may be null.
28990    pub p_next: *const core::ffi::c_void,
28991    pub p_std_reference_info: *const StdVideoEncodeH264ReferenceInfo,
28992}
28993impl Default for VideoEncodeH264DpbSlotInfoKHR {
28994    #[inline]
28995    fn default() -> Self {
28996        Self {
28997            s_type: StructureType::from_raw(1000038004i32),
28998            p_next: core::ptr::null(),
28999            p_std_reference_info: core::ptr::null(),
29000        }
29001    }
29002}
29003///[`VkVideoEncodeH264PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264PictureInfoKHR.html)
29004/**
29005Provided by **VK_KHR_video_encode_h264**.*/
29006///
29007///# Extends
29008///- [`VideoEncodeInfoKHR`]
29009#[repr(C)]
29010#[derive(Copy, Clone, Debug)]
29011#[doc(alias = "VkVideoEncodeH264PictureInfoKHR")]
29012pub struct VideoEncodeH264PictureInfoKHR {
29013    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR`.
29014    pub s_type: StructureType,
29015    ///Optional, may be null.
29016    pub p_next: *const core::ffi::c_void,
29017    ///Length of `p_nalu_slice_entries`.
29018    pub nalu_slice_entry_count: u32,
29019    pub p_nalu_slice_entries: *const VideoEncodeH264NaluSliceInfoKHR,
29020    pub p_std_picture_info: *const StdVideoEncodeH264PictureInfo,
29021    pub generate_prefix_nalu: u32,
29022}
29023impl Default for VideoEncodeH264PictureInfoKHR {
29024    #[inline]
29025    fn default() -> Self {
29026        Self {
29027            s_type: StructureType::from_raw(1000038003i32),
29028            p_next: core::ptr::null(),
29029            nalu_slice_entry_count: Default::default(),
29030            p_nalu_slice_entries: core::ptr::null(),
29031            p_std_picture_info: core::ptr::null(),
29032            generate_prefix_nalu: Default::default(),
29033        }
29034    }
29035}
29036///[`VkVideoEncodeH264ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264ProfileInfoKHR.html)
29037/**
29038Provided by **VK_KHR_video_encode_h264**.*/
29039///
29040///# Extends
29041///- [`VideoProfileInfoKHR`]
29042///- [`QueryPoolCreateInfo`]
29043#[repr(C)]
29044#[derive(Copy, Clone, Debug)]
29045#[doc(alias = "VkVideoEncodeH264ProfileInfoKHR")]
29046pub struct VideoEncodeH264ProfileInfoKHR {
29047    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR`.
29048    pub s_type: StructureType,
29049    ///Optional, may be null.
29050    pub p_next: *const core::ffi::c_void,
29051    pub std_profile_idc: StdVideoH264ProfileIdc,
29052}
29053impl Default for VideoEncodeH264ProfileInfoKHR {
29054    #[inline]
29055    fn default() -> Self {
29056        Self {
29057            s_type: StructureType::from_raw(1000038007i32),
29058            p_next: core::ptr::null(),
29059            std_profile_idc: Default::default(),
29060        }
29061    }
29062}
29063///[`VkVideoEncodeH264NaluSliceInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264NaluSliceInfoKHR.html)
29064/**
29065Provided by **VK_KHR_video_encode_h264**.*/
29066#[repr(C)]
29067#[derive(Copy, Clone, Debug)]
29068#[doc(alias = "VkVideoEncodeH264NaluSliceInfoKHR")]
29069pub struct VideoEncodeH264NaluSliceInfoKHR {
29070    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR`.
29071    pub s_type: StructureType,
29072    ///Optional, may be null.
29073    pub p_next: *const core::ffi::c_void,
29074    pub constant_qp: i32,
29075    pub p_std_slice_header: *const StdVideoEncodeH264SliceHeader,
29076}
29077impl Default for VideoEncodeH264NaluSliceInfoKHR {
29078    #[inline]
29079    fn default() -> Self {
29080        Self {
29081            s_type: StructureType::from_raw(1000038005i32),
29082            p_next: core::ptr::null(),
29083            constant_qp: Default::default(),
29084            p_std_slice_header: core::ptr::null(),
29085        }
29086    }
29087}
29088///[`VkVideoEncodeH264RateControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264RateControlInfoKHR.html)
29089/**
29090Provided by **VK_KHR_video_encode_h264**.*/
29091///
29092///# Extends
29093///- [`VideoCodingControlInfoKHR`]
29094///- [`VideoBeginCodingInfoKHR`]
29095#[repr(C)]
29096#[derive(Copy, Clone, Debug)]
29097#[doc(alias = "VkVideoEncodeH264RateControlInfoKHR")]
29098pub struct VideoEncodeH264RateControlInfoKHR {
29099    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR`.
29100    pub s_type: StructureType,
29101    ///Optional, may be null.
29102    pub p_next: *const core::ffi::c_void,
29103    pub flags: VideoEncodeH264RateControlFlagsKHR,
29104    pub gop_frame_count: u32,
29105    pub idr_period: u32,
29106    pub consecutive_b_frame_count: u32,
29107    pub temporal_layer_count: u32,
29108}
29109impl Default for VideoEncodeH264RateControlInfoKHR {
29110    #[inline]
29111    fn default() -> Self {
29112        Self {
29113            s_type: StructureType::from_raw(1000038008i32),
29114            p_next: core::ptr::null(),
29115            flags: Default::default(),
29116            gop_frame_count: Default::default(),
29117            idr_period: Default::default(),
29118            consecutive_b_frame_count: Default::default(),
29119            temporal_layer_count: Default::default(),
29120        }
29121    }
29122}
29123///[`VkVideoEncodeH264QpKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264QpKHR.html)
29124/**
29125Provided by **VK_KHR_video_encode_h264**.*/
29126#[repr(C)]
29127#[derive(Copy, Clone, Debug)]
29128#[doc(alias = "VkVideoEncodeH264QpKHR")]
29129pub struct VideoEncodeH264QpKHR {
29130    pub qp_i: i32,
29131    pub qp_p: i32,
29132    pub qp_b: i32,
29133}
29134impl Default for VideoEncodeH264QpKHR {
29135    #[inline]
29136    fn default() -> Self {
29137        unsafe { core::mem::zeroed() }
29138    }
29139}
29140///[`VkVideoEncodeH264FrameSizeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264FrameSizeKHR.html)
29141/**
29142Provided by **VK_KHR_video_encode_h264**.*/
29143#[repr(C)]
29144#[derive(Copy, Clone, Debug)]
29145#[doc(alias = "VkVideoEncodeH264FrameSizeKHR")]
29146pub struct VideoEncodeH264FrameSizeKHR {
29147    pub frame_i_size: u32,
29148    pub frame_p_size: u32,
29149    pub frame_b_size: u32,
29150}
29151impl Default for VideoEncodeH264FrameSizeKHR {
29152    #[inline]
29153    fn default() -> Self {
29154        unsafe { core::mem::zeroed() }
29155    }
29156}
29157///[`VkVideoEncodeH264GopRemainingFrameInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264GopRemainingFrameInfoKHR.html)
29158/**
29159Provided by **VK_KHR_video_encode_h264**.*/
29160///
29161///# Extends
29162///- [`VideoBeginCodingInfoKHR`]
29163#[repr(C)]
29164#[derive(Copy, Clone, Debug)]
29165#[doc(alias = "VkVideoEncodeH264GopRemainingFrameInfoKHR")]
29166pub struct VideoEncodeH264GopRemainingFrameInfoKHR {
29167    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR`.
29168    pub s_type: StructureType,
29169    ///Optional, may be null.
29170    pub p_next: *const core::ffi::c_void,
29171    pub use_gop_remaining_frames: u32,
29172    pub gop_remaining_i: u32,
29173    pub gop_remaining_p: u32,
29174    pub gop_remaining_b: u32,
29175}
29176impl Default for VideoEncodeH264GopRemainingFrameInfoKHR {
29177    #[inline]
29178    fn default() -> Self {
29179        Self {
29180            s_type: StructureType::from_raw(1000038006i32),
29181            p_next: core::ptr::null(),
29182            use_gop_remaining_frames: Default::default(),
29183            gop_remaining_i: Default::default(),
29184            gop_remaining_p: Default::default(),
29185            gop_remaining_b: Default::default(),
29186        }
29187    }
29188}
29189///[`VkVideoEncodeH264RateControlLayerInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH264RateControlLayerInfoKHR.html)
29190/**
29191Provided by **VK_KHR_video_encode_h264**.*/
29192///
29193///# Extends
29194///- [`VideoEncodeRateControlLayerInfoKHR`]
29195#[repr(C)]
29196#[derive(Copy, Clone, Debug)]
29197#[doc(alias = "VkVideoEncodeH264RateControlLayerInfoKHR")]
29198pub struct VideoEncodeH264RateControlLayerInfoKHR {
29199    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR`.
29200    pub s_type: StructureType,
29201    ///Optional, may be null.
29202    pub p_next: *const core::ffi::c_void,
29203    pub use_min_qp: u32,
29204    pub min_qp: VideoEncodeH264QpKHR,
29205    pub use_max_qp: u32,
29206    pub max_qp: VideoEncodeH264QpKHR,
29207    pub use_max_frame_size: u32,
29208    pub max_frame_size: VideoEncodeH264FrameSizeKHR,
29209}
29210impl Default for VideoEncodeH264RateControlLayerInfoKHR {
29211    #[inline]
29212    fn default() -> Self {
29213        Self {
29214            s_type: StructureType::from_raw(1000038009i32),
29215            p_next: core::ptr::null(),
29216            use_min_qp: Default::default(),
29217            min_qp: Default::default(),
29218            use_max_qp: Default::default(),
29219            max_qp: Default::default(),
29220            use_max_frame_size: Default::default(),
29221            max_frame_size: Default::default(),
29222        }
29223    }
29224}
29225///[`VkVideoEncodeH265CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265CapabilitiesKHR.html)
29226/**
29227Provided by **VK_KHR_video_encode_h265**.*/
29228/**
29229**Returned only**, filled by Vulkan, not constructed by the application.*/
29230///
29231///# Extends
29232///- [`VideoCapabilitiesKHR`]
29233#[repr(C)]
29234#[derive(Copy, Clone, Debug)]
29235#[doc(alias = "VkVideoEncodeH265CapabilitiesKHR")]
29236pub struct VideoEncodeH265CapabilitiesKHR {
29237    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR`.
29238    pub s_type: StructureType,
29239    ///Optional, may be null.
29240    pub p_next: *mut core::ffi::c_void,
29241    pub flags: VideoEncodeH265CapabilityFlagsKHR,
29242    pub max_level_idc: StdVideoH265LevelIdc,
29243    pub max_slice_segment_count: u32,
29244    pub max_tiles: Extent2D,
29245    pub ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR,
29246    pub transform_block_sizes: VideoEncodeH265TransformBlockSizeFlagsKHR,
29247    pub max_p_picture_l0_reference_count: u32,
29248    pub max_b_picture_l0_reference_count: u32,
29249    pub max_l1_reference_count: u32,
29250    pub max_sub_layer_count: u32,
29251    pub expect_dyadic_temporal_sub_layer_pattern: u32,
29252    pub min_qp: i32,
29253    pub max_qp: i32,
29254    pub prefers_gop_remaining_frames: u32,
29255    pub requires_gop_remaining_frames: u32,
29256    pub std_syntax_flags: VideoEncodeH265StdFlagsKHR,
29257}
29258impl Default for VideoEncodeH265CapabilitiesKHR {
29259    #[inline]
29260    fn default() -> Self {
29261        Self {
29262            s_type: StructureType::from_raw(1000039000i32),
29263            p_next: core::ptr::null_mut(),
29264            flags: Default::default(),
29265            max_level_idc: Default::default(),
29266            max_slice_segment_count: Default::default(),
29267            max_tiles: Default::default(),
29268            ctb_sizes: Default::default(),
29269            transform_block_sizes: Default::default(),
29270            max_p_picture_l0_reference_count: Default::default(),
29271            max_b_picture_l0_reference_count: Default::default(),
29272            max_l1_reference_count: Default::default(),
29273            max_sub_layer_count: Default::default(),
29274            expect_dyadic_temporal_sub_layer_pattern: Default::default(),
29275            min_qp: Default::default(),
29276            max_qp: Default::default(),
29277            prefers_gop_remaining_frames: Default::default(),
29278            requires_gop_remaining_frames: Default::default(),
29279            std_syntax_flags: Default::default(),
29280        }
29281    }
29282}
29283///[`VkVideoEncodeH265QualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265QualityLevelPropertiesKHR.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///- [`VideoEncodeQualityLevelPropertiesKHR`]
29291#[repr(C)]
29292#[derive(Copy, Clone, Debug)]
29293#[doc(alias = "VkVideoEncodeH265QualityLevelPropertiesKHR")]
29294pub struct VideoEncodeH265QualityLevelPropertiesKHR {
29295    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR`.
29296    pub s_type: StructureType,
29297    ///Optional, may be null.
29298    pub p_next: *mut core::ffi::c_void,
29299    pub preferred_rate_control_flags: VideoEncodeH265RateControlFlagsKHR,
29300    pub preferred_gop_frame_count: u32,
29301    pub preferred_idr_period: u32,
29302    pub preferred_consecutive_b_frame_count: u32,
29303    pub preferred_sub_layer_count: u32,
29304    pub preferred_constant_qp: VideoEncodeH265QpKHR,
29305    pub preferred_max_l0_reference_count: u32,
29306    pub preferred_max_l1_reference_count: u32,
29307}
29308impl Default for VideoEncodeH265QualityLevelPropertiesKHR {
29309    #[inline]
29310    fn default() -> Self {
29311        Self {
29312            s_type: StructureType::from_raw(1000039012i32),
29313            p_next: core::ptr::null_mut(),
29314            preferred_rate_control_flags: Default::default(),
29315            preferred_gop_frame_count: Default::default(),
29316            preferred_idr_period: Default::default(),
29317            preferred_consecutive_b_frame_count: Default::default(),
29318            preferred_sub_layer_count: Default::default(),
29319            preferred_constant_qp: Default::default(),
29320            preferred_max_l0_reference_count: Default::default(),
29321            preferred_max_l1_reference_count: Default::default(),
29322        }
29323    }
29324}
29325///[`VkVideoEncodeH265SessionCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionCreateInfoKHR.html)
29326/**
29327Provided by **VK_KHR_video_encode_h265**.*/
29328///
29329///# Extends
29330///- [`VideoSessionCreateInfoKHR`]
29331#[repr(C)]
29332#[derive(Copy, Clone, Debug)]
29333#[doc(alias = "VkVideoEncodeH265SessionCreateInfoKHR")]
29334pub struct VideoEncodeH265SessionCreateInfoKHR {
29335    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR`.
29336    pub s_type: StructureType,
29337    ///Optional, may be null.
29338    pub p_next: *const core::ffi::c_void,
29339    pub use_max_level_idc: u32,
29340    pub max_level_idc: StdVideoH265LevelIdc,
29341}
29342impl Default for VideoEncodeH265SessionCreateInfoKHR {
29343    #[inline]
29344    fn default() -> Self {
29345        Self {
29346            s_type: StructureType::from_raw(1000039011i32),
29347            p_next: core::ptr::null(),
29348            use_max_level_idc: Default::default(),
29349            max_level_idc: Default::default(),
29350        }
29351    }
29352}
29353///[`VkVideoEncodeH265SessionParametersAddInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionParametersAddInfoKHR.html)
29354/**
29355Provided by **VK_KHR_video_encode_h265**.*/
29356///
29357///# Extends
29358///- [`VideoSessionParametersUpdateInfoKHR`]
29359#[repr(C)]
29360#[derive(Copy, Clone, Debug)]
29361#[doc(alias = "VkVideoEncodeH265SessionParametersAddInfoKHR")]
29362pub struct VideoEncodeH265SessionParametersAddInfoKHR {
29363    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR`.
29364    pub s_type: StructureType,
29365    ///Optional, may be null.
29366    pub p_next: *const core::ffi::c_void,
29367    ///Length of `p_std_vp_ss`.
29368    pub std_vps_count: u32,
29369    ///Optional, may be null.
29370    pub p_std_vp_ss: *const StdVideoH265VideoParameterSet,
29371    ///Length of `p_std_sp_ss`.
29372    pub std_sps_count: u32,
29373    ///Optional, may be null.
29374    pub p_std_sp_ss: *const StdVideoH265SequenceParameterSet,
29375    ///Length of `p_std_pp_ss`.
29376    pub std_pps_count: u32,
29377    ///Optional, may be null.
29378    pub p_std_pp_ss: *const StdVideoH265PictureParameterSet,
29379}
29380impl Default for VideoEncodeH265SessionParametersAddInfoKHR {
29381    #[inline]
29382    fn default() -> Self {
29383        Self {
29384            s_type: StructureType::from_raw(1000039002i32),
29385            p_next: core::ptr::null(),
29386            std_vps_count: Default::default(),
29387            p_std_vp_ss: core::ptr::null(),
29388            std_sps_count: Default::default(),
29389            p_std_sp_ss: core::ptr::null(),
29390            std_pps_count: Default::default(),
29391            p_std_pp_ss: core::ptr::null(),
29392        }
29393    }
29394}
29395///[`VkVideoEncodeH265SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionParametersCreateInfoKHR.html)
29396/**
29397Provided by **VK_KHR_video_encode_h265**.*/
29398///
29399///# Extends
29400///- [`VideoSessionParametersCreateInfoKHR`]
29401#[repr(C)]
29402#[derive(Copy, Clone, Debug)]
29403#[doc(alias = "VkVideoEncodeH265SessionParametersCreateInfoKHR")]
29404pub struct VideoEncodeH265SessionParametersCreateInfoKHR {
29405    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR`.
29406    pub s_type: StructureType,
29407    ///Optional, may be null.
29408    pub p_next: *const core::ffi::c_void,
29409    pub max_std_vps_count: u32,
29410    pub max_std_sps_count: u32,
29411    pub max_std_pps_count: u32,
29412    ///Optional, may be null.
29413    pub p_parameters_add_info: *const VideoEncodeH265SessionParametersAddInfoKHR,
29414}
29415impl Default for VideoEncodeH265SessionParametersCreateInfoKHR {
29416    #[inline]
29417    fn default() -> Self {
29418        Self {
29419            s_type: StructureType::from_raw(1000039001i32),
29420            p_next: core::ptr::null(),
29421            max_std_vps_count: Default::default(),
29422            max_std_sps_count: Default::default(),
29423            max_std_pps_count: Default::default(),
29424            p_parameters_add_info: core::ptr::null(),
29425        }
29426    }
29427}
29428///[`VkVideoEncodeH265SessionParametersGetInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionParametersGetInfoKHR.html)
29429/**
29430Provided by **VK_KHR_video_encode_h265**.*/
29431///
29432///# Extends
29433///- [`VideoEncodeSessionParametersGetInfoKHR`]
29434#[repr(C)]
29435#[derive(Copy, Clone, Debug)]
29436#[doc(alias = "VkVideoEncodeH265SessionParametersGetInfoKHR")]
29437pub struct VideoEncodeH265SessionParametersGetInfoKHR {
29438    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR`.
29439    pub s_type: StructureType,
29440    ///Optional, may be null.
29441    pub p_next: *const core::ffi::c_void,
29442    pub write_std_vps: u32,
29443    pub write_std_sps: u32,
29444    pub write_std_pps: u32,
29445    pub std_vps_id: u32,
29446    pub std_sps_id: u32,
29447    pub std_pps_id: u32,
29448}
29449impl Default for VideoEncodeH265SessionParametersGetInfoKHR {
29450    #[inline]
29451    fn default() -> Self {
29452        Self {
29453            s_type: StructureType::from_raw(1000039013i32),
29454            p_next: core::ptr::null(),
29455            write_std_vps: Default::default(),
29456            write_std_sps: Default::default(),
29457            write_std_pps: Default::default(),
29458            std_vps_id: Default::default(),
29459            std_sps_id: Default::default(),
29460            std_pps_id: Default::default(),
29461        }
29462    }
29463}
29464///[`VkVideoEncodeH265SessionParametersFeedbackInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265SessionParametersFeedbackInfoKHR.html)
29465/**
29466Provided by **VK_KHR_video_encode_h265**.*/
29467/**
29468**Returned only**, filled by Vulkan, not constructed by the application.*/
29469///
29470///# Extends
29471///- [`VideoEncodeSessionParametersFeedbackInfoKHR`]
29472#[repr(C)]
29473#[derive(Copy, Clone, Debug)]
29474#[doc(alias = "VkVideoEncodeH265SessionParametersFeedbackInfoKHR")]
29475pub struct VideoEncodeH265SessionParametersFeedbackInfoKHR {
29476    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR`.
29477    pub s_type: StructureType,
29478    ///Optional, may be null.
29479    pub p_next: *mut core::ffi::c_void,
29480    pub has_std_vps_overrides: u32,
29481    pub has_std_sps_overrides: u32,
29482    pub has_std_pps_overrides: u32,
29483}
29484impl Default for VideoEncodeH265SessionParametersFeedbackInfoKHR {
29485    #[inline]
29486    fn default() -> Self {
29487        Self {
29488            s_type: StructureType::from_raw(1000039014i32),
29489            p_next: core::ptr::null_mut(),
29490            has_std_vps_overrides: Default::default(),
29491            has_std_sps_overrides: Default::default(),
29492            has_std_pps_overrides: Default::default(),
29493        }
29494    }
29495}
29496///[`VkVideoEncodeH265PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265PictureInfoKHR.html)
29497/**
29498Provided by **VK_KHR_video_encode_h265**.*/
29499///
29500///# Extends
29501///- [`VideoEncodeInfoKHR`]
29502#[repr(C)]
29503#[derive(Copy, Clone, Debug)]
29504#[doc(alias = "VkVideoEncodeH265PictureInfoKHR")]
29505pub struct VideoEncodeH265PictureInfoKHR {
29506    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR`.
29507    pub s_type: StructureType,
29508    ///Optional, may be null.
29509    pub p_next: *const core::ffi::c_void,
29510    ///Length of `p_nalu_slice_segment_entries`.
29511    pub nalu_slice_segment_entry_count: u32,
29512    pub p_nalu_slice_segment_entries: *const VideoEncodeH265NaluSliceSegmentInfoKHR,
29513    pub p_std_picture_info: *const StdVideoEncodeH265PictureInfo,
29514}
29515impl Default for VideoEncodeH265PictureInfoKHR {
29516    #[inline]
29517    fn default() -> Self {
29518        Self {
29519            s_type: StructureType::from_raw(1000039003i32),
29520            p_next: core::ptr::null(),
29521            nalu_slice_segment_entry_count: Default::default(),
29522            p_nalu_slice_segment_entries: core::ptr::null(),
29523            p_std_picture_info: core::ptr::null(),
29524        }
29525    }
29526}
29527///[`VkVideoEncodeH265NaluSliceSegmentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265NaluSliceSegmentInfoKHR.html)
29528/**
29529Provided by **VK_KHR_video_encode_h265**.*/
29530#[repr(C)]
29531#[derive(Copy, Clone, Debug)]
29532#[doc(alias = "VkVideoEncodeH265NaluSliceSegmentInfoKHR")]
29533pub struct VideoEncodeH265NaluSliceSegmentInfoKHR {
29534    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR`.
29535    pub s_type: StructureType,
29536    ///Optional, may be null.
29537    pub p_next: *const core::ffi::c_void,
29538    pub constant_qp: i32,
29539    pub p_std_slice_segment_header: *const StdVideoEncodeH265SliceSegmentHeader,
29540}
29541impl Default for VideoEncodeH265NaluSliceSegmentInfoKHR {
29542    #[inline]
29543    fn default() -> Self {
29544        Self {
29545            s_type: StructureType::from_raw(1000039005i32),
29546            p_next: core::ptr::null(),
29547            constant_qp: Default::default(),
29548            p_std_slice_segment_header: core::ptr::null(),
29549        }
29550    }
29551}
29552///[`VkVideoEncodeH265RateControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265RateControlInfoKHR.html)
29553/**
29554Provided by **VK_KHR_video_encode_h265**.*/
29555///
29556///# Extends
29557///- [`VideoCodingControlInfoKHR`]
29558///- [`VideoBeginCodingInfoKHR`]
29559#[repr(C)]
29560#[derive(Copy, Clone, Debug)]
29561#[doc(alias = "VkVideoEncodeH265RateControlInfoKHR")]
29562pub struct VideoEncodeH265RateControlInfoKHR {
29563    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR`.
29564    pub s_type: StructureType,
29565    ///Optional, may be null.
29566    pub p_next: *const core::ffi::c_void,
29567    pub flags: VideoEncodeH265RateControlFlagsKHR,
29568    pub gop_frame_count: u32,
29569    pub idr_period: u32,
29570    pub consecutive_b_frame_count: u32,
29571    pub sub_layer_count: u32,
29572}
29573impl Default for VideoEncodeH265RateControlInfoKHR {
29574    #[inline]
29575    fn default() -> Self {
29576        Self {
29577            s_type: StructureType::from_raw(1000039009i32),
29578            p_next: core::ptr::null(),
29579            flags: Default::default(),
29580            gop_frame_count: Default::default(),
29581            idr_period: Default::default(),
29582            consecutive_b_frame_count: Default::default(),
29583            sub_layer_count: Default::default(),
29584        }
29585    }
29586}
29587///[`VkVideoEncodeH265QpKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265QpKHR.html)
29588/**
29589Provided by **VK_KHR_video_encode_h265**.*/
29590#[repr(C)]
29591#[derive(Copy, Clone, Debug)]
29592#[doc(alias = "VkVideoEncodeH265QpKHR")]
29593pub struct VideoEncodeH265QpKHR {
29594    pub qp_i: i32,
29595    pub qp_p: i32,
29596    pub qp_b: i32,
29597}
29598impl Default for VideoEncodeH265QpKHR {
29599    #[inline]
29600    fn default() -> Self {
29601        unsafe { core::mem::zeroed() }
29602    }
29603}
29604///[`VkVideoEncodeH265FrameSizeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265FrameSizeKHR.html)
29605/**
29606Provided by **VK_KHR_video_encode_h265**.*/
29607#[repr(C)]
29608#[derive(Copy, Clone, Debug)]
29609#[doc(alias = "VkVideoEncodeH265FrameSizeKHR")]
29610pub struct VideoEncodeH265FrameSizeKHR {
29611    pub frame_i_size: u32,
29612    pub frame_p_size: u32,
29613    pub frame_b_size: u32,
29614}
29615impl Default for VideoEncodeH265FrameSizeKHR {
29616    #[inline]
29617    fn default() -> Self {
29618        unsafe { core::mem::zeroed() }
29619    }
29620}
29621///[`VkVideoEncodeH265GopRemainingFrameInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265GopRemainingFrameInfoKHR.html)
29622/**
29623Provided by **VK_KHR_video_encode_h265**.*/
29624///
29625///# Extends
29626///- [`VideoBeginCodingInfoKHR`]
29627#[repr(C)]
29628#[derive(Copy, Clone, Debug)]
29629#[doc(alias = "VkVideoEncodeH265GopRemainingFrameInfoKHR")]
29630pub struct VideoEncodeH265GopRemainingFrameInfoKHR {
29631    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR`.
29632    pub s_type: StructureType,
29633    ///Optional, may be null.
29634    pub p_next: *const core::ffi::c_void,
29635    pub use_gop_remaining_frames: u32,
29636    pub gop_remaining_i: u32,
29637    pub gop_remaining_p: u32,
29638    pub gop_remaining_b: u32,
29639}
29640impl Default for VideoEncodeH265GopRemainingFrameInfoKHR {
29641    #[inline]
29642    fn default() -> Self {
29643        Self {
29644            s_type: StructureType::from_raw(1000039006i32),
29645            p_next: core::ptr::null(),
29646            use_gop_remaining_frames: Default::default(),
29647            gop_remaining_i: Default::default(),
29648            gop_remaining_p: Default::default(),
29649            gop_remaining_b: Default::default(),
29650        }
29651    }
29652}
29653///[`VkVideoEncodeH265RateControlLayerInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265RateControlLayerInfoKHR.html)
29654/**
29655Provided by **VK_KHR_video_encode_h265**.*/
29656///
29657///# Extends
29658///- [`VideoEncodeRateControlLayerInfoKHR`]
29659#[repr(C)]
29660#[derive(Copy, Clone, Debug)]
29661#[doc(alias = "VkVideoEncodeH265RateControlLayerInfoKHR")]
29662pub struct VideoEncodeH265RateControlLayerInfoKHR {
29663    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR`.
29664    pub s_type: StructureType,
29665    ///Optional, may be null.
29666    pub p_next: *const core::ffi::c_void,
29667    pub use_min_qp: u32,
29668    pub min_qp: VideoEncodeH265QpKHR,
29669    pub use_max_qp: u32,
29670    pub max_qp: VideoEncodeH265QpKHR,
29671    pub use_max_frame_size: u32,
29672    pub max_frame_size: VideoEncodeH265FrameSizeKHR,
29673}
29674impl Default for VideoEncodeH265RateControlLayerInfoKHR {
29675    #[inline]
29676    fn default() -> Self {
29677        Self {
29678            s_type: StructureType::from_raw(1000039010i32),
29679            p_next: core::ptr::null(),
29680            use_min_qp: Default::default(),
29681            min_qp: Default::default(),
29682            use_max_qp: Default::default(),
29683            max_qp: Default::default(),
29684            use_max_frame_size: Default::default(),
29685            max_frame_size: Default::default(),
29686        }
29687    }
29688}
29689///[`VkVideoEncodeH265ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265ProfileInfoKHR.html)
29690/**
29691Provided by **VK_KHR_video_encode_h265**.*/
29692///
29693///# Extends
29694///- [`VideoProfileInfoKHR`]
29695///- [`QueryPoolCreateInfo`]
29696#[repr(C)]
29697#[derive(Copy, Clone, Debug)]
29698#[doc(alias = "VkVideoEncodeH265ProfileInfoKHR")]
29699pub struct VideoEncodeH265ProfileInfoKHR {
29700    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR`.
29701    pub s_type: StructureType,
29702    ///Optional, may be null.
29703    pub p_next: *const core::ffi::c_void,
29704    pub std_profile_idc: StdVideoH265ProfileIdc,
29705}
29706impl Default for VideoEncodeH265ProfileInfoKHR {
29707    #[inline]
29708    fn default() -> Self {
29709        Self {
29710            s_type: StructureType::from_raw(1000039007i32),
29711            p_next: core::ptr::null(),
29712            std_profile_idc: Default::default(),
29713        }
29714    }
29715}
29716///[`VkVideoEncodeH265DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeH265DpbSlotInfoKHR.html)
29717/**
29718Provided by **VK_KHR_video_encode_h265**.*/
29719///
29720///# Extends
29721///- [`VideoReferenceSlotInfoKHR`]
29722#[repr(C)]
29723#[derive(Copy, Clone, Debug)]
29724#[doc(alias = "VkVideoEncodeH265DpbSlotInfoKHR")]
29725pub struct VideoEncodeH265DpbSlotInfoKHR {
29726    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR`.
29727    pub s_type: StructureType,
29728    ///Optional, may be null.
29729    pub p_next: *const core::ffi::c_void,
29730    pub p_std_reference_info: *const StdVideoEncodeH265ReferenceInfo,
29731}
29732impl Default for VideoEncodeH265DpbSlotInfoKHR {
29733    #[inline]
29734    fn default() -> Self {
29735        Self {
29736            s_type: StructureType::from_raw(1000039004i32),
29737            p_next: core::ptr::null(),
29738            p_std_reference_info: core::ptr::null(),
29739        }
29740    }
29741}
29742///[`VkVideoEncodeAV1CapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1CapabilitiesKHR.html)
29743/**
29744Provided by **VK_KHR_video_encode_av1**.*/
29745/**
29746**Returned only**, filled by Vulkan, not constructed by the application.*/
29747///
29748///# Extends
29749///- [`VideoCapabilitiesKHR`]
29750#[repr(C)]
29751#[derive(Copy, Clone, Debug)]
29752#[doc(alias = "VkVideoEncodeAV1CapabilitiesKHR")]
29753pub struct VideoEncodeAV1CapabilitiesKHR {
29754    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR`.
29755    pub s_type: StructureType,
29756    ///Optional, may be null.
29757    pub p_next: *mut core::ffi::c_void,
29758    pub flags: VideoEncodeAV1CapabilityFlagsKHR,
29759    pub max_level: StdVideoAV1Level,
29760    pub coded_picture_alignment: Extent2D,
29761    pub max_tiles: Extent2D,
29762    pub min_tile_size: Extent2D,
29763    pub max_tile_size: Extent2D,
29764    pub superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR,
29765    pub max_single_reference_count: u32,
29766    pub single_reference_name_mask: u32,
29767    pub max_unidirectional_compound_reference_count: u32,
29768    pub max_unidirectional_compound_group1_reference_count: u32,
29769    pub unidirectional_compound_reference_name_mask: u32,
29770    pub max_bidirectional_compound_reference_count: u32,
29771    pub max_bidirectional_compound_group1_reference_count: u32,
29772    pub max_bidirectional_compound_group2_reference_count: u32,
29773    pub bidirectional_compound_reference_name_mask: u32,
29774    pub max_temporal_layer_count: u32,
29775    pub max_spatial_layer_count: u32,
29776    pub max_operating_points: u32,
29777    pub min_q_index: u32,
29778    pub max_q_index: u32,
29779    pub prefers_gop_remaining_frames: u32,
29780    pub requires_gop_remaining_frames: u32,
29781    pub std_syntax_flags: VideoEncodeAV1StdFlagsKHR,
29782}
29783impl Default for VideoEncodeAV1CapabilitiesKHR {
29784    #[inline]
29785    fn default() -> Self {
29786        Self {
29787            s_type: StructureType::from_raw(1000513000i32),
29788            p_next: core::ptr::null_mut(),
29789            flags: Default::default(),
29790            max_level: Default::default(),
29791            coded_picture_alignment: Default::default(),
29792            max_tiles: Default::default(),
29793            min_tile_size: Default::default(),
29794            max_tile_size: Default::default(),
29795            superblock_sizes: Default::default(),
29796            max_single_reference_count: Default::default(),
29797            single_reference_name_mask: Default::default(),
29798            max_unidirectional_compound_reference_count: Default::default(),
29799            max_unidirectional_compound_group1_reference_count: Default::default(),
29800            unidirectional_compound_reference_name_mask: Default::default(),
29801            max_bidirectional_compound_reference_count: Default::default(),
29802            max_bidirectional_compound_group1_reference_count: Default::default(),
29803            max_bidirectional_compound_group2_reference_count: Default::default(),
29804            bidirectional_compound_reference_name_mask: Default::default(),
29805            max_temporal_layer_count: Default::default(),
29806            max_spatial_layer_count: Default::default(),
29807            max_operating_points: Default::default(),
29808            min_q_index: Default::default(),
29809            max_q_index: Default::default(),
29810            prefers_gop_remaining_frames: Default::default(),
29811            requires_gop_remaining_frames: Default::default(),
29812            std_syntax_flags: Default::default(),
29813        }
29814    }
29815}
29816///[`VkVideoEncodeAV1QualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1QualityLevelPropertiesKHR.html)
29817/**
29818Provided by **VK_KHR_video_encode_av1**.*/
29819/**
29820**Returned only**, filled by Vulkan, not constructed by the application.*/
29821///
29822///# Extends
29823///- [`VideoEncodeQualityLevelPropertiesKHR`]
29824#[repr(C)]
29825#[derive(Copy, Clone, Debug)]
29826#[doc(alias = "VkVideoEncodeAV1QualityLevelPropertiesKHR")]
29827pub struct VideoEncodeAV1QualityLevelPropertiesKHR {
29828    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR`.
29829    pub s_type: StructureType,
29830    ///Optional, may be null.
29831    pub p_next: *mut core::ffi::c_void,
29832    pub preferred_rate_control_flags: VideoEncodeAV1RateControlFlagsKHR,
29833    pub preferred_gop_frame_count: u32,
29834    pub preferred_key_frame_period: u32,
29835    pub preferred_consecutive_bipredictive_frame_count: u32,
29836    pub preferred_temporal_layer_count: u32,
29837    pub preferred_constant_q_index: VideoEncodeAV1QIndexKHR,
29838    pub preferred_max_single_reference_count: u32,
29839    pub preferred_single_reference_name_mask: u32,
29840    pub preferred_max_unidirectional_compound_reference_count: u32,
29841    pub preferred_max_unidirectional_compound_group1_reference_count: u32,
29842    pub preferred_unidirectional_compound_reference_name_mask: u32,
29843    pub preferred_max_bidirectional_compound_reference_count: u32,
29844    pub preferred_max_bidirectional_compound_group1_reference_count: u32,
29845    pub preferred_max_bidirectional_compound_group2_reference_count: u32,
29846    pub preferred_bidirectional_compound_reference_name_mask: u32,
29847}
29848impl Default for VideoEncodeAV1QualityLevelPropertiesKHR {
29849    #[inline]
29850    fn default() -> Self {
29851        Self {
29852            s_type: StructureType::from_raw(1000513008i32),
29853            p_next: core::ptr::null_mut(),
29854            preferred_rate_control_flags: Default::default(),
29855            preferred_gop_frame_count: Default::default(),
29856            preferred_key_frame_period: Default::default(),
29857            preferred_consecutive_bipredictive_frame_count: Default::default(),
29858            preferred_temporal_layer_count: Default::default(),
29859            preferred_constant_q_index: Default::default(),
29860            preferred_max_single_reference_count: Default::default(),
29861            preferred_single_reference_name_mask: Default::default(),
29862            preferred_max_unidirectional_compound_reference_count: Default::default(),
29863            preferred_max_unidirectional_compound_group1_reference_count: Default::default(),
29864            preferred_unidirectional_compound_reference_name_mask: Default::default(),
29865            preferred_max_bidirectional_compound_reference_count: Default::default(),
29866            preferred_max_bidirectional_compound_group1_reference_count: Default::default(),
29867            preferred_max_bidirectional_compound_group2_reference_count: Default::default(),
29868            preferred_bidirectional_compound_reference_name_mask: Default::default(),
29869        }
29870    }
29871}
29872///[`VkPhysicalDeviceVideoEncodeAV1FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeAV1FeaturesKHR.html)
29873/**
29874Provided by **VK_KHR_video_encode_av1**.*/
29875///
29876///# Extends
29877///- [`PhysicalDeviceFeatures2`]
29878///- [`DeviceCreateInfo`]
29879#[repr(C)]
29880#[derive(Copy, Clone, Debug)]
29881#[doc(alias = "VkPhysicalDeviceVideoEncodeAV1FeaturesKHR")]
29882pub struct PhysicalDeviceVideoEncodeAV1FeaturesKHR {
29883    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR`.
29884    pub s_type: StructureType,
29885    ///Optional, may be null.
29886    pub p_next: *mut core::ffi::c_void,
29887    pub video_encode_av1: u32,
29888}
29889impl Default for PhysicalDeviceVideoEncodeAV1FeaturesKHR {
29890    #[inline]
29891    fn default() -> Self {
29892        Self {
29893            s_type: StructureType::from_raw(1000513004i32),
29894            p_next: core::ptr::null_mut(),
29895            video_encode_av1: Default::default(),
29896        }
29897    }
29898}
29899///[`VkVideoEncodeAV1SessionCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1SessionCreateInfoKHR.html)
29900/**
29901Provided by **VK_KHR_video_encode_av1**.*/
29902///
29903///# Extends
29904///- [`VideoSessionCreateInfoKHR`]
29905#[repr(C)]
29906#[derive(Copy, Clone, Debug)]
29907#[doc(alias = "VkVideoEncodeAV1SessionCreateInfoKHR")]
29908pub struct VideoEncodeAV1SessionCreateInfoKHR {
29909    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR`.
29910    pub s_type: StructureType,
29911    ///Optional, may be null.
29912    pub p_next: *const core::ffi::c_void,
29913    pub use_max_level: u32,
29914    pub max_level: StdVideoAV1Level,
29915}
29916impl Default for VideoEncodeAV1SessionCreateInfoKHR {
29917    #[inline]
29918    fn default() -> Self {
29919        Self {
29920            s_type: StructureType::from_raw(1000513009i32),
29921            p_next: core::ptr::null(),
29922            use_max_level: Default::default(),
29923            max_level: Default::default(),
29924        }
29925    }
29926}
29927///[`VkVideoEncodeAV1SessionParametersCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1SessionParametersCreateInfoKHR.html)
29928/**
29929Provided by **VK_KHR_video_encode_av1**.*/
29930///
29931///# Extends
29932///- [`VideoSessionParametersCreateInfoKHR`]
29933#[repr(C)]
29934#[derive(Copy, Clone, Debug)]
29935#[doc(alias = "VkVideoEncodeAV1SessionParametersCreateInfoKHR")]
29936pub struct VideoEncodeAV1SessionParametersCreateInfoKHR {
29937    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR`.
29938    pub s_type: StructureType,
29939    ///Optional, may be null.
29940    pub p_next: *const core::ffi::c_void,
29941    pub p_std_sequence_header: *const StdVideoAV1SequenceHeader,
29942    ///Optional, may be null.
29943    pub p_std_decoder_model_info: *const StdVideoEncodeAV1DecoderModelInfo,
29944    ///Length of `p_std_operating_points`.
29945    pub std_operating_point_count: u32,
29946    ///Optional, may be null.
29947    pub p_std_operating_points: *const StdVideoEncodeAV1OperatingPointInfo,
29948}
29949impl Default for VideoEncodeAV1SessionParametersCreateInfoKHR {
29950    #[inline]
29951    fn default() -> Self {
29952        Self {
29953            s_type: StructureType::from_raw(1000513001i32),
29954            p_next: core::ptr::null(),
29955            p_std_sequence_header: core::ptr::null(),
29956            p_std_decoder_model_info: core::ptr::null(),
29957            std_operating_point_count: Default::default(),
29958            p_std_operating_points: core::ptr::null(),
29959        }
29960    }
29961}
29962///[`VkVideoEncodeAV1DpbSlotInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1DpbSlotInfoKHR.html)
29963/**
29964Provided by **VK_KHR_video_encode_av1**.*/
29965///
29966///# Extends
29967///- [`VideoReferenceSlotInfoKHR`]
29968#[repr(C)]
29969#[derive(Copy, Clone, Debug)]
29970#[doc(alias = "VkVideoEncodeAV1DpbSlotInfoKHR")]
29971pub struct VideoEncodeAV1DpbSlotInfoKHR {
29972    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR`.
29973    pub s_type: StructureType,
29974    ///Optional, may be null.
29975    pub p_next: *const core::ffi::c_void,
29976    pub p_std_reference_info: *const StdVideoEncodeAV1ReferenceInfo,
29977}
29978impl Default for VideoEncodeAV1DpbSlotInfoKHR {
29979    #[inline]
29980    fn default() -> Self {
29981        Self {
29982            s_type: StructureType::from_raw(1000513003i32),
29983            p_next: core::ptr::null(),
29984            p_std_reference_info: core::ptr::null(),
29985        }
29986    }
29987}
29988///[`VkVideoEncodeAV1PictureInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1PictureInfoKHR.html)
29989/**
29990Provided by **VK_KHR_video_encode_av1**.*/
29991///
29992///# Extends
29993///- [`VideoEncodeInfoKHR`]
29994#[repr(C)]
29995#[derive(Copy, Clone, Debug)]
29996#[doc(alias = "VkVideoEncodeAV1PictureInfoKHR")]
29997pub struct VideoEncodeAV1PictureInfoKHR {
29998    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR`.
29999    pub s_type: StructureType,
30000    ///Optional, may be null.
30001    pub p_next: *const core::ffi::c_void,
30002    pub prediction_mode: VideoEncodeAV1PredictionModeKHR,
30003    pub rate_control_group: VideoEncodeAV1RateControlGroupKHR,
30004    pub constant_q_index: u32,
30005    pub p_std_picture_info: *const StdVideoEncodeAV1PictureInfo,
30006    pub reference_name_slot_indices: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR
30007        as usize],
30008    pub primary_reference_cdf_only: u32,
30009    pub generate_obu_extension_header: u32,
30010}
30011impl Default for VideoEncodeAV1PictureInfoKHR {
30012    #[inline]
30013    fn default() -> Self {
30014        Self {
30015            s_type: StructureType::from_raw(1000513002i32),
30016            p_next: core::ptr::null(),
30017            prediction_mode: Default::default(),
30018            rate_control_group: Default::default(),
30019            constant_q_index: Default::default(),
30020            p_std_picture_info: core::ptr::null(),
30021            reference_name_slot_indices: unsafe { core::mem::zeroed() },
30022            primary_reference_cdf_only: Default::default(),
30023            generate_obu_extension_header: Default::default(),
30024        }
30025    }
30026}
30027///[`VkVideoEncodeAV1ProfileInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1ProfileInfoKHR.html)
30028/**
30029Provided by **VK_KHR_video_encode_av1**.*/
30030///
30031///# Extends
30032///- [`VideoProfileInfoKHR`]
30033///- [`QueryPoolCreateInfo`]
30034#[repr(C)]
30035#[derive(Copy, Clone, Debug)]
30036#[doc(alias = "VkVideoEncodeAV1ProfileInfoKHR")]
30037pub struct VideoEncodeAV1ProfileInfoKHR {
30038    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR`.
30039    pub s_type: StructureType,
30040    ///Optional, may be null.
30041    pub p_next: *const core::ffi::c_void,
30042    pub std_profile: StdVideoAV1Profile,
30043}
30044impl Default for VideoEncodeAV1ProfileInfoKHR {
30045    #[inline]
30046    fn default() -> Self {
30047        Self {
30048            s_type: StructureType::from_raw(1000513005i32),
30049            p_next: core::ptr::null(),
30050            std_profile: Default::default(),
30051        }
30052    }
30053}
30054///[`VkVideoEncodeAV1RateControlInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1RateControlInfoKHR.html)
30055/**
30056Provided by **VK_KHR_video_encode_av1**.*/
30057///
30058///# Extends
30059///- [`VideoCodingControlInfoKHR`]
30060///- [`VideoBeginCodingInfoKHR`]
30061#[repr(C)]
30062#[derive(Copy, Clone, Debug)]
30063#[doc(alias = "VkVideoEncodeAV1RateControlInfoKHR")]
30064pub struct VideoEncodeAV1RateControlInfoKHR {
30065    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR`.
30066    pub s_type: StructureType,
30067    ///Optional, may be null.
30068    pub p_next: *const core::ffi::c_void,
30069    pub flags: VideoEncodeAV1RateControlFlagsKHR,
30070    pub gop_frame_count: u32,
30071    pub key_frame_period: u32,
30072    pub consecutive_bipredictive_frame_count: u32,
30073    pub temporal_layer_count: u32,
30074}
30075impl Default for VideoEncodeAV1RateControlInfoKHR {
30076    #[inline]
30077    fn default() -> Self {
30078        Self {
30079            s_type: StructureType::from_raw(1000513006i32),
30080            p_next: core::ptr::null(),
30081            flags: Default::default(),
30082            gop_frame_count: Default::default(),
30083            key_frame_period: Default::default(),
30084            consecutive_bipredictive_frame_count: Default::default(),
30085            temporal_layer_count: Default::default(),
30086        }
30087    }
30088}
30089///[`VkVideoEncodeAV1QIndexKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1QIndexKHR.html)
30090/**
30091Provided by **VK_KHR_video_encode_av1**.*/
30092#[repr(C)]
30093#[derive(Copy, Clone, Debug)]
30094#[doc(alias = "VkVideoEncodeAV1QIndexKHR")]
30095pub struct VideoEncodeAV1QIndexKHR {
30096    pub intra_q_index: u32,
30097    pub predictive_q_index: u32,
30098    pub bipredictive_q_index: u32,
30099}
30100impl Default for VideoEncodeAV1QIndexKHR {
30101    #[inline]
30102    fn default() -> Self {
30103        unsafe { core::mem::zeroed() }
30104    }
30105}
30106///[`VkVideoEncodeAV1FrameSizeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1FrameSizeKHR.html)
30107/**
30108Provided by **VK_KHR_video_encode_av1**.*/
30109#[repr(C)]
30110#[derive(Copy, Clone, Debug)]
30111#[doc(alias = "VkVideoEncodeAV1FrameSizeKHR")]
30112pub struct VideoEncodeAV1FrameSizeKHR {
30113    pub intra_frame_size: u32,
30114    pub predictive_frame_size: u32,
30115    pub bipredictive_frame_size: u32,
30116}
30117impl Default for VideoEncodeAV1FrameSizeKHR {
30118    #[inline]
30119    fn default() -> Self {
30120        unsafe { core::mem::zeroed() }
30121    }
30122}
30123///[`VkVideoEncodeAV1GopRemainingFrameInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1GopRemainingFrameInfoKHR.html)
30124/**
30125Provided by **VK_KHR_video_encode_av1**.*/
30126///
30127///# Extends
30128///- [`VideoBeginCodingInfoKHR`]
30129#[repr(C)]
30130#[derive(Copy, Clone, Debug)]
30131#[doc(alias = "VkVideoEncodeAV1GopRemainingFrameInfoKHR")]
30132pub struct VideoEncodeAV1GopRemainingFrameInfoKHR {
30133    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR`.
30134    pub s_type: StructureType,
30135    ///Optional, may be null.
30136    pub p_next: *const core::ffi::c_void,
30137    pub use_gop_remaining_frames: u32,
30138    pub gop_remaining_intra: u32,
30139    pub gop_remaining_predictive: u32,
30140    pub gop_remaining_bipredictive: u32,
30141}
30142impl Default for VideoEncodeAV1GopRemainingFrameInfoKHR {
30143    #[inline]
30144    fn default() -> Self {
30145        Self {
30146            s_type: StructureType::from_raw(1000513010i32),
30147            p_next: core::ptr::null(),
30148            use_gop_remaining_frames: Default::default(),
30149            gop_remaining_intra: Default::default(),
30150            gop_remaining_predictive: Default::default(),
30151            gop_remaining_bipredictive: Default::default(),
30152        }
30153    }
30154}
30155///[`VkVideoEncodeAV1RateControlLayerInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1RateControlLayerInfoKHR.html)
30156/**
30157Provided by **VK_KHR_video_encode_av1**.*/
30158///
30159///# Extends
30160///- [`VideoEncodeRateControlLayerInfoKHR`]
30161#[repr(C)]
30162#[derive(Copy, Clone, Debug)]
30163#[doc(alias = "VkVideoEncodeAV1RateControlLayerInfoKHR")]
30164pub struct VideoEncodeAV1RateControlLayerInfoKHR {
30165    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR`.
30166    pub s_type: StructureType,
30167    ///Optional, may be null.
30168    pub p_next: *const core::ffi::c_void,
30169    pub use_min_q_index: u32,
30170    pub min_q_index: VideoEncodeAV1QIndexKHR,
30171    pub use_max_q_index: u32,
30172    pub max_q_index: VideoEncodeAV1QIndexKHR,
30173    pub use_max_frame_size: u32,
30174    pub max_frame_size: VideoEncodeAV1FrameSizeKHR,
30175}
30176impl Default for VideoEncodeAV1RateControlLayerInfoKHR {
30177    #[inline]
30178    fn default() -> Self {
30179        Self {
30180            s_type: StructureType::from_raw(1000513007i32),
30181            p_next: core::ptr::null(),
30182            use_min_q_index: Default::default(),
30183            min_q_index: Default::default(),
30184            use_max_q_index: Default::default(),
30185            max_q_index: Default::default(),
30186            use_max_frame_size: Default::default(),
30187            max_frame_size: Default::default(),
30188        }
30189    }
30190}
30191///[`VkPhysicalDeviceInheritedViewportScissorFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.html)
30192/**
30193Provided by **VK_NV_inherited_viewport_scissor**.*/
30194///
30195///# Extends
30196///- [`PhysicalDeviceFeatures2`]
30197///- [`DeviceCreateInfo`]
30198#[repr(C)]
30199#[derive(Copy, Clone, Debug)]
30200#[doc(alias = "VkPhysicalDeviceInheritedViewportScissorFeaturesNV")]
30201pub struct PhysicalDeviceInheritedViewportScissorFeaturesNV {
30202    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV`.
30203    pub s_type: StructureType,
30204    ///Optional, may be null.
30205    pub p_next: *mut core::ffi::c_void,
30206    pub inherited_viewport_scissor2_d: u32,
30207}
30208impl Default for PhysicalDeviceInheritedViewportScissorFeaturesNV {
30209    #[inline]
30210    fn default() -> Self {
30211        Self {
30212            s_type: StructureType::from_raw(1000278000i32),
30213            p_next: core::ptr::null_mut(),
30214            inherited_viewport_scissor2_d: Default::default(),
30215        }
30216    }
30217}
30218///[`VkCommandBufferInheritanceViewportScissorInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceViewportScissorInfoNV.html)
30219/**
30220Provided by **VK_NV_inherited_viewport_scissor**.*/
30221///
30222///# Extends
30223///- [`CommandBufferInheritanceInfo`]
30224#[repr(C)]
30225#[derive(Copy, Clone, Debug)]
30226#[doc(alias = "VkCommandBufferInheritanceViewportScissorInfoNV")]
30227pub struct CommandBufferInheritanceViewportScissorInfoNV {
30228    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV`.
30229    pub s_type: StructureType,
30230    ///Optional, may be null.
30231    pub p_next: *const core::ffi::c_void,
30232    pub viewport_scissor2_d: u32,
30233    pub viewport_depth_count: u32,
30234    pub p_viewport_depths: *const Viewport,
30235}
30236impl Default for CommandBufferInheritanceViewportScissorInfoNV {
30237    #[inline]
30238    fn default() -> Self {
30239        Self {
30240            s_type: StructureType::from_raw(1000278001i32),
30241            p_next: core::ptr::null(),
30242            viewport_scissor2_d: Default::default(),
30243            viewport_depth_count: Default::default(),
30244            p_viewport_depths: core::ptr::null(),
30245        }
30246    }
30247}
30248///[`VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.html)
30249/**
30250Provided by **VK_EXT_ycbcr_2plane_444_formats**.*/
30251///
30252///# Extends
30253///- [`PhysicalDeviceFeatures2`]
30254///- [`DeviceCreateInfo`]
30255#[repr(C)]
30256#[derive(Copy, Clone, Debug)]
30257#[doc(alias = "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT")]
30258pub struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
30259    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT`.
30260    pub s_type: StructureType,
30261    ///Optional, may be null.
30262    pub p_next: *mut core::ffi::c_void,
30263    pub ycbcr2plane444_formats: u32,
30264}
30265impl Default for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
30266    #[inline]
30267    fn default() -> Self {
30268        Self {
30269            s_type: StructureType::from_raw(1000330000i32),
30270            p_next: core::ptr::null_mut(),
30271            ycbcr2plane444_formats: Default::default(),
30272        }
30273    }
30274}
30275///[`VkPhysicalDeviceProvokingVertexFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProvokingVertexFeaturesEXT.html)
30276/**
30277Provided by **VK_EXT_provoking_vertex**.*/
30278///
30279///# Extends
30280///- [`PhysicalDeviceFeatures2`]
30281///- [`DeviceCreateInfo`]
30282#[repr(C)]
30283#[derive(Copy, Clone, Debug)]
30284#[doc(alias = "VkPhysicalDeviceProvokingVertexFeaturesEXT")]
30285pub struct PhysicalDeviceProvokingVertexFeaturesEXT {
30286    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT`.
30287    pub s_type: StructureType,
30288    ///Optional, may be null.
30289    pub p_next: *mut core::ffi::c_void,
30290    pub provoking_vertex_last: u32,
30291    pub transform_feedback_preserves_provoking_vertex: u32,
30292}
30293impl Default for PhysicalDeviceProvokingVertexFeaturesEXT {
30294    #[inline]
30295    fn default() -> Self {
30296        Self {
30297            s_type: StructureType::from_raw(1000254000i32),
30298            p_next: core::ptr::null_mut(),
30299            provoking_vertex_last: Default::default(),
30300            transform_feedback_preserves_provoking_vertex: Default::default(),
30301        }
30302    }
30303}
30304///[`VkPhysicalDeviceProvokingVertexPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceProvokingVertexPropertiesEXT.html)
30305/**
30306Provided by **VK_EXT_provoking_vertex**.*/
30307/**
30308**Returned only**, filled by Vulkan, not constructed by the application.*/
30309///
30310///# Extends
30311///- [`PhysicalDeviceProperties2`]
30312#[repr(C)]
30313#[derive(Copy, Clone, Debug)]
30314#[doc(alias = "VkPhysicalDeviceProvokingVertexPropertiesEXT")]
30315pub struct PhysicalDeviceProvokingVertexPropertiesEXT {
30316    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT`.
30317    pub s_type: StructureType,
30318    ///Optional, may be null.
30319    pub p_next: *mut core::ffi::c_void,
30320    pub provoking_vertex_mode_per_pipeline: u32,
30321    pub transform_feedback_preserves_triangle_fan_provoking_vertex: u32,
30322}
30323impl Default for PhysicalDeviceProvokingVertexPropertiesEXT {
30324    #[inline]
30325    fn default() -> Self {
30326        Self {
30327            s_type: StructureType::from_raw(1000254002i32),
30328            p_next: core::ptr::null_mut(),
30329            provoking_vertex_mode_per_pipeline: Default::default(),
30330            transform_feedback_preserves_triangle_fan_provoking_vertex: Default::default(),
30331        }
30332    }
30333}
30334///[`VkPipelineRasterizationProvokingVertexStateCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRasterizationProvokingVertexStateCreateInfoEXT.html)
30335/**
30336Provided by **VK_EXT_provoking_vertex**.*/
30337///
30338///# Extends
30339///- [`PipelineRasterizationStateCreateInfo`]
30340#[repr(C)]
30341#[derive(Copy, Clone, Debug)]
30342#[doc(alias = "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT")]
30343pub struct PipelineRasterizationProvokingVertexStateCreateInfoEXT {
30344    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT`.
30345    pub s_type: StructureType,
30346    ///Optional, may be null.
30347    pub p_next: *const core::ffi::c_void,
30348    pub provoking_vertex_mode: ProvokingVertexModeEXT,
30349}
30350impl Default for PipelineRasterizationProvokingVertexStateCreateInfoEXT {
30351    #[inline]
30352    fn default() -> Self {
30353        Self {
30354            s_type: StructureType::from_raw(1000254001i32),
30355            p_next: core::ptr::null(),
30356            provoking_vertex_mode: Default::default(),
30357        }
30358    }
30359}
30360///[`VkVideoEncodeIntraRefreshCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeIntraRefreshCapabilitiesKHR.html)
30361/**
30362Provided by **VK_KHR_video_encode_intra_refresh**.*/
30363/**
30364**Returned only**, filled by Vulkan, not constructed by the application.*/
30365///
30366///# Extends
30367///- [`VideoCapabilitiesKHR`]
30368#[repr(C)]
30369#[derive(Copy, Clone, Debug)]
30370#[doc(alias = "VkVideoEncodeIntraRefreshCapabilitiesKHR")]
30371pub struct VideoEncodeIntraRefreshCapabilitiesKHR {
30372    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR`.
30373    pub s_type: StructureType,
30374    ///Optional, may be null.
30375    pub p_next: *mut core::ffi::c_void,
30376    pub intra_refresh_modes: VideoEncodeIntraRefreshModeFlagsKHR,
30377    pub max_intra_refresh_cycle_duration: u32,
30378    pub max_intra_refresh_active_reference_pictures: u32,
30379    pub partition_independent_intra_refresh_regions: u32,
30380    pub non_rectangular_intra_refresh_regions: u32,
30381}
30382impl Default for VideoEncodeIntraRefreshCapabilitiesKHR {
30383    #[inline]
30384    fn default() -> Self {
30385        Self {
30386            s_type: StructureType::from_raw(1000552000i32),
30387            p_next: core::ptr::null_mut(),
30388            intra_refresh_modes: Default::default(),
30389            max_intra_refresh_cycle_duration: Default::default(),
30390            max_intra_refresh_active_reference_pictures: Default::default(),
30391            partition_independent_intra_refresh_regions: Default::default(),
30392            non_rectangular_intra_refresh_regions: Default::default(),
30393        }
30394    }
30395}
30396///[`VkVideoEncodeSessionIntraRefreshCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeSessionIntraRefreshCreateInfoKHR.html)
30397/**
30398Provided by **VK_KHR_video_encode_intra_refresh**.*/
30399///
30400///# Extends
30401///- [`VideoSessionCreateInfoKHR`]
30402#[repr(C)]
30403#[derive(Copy, Clone, Debug)]
30404#[doc(alias = "VkVideoEncodeSessionIntraRefreshCreateInfoKHR")]
30405pub struct VideoEncodeSessionIntraRefreshCreateInfoKHR {
30406    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR`.
30407    pub s_type: StructureType,
30408    ///Optional, may be null.
30409    pub p_next: *const core::ffi::c_void,
30410    pub intra_refresh_mode: VideoEncodeIntraRefreshModeFlagBitsKHR,
30411}
30412impl Default for VideoEncodeSessionIntraRefreshCreateInfoKHR {
30413    #[inline]
30414    fn default() -> Self {
30415        Self {
30416            s_type: StructureType::from_raw(1000552001i32),
30417            p_next: core::ptr::null(),
30418            intra_refresh_mode: Default::default(),
30419        }
30420    }
30421}
30422///[`VkVideoEncodeIntraRefreshInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeIntraRefreshInfoKHR.html)
30423/**
30424Provided by **VK_KHR_video_encode_intra_refresh**.*/
30425///
30426///# Extends
30427///- [`VideoEncodeInfoKHR`]
30428#[repr(C)]
30429#[derive(Copy, Clone, Debug)]
30430#[doc(alias = "VkVideoEncodeIntraRefreshInfoKHR")]
30431pub struct VideoEncodeIntraRefreshInfoKHR {
30432    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR`.
30433    pub s_type: StructureType,
30434    ///Optional, may be null.
30435    pub p_next: *const core::ffi::c_void,
30436    pub intra_refresh_cycle_duration: u32,
30437    pub intra_refresh_index: u32,
30438}
30439impl Default for VideoEncodeIntraRefreshInfoKHR {
30440    #[inline]
30441    fn default() -> Self {
30442        Self {
30443            s_type: StructureType::from_raw(1000552002i32),
30444            p_next: core::ptr::null(),
30445            intra_refresh_cycle_duration: Default::default(),
30446            intra_refresh_index: Default::default(),
30447        }
30448    }
30449}
30450///[`VkVideoReferenceIntraRefreshInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoReferenceIntraRefreshInfoKHR.html)
30451/**
30452Provided by **VK_KHR_video_encode_intra_refresh**.*/
30453///
30454///# Extends
30455///- [`VideoReferenceSlotInfoKHR`]
30456#[repr(C)]
30457#[derive(Copy, Clone, Debug)]
30458#[doc(alias = "VkVideoReferenceIntraRefreshInfoKHR")]
30459pub struct VideoReferenceIntraRefreshInfoKHR {
30460    ///Must be `VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR`.
30461    pub s_type: StructureType,
30462    ///Optional, may be null.
30463    pub p_next: *const core::ffi::c_void,
30464    pub dirty_intra_refresh_regions: u32,
30465}
30466impl Default for VideoReferenceIntraRefreshInfoKHR {
30467    #[inline]
30468    fn default() -> Self {
30469        Self {
30470            s_type: StructureType::from_raw(1000552003i32),
30471            p_next: core::ptr::null(),
30472            dirty_intra_refresh_regions: Default::default(),
30473        }
30474    }
30475}
30476///[`VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR.html)
30477/**
30478Provided by **VK_KHR_video_encode_intra_refresh**.*/
30479///
30480///# Extends
30481///- [`PhysicalDeviceFeatures2`]
30482///- [`DeviceCreateInfo`]
30483#[repr(C)]
30484#[derive(Copy, Clone, Debug)]
30485#[doc(alias = "VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR")]
30486pub struct PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
30487    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR`.
30488    pub s_type: StructureType,
30489    ///Optional, may be null.
30490    pub p_next: *mut core::ffi::c_void,
30491    pub video_encode_intra_refresh: u32,
30492}
30493impl Default for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
30494    #[inline]
30495    fn default() -> Self {
30496        Self {
30497            s_type: StructureType::from_raw(1000552004i32),
30498            p_next: core::ptr::null_mut(),
30499            video_encode_intra_refresh: Default::default(),
30500        }
30501    }
30502}
30503///[`VkCuModuleCreateInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuModuleCreateInfoNVX.html)
30504/**
30505Provided by **VK_NVX_binary_import**.*/
30506///
30507///# Extended By
30508///- [`CuModuleTexturingModeCreateInfoNVX`]
30509#[repr(C)]
30510#[derive(Copy, Clone, Debug)]
30511#[doc(alias = "VkCuModuleCreateInfoNVX")]
30512pub struct CuModuleCreateInfoNVX {
30513    ///Must be `VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX`.
30514    pub s_type: StructureType,
30515    ///Optional, may be null.
30516    pub p_next: *const core::ffi::c_void,
30517    ///Length of `p_data`.
30518    pub data_size: usize,
30519    pub p_data: *const core::ffi::c_void,
30520}
30521impl Default for CuModuleCreateInfoNVX {
30522    #[inline]
30523    fn default() -> Self {
30524        Self {
30525            s_type: StructureType::from_raw(1000029000i32),
30526            p_next: core::ptr::null(),
30527            data_size: Default::default(),
30528            p_data: core::ptr::null(),
30529        }
30530    }
30531}
30532///[`VkCuModuleTexturingModeCreateInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuModuleTexturingModeCreateInfoNVX.html)
30533/**
30534Provided by **VK_NVX_binary_import**.*/
30535///
30536///# Extends
30537///- [`CuModuleCreateInfoNVX`]
30538#[repr(C)]
30539#[derive(Copy, Clone, Debug)]
30540#[doc(alias = "VkCuModuleTexturingModeCreateInfoNVX")]
30541pub struct CuModuleTexturingModeCreateInfoNVX {
30542    ///Must be `VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX`.
30543    pub s_type: StructureType,
30544    ///Optional, may be null.
30545    pub p_next: *const core::ffi::c_void,
30546    pub use64bit_texturing: u32,
30547}
30548impl Default for CuModuleTexturingModeCreateInfoNVX {
30549    #[inline]
30550    fn default() -> Self {
30551        Self {
30552            s_type: StructureType::from_raw(1000029004i32),
30553            p_next: core::ptr::null(),
30554            use64bit_texturing: Default::default(),
30555        }
30556    }
30557}
30558///[`VkCuFunctionCreateInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuFunctionCreateInfoNVX.html)
30559/**
30560Provided by **VK_NVX_binary_import**.*/
30561#[repr(C)]
30562#[derive(Copy, Clone, Debug)]
30563#[doc(alias = "VkCuFunctionCreateInfoNVX")]
30564pub struct CuFunctionCreateInfoNVX {
30565    ///Must be `VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX`.
30566    pub s_type: StructureType,
30567    ///Optional, may be null.
30568    pub p_next: *const core::ffi::c_void,
30569    pub module: CuModuleNVX,
30570    pub p_name: *const core::ffi::c_char,
30571}
30572impl Default for CuFunctionCreateInfoNVX {
30573    #[inline]
30574    fn default() -> Self {
30575        Self {
30576            s_type: StructureType::from_raw(1000029001i32),
30577            p_next: core::ptr::null(),
30578            module: Default::default(),
30579            p_name: core::ptr::null(),
30580        }
30581    }
30582}
30583///[`VkCuLaunchInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuLaunchInfoNVX.html)
30584/**
30585Provided by **VK_NVX_binary_import**.*/
30586#[repr(C)]
30587#[derive(Copy, Clone, Debug)]
30588#[doc(alias = "VkCuLaunchInfoNVX")]
30589pub struct CuLaunchInfoNVX {
30590    ///Must be `VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX`.
30591    pub s_type: StructureType,
30592    ///Optional, may be null.
30593    pub p_next: *const core::ffi::c_void,
30594    pub function: CuFunctionNVX,
30595    pub grid_dim_x: u32,
30596    pub grid_dim_y: u32,
30597    pub grid_dim_z: u32,
30598    pub block_dim_x: u32,
30599    pub block_dim_y: u32,
30600    pub block_dim_z: u32,
30601    pub shared_mem_bytes: u32,
30602    ///Length of `p_params`.
30603    pub param_count: usize,
30604    pub p_params: *const *const core::ffi::c_void,
30605    ///Length of `p_extras`.
30606    pub extra_count: usize,
30607    pub p_extras: *const *const core::ffi::c_void,
30608}
30609impl Default for CuLaunchInfoNVX {
30610    #[inline]
30611    fn default() -> Self {
30612        Self {
30613            s_type: StructureType::from_raw(1000029002i32),
30614            p_next: core::ptr::null(),
30615            function: Default::default(),
30616            grid_dim_x: Default::default(),
30617            grid_dim_y: Default::default(),
30618            grid_dim_z: Default::default(),
30619            block_dim_x: Default::default(),
30620            block_dim_y: Default::default(),
30621            block_dim_z: Default::default(),
30622            shared_mem_bytes: Default::default(),
30623            param_count: Default::default(),
30624            p_params: core::ptr::null(),
30625            extra_count: Default::default(),
30626            p_extras: core::ptr::null(),
30627        }
30628    }
30629}
30630///[`VkPhysicalDeviceDescriptorBufferFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferFeaturesEXT.html)
30631/**
30632Provided by **VK_EXT_descriptor_buffer**.*/
30633///
30634///# Extends
30635///- [`PhysicalDeviceFeatures2`]
30636///- [`DeviceCreateInfo`]
30637#[repr(C)]
30638#[derive(Copy, Clone, Debug)]
30639#[doc(alias = "VkPhysicalDeviceDescriptorBufferFeaturesEXT")]
30640pub struct PhysicalDeviceDescriptorBufferFeaturesEXT {
30641    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT`.
30642    pub s_type: StructureType,
30643    ///Optional, may be null.
30644    pub p_next: *mut core::ffi::c_void,
30645    pub descriptor_buffer: u32,
30646    pub descriptor_buffer_capture_replay: u32,
30647    pub descriptor_buffer_image_layout_ignored: u32,
30648    pub descriptor_buffer_push_descriptors: u32,
30649}
30650impl Default for PhysicalDeviceDescriptorBufferFeaturesEXT {
30651    #[inline]
30652    fn default() -> Self {
30653        Self {
30654            s_type: StructureType::from_raw(1000316002i32),
30655            p_next: core::ptr::null_mut(),
30656            descriptor_buffer: Default::default(),
30657            descriptor_buffer_capture_replay: Default::default(),
30658            descriptor_buffer_image_layout_ignored: Default::default(),
30659            descriptor_buffer_push_descriptors: Default::default(),
30660        }
30661    }
30662}
30663///[`VkPhysicalDeviceDescriptorBufferPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferPropertiesEXT.html)
30664/**
30665Provided by **VK_EXT_descriptor_buffer**.*/
30666/**
30667**Returned only**, filled by Vulkan, not constructed by the application.*/
30668///
30669///# Extends
30670///- [`PhysicalDeviceProperties2`]
30671#[repr(C)]
30672#[derive(Copy, Clone, Debug)]
30673#[doc(alias = "VkPhysicalDeviceDescriptorBufferPropertiesEXT")]
30674pub struct PhysicalDeviceDescriptorBufferPropertiesEXT {
30675    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT`.
30676    pub s_type: StructureType,
30677    ///Optional, may be null.
30678    pub p_next: *mut core::ffi::c_void,
30679    pub combined_image_sampler_descriptor_single_array: u32,
30680    pub bufferless_push_descriptors: u32,
30681    pub allow_sampler_image_view_post_submit_creation: u32,
30682    pub descriptor_buffer_offset_alignment: u64,
30683    pub max_descriptor_buffer_bindings: u32,
30684    pub max_resource_descriptor_buffer_bindings: u32,
30685    pub max_sampler_descriptor_buffer_bindings: u32,
30686    pub max_embedded_immutable_sampler_bindings: u32,
30687    pub max_embedded_immutable_samplers: u32,
30688    pub buffer_capture_replay_descriptor_data_size: usize,
30689    pub image_capture_replay_descriptor_data_size: usize,
30690    pub image_view_capture_replay_descriptor_data_size: usize,
30691    pub sampler_capture_replay_descriptor_data_size: usize,
30692    pub acceleration_structure_capture_replay_descriptor_data_size: usize,
30693    pub sampler_descriptor_size: usize,
30694    pub combined_image_sampler_descriptor_size: usize,
30695    pub sampled_image_descriptor_size: usize,
30696    pub storage_image_descriptor_size: usize,
30697    pub uniform_texel_buffer_descriptor_size: usize,
30698    pub robust_uniform_texel_buffer_descriptor_size: usize,
30699    pub storage_texel_buffer_descriptor_size: usize,
30700    pub robust_storage_texel_buffer_descriptor_size: usize,
30701    pub uniform_buffer_descriptor_size: usize,
30702    pub robust_uniform_buffer_descriptor_size: usize,
30703    pub storage_buffer_descriptor_size: usize,
30704    pub robust_storage_buffer_descriptor_size: usize,
30705    pub input_attachment_descriptor_size: usize,
30706    pub acceleration_structure_descriptor_size: usize,
30707    pub max_sampler_descriptor_buffer_range: u64,
30708    pub max_resource_descriptor_buffer_range: u64,
30709    pub sampler_descriptor_buffer_address_space_size: u64,
30710    pub resource_descriptor_buffer_address_space_size: u64,
30711    pub descriptor_buffer_address_space_size: u64,
30712}
30713impl Default for PhysicalDeviceDescriptorBufferPropertiesEXT {
30714    #[inline]
30715    fn default() -> Self {
30716        Self {
30717            s_type: StructureType::from_raw(1000316000i32),
30718            p_next: core::ptr::null_mut(),
30719            combined_image_sampler_descriptor_single_array: Default::default(),
30720            bufferless_push_descriptors: Default::default(),
30721            allow_sampler_image_view_post_submit_creation: Default::default(),
30722            descriptor_buffer_offset_alignment: Default::default(),
30723            max_descriptor_buffer_bindings: Default::default(),
30724            max_resource_descriptor_buffer_bindings: Default::default(),
30725            max_sampler_descriptor_buffer_bindings: Default::default(),
30726            max_embedded_immutable_sampler_bindings: Default::default(),
30727            max_embedded_immutable_samplers: Default::default(),
30728            buffer_capture_replay_descriptor_data_size: Default::default(),
30729            image_capture_replay_descriptor_data_size: Default::default(),
30730            image_view_capture_replay_descriptor_data_size: Default::default(),
30731            sampler_capture_replay_descriptor_data_size: Default::default(),
30732            acceleration_structure_capture_replay_descriptor_data_size: Default::default(),
30733            sampler_descriptor_size: Default::default(),
30734            combined_image_sampler_descriptor_size: Default::default(),
30735            sampled_image_descriptor_size: Default::default(),
30736            storage_image_descriptor_size: Default::default(),
30737            uniform_texel_buffer_descriptor_size: Default::default(),
30738            robust_uniform_texel_buffer_descriptor_size: Default::default(),
30739            storage_texel_buffer_descriptor_size: Default::default(),
30740            robust_storage_texel_buffer_descriptor_size: Default::default(),
30741            uniform_buffer_descriptor_size: Default::default(),
30742            robust_uniform_buffer_descriptor_size: Default::default(),
30743            storage_buffer_descriptor_size: Default::default(),
30744            robust_storage_buffer_descriptor_size: Default::default(),
30745            input_attachment_descriptor_size: Default::default(),
30746            acceleration_structure_descriptor_size: Default::default(),
30747            max_sampler_descriptor_buffer_range: Default::default(),
30748            max_resource_descriptor_buffer_range: Default::default(),
30749            sampler_descriptor_buffer_address_space_size: Default::default(),
30750            resource_descriptor_buffer_address_space_size: Default::default(),
30751            descriptor_buffer_address_space_size: Default::default(),
30752        }
30753    }
30754}
30755///[`VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT.html)
30756/**
30757Provided by **VK_EXT_descriptor_buffer**.*/
30758/**
30759**Returned only**, filled by Vulkan, not constructed by the application.*/
30760///
30761///# Extends
30762///- [`PhysicalDeviceProperties2`]
30763#[repr(C)]
30764#[derive(Copy, Clone, Debug)]
30765#[doc(alias = "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT")]
30766pub struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
30767    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT`.
30768    pub s_type: StructureType,
30769    ///Optional, may be null.
30770    pub p_next: *mut core::ffi::c_void,
30771    pub combined_image_sampler_density_map_descriptor_size: usize,
30772}
30773impl Default for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
30774    #[inline]
30775    fn default() -> Self {
30776        Self {
30777            s_type: StructureType::from_raw(1000316001i32),
30778            p_next: core::ptr::null_mut(),
30779            combined_image_sampler_density_map_descriptor_size: Default::default(),
30780        }
30781    }
30782}
30783///[`VkDescriptorAddressInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorAddressInfoEXT.html)
30784/**
30785Provided by **VK_EXT_descriptor_buffer**.*/
30786#[repr(C)]
30787#[derive(Copy, Clone, Debug)]
30788#[doc(alias = "VkDescriptorAddressInfoEXT")]
30789pub struct DescriptorAddressInfoEXT {
30790    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT`.
30791    pub s_type: StructureType,
30792    ///Optional, may be null.
30793    pub p_next: *mut core::ffi::c_void,
30794    pub address: u64,
30795    pub range: u64,
30796    pub format: Format,
30797}
30798impl Default for DescriptorAddressInfoEXT {
30799    #[inline]
30800    fn default() -> Self {
30801        Self {
30802            s_type: StructureType::from_raw(1000316003i32),
30803            p_next: core::ptr::null_mut(),
30804            address: Default::default(),
30805            range: Default::default(),
30806            format: Default::default(),
30807        }
30808    }
30809}
30810///[`VkDescriptorBufferBindingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorBufferBindingInfoEXT.html)
30811/**
30812Provided by **VK_EXT_descriptor_buffer**.*/
30813///
30814///# Extended By
30815///- [`BufferUsageFlags2CreateInfo`]
30816///- [`DescriptorBufferBindingPushDescriptorBufferHandleEXT`]
30817#[repr(C)]
30818#[derive(Copy, Clone, Debug)]
30819#[doc(alias = "VkDescriptorBufferBindingInfoEXT")]
30820pub struct DescriptorBufferBindingInfoEXT {
30821    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT`.
30822    pub s_type: StructureType,
30823    ///Optional, may be null.
30824    pub p_next: *const core::ffi::c_void,
30825    pub address: u64,
30826    pub usage: BufferUsageFlags,
30827}
30828impl Default for DescriptorBufferBindingInfoEXT {
30829    #[inline]
30830    fn default() -> Self {
30831        Self {
30832            s_type: StructureType::from_raw(1000316011i32),
30833            p_next: core::ptr::null(),
30834            address: Default::default(),
30835            usage: Default::default(),
30836        }
30837    }
30838}
30839///[`VkDescriptorBufferBindingPushDescriptorBufferHandleEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorBufferBindingPushDescriptorBufferHandleEXT.html)
30840/**
30841Provided by **VK_EXT_descriptor_buffer**.*/
30842///
30843///# Extends
30844///- [`DescriptorBufferBindingInfoEXT`]
30845#[repr(C)]
30846#[derive(Copy, Clone, Debug)]
30847#[doc(alias = "VkDescriptorBufferBindingPushDescriptorBufferHandleEXT")]
30848pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT {
30849    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT`.
30850    pub s_type: StructureType,
30851    ///Optional, may be null.
30852    pub p_next: *const core::ffi::c_void,
30853    pub buffer: Buffer,
30854}
30855impl Default for DescriptorBufferBindingPushDescriptorBufferHandleEXT {
30856    #[inline]
30857    fn default() -> Self {
30858        Self {
30859            s_type: StructureType::from_raw(1000316012i32),
30860            p_next: core::ptr::null(),
30861            buffer: Default::default(),
30862        }
30863    }
30864}
30865///[`VkDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorDataEXT.html)
30866/**
30867Provided by **VK_EXT_descriptor_buffer**.*/
30868#[repr(C)]
30869#[derive(Copy, Clone)]
30870#[doc(alias = "VkDescriptorDataEXT")]
30871pub union DescriptorDataEXT {
30872    pub p_sampler: *const Sampler,
30873    pub p_combined_image_sampler: *const DescriptorImageInfo,
30874    pub p_input_attachment_image: *const DescriptorImageInfo,
30875    pub p_sampled_image: *const DescriptorImageInfo,
30876    pub p_storage_image: *const DescriptorImageInfo,
30877    pub p_uniform_texel_buffer: *const DescriptorAddressInfoEXT,
30878    pub p_storage_texel_buffer: *const DescriptorAddressInfoEXT,
30879    pub p_uniform_buffer: *const DescriptorAddressInfoEXT,
30880    pub p_storage_buffer: *const DescriptorAddressInfoEXT,
30881    pub acceleration_structure: u64,
30882}
30883impl Default for DescriptorDataEXT {
30884    #[inline]
30885    fn default() -> Self {
30886        unsafe { core::mem::zeroed() }
30887    }
30888}
30889impl core::fmt::Debug for DescriptorDataEXT {
30890    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
30891        f.write_str(stringify!(DescriptorDataEXT))
30892    }
30893}
30894///[`VkDescriptorGetInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorGetInfoEXT.html)
30895/**
30896Provided by **VK_EXT_descriptor_buffer**.*/
30897///
30898///# Extended By
30899///- [`DescriptorGetTensorInfoARM`]
30900#[repr(C)]
30901#[derive(Copy, Clone, Debug)]
30902#[doc(alias = "VkDescriptorGetInfoEXT")]
30903pub struct DescriptorGetInfoEXT {
30904    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT`.
30905    pub s_type: StructureType,
30906    ///Optional, may be null.
30907    pub p_next: *const core::ffi::c_void,
30908    pub r#type: DescriptorType,
30909    pub data: DescriptorDataEXT,
30910}
30911impl Default for DescriptorGetInfoEXT {
30912    #[inline]
30913    fn default() -> Self {
30914        Self {
30915            s_type: StructureType::from_raw(1000316004i32),
30916            p_next: core::ptr::null(),
30917            r#type: Default::default(),
30918            data: Default::default(),
30919        }
30920    }
30921}
30922///[`VkBufferCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCaptureDescriptorDataInfoEXT.html)
30923/**
30924Provided by **VK_EXT_descriptor_buffer**.*/
30925#[repr(C)]
30926#[derive(Copy, Clone, Debug)]
30927#[doc(alias = "VkBufferCaptureDescriptorDataInfoEXT")]
30928pub struct BufferCaptureDescriptorDataInfoEXT {
30929    ///Must be `VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
30930    pub s_type: StructureType,
30931    ///Optional, may be null.
30932    pub p_next: *const core::ffi::c_void,
30933    pub buffer: Buffer,
30934}
30935impl Default for BufferCaptureDescriptorDataInfoEXT {
30936    #[inline]
30937    fn default() -> Self {
30938        Self {
30939            s_type: StructureType::from_raw(1000316005i32),
30940            p_next: core::ptr::null(),
30941            buffer: Default::default(),
30942        }
30943    }
30944}
30945///[`VkImageCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCaptureDescriptorDataInfoEXT.html)
30946/**
30947Provided by **VK_EXT_descriptor_buffer**.*/
30948#[repr(C)]
30949#[derive(Copy, Clone, Debug)]
30950#[doc(alias = "VkImageCaptureDescriptorDataInfoEXT")]
30951pub struct ImageCaptureDescriptorDataInfoEXT {
30952    ///Must be `VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
30953    pub s_type: StructureType,
30954    ///Optional, may be null.
30955    pub p_next: *const core::ffi::c_void,
30956    pub image: Image,
30957}
30958impl Default for ImageCaptureDescriptorDataInfoEXT {
30959    #[inline]
30960    fn default() -> Self {
30961        Self {
30962            s_type: StructureType::from_raw(1000316006i32),
30963            p_next: core::ptr::null(),
30964            image: Default::default(),
30965        }
30966    }
30967}
30968///[`VkImageViewCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewCaptureDescriptorDataInfoEXT.html)
30969/**
30970Provided by **VK_EXT_descriptor_buffer**.*/
30971#[repr(C)]
30972#[derive(Copy, Clone, Debug)]
30973#[doc(alias = "VkImageViewCaptureDescriptorDataInfoEXT")]
30974pub struct ImageViewCaptureDescriptorDataInfoEXT {
30975    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
30976    pub s_type: StructureType,
30977    ///Optional, may be null.
30978    pub p_next: *const core::ffi::c_void,
30979    pub image_view: ImageView,
30980}
30981impl Default for ImageViewCaptureDescriptorDataInfoEXT {
30982    #[inline]
30983    fn default() -> Self {
30984        Self {
30985            s_type: StructureType::from_raw(1000316007i32),
30986            p_next: core::ptr::null(),
30987            image_view: Default::default(),
30988        }
30989    }
30990}
30991///[`VkSamplerCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCaptureDescriptorDataInfoEXT.html)
30992/**
30993Provided by **VK_EXT_descriptor_buffer**.*/
30994#[repr(C)]
30995#[derive(Copy, Clone, Debug)]
30996#[doc(alias = "VkSamplerCaptureDescriptorDataInfoEXT")]
30997pub struct SamplerCaptureDescriptorDataInfoEXT {
30998    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
30999    pub s_type: StructureType,
31000    ///Optional, may be null.
31001    pub p_next: *const core::ffi::c_void,
31002    pub sampler: Sampler,
31003}
31004impl Default for SamplerCaptureDescriptorDataInfoEXT {
31005    #[inline]
31006    fn default() -> Self {
31007        Self {
31008            s_type: StructureType::from_raw(1000316008i32),
31009            p_next: core::ptr::null(),
31010            sampler: Default::default(),
31011        }
31012    }
31013}
31014///[`VkAccelerationStructureCaptureDescriptorDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureCaptureDescriptorDataInfoEXT.html)
31015/**
31016Provided by **VK_EXT_descriptor_buffer**.*/
31017#[repr(C)]
31018#[derive(Copy, Clone, Debug)]
31019#[doc(alias = "VkAccelerationStructureCaptureDescriptorDataInfoEXT")]
31020pub struct AccelerationStructureCaptureDescriptorDataInfoEXT {
31021    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT`.
31022    pub s_type: StructureType,
31023    ///Optional, may be null.
31024    pub p_next: *const core::ffi::c_void,
31025    pub acceleration_structure: AccelerationStructureKHR,
31026    pub acceleration_structure_nv: AccelerationStructureNV,
31027}
31028impl Default for AccelerationStructureCaptureDescriptorDataInfoEXT {
31029    #[inline]
31030    fn default() -> Self {
31031        Self {
31032            s_type: StructureType::from_raw(1000316009i32),
31033            p_next: core::ptr::null(),
31034            acceleration_structure: Default::default(),
31035            acceleration_structure_nv: Default::default(),
31036        }
31037    }
31038}
31039///[`VkOpaqueCaptureDescriptorDataCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpaqueCaptureDescriptorDataCreateInfoEXT.html)
31040/**
31041Provided by **VK_EXT_descriptor_buffer**.*/
31042///
31043///# Extends
31044///- [`BufferCreateInfo`]
31045///- [`ImageCreateInfo`]
31046///- [`ImageViewCreateInfo`]
31047///- [`SamplerCreateInfo`]
31048///- [`AccelerationStructureCreateInfoKHR`]
31049///- [`AccelerationStructureCreateInfoNV`]
31050///- [`TensorCreateInfoARM`]
31051///- [`TensorViewCreateInfoARM`]
31052///- [`AccelerationStructureCreateInfo2KHR`]
31053#[repr(C)]
31054#[derive(Copy, Clone, Debug)]
31055#[doc(alias = "VkOpaqueCaptureDescriptorDataCreateInfoEXT")]
31056pub struct OpaqueCaptureDescriptorDataCreateInfoEXT {
31057    ///Must be `VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT`.
31058    pub s_type: StructureType,
31059    ///Optional, may be null.
31060    pub p_next: *const core::ffi::c_void,
31061    pub opaque_capture_descriptor_data: *const core::ffi::c_void,
31062}
31063impl Default for OpaqueCaptureDescriptorDataCreateInfoEXT {
31064    #[inline]
31065    fn default() -> Self {
31066        Self {
31067            s_type: StructureType::from_raw(1000316010i32),
31068            p_next: core::ptr::null(),
31069            opaque_capture_descriptor_data: core::ptr::null(),
31070        }
31071    }
31072}
31073///[`VkPhysicalDeviceShaderIntegerDotProductFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderIntegerDotProductFeatures.html)
31074/**
31075Provided by **VK_COMPUTE_VERSION_1_3**.*/
31076///
31077///# Extends
31078///- [`PhysicalDeviceFeatures2`]
31079///- [`DeviceCreateInfo`]
31080#[repr(C)]
31081#[derive(Copy, Clone, Debug)]
31082#[doc(alias = "VkPhysicalDeviceShaderIntegerDotProductFeatures")]
31083pub struct PhysicalDeviceShaderIntegerDotProductFeatures {
31084    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES`.
31085    pub s_type: StructureType,
31086    ///Optional, may be null.
31087    pub p_next: *mut core::ffi::c_void,
31088    pub shader_integer_dot_product: u32,
31089}
31090impl Default for PhysicalDeviceShaderIntegerDotProductFeatures {
31091    #[inline]
31092    fn default() -> Self {
31093        Self {
31094            s_type: StructureType::from_raw(1000280000i32),
31095            p_next: core::ptr::null_mut(),
31096            shader_integer_dot_product: Default::default(),
31097        }
31098    }
31099}
31100///[`VkPhysicalDeviceShaderIntegerDotProductProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderIntegerDotProductProperties.html)
31101/**
31102Provided by **VK_COMPUTE_VERSION_1_3**.*/
31103/**
31104**Returned only**, filled by Vulkan, not constructed by the application.*/
31105///
31106///# Extends
31107///- [`PhysicalDeviceProperties2`]
31108#[repr(C)]
31109#[derive(Copy, Clone, Debug)]
31110#[doc(alias = "VkPhysicalDeviceShaderIntegerDotProductProperties")]
31111pub struct PhysicalDeviceShaderIntegerDotProductProperties {
31112    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES`.
31113    pub s_type: StructureType,
31114    ///Optional, may be null.
31115    pub p_next: *mut core::ffi::c_void,
31116    pub integer_dot_product8_bit_unsigned_accelerated: u32,
31117    pub integer_dot_product8_bit_signed_accelerated: u32,
31118    pub integer_dot_product8_bit_mixed_signedness_accelerated: u32,
31119    pub integer_dot_product4x8_bit_packed_unsigned_accelerated: u32,
31120    pub integer_dot_product4x8_bit_packed_signed_accelerated: u32,
31121    pub integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: u32,
31122    pub integer_dot_product16_bit_unsigned_accelerated: u32,
31123    pub integer_dot_product16_bit_signed_accelerated: u32,
31124    pub integer_dot_product16_bit_mixed_signedness_accelerated: u32,
31125    pub integer_dot_product32_bit_unsigned_accelerated: u32,
31126    pub integer_dot_product32_bit_signed_accelerated: u32,
31127    pub integer_dot_product32_bit_mixed_signedness_accelerated: u32,
31128    pub integer_dot_product64_bit_unsigned_accelerated: u32,
31129    pub integer_dot_product64_bit_signed_accelerated: u32,
31130    pub integer_dot_product64_bit_mixed_signedness_accelerated: u32,
31131    pub integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: u32,
31132    pub integer_dot_product_accumulating_saturating8_bit_signed_accelerated: u32,
31133    pub integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: u32,
31134    pub integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: u32,
31135    pub integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: u32,
31136    pub integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: u32,
31137    pub integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: u32,
31138    pub integer_dot_product_accumulating_saturating16_bit_signed_accelerated: u32,
31139    pub integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: u32,
31140    pub integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: u32,
31141    pub integer_dot_product_accumulating_saturating32_bit_signed_accelerated: u32,
31142    pub integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: u32,
31143    pub integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: u32,
31144    pub integer_dot_product_accumulating_saturating64_bit_signed_accelerated: u32,
31145    pub integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: u32,
31146}
31147impl Default for PhysicalDeviceShaderIntegerDotProductProperties {
31148    #[inline]
31149    fn default() -> Self {
31150        Self {
31151            s_type: StructureType::from_raw(1000280001i32),
31152            p_next: core::ptr::null_mut(),
31153            integer_dot_product8_bit_unsigned_accelerated: Default::default(),
31154            integer_dot_product8_bit_signed_accelerated: Default::default(),
31155            integer_dot_product8_bit_mixed_signedness_accelerated: Default::default(),
31156            integer_dot_product4x8_bit_packed_unsigned_accelerated: Default::default(),
31157            integer_dot_product4x8_bit_packed_signed_accelerated: Default::default(),
31158            integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: Default::default(),
31159            integer_dot_product16_bit_unsigned_accelerated: Default::default(),
31160            integer_dot_product16_bit_signed_accelerated: Default::default(),
31161            integer_dot_product16_bit_mixed_signedness_accelerated: Default::default(),
31162            integer_dot_product32_bit_unsigned_accelerated: Default::default(),
31163            integer_dot_product32_bit_signed_accelerated: Default::default(),
31164            integer_dot_product32_bit_mixed_signedness_accelerated: Default::default(),
31165            integer_dot_product64_bit_unsigned_accelerated: Default::default(),
31166            integer_dot_product64_bit_signed_accelerated: Default::default(),
31167            integer_dot_product64_bit_mixed_signedness_accelerated: Default::default(),
31168            integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: Default::default(),
31169            integer_dot_product_accumulating_saturating8_bit_signed_accelerated: Default::default(),
31170            integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: Default::default(),
31171            integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: Default::default(),
31172            integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: Default::default(),
31173            integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: Default::default(),
31174            integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: Default::default(),
31175            integer_dot_product_accumulating_saturating16_bit_signed_accelerated: Default::default(),
31176            integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: Default::default(),
31177            integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: Default::default(),
31178            integer_dot_product_accumulating_saturating32_bit_signed_accelerated: Default::default(),
31179            integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: Default::default(),
31180            integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: Default::default(),
31181            integer_dot_product_accumulating_saturating64_bit_signed_accelerated: Default::default(),
31182            integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: Default::default(),
31183        }
31184    }
31185}
31186///[`VkPhysicalDeviceDrmPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDrmPropertiesEXT.html)
31187/**
31188Provided by **VK_EXT_physical_device_drm**.*/
31189/**
31190**Returned only**, filled by Vulkan, not constructed by the application.*/
31191///
31192///# Extends
31193///- [`PhysicalDeviceProperties2`]
31194#[repr(C)]
31195#[derive(Copy, Clone, Debug)]
31196#[doc(alias = "VkPhysicalDeviceDrmPropertiesEXT")]
31197pub struct PhysicalDeviceDrmPropertiesEXT {
31198    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT`.
31199    pub s_type: StructureType,
31200    ///Optional, may be null.
31201    pub p_next: *mut core::ffi::c_void,
31202    pub has_primary: u32,
31203    pub has_render: u32,
31204    pub primary_major: i64,
31205    pub primary_minor: i64,
31206    pub render_major: i64,
31207    pub render_minor: i64,
31208}
31209impl Default for PhysicalDeviceDrmPropertiesEXT {
31210    #[inline]
31211    fn default() -> Self {
31212        Self {
31213            s_type: StructureType::from_raw(1000353000i32),
31214            p_next: core::ptr::null_mut(),
31215            has_primary: Default::default(),
31216            has_render: Default::default(),
31217            primary_major: Default::default(),
31218            primary_minor: Default::default(),
31219            render_major: Default::default(),
31220            render_minor: Default::default(),
31221        }
31222    }
31223}
31224///[`VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.html)
31225/**
31226Provided by **VK_KHR_fragment_shader_barycentric**.*/
31227///
31228///# Extends
31229///- [`PhysicalDeviceFeatures2`]
31230///- [`DeviceCreateInfo`]
31231#[repr(C)]
31232#[derive(Copy, Clone, Debug)]
31233#[doc(alias = "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR")]
31234pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
31235    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR`.
31236    pub s_type: StructureType,
31237    ///Optional, may be null.
31238    pub p_next: *mut core::ffi::c_void,
31239    pub fragment_shader_barycentric: u32,
31240}
31241impl Default for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
31242    #[inline]
31243    fn default() -> Self {
31244        Self {
31245            s_type: StructureType::from_raw(1000203000i32),
31246            p_next: core::ptr::null_mut(),
31247            fragment_shader_barycentric: Default::default(),
31248        }
31249    }
31250}
31251///[`VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR.html)
31252/**
31253Provided by **VK_KHR_fragment_shader_barycentric**.*/
31254/**
31255**Returned only**, filled by Vulkan, not constructed by the application.*/
31256///
31257///# Extends
31258///- [`PhysicalDeviceProperties2`]
31259#[repr(C)]
31260#[derive(Copy, Clone, Debug)]
31261#[doc(alias = "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR")]
31262pub struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
31263    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR`.
31264    pub s_type: StructureType,
31265    ///Optional, may be null.
31266    pub p_next: *mut core::ffi::c_void,
31267    pub tri_strip_vertex_order_independent_of_provoking_vertex: u32,
31268}
31269impl Default for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
31270    #[inline]
31271    fn default() -> Self {
31272        Self {
31273            s_type: StructureType::from_raw(1000322000i32),
31274            p_next: core::ptr::null_mut(),
31275            tri_strip_vertex_order_independent_of_provoking_vertex: Default::default(),
31276        }
31277    }
31278}
31279///[`VkPhysicalDeviceShaderFmaFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFmaFeaturesKHR.html)
31280/**
31281Provided by **VK_KHR_shader_fma**.*/
31282///
31283///# Extends
31284///- [`PhysicalDeviceFeatures2`]
31285///- [`DeviceCreateInfo`]
31286#[repr(C)]
31287#[derive(Copy, Clone, Debug)]
31288#[doc(alias = "VkPhysicalDeviceShaderFmaFeaturesKHR")]
31289pub struct PhysicalDeviceShaderFmaFeaturesKHR {
31290    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR`.
31291    pub s_type: StructureType,
31292    ///Optional, may be null.
31293    pub p_next: *mut core::ffi::c_void,
31294    pub shader_fma_float16: u32,
31295    pub shader_fma_float32: u32,
31296    pub shader_fma_float64: u32,
31297}
31298impl Default for PhysicalDeviceShaderFmaFeaturesKHR {
31299    #[inline]
31300    fn default() -> Self {
31301        Self {
31302            s_type: StructureType::from_raw(1000579000i32),
31303            p_next: core::ptr::null_mut(),
31304            shader_fma_float16: Default::default(),
31305            shader_fma_float32: Default::default(),
31306            shader_fma_float64: Default::default(),
31307        }
31308    }
31309}
31310///[`VkPhysicalDeviceRayTracingMotionBlurFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.html)
31311/**
31312Provided by **VK_NV_ray_tracing_motion_blur**.*/
31313///
31314///# Extends
31315///- [`PhysicalDeviceFeatures2`]
31316///- [`DeviceCreateInfo`]
31317#[repr(C)]
31318#[derive(Copy, Clone, Debug)]
31319#[doc(alias = "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV")]
31320pub struct PhysicalDeviceRayTracingMotionBlurFeaturesNV {
31321    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV`.
31322    pub s_type: StructureType,
31323    ///Optional, may be null.
31324    pub p_next: *mut core::ffi::c_void,
31325    pub ray_tracing_motion_blur: u32,
31326    pub ray_tracing_motion_blur_pipeline_trace_rays_indirect: u32,
31327}
31328impl Default for PhysicalDeviceRayTracingMotionBlurFeaturesNV {
31329    #[inline]
31330    fn default() -> Self {
31331        Self {
31332            s_type: StructureType::from_raw(1000327001i32),
31333            p_next: core::ptr::null_mut(),
31334            ray_tracing_motion_blur: Default::default(),
31335            ray_tracing_motion_blur_pipeline_trace_rays_indirect: Default::default(),
31336        }
31337    }
31338}
31339///[`VkPhysicalDeviceRayTracingValidationFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingValidationFeaturesNV.html)
31340/**
31341Provided by **VK_NV_ray_tracing_validation**.*/
31342///
31343///# Extends
31344///- [`PhysicalDeviceFeatures2`]
31345///- [`DeviceCreateInfo`]
31346#[repr(C)]
31347#[derive(Copy, Clone, Debug)]
31348#[doc(alias = "VkPhysicalDeviceRayTracingValidationFeaturesNV")]
31349pub struct PhysicalDeviceRayTracingValidationFeaturesNV {
31350    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV`.
31351    pub s_type: StructureType,
31352    ///Optional, may be null.
31353    pub p_next: *mut core::ffi::c_void,
31354    pub ray_tracing_validation: u32,
31355}
31356impl Default for PhysicalDeviceRayTracingValidationFeaturesNV {
31357    #[inline]
31358    fn default() -> Self {
31359        Self {
31360            s_type: StructureType::from_raw(1000568000i32),
31361            p_next: core::ptr::null_mut(),
31362            ray_tracing_validation: Default::default(),
31363        }
31364    }
31365}
31366///[`VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV.html)
31367/**
31368Provided by **VK_NV_ray_tracing_linear_swept_spheres**.*/
31369///
31370///# Extends
31371///- [`PhysicalDeviceFeatures2`]
31372///- [`DeviceCreateInfo`]
31373#[repr(C)]
31374#[derive(Copy, Clone, Debug)]
31375#[doc(alias = "VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV")]
31376pub struct PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
31377    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV`.
31378    pub s_type: StructureType,
31379    ///Optional, may be null.
31380    pub p_next: *mut core::ffi::c_void,
31381    pub spheres: u32,
31382    pub linear_swept_spheres: u32,
31383}
31384impl Default for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
31385    #[inline]
31386    fn default() -> Self {
31387        Self {
31388            s_type: StructureType::from_raw(1000429008i32),
31389            p_next: core::ptr::null_mut(),
31390            spheres: Default::default(),
31391            linear_swept_spheres: Default::default(),
31392        }
31393    }
31394}
31395///[`VkAccelerationStructureGeometryMotionTrianglesDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureGeometryMotionTrianglesDataNV.html)
31396/**
31397Provided by **VK_NV_ray_tracing_motion_blur**.*/
31398///
31399///# Extends
31400///- [`AccelerationStructureGeometryTrianglesDataKHR`]
31401#[repr(C)]
31402#[derive(Copy, Clone, Debug)]
31403#[doc(alias = "VkAccelerationStructureGeometryMotionTrianglesDataNV")]
31404pub struct AccelerationStructureGeometryMotionTrianglesDataNV {
31405    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV`.
31406    pub s_type: StructureType,
31407    ///Optional, may be null.
31408    pub p_next: *const core::ffi::c_void,
31409    pub vertex_data: DeviceOrHostAddressConstKHR,
31410}
31411impl Default for AccelerationStructureGeometryMotionTrianglesDataNV {
31412    #[inline]
31413    fn default() -> Self {
31414        Self {
31415            s_type: StructureType::from_raw(1000327000i32),
31416            p_next: core::ptr::null(),
31417            vertex_data: Default::default(),
31418        }
31419    }
31420}
31421///[`VkAccelerationStructureMotionInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInfoNV.html)
31422/**
31423Provided by **VK_NV_ray_tracing_motion_blur**.*/
31424///
31425///# Extends
31426///- [`AccelerationStructureCreateInfoKHR`]
31427#[repr(C)]
31428#[derive(Copy, Clone, Debug)]
31429#[doc(alias = "VkAccelerationStructureMotionInfoNV")]
31430pub struct AccelerationStructureMotionInfoNV {
31431    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV`.
31432    pub s_type: StructureType,
31433    ///Optional, may be null.
31434    pub p_next: *const core::ffi::c_void,
31435    pub max_instances: u32,
31436    pub flags: AccelerationStructureMotionInfoFlagsNV,
31437}
31438impl Default for AccelerationStructureMotionInfoNV {
31439    #[inline]
31440    fn default() -> Self {
31441        Self {
31442            s_type: StructureType::from_raw(1000327002i32),
31443            p_next: core::ptr::null(),
31444            max_instances: Default::default(),
31445            flags: Default::default(),
31446        }
31447    }
31448}
31449///[`VkSRTDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSRTDataNV.html)
31450/**
31451Provided by **VK_NV_ray_tracing_motion_blur**.*/
31452#[repr(C)]
31453#[derive(Copy, Clone, Debug)]
31454#[doc(alias = "VkSRTDataNV")]
31455pub struct SRTDataNV {
31456    pub sx: f32,
31457    pub a: f32,
31458    pub b: f32,
31459    pub pvx: f32,
31460    pub sy: f32,
31461    pub c: f32,
31462    pub pvy: f32,
31463    pub sz: f32,
31464    pub pvz: f32,
31465    pub qx: f32,
31466    pub qy: f32,
31467    pub qz: f32,
31468    pub qw: f32,
31469    pub tx: f32,
31470    pub ty: f32,
31471    pub tz: f32,
31472}
31473impl Default for SRTDataNV {
31474    #[inline]
31475    fn default() -> Self {
31476        unsafe { core::mem::zeroed() }
31477    }
31478}
31479///[`VkAccelerationStructureSRTMotionInstanceNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureSRTMotionInstanceNV.html)
31480/**
31481Provided by **VK_NV_ray_tracing_motion_blur**.*/
31482#[repr(C)]
31483#[derive(Copy, Clone, Debug)]
31484#[doc(alias = "VkAccelerationStructureSRTMotionInstanceNV")]
31485pub struct AccelerationStructureSRTMotionInstanceNV {
31486    pub transform_t0: SRTDataNV,
31487    pub transform_t1: SRTDataNV,
31488    pub bitfield_0: u32,
31489    pub bitfield_1: u32,
31490    pub acceleration_structure_reference: u64,
31491}
31492impl Default for AccelerationStructureSRTMotionInstanceNV {
31493    #[inline]
31494    fn default() -> Self {
31495        unsafe { core::mem::zeroed() }
31496    }
31497}
31498impl AccelerationStructureSRTMotionInstanceNV {
31499    #[inline]
31500    pub fn instance_custom_index(&self) -> u32 {
31501        self.bitfield_0 & 16777215u32
31502    }
31503    #[inline]
31504    pub fn set_instance_custom_index(&mut self, val: u32) {
31505        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
31506    }
31507    #[inline]
31508    pub fn mask(&self) -> u32 {
31509        (self.bitfield_0 >> 24u32) & 255u32
31510    }
31511    #[inline]
31512    pub fn set_mask(&mut self, val: u32) {
31513        self.bitfield_0 = (self.bitfield_0 & !(255u32 << 24u32))
31514            | ((val & 255u32) << 24u32);
31515    }
31516    #[inline]
31517    pub fn instance_shader_binding_table_record_offset(&self) -> u32 {
31518        self.bitfield_1 & 16777215u32
31519    }
31520    #[inline]
31521    pub fn set_instance_shader_binding_table_record_offset(&mut self, val: u32) {
31522        self.bitfield_1 = (self.bitfield_1 & !16777215u32) | (val & 16777215u32);
31523    }
31524    #[inline]
31525    pub fn flags(&self) -> u32 {
31526        (self.bitfield_1 >> 24u32) & 255u32
31527    }
31528    #[inline]
31529    pub fn set_flags(&mut self, val: u32) {
31530        self.bitfield_1 = (self.bitfield_1 & !(255u32 << 24u32))
31531            | ((val & 255u32) << 24u32);
31532    }
31533}
31534///[`VkAccelerationStructureMatrixMotionInstanceNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMatrixMotionInstanceNV.html)
31535/**
31536Provided by **VK_NV_ray_tracing_motion_blur**.*/
31537#[repr(C)]
31538#[derive(Copy, Clone, Debug)]
31539#[doc(alias = "VkAccelerationStructureMatrixMotionInstanceNV")]
31540pub struct AccelerationStructureMatrixMotionInstanceNV {
31541    pub transform_t0: TransformMatrixKHR,
31542    pub transform_t1: TransformMatrixKHR,
31543    pub bitfield_0: u32,
31544    pub bitfield_1: u32,
31545    pub acceleration_structure_reference: u64,
31546}
31547impl Default for AccelerationStructureMatrixMotionInstanceNV {
31548    #[inline]
31549    fn default() -> Self {
31550        unsafe { core::mem::zeroed() }
31551    }
31552}
31553impl AccelerationStructureMatrixMotionInstanceNV {
31554    #[inline]
31555    pub fn instance_custom_index(&self) -> u32 {
31556        self.bitfield_0 & 16777215u32
31557    }
31558    #[inline]
31559    pub fn set_instance_custom_index(&mut self, val: u32) {
31560        self.bitfield_0 = (self.bitfield_0 & !16777215u32) | (val & 16777215u32);
31561    }
31562    #[inline]
31563    pub fn mask(&self) -> u32 {
31564        (self.bitfield_0 >> 24u32) & 255u32
31565    }
31566    #[inline]
31567    pub fn set_mask(&mut self, val: u32) {
31568        self.bitfield_0 = (self.bitfield_0 & !(255u32 << 24u32))
31569            | ((val & 255u32) << 24u32);
31570    }
31571    #[inline]
31572    pub fn instance_shader_binding_table_record_offset(&self) -> u32 {
31573        self.bitfield_1 & 16777215u32
31574    }
31575    #[inline]
31576    pub fn set_instance_shader_binding_table_record_offset(&mut self, val: u32) {
31577        self.bitfield_1 = (self.bitfield_1 & !16777215u32) | (val & 16777215u32);
31578    }
31579    #[inline]
31580    pub fn flags(&self) -> u32 {
31581        (self.bitfield_1 >> 24u32) & 255u32
31582    }
31583    #[inline]
31584    pub fn set_flags(&mut self, val: u32) {
31585        self.bitfield_1 = (self.bitfield_1 & !(255u32 << 24u32))
31586            | ((val & 255u32) << 24u32);
31587    }
31588}
31589///[`VkAccelerationStructureMotionInstanceDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInstanceDataNV.html)
31590/**
31591Provided by **VK_NV_ray_tracing_motion_blur**.*/
31592#[repr(C)]
31593#[derive(Copy, Clone)]
31594#[doc(alias = "VkAccelerationStructureMotionInstanceDataNV")]
31595pub union AccelerationStructureMotionInstanceDataNV {
31596    pub static_instance: AccelerationStructureInstanceKHR,
31597    pub matrix_motion_instance: AccelerationStructureMatrixMotionInstanceNV,
31598    pub srt_motion_instance: AccelerationStructureSRTMotionInstanceNV,
31599}
31600impl Default for AccelerationStructureMotionInstanceDataNV {
31601    #[inline]
31602    fn default() -> Self {
31603        unsafe { core::mem::zeroed() }
31604    }
31605}
31606impl core::fmt::Debug for AccelerationStructureMotionInstanceDataNV {
31607    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
31608        f.write_str(stringify!(AccelerationStructureMotionInstanceDataNV))
31609    }
31610}
31611///[`VkAccelerationStructureMotionInstanceNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInstanceNV.html)
31612/**
31613Provided by **VK_NV_ray_tracing_motion_blur**.*/
31614#[repr(C)]
31615#[derive(Copy, Clone, Debug)]
31616#[doc(alias = "VkAccelerationStructureMotionInstanceNV")]
31617pub struct AccelerationStructureMotionInstanceNV {
31618    pub r#type: AccelerationStructureMotionInstanceTypeNV,
31619    pub flags: AccelerationStructureMotionInstanceFlagsNV,
31620    pub data: AccelerationStructureMotionInstanceDataNV,
31621}
31622impl Default for AccelerationStructureMotionInstanceNV {
31623    #[inline]
31624    fn default() -> Self {
31625        unsafe { core::mem::zeroed() }
31626    }
31627}
31628///[`VkMemoryGetRemoteAddressInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetRemoteAddressInfoNV.html)
31629/**
31630Provided by **VK_NV_external_memory_rdma**.*/
31631#[repr(C)]
31632#[derive(Copy, Clone, Debug)]
31633#[doc(alias = "VkMemoryGetRemoteAddressInfoNV")]
31634pub struct MemoryGetRemoteAddressInfoNV {
31635    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV`.
31636    pub s_type: StructureType,
31637    ///Optional, may be null.
31638    pub p_next: *const core::ffi::c_void,
31639    pub memory: DeviceMemory,
31640    pub handle_type: ExternalMemoryHandleTypeFlagBits,
31641}
31642impl Default for MemoryGetRemoteAddressInfoNV {
31643    #[inline]
31644    fn default() -> Self {
31645        Self {
31646            s_type: StructureType::from_raw(1000371000i32),
31647            p_next: core::ptr::null(),
31648            memory: Default::default(),
31649            handle_type: Default::default(),
31650        }
31651    }
31652}
31653///[`VkImportMemoryBufferCollectionFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMemoryBufferCollectionFUCHSIA.html)
31654/**
31655Provided by **VK_FUCHSIA_buffer_collection**.*/
31656///
31657///# Extends
31658///- [`MemoryAllocateInfo`]
31659#[repr(C)]
31660#[derive(Copy, Clone, Debug)]
31661#[doc(alias = "VkImportMemoryBufferCollectionFUCHSIA")]
31662pub struct ImportMemoryBufferCollectionFUCHSIA {
31663    ///Must be `VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA`.
31664    pub s_type: StructureType,
31665    ///Optional, may be null.
31666    pub p_next: *const core::ffi::c_void,
31667    pub collection: BufferCollectionFUCHSIA,
31668    pub index: u32,
31669}
31670impl Default for ImportMemoryBufferCollectionFUCHSIA {
31671    #[inline]
31672    fn default() -> Self {
31673        Self {
31674            s_type: StructureType::from_raw(1000366001i32),
31675            p_next: core::ptr::null(),
31676            collection: Default::default(),
31677            index: Default::default(),
31678        }
31679    }
31680}
31681///[`VkBufferCollectionImageCreateInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionImageCreateInfoFUCHSIA.html)
31682/**
31683Provided by **VK_FUCHSIA_buffer_collection**.*/
31684///
31685///# Extends
31686///- [`ImageCreateInfo`]
31687#[repr(C)]
31688#[derive(Copy, Clone, Debug)]
31689#[doc(alias = "VkBufferCollectionImageCreateInfoFUCHSIA")]
31690pub struct BufferCollectionImageCreateInfoFUCHSIA {
31691    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA`.
31692    pub s_type: StructureType,
31693    ///Optional, may be null.
31694    pub p_next: *const core::ffi::c_void,
31695    pub collection: BufferCollectionFUCHSIA,
31696    pub index: u32,
31697}
31698impl Default for BufferCollectionImageCreateInfoFUCHSIA {
31699    #[inline]
31700    fn default() -> Self {
31701        Self {
31702            s_type: StructureType::from_raw(1000366002i32),
31703            p_next: core::ptr::null(),
31704            collection: Default::default(),
31705            index: Default::default(),
31706        }
31707    }
31708}
31709///[`VkBufferCollectionBufferCreateInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionBufferCreateInfoFUCHSIA.html)
31710/**
31711Provided by **VK_FUCHSIA_buffer_collection**.*/
31712///
31713///# Extends
31714///- [`BufferCreateInfo`]
31715#[repr(C)]
31716#[derive(Copy, Clone, Debug)]
31717#[doc(alias = "VkBufferCollectionBufferCreateInfoFUCHSIA")]
31718pub struct BufferCollectionBufferCreateInfoFUCHSIA {
31719    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA`.
31720    pub s_type: StructureType,
31721    ///Optional, may be null.
31722    pub p_next: *const core::ffi::c_void,
31723    pub collection: BufferCollectionFUCHSIA,
31724    pub index: u32,
31725}
31726impl Default for BufferCollectionBufferCreateInfoFUCHSIA {
31727    #[inline]
31728    fn default() -> Self {
31729        Self {
31730            s_type: StructureType::from_raw(1000366005i32),
31731            p_next: core::ptr::null(),
31732            collection: Default::default(),
31733            index: Default::default(),
31734        }
31735    }
31736}
31737///[`VkBufferCollectionCreateInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionCreateInfoFUCHSIA.html)
31738/**
31739Provided by **VK_FUCHSIA_buffer_collection**.*/
31740#[repr(C)]
31741#[derive(Copy, Clone, Debug)]
31742#[doc(alias = "VkBufferCollectionCreateInfoFUCHSIA")]
31743pub struct BufferCollectionCreateInfoFUCHSIA {
31744    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA`.
31745    pub s_type: StructureType,
31746    ///Optional, may be null.
31747    pub p_next: *const core::ffi::c_void,
31748    pub collection_token: u32,
31749}
31750impl Default for BufferCollectionCreateInfoFUCHSIA {
31751    #[inline]
31752    fn default() -> Self {
31753        Self {
31754            s_type: StructureType::from_raw(1000366000i32),
31755            p_next: core::ptr::null(),
31756            collection_token: Default::default(),
31757        }
31758    }
31759}
31760///[`VkBufferCollectionPropertiesFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionPropertiesFUCHSIA.html)
31761/**
31762Provided by **VK_FUCHSIA_buffer_collection**.*/
31763/**
31764**Returned only**, filled by Vulkan, not constructed by the application.*/
31765#[repr(C)]
31766#[derive(Copy, Clone, Debug)]
31767#[doc(alias = "VkBufferCollectionPropertiesFUCHSIA")]
31768pub struct BufferCollectionPropertiesFUCHSIA {
31769    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA`.
31770    pub s_type: StructureType,
31771    ///Optional, may be null.
31772    pub p_next: *mut core::ffi::c_void,
31773    pub memory_type_bits: u32,
31774    pub buffer_count: u32,
31775    pub create_info_index: u32,
31776    pub sysmem_pixel_format: u64,
31777    pub format_features: FormatFeatureFlags,
31778    pub sysmem_color_space_index: SysmemColorSpaceFUCHSIA,
31779    pub sampler_ycbcr_conversion_components: ComponentMapping,
31780    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
31781    pub suggested_ycbcr_range: SamplerYcbcrRange,
31782    pub suggested_x_chroma_offset: ChromaLocation,
31783    pub suggested_y_chroma_offset: ChromaLocation,
31784}
31785impl Default for BufferCollectionPropertiesFUCHSIA {
31786    #[inline]
31787    fn default() -> Self {
31788        Self {
31789            s_type: StructureType::from_raw(1000366003i32),
31790            p_next: core::ptr::null_mut(),
31791            memory_type_bits: Default::default(),
31792            buffer_count: Default::default(),
31793            create_info_index: Default::default(),
31794            sysmem_pixel_format: Default::default(),
31795            format_features: Default::default(),
31796            sysmem_color_space_index: Default::default(),
31797            sampler_ycbcr_conversion_components: Default::default(),
31798            suggested_ycbcr_model: Default::default(),
31799            suggested_ycbcr_range: Default::default(),
31800            suggested_x_chroma_offset: Default::default(),
31801            suggested_y_chroma_offset: Default::default(),
31802        }
31803    }
31804}
31805///[`VkBufferConstraintsInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferConstraintsInfoFUCHSIA.html)
31806/**
31807Provided by **VK_FUCHSIA_buffer_collection**.*/
31808#[repr(C)]
31809#[derive(Copy, Clone, Debug)]
31810#[doc(alias = "VkBufferConstraintsInfoFUCHSIA")]
31811pub struct BufferConstraintsInfoFUCHSIA {
31812    ///Must be `VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA`.
31813    pub s_type: StructureType,
31814    ///Optional, may be null.
31815    pub p_next: *const core::ffi::c_void,
31816    pub create_info: BufferCreateInfo,
31817    pub required_format_features: FormatFeatureFlags,
31818    pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA,
31819}
31820impl Default for BufferConstraintsInfoFUCHSIA {
31821    #[inline]
31822    fn default() -> Self {
31823        Self {
31824            s_type: StructureType::from_raw(1000366004i32),
31825            p_next: core::ptr::null(),
31826            create_info: Default::default(),
31827            required_format_features: Default::default(),
31828            buffer_collection_constraints: Default::default(),
31829        }
31830    }
31831}
31832///[`VkSysmemColorSpaceFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSysmemColorSpaceFUCHSIA.html)
31833/**
31834Provided by **VK_FUCHSIA_buffer_collection**.*/
31835#[repr(C)]
31836#[derive(Copy, Clone, Debug)]
31837#[doc(alias = "VkSysmemColorSpaceFUCHSIA")]
31838pub struct SysmemColorSpaceFUCHSIA {
31839    ///Must be `VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA`.
31840    pub s_type: StructureType,
31841    ///Optional, may be null.
31842    pub p_next: *const core::ffi::c_void,
31843    pub color_space: u32,
31844}
31845impl Default for SysmemColorSpaceFUCHSIA {
31846    #[inline]
31847    fn default() -> Self {
31848        Self {
31849            s_type: StructureType::from_raw(1000366008i32),
31850            p_next: core::ptr::null(),
31851            color_space: Default::default(),
31852        }
31853    }
31854}
31855///[`VkImageFormatConstraintsInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageFormatConstraintsInfoFUCHSIA.html)
31856/**
31857Provided by **VK_FUCHSIA_buffer_collection**.*/
31858#[repr(C)]
31859#[derive(Copy, Clone, Debug)]
31860#[doc(alias = "VkImageFormatConstraintsInfoFUCHSIA")]
31861pub struct ImageFormatConstraintsInfoFUCHSIA {
31862    ///Must be `VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA`.
31863    pub s_type: StructureType,
31864    ///Optional, may be null.
31865    pub p_next: *const core::ffi::c_void,
31866    pub image_create_info: ImageCreateInfo,
31867    pub required_format_features: FormatFeatureFlags,
31868    pub flags: ImageFormatConstraintsFlagsFUCHSIA,
31869    pub sysmem_pixel_format: u64,
31870    ///Length of `p_color_spaces`.
31871    pub color_space_count: u32,
31872    pub p_color_spaces: *const SysmemColorSpaceFUCHSIA,
31873}
31874impl Default for ImageFormatConstraintsInfoFUCHSIA {
31875    #[inline]
31876    fn default() -> Self {
31877        Self {
31878            s_type: StructureType::from_raw(1000366007i32),
31879            p_next: core::ptr::null(),
31880            image_create_info: Default::default(),
31881            required_format_features: Default::default(),
31882            flags: Default::default(),
31883            sysmem_pixel_format: Default::default(),
31884            color_space_count: Default::default(),
31885            p_color_spaces: core::ptr::null(),
31886        }
31887    }
31888}
31889///[`VkImageConstraintsInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageConstraintsInfoFUCHSIA.html)
31890/**
31891Provided by **VK_FUCHSIA_buffer_collection**.*/
31892#[repr(C)]
31893#[derive(Copy, Clone, Debug)]
31894#[doc(alias = "VkImageConstraintsInfoFUCHSIA")]
31895pub struct ImageConstraintsInfoFUCHSIA {
31896    ///Must be `VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA`.
31897    pub s_type: StructureType,
31898    ///Optional, may be null.
31899    pub p_next: *const core::ffi::c_void,
31900    ///Length of `p_format_constraints`.
31901    pub format_constraints_count: u32,
31902    pub p_format_constraints: *const ImageFormatConstraintsInfoFUCHSIA,
31903    pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA,
31904    pub flags: ImageConstraintsInfoFlagsFUCHSIA,
31905}
31906impl Default for ImageConstraintsInfoFUCHSIA {
31907    #[inline]
31908    fn default() -> Self {
31909        Self {
31910            s_type: StructureType::from_raw(1000366006i32),
31911            p_next: core::ptr::null(),
31912            format_constraints_count: Default::default(),
31913            p_format_constraints: core::ptr::null(),
31914            buffer_collection_constraints: Default::default(),
31915            flags: Default::default(),
31916        }
31917    }
31918}
31919///[`VkBufferCollectionConstraintsInfoFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCollectionConstraintsInfoFUCHSIA.html)
31920/**
31921Provided by **VK_FUCHSIA_buffer_collection**.*/
31922#[repr(C)]
31923#[derive(Copy, Clone, Debug)]
31924#[doc(alias = "VkBufferCollectionConstraintsInfoFUCHSIA")]
31925pub struct BufferCollectionConstraintsInfoFUCHSIA {
31926    ///Must be `VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA`.
31927    pub s_type: StructureType,
31928    ///Optional, may be null.
31929    pub p_next: *const core::ffi::c_void,
31930    pub min_buffer_count: u32,
31931    pub max_buffer_count: u32,
31932    pub min_buffer_count_for_camping: u32,
31933    pub min_buffer_count_for_dedicated_slack: u32,
31934    pub min_buffer_count_for_shared_slack: u32,
31935}
31936impl Default for BufferCollectionConstraintsInfoFUCHSIA {
31937    #[inline]
31938    fn default() -> Self {
31939        Self {
31940            s_type: StructureType::from_raw(1000366009i32),
31941            p_next: core::ptr::null(),
31942            min_buffer_count: Default::default(),
31943            max_buffer_count: Default::default(),
31944            min_buffer_count_for_camping: Default::default(),
31945            min_buffer_count_for_dedicated_slack: Default::default(),
31946            min_buffer_count_for_shared_slack: Default::default(),
31947        }
31948    }
31949}
31950///[`VkCudaModuleCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCudaModuleCreateInfoNV.html)
31951/**
31952Provided by **VK_NV_cuda_kernel_launch**.*/
31953#[repr(C)]
31954#[derive(Copy, Clone, Debug)]
31955#[doc(alias = "VkCudaModuleCreateInfoNV")]
31956pub struct CudaModuleCreateInfoNV {
31957    ///Must be `VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV`.
31958    pub s_type: StructureType,
31959    ///Optional, may be null.
31960    pub p_next: *const core::ffi::c_void,
31961    ///Length of `p_data`.
31962    pub data_size: usize,
31963    pub p_data: *const core::ffi::c_void,
31964}
31965impl Default for CudaModuleCreateInfoNV {
31966    #[inline]
31967    fn default() -> Self {
31968        Self {
31969            s_type: StructureType::from_raw(1000307000i32),
31970            p_next: core::ptr::null(),
31971            data_size: Default::default(),
31972            p_data: core::ptr::null(),
31973        }
31974    }
31975}
31976///[`VkCudaFunctionCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCudaFunctionCreateInfoNV.html)
31977/**
31978Provided by **VK_NV_cuda_kernel_launch**.*/
31979#[repr(C)]
31980#[derive(Copy, Clone, Debug)]
31981#[doc(alias = "VkCudaFunctionCreateInfoNV")]
31982pub struct CudaFunctionCreateInfoNV {
31983    ///Must be `VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV`.
31984    pub s_type: StructureType,
31985    ///Optional, may be null.
31986    pub p_next: *const core::ffi::c_void,
31987    pub module: CudaModuleNV,
31988    pub p_name: *const core::ffi::c_char,
31989}
31990impl Default for CudaFunctionCreateInfoNV {
31991    #[inline]
31992    fn default() -> Self {
31993        Self {
31994            s_type: StructureType::from_raw(1000307001i32),
31995            p_next: core::ptr::null(),
31996            module: Default::default(),
31997            p_name: core::ptr::null(),
31998        }
31999    }
32000}
32001///[`VkCudaLaunchInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCudaLaunchInfoNV.html)
32002/**
32003Provided by **VK_NV_cuda_kernel_launch**.*/
32004#[repr(C)]
32005#[derive(Copy, Clone, Debug)]
32006#[doc(alias = "VkCudaLaunchInfoNV")]
32007pub struct CudaLaunchInfoNV {
32008    ///Must be `VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV`.
32009    pub s_type: StructureType,
32010    ///Optional, may be null.
32011    pub p_next: *const core::ffi::c_void,
32012    pub function: CudaFunctionNV,
32013    pub grid_dim_x: u32,
32014    pub grid_dim_y: u32,
32015    pub grid_dim_z: u32,
32016    pub block_dim_x: u32,
32017    pub block_dim_y: u32,
32018    pub block_dim_z: u32,
32019    pub shared_mem_bytes: u32,
32020    ///Length of `p_params`.
32021    pub param_count: usize,
32022    pub p_params: *const *const core::ffi::c_void,
32023    ///Length of `p_extras`.
32024    pub extra_count: usize,
32025    pub p_extras: *const *const core::ffi::c_void,
32026}
32027impl Default for CudaLaunchInfoNV {
32028    #[inline]
32029    fn default() -> Self {
32030        Self {
32031            s_type: StructureType::from_raw(1000307002i32),
32032            p_next: core::ptr::null(),
32033            function: Default::default(),
32034            grid_dim_x: Default::default(),
32035            grid_dim_y: Default::default(),
32036            grid_dim_z: Default::default(),
32037            block_dim_x: Default::default(),
32038            block_dim_y: Default::default(),
32039            block_dim_z: Default::default(),
32040            shared_mem_bytes: Default::default(),
32041            param_count: Default::default(),
32042            p_params: core::ptr::null(),
32043            extra_count: Default::default(),
32044            p_extras: core::ptr::null(),
32045        }
32046    }
32047}
32048///[`VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.html)
32049/**
32050Provided by **VK_EXT_rgba10x6_formats**.*/
32051///
32052///# Extends
32053///- [`PhysicalDeviceFeatures2`]
32054///- [`DeviceCreateInfo`]
32055#[repr(C)]
32056#[derive(Copy, Clone, Debug)]
32057#[doc(alias = "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT")]
32058pub struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
32059    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT`.
32060    pub s_type: StructureType,
32061    ///Optional, may be null.
32062    pub p_next: *mut core::ffi::c_void,
32063    pub format_rgba10x6_without_y_cb_cr_sampler: u32,
32064}
32065impl Default for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
32066    #[inline]
32067    fn default() -> Self {
32068        Self {
32069            s_type: StructureType::from_raw(1000344000i32),
32070            p_next: core::ptr::null_mut(),
32071            format_rgba10x6_without_y_cb_cr_sampler: Default::default(),
32072        }
32073    }
32074}
32075///[`VkFormatProperties3`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFormatProperties3.html)
32076/**
32077Provided by **VK_BASE_VERSION_1_3**.*/
32078/**
32079**Returned only**, filled by Vulkan, not constructed by the application.*/
32080///
32081///# Extends
32082///- [`FormatProperties2`]
32083#[repr(C)]
32084#[derive(Copy, Clone, Debug)]
32085#[doc(alias = "VkFormatProperties3")]
32086pub struct FormatProperties3 {
32087    ///Must be `VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3`.
32088    pub s_type: StructureType,
32089    ///Optional, may be null.
32090    pub p_next: *mut core::ffi::c_void,
32091    pub linear_tiling_features: FormatFeatureFlags2,
32092    pub optimal_tiling_features: FormatFeatureFlags2,
32093    pub buffer_features: FormatFeatureFlags2,
32094}
32095impl Default for FormatProperties3 {
32096    #[inline]
32097    fn default() -> Self {
32098        Self {
32099            s_type: StructureType::from_raw(1000360000i32),
32100            p_next: core::ptr::null_mut(),
32101            linear_tiling_features: Default::default(),
32102            optimal_tiling_features: Default::default(),
32103            buffer_features: Default::default(),
32104        }
32105    }
32106}
32107///[`VkDrmFormatModifierPropertiesList2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrmFormatModifierPropertiesList2EXT.html)
32108/**
32109Provided by **VK_EXT_image_drm_format_modifier**.*/
32110/**
32111**Returned only**, filled by Vulkan, not constructed by the application.*/
32112///
32113///# Extends
32114///- [`FormatProperties2`]
32115#[repr(C)]
32116#[derive(Copy, Clone, Debug)]
32117#[doc(alias = "VkDrmFormatModifierPropertiesList2EXT")]
32118pub struct DrmFormatModifierPropertiesList2EXT {
32119    ///Must be `VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT`.
32120    pub s_type: StructureType,
32121    ///Optional, may be null.
32122    pub p_next: *mut core::ffi::c_void,
32123    ///Length of `p_drm_format_modifier_properties`.
32124    pub drm_format_modifier_count: u32,
32125    ///Optional, may be null.
32126    pub p_drm_format_modifier_properties: *mut DrmFormatModifierProperties2EXT,
32127}
32128impl Default for DrmFormatModifierPropertiesList2EXT {
32129    #[inline]
32130    fn default() -> Self {
32131        Self {
32132            s_type: StructureType::from_raw(1000158006i32),
32133            p_next: core::ptr::null_mut(),
32134            drm_format_modifier_count: Default::default(),
32135            p_drm_format_modifier_properties: core::ptr::null_mut(),
32136        }
32137    }
32138}
32139///[`VkDrmFormatModifierProperties2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrmFormatModifierProperties2EXT.html)
32140/**
32141Provided by **VK_EXT_image_drm_format_modifier**.*/
32142/**
32143**Returned only**, filled by Vulkan, not constructed by the application.*/
32144#[repr(C)]
32145#[derive(Copy, Clone, Debug)]
32146#[doc(alias = "VkDrmFormatModifierProperties2EXT")]
32147pub struct DrmFormatModifierProperties2EXT {
32148    pub drm_format_modifier: u64,
32149    pub drm_format_modifier_plane_count: u32,
32150    pub drm_format_modifier_tiling_features: FormatFeatureFlags2,
32151}
32152impl Default for DrmFormatModifierProperties2EXT {
32153    #[inline]
32154    fn default() -> Self {
32155        unsafe { core::mem::zeroed() }
32156    }
32157}
32158///[`VkAndroidHardwareBufferFormatProperties2ANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferFormatProperties2ANDROID.html)
32159/**
32160Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
32161/**
32162**Returned only**, filled by Vulkan, not constructed by the application.*/
32163///
32164///# Extends
32165///- [`AndroidHardwareBufferPropertiesANDROID`]
32166#[repr(C)]
32167#[derive(Copy, Clone, Debug)]
32168#[doc(alias = "VkAndroidHardwareBufferFormatProperties2ANDROID")]
32169pub struct AndroidHardwareBufferFormatProperties2ANDROID {
32170    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID`.
32171    pub s_type: StructureType,
32172    ///Optional, may be null.
32173    pub p_next: *mut core::ffi::c_void,
32174    pub format: Format,
32175    pub external_format: u64,
32176    pub format_features: FormatFeatureFlags2,
32177    pub sampler_ycbcr_conversion_components: ComponentMapping,
32178    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
32179    pub suggested_ycbcr_range: SamplerYcbcrRange,
32180    pub suggested_x_chroma_offset: ChromaLocation,
32181    pub suggested_y_chroma_offset: ChromaLocation,
32182}
32183impl Default for AndroidHardwareBufferFormatProperties2ANDROID {
32184    #[inline]
32185    fn default() -> Self {
32186        Self {
32187            s_type: StructureType::from_raw(1000129006i32),
32188            p_next: core::ptr::null_mut(),
32189            format: Default::default(),
32190            external_format: Default::default(),
32191            format_features: Default::default(),
32192            sampler_ycbcr_conversion_components: Default::default(),
32193            suggested_ycbcr_model: Default::default(),
32194            suggested_ycbcr_range: Default::default(),
32195            suggested_x_chroma_offset: Default::default(),
32196            suggested_y_chroma_offset: Default::default(),
32197        }
32198    }
32199}
32200///[`VkPipelineRenderingCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRenderingCreateInfo.html)
32201/**
32202Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32203///
32204///# Extends
32205///- [`GraphicsPipelineCreateInfo`]
32206#[repr(C)]
32207#[derive(Copy, Clone, Debug)]
32208#[doc(alias = "VkPipelineRenderingCreateInfo")]
32209pub struct PipelineRenderingCreateInfo {
32210    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO`.
32211    pub s_type: StructureType,
32212    ///Optional, may be null.
32213    pub p_next: *const core::ffi::c_void,
32214    pub view_mask: u32,
32215    ///Length of `p_color_attachment_formats`.
32216    pub color_attachment_count: u32,
32217    pub p_color_attachment_formats: *const Format,
32218    pub depth_attachment_format: Format,
32219    pub stencil_attachment_format: Format,
32220}
32221impl Default for PipelineRenderingCreateInfo {
32222    #[inline]
32223    fn default() -> Self {
32224        Self {
32225            s_type: StructureType::from_raw(1000044002i32),
32226            p_next: core::ptr::null(),
32227            view_mask: Default::default(),
32228            color_attachment_count: Default::default(),
32229            p_color_attachment_formats: core::ptr::null(),
32230            depth_attachment_format: Default::default(),
32231            stencil_attachment_format: Default::default(),
32232        }
32233    }
32234}
32235///[`VkRenderingInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingInfo.html)
32236/**
32237Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32238///
32239///# Extended By
32240///- [`DeviceGroupRenderPassBeginInfo`]
32241///- [`MultisampledRenderToSingleSampledInfoEXT`]
32242///- [`MultiviewPerViewAttributesInfoNVX`]
32243///- [`MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM`]
32244///- [`RenderPassPerformanceCountersByRegionBeginInfoARM`]
32245///- [`RenderPassStripeBeginInfoARM`]
32246///- [`RenderPassTileShadingCreateInfoQCOM`]
32247///- [`RenderingFragmentDensityMapAttachmentInfoEXT`]
32248///- [`RenderingFragmentShadingRateAttachmentInfoKHR`]
32249///- [`TileMemorySizeInfoQCOM`]
32250#[repr(C)]
32251#[derive(Copy, Clone, Debug)]
32252#[doc(alias = "VkRenderingInfo")]
32253pub struct RenderingInfo {
32254    ///Must be `VK_STRUCTURE_TYPE_RENDERING_INFO`.
32255    pub s_type: StructureType,
32256    ///Optional, may be null.
32257    pub p_next: *const core::ffi::c_void,
32258    pub flags: RenderingFlags,
32259    pub render_area: Rect2D,
32260    pub layer_count: u32,
32261    pub view_mask: u32,
32262    ///Length of `p_color_attachments`.
32263    pub color_attachment_count: u32,
32264    pub p_color_attachments: *const RenderingAttachmentInfo,
32265    ///Optional, may be null.
32266    pub p_depth_attachment: *const RenderingAttachmentInfo,
32267    ///Optional, may be null.
32268    pub p_stencil_attachment: *const RenderingAttachmentInfo,
32269}
32270impl Default for RenderingInfo {
32271    #[inline]
32272    fn default() -> Self {
32273        Self {
32274            s_type: StructureType::from_raw(1000044000i32),
32275            p_next: core::ptr::null(),
32276            flags: Default::default(),
32277            render_area: Default::default(),
32278            layer_count: Default::default(),
32279            view_mask: Default::default(),
32280            color_attachment_count: Default::default(),
32281            p_color_attachments: core::ptr::null(),
32282            p_depth_attachment: core::ptr::null(),
32283            p_stencil_attachment: core::ptr::null(),
32284        }
32285    }
32286}
32287///[`VkRenderingEndInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingEndInfoKHR.html)
32288/**
32289Provided by **VK_KHR_maintenance10**.*/
32290///
32291///# Extended By
32292///- [`RenderPassFragmentDensityMapOffsetEndInfoEXT`]
32293#[repr(C)]
32294#[derive(Copy, Clone, Debug)]
32295#[doc(alias = "VkRenderingEndInfoKHR")]
32296pub struct RenderingEndInfoKHR {
32297    ///Must be `VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR`.
32298    pub s_type: StructureType,
32299    ///Optional, may be null.
32300    pub p_next: *const core::ffi::c_void,
32301}
32302impl Default for RenderingEndInfoKHR {
32303    #[inline]
32304    fn default() -> Self {
32305        Self {
32306            s_type: StructureType::from_raw(1000619003i32),
32307            p_next: core::ptr::null(),
32308        }
32309    }
32310}
32311///[`VkRenderingAttachmentInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingAttachmentInfo.html)
32312/**
32313Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32314///
32315///# Extended By
32316///- [`AttachmentFeedbackLoopInfoEXT`]
32317///- [`RenderingAttachmentFlagsInfoKHR`]
32318#[repr(C)]
32319#[derive(Copy, Clone, Debug)]
32320#[doc(alias = "VkRenderingAttachmentInfo")]
32321pub struct RenderingAttachmentInfo {
32322    ///Must be `VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO`.
32323    pub s_type: StructureType,
32324    ///Optional, may be null.
32325    pub p_next: *const core::ffi::c_void,
32326    pub image_view: ImageView,
32327    pub image_layout: ImageLayout,
32328    pub resolve_mode: ResolveModeFlagBits,
32329    pub resolve_image_view: ImageView,
32330    pub resolve_image_layout: ImageLayout,
32331    pub load_op: AttachmentLoadOp,
32332    pub store_op: AttachmentStoreOp,
32333    pub clear_value: ClearValue,
32334}
32335impl Default for RenderingAttachmentInfo {
32336    #[inline]
32337    fn default() -> Self {
32338        Self {
32339            s_type: StructureType::from_raw(1000044001i32),
32340            p_next: core::ptr::null(),
32341            image_view: Default::default(),
32342            image_layout: Default::default(),
32343            resolve_mode: Default::default(),
32344            resolve_image_view: Default::default(),
32345            resolve_image_layout: Default::default(),
32346            load_op: Default::default(),
32347            store_op: Default::default(),
32348            clear_value: Default::default(),
32349        }
32350    }
32351}
32352///[`VkRenderingFragmentShadingRateAttachmentInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingFragmentShadingRateAttachmentInfoKHR.html)
32353/**
32354Provided by **VK_KHR_fragment_shading_rate**.*/
32355///
32356///# Extends
32357///- [`RenderingInfo`]
32358#[repr(C)]
32359#[derive(Copy, Clone, Debug)]
32360#[doc(alias = "VkRenderingFragmentShadingRateAttachmentInfoKHR")]
32361pub struct RenderingFragmentShadingRateAttachmentInfoKHR {
32362    ///Must be `VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR`.
32363    pub s_type: StructureType,
32364    ///Optional, may be null.
32365    pub p_next: *const core::ffi::c_void,
32366    pub image_view: ImageView,
32367    pub image_layout: ImageLayout,
32368    pub shading_rate_attachment_texel_size: Extent2D,
32369}
32370impl Default for RenderingFragmentShadingRateAttachmentInfoKHR {
32371    #[inline]
32372    fn default() -> Self {
32373        Self {
32374            s_type: StructureType::from_raw(1000044006i32),
32375            p_next: core::ptr::null(),
32376            image_view: Default::default(),
32377            image_layout: Default::default(),
32378            shading_rate_attachment_texel_size: Default::default(),
32379        }
32380    }
32381}
32382///[`VkRenderingFragmentDensityMapAttachmentInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingFragmentDensityMapAttachmentInfoEXT.html)
32383/**
32384Provided by **VK_EXT_fragment_density_map**.*/
32385///
32386///# Extends
32387///- [`RenderingInfo`]
32388#[repr(C)]
32389#[derive(Copy, Clone, Debug)]
32390#[doc(alias = "VkRenderingFragmentDensityMapAttachmentInfoEXT")]
32391pub struct RenderingFragmentDensityMapAttachmentInfoEXT {
32392    ///Must be `VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT`.
32393    pub s_type: StructureType,
32394    ///Optional, may be null.
32395    pub p_next: *const core::ffi::c_void,
32396    pub image_view: ImageView,
32397    pub image_layout: ImageLayout,
32398}
32399impl Default for RenderingFragmentDensityMapAttachmentInfoEXT {
32400    #[inline]
32401    fn default() -> Self {
32402        Self {
32403            s_type: StructureType::from_raw(1000044007i32),
32404            p_next: core::ptr::null(),
32405            image_view: Default::default(),
32406            image_layout: Default::default(),
32407        }
32408    }
32409}
32410///[`VkPhysicalDeviceDynamicRenderingFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDynamicRenderingFeatures.html)
32411/**
32412Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32413///
32414///# Extends
32415///- [`PhysicalDeviceFeatures2`]
32416///- [`DeviceCreateInfo`]
32417#[repr(C)]
32418#[derive(Copy, Clone, Debug)]
32419#[doc(alias = "VkPhysicalDeviceDynamicRenderingFeatures")]
32420pub struct PhysicalDeviceDynamicRenderingFeatures {
32421    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES`.
32422    pub s_type: StructureType,
32423    ///Optional, may be null.
32424    pub p_next: *mut core::ffi::c_void,
32425    pub dynamic_rendering: u32,
32426}
32427impl Default for PhysicalDeviceDynamicRenderingFeatures {
32428    #[inline]
32429    fn default() -> Self {
32430        Self {
32431            s_type: StructureType::from_raw(1000044003i32),
32432            p_next: core::ptr::null_mut(),
32433            dynamic_rendering: Default::default(),
32434        }
32435    }
32436}
32437///[`VkCommandBufferInheritanceRenderingInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceRenderingInfo.html)
32438/**
32439Provided by **VK_GRAPHICS_VERSION_1_3**.*/
32440///
32441///# Extends
32442///- [`CommandBufferInheritanceInfo`]
32443#[repr(C)]
32444#[derive(Copy, Clone, Debug)]
32445#[doc(alias = "VkCommandBufferInheritanceRenderingInfo")]
32446pub struct CommandBufferInheritanceRenderingInfo {
32447    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO`.
32448    pub s_type: StructureType,
32449    ///Optional, may be null.
32450    pub p_next: *const core::ffi::c_void,
32451    pub flags: RenderingFlags,
32452    pub view_mask: u32,
32453    ///Length of `p_color_attachment_formats`.
32454    pub color_attachment_count: u32,
32455    pub p_color_attachment_formats: *const Format,
32456    pub depth_attachment_format: Format,
32457    pub stencil_attachment_format: Format,
32458    pub rasterization_samples: SampleCountFlagBits,
32459}
32460impl Default for CommandBufferInheritanceRenderingInfo {
32461    #[inline]
32462    fn default() -> Self {
32463        Self {
32464            s_type: StructureType::from_raw(1000044004i32),
32465            p_next: core::ptr::null(),
32466            flags: Default::default(),
32467            view_mask: Default::default(),
32468            color_attachment_count: Default::default(),
32469            p_color_attachment_formats: core::ptr::null(),
32470            depth_attachment_format: Default::default(),
32471            stencil_attachment_format: Default::default(),
32472            rasterization_samples: Default::default(),
32473        }
32474    }
32475}
32476///[`VkAttachmentSampleCountInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentSampleCountInfoAMD.html)
32477/**
32478Provided by **VK_AMD_mixed_attachment_samples**.*/
32479///
32480///# Extends
32481///- [`CommandBufferInheritanceInfo`]
32482///- [`GraphicsPipelineCreateInfo`]
32483#[repr(C)]
32484#[derive(Copy, Clone, Debug)]
32485#[doc(alias = "VkAttachmentSampleCountInfoAMD")]
32486pub struct AttachmentSampleCountInfoAMD {
32487    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD`.
32488    pub s_type: StructureType,
32489    ///Optional, may be null.
32490    pub p_next: *const core::ffi::c_void,
32491    ///Length of `p_color_attachment_samples`.
32492    pub color_attachment_count: u32,
32493    pub p_color_attachment_samples: *const SampleCountFlagBits,
32494    pub depth_stencil_attachment_samples: SampleCountFlagBits,
32495}
32496impl Default for AttachmentSampleCountInfoAMD {
32497    #[inline]
32498    fn default() -> Self {
32499        Self {
32500            s_type: StructureType::from_raw(1000044008i32),
32501            p_next: core::ptr::null(),
32502            color_attachment_count: Default::default(),
32503            p_color_attachment_samples: core::ptr::null(),
32504            depth_stencil_attachment_samples: Default::default(),
32505        }
32506    }
32507}
32508///[`VkMultiviewPerViewAttributesInfoNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultiviewPerViewAttributesInfoNVX.html)
32509/**
32510Provided by **VK_NVX_multiview_per_view_attributes**.*/
32511///
32512///# Extends
32513///- [`CommandBufferInheritanceInfo`]
32514///- [`GraphicsPipelineCreateInfo`]
32515///- [`RenderingInfo`]
32516#[repr(C)]
32517#[derive(Copy, Clone, Debug)]
32518#[doc(alias = "VkMultiviewPerViewAttributesInfoNVX")]
32519pub struct MultiviewPerViewAttributesInfoNVX {
32520    ///Must be `VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX`.
32521    pub s_type: StructureType,
32522    ///Optional, may be null.
32523    pub p_next: *const core::ffi::c_void,
32524    pub per_view_attributes: u32,
32525    pub per_view_attributes_position_x_only: u32,
32526}
32527impl Default for MultiviewPerViewAttributesInfoNVX {
32528    #[inline]
32529    fn default() -> Self {
32530        Self {
32531            s_type: StructureType::from_raw(1000044009i32),
32532            p_next: core::ptr::null(),
32533            per_view_attributes: Default::default(),
32534            per_view_attributes_position_x_only: Default::default(),
32535        }
32536    }
32537}
32538///[`VkPhysicalDeviceImageViewMinLodFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageViewMinLodFeaturesEXT.html)
32539/**
32540Provided by **VK_EXT_image_view_min_lod**.*/
32541///
32542///# Extends
32543///- [`PhysicalDeviceFeatures2`]
32544///- [`DeviceCreateInfo`]
32545#[repr(C)]
32546#[derive(Copy, Clone, Debug)]
32547#[doc(alias = "VkPhysicalDeviceImageViewMinLodFeaturesEXT")]
32548pub struct PhysicalDeviceImageViewMinLodFeaturesEXT {
32549    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT`.
32550    pub s_type: StructureType,
32551    ///Optional, may be null.
32552    pub p_next: *mut core::ffi::c_void,
32553    pub min_lod: u32,
32554}
32555impl Default for PhysicalDeviceImageViewMinLodFeaturesEXT {
32556    #[inline]
32557    fn default() -> Self {
32558        Self {
32559            s_type: StructureType::from_raw(1000391000i32),
32560            p_next: core::ptr::null_mut(),
32561            min_lod: Default::default(),
32562        }
32563    }
32564}
32565///[`VkImageViewMinLodCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewMinLodCreateInfoEXT.html)
32566/**
32567Provided by **VK_EXT_image_view_min_lod**.*/
32568///
32569///# Extends
32570///- [`ImageViewCreateInfo`]
32571#[repr(C)]
32572#[derive(Copy, Clone, Debug)]
32573#[doc(alias = "VkImageViewMinLodCreateInfoEXT")]
32574pub struct ImageViewMinLodCreateInfoEXT {
32575    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT`.
32576    pub s_type: StructureType,
32577    ///Optional, may be null.
32578    pub p_next: *const core::ffi::c_void,
32579    pub min_lod: f32,
32580}
32581impl Default for ImageViewMinLodCreateInfoEXT {
32582    #[inline]
32583    fn default() -> Self {
32584        Self {
32585            s_type: StructureType::from_raw(1000391001i32),
32586            p_next: core::ptr::null(),
32587            min_lod: Default::default(),
32588        }
32589    }
32590}
32591///[`VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.html)
32592/**
32593Provided by **VK_EXT_rasterization_order_attachment_access**.*/
32594///
32595///# Extends
32596///- [`PhysicalDeviceFeatures2`]
32597///- [`DeviceCreateInfo`]
32598#[repr(C)]
32599#[derive(Copy, Clone, Debug)]
32600#[doc(alias = "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT")]
32601pub struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
32602    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT`.
32603    pub s_type: StructureType,
32604    ///Optional, may be null.
32605    pub p_next: *mut core::ffi::c_void,
32606    pub rasterization_order_color_attachment_access: u32,
32607    pub rasterization_order_depth_attachment_access: u32,
32608    pub rasterization_order_stencil_attachment_access: u32,
32609}
32610impl Default for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
32611    #[inline]
32612    fn default() -> Self {
32613        Self {
32614            s_type: StructureType::from_raw(1000342000i32),
32615            p_next: core::ptr::null_mut(),
32616            rasterization_order_color_attachment_access: Default::default(),
32617            rasterization_order_depth_attachment_access: Default::default(),
32618            rasterization_order_stencil_attachment_access: Default::default(),
32619        }
32620    }
32621}
32622///[`VkPhysicalDeviceLinearColorAttachmentFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.html)
32623/**
32624Provided by **VK_NV_linear_color_attachment**.*/
32625///
32626///# Extends
32627///- [`PhysicalDeviceFeatures2`]
32628///- [`DeviceCreateInfo`]
32629#[repr(C)]
32630#[derive(Copy, Clone, Debug)]
32631#[doc(alias = "VkPhysicalDeviceLinearColorAttachmentFeaturesNV")]
32632pub struct PhysicalDeviceLinearColorAttachmentFeaturesNV {
32633    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV`.
32634    pub s_type: StructureType,
32635    ///Optional, may be null.
32636    pub p_next: *mut core::ffi::c_void,
32637    pub linear_color_attachment: u32,
32638}
32639impl Default for PhysicalDeviceLinearColorAttachmentFeaturesNV {
32640    #[inline]
32641    fn default() -> Self {
32642        Self {
32643            s_type: StructureType::from_raw(1000430000i32),
32644            p_next: core::ptr::null_mut(),
32645            linear_color_attachment: Default::default(),
32646        }
32647    }
32648}
32649///[`VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT.html)
32650/**
32651Provided by **VK_EXT_graphics_pipeline_library**.*/
32652///
32653///# Extends
32654///- [`PhysicalDeviceFeatures2`]
32655///- [`DeviceCreateInfo`]
32656#[repr(C)]
32657#[derive(Copy, Clone, Debug)]
32658#[doc(alias = "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT")]
32659pub struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
32660    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT`.
32661    pub s_type: StructureType,
32662    ///Optional, may be null.
32663    pub p_next: *mut core::ffi::c_void,
32664    pub graphics_pipeline_library: u32,
32665}
32666impl Default for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
32667    #[inline]
32668    fn default() -> Self {
32669        Self {
32670            s_type: StructureType::from_raw(1000320000i32),
32671            p_next: core::ptr::null_mut(),
32672            graphics_pipeline_library: Default::default(),
32673        }
32674    }
32675}
32676///[`VkPhysicalDevicePipelineBinaryFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineBinaryFeaturesKHR.html)
32677/**
32678Provided by **VK_KHR_pipeline_binary**.*/
32679///
32680///# Extends
32681///- [`PhysicalDeviceFeatures2`]
32682///- [`DeviceCreateInfo`]
32683#[repr(C)]
32684#[derive(Copy, Clone, Debug)]
32685#[doc(alias = "VkPhysicalDevicePipelineBinaryFeaturesKHR")]
32686pub struct PhysicalDevicePipelineBinaryFeaturesKHR {
32687    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR`.
32688    pub s_type: StructureType,
32689    ///Optional, may be null.
32690    pub p_next: *mut core::ffi::c_void,
32691    pub pipeline_binaries: u32,
32692}
32693impl Default for PhysicalDevicePipelineBinaryFeaturesKHR {
32694    #[inline]
32695    fn default() -> Self {
32696        Self {
32697            s_type: StructureType::from_raw(1000483000i32),
32698            p_next: core::ptr::null_mut(),
32699            pipeline_binaries: Default::default(),
32700        }
32701    }
32702}
32703///[`VkDevicePipelineBinaryInternalCacheControlKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDevicePipelineBinaryInternalCacheControlKHR.html)
32704/**
32705Provided by **VK_KHR_pipeline_binary**.*/
32706///
32707///# Extends
32708///- [`DeviceCreateInfo`]
32709#[repr(C)]
32710#[derive(Copy, Clone, Debug)]
32711#[doc(alias = "VkDevicePipelineBinaryInternalCacheControlKHR")]
32712pub struct DevicePipelineBinaryInternalCacheControlKHR {
32713    ///Must be `VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR`.
32714    pub s_type: StructureType,
32715    ///Optional, may be null.
32716    pub p_next: *const core::ffi::c_void,
32717    pub disable_internal_cache: u32,
32718}
32719impl Default for DevicePipelineBinaryInternalCacheControlKHR {
32720    #[inline]
32721    fn default() -> Self {
32722        Self {
32723            s_type: StructureType::from_raw(1000483008i32),
32724            p_next: core::ptr::null(),
32725            disable_internal_cache: Default::default(),
32726        }
32727    }
32728}
32729///[`VkPhysicalDevicePipelineBinaryPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineBinaryPropertiesKHR.html)
32730/**
32731Provided by **VK_KHR_pipeline_binary**.*/
32732/**
32733**Returned only**, filled by Vulkan, not constructed by the application.*/
32734///
32735///# Extends
32736///- [`PhysicalDeviceProperties2`]
32737#[repr(C)]
32738#[derive(Copy, Clone, Debug)]
32739#[doc(alias = "VkPhysicalDevicePipelineBinaryPropertiesKHR")]
32740pub struct PhysicalDevicePipelineBinaryPropertiesKHR {
32741    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR`.
32742    pub s_type: StructureType,
32743    ///Optional, may be null.
32744    pub p_next: *mut core::ffi::c_void,
32745    pub pipeline_binary_internal_cache: u32,
32746    pub pipeline_binary_internal_cache_control: u32,
32747    pub pipeline_binary_prefers_internal_cache: u32,
32748    pub pipeline_binary_precompiled_internal_cache: u32,
32749    pub pipeline_binary_compressed_data: u32,
32750}
32751impl Default for PhysicalDevicePipelineBinaryPropertiesKHR {
32752    #[inline]
32753    fn default() -> Self {
32754        Self {
32755            s_type: StructureType::from_raw(1000483004i32),
32756            p_next: core::ptr::null_mut(),
32757            pipeline_binary_internal_cache: Default::default(),
32758            pipeline_binary_internal_cache_control: Default::default(),
32759            pipeline_binary_prefers_internal_cache: Default::default(),
32760            pipeline_binary_precompiled_internal_cache: Default::default(),
32761            pipeline_binary_compressed_data: Default::default(),
32762        }
32763    }
32764}
32765///[`VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT.html)
32766/**
32767Provided by **VK_EXT_graphics_pipeline_library**.*/
32768/**
32769**Returned only**, filled by Vulkan, not constructed by the application.*/
32770///
32771///# Extends
32772///- [`PhysicalDeviceProperties2`]
32773#[repr(C)]
32774#[derive(Copy, Clone, Debug)]
32775#[doc(alias = "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT")]
32776pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
32777    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT`.
32778    pub s_type: StructureType,
32779    ///Optional, may be null.
32780    pub p_next: *mut core::ffi::c_void,
32781    pub graphics_pipeline_library_fast_linking: u32,
32782    pub graphics_pipeline_library_independent_interpolation_decoration: u32,
32783}
32784impl Default for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
32785    #[inline]
32786    fn default() -> Self {
32787        Self {
32788            s_type: StructureType::from_raw(1000320001i32),
32789            p_next: core::ptr::null_mut(),
32790            graphics_pipeline_library_fast_linking: Default::default(),
32791            graphics_pipeline_library_independent_interpolation_decoration: Default::default(),
32792        }
32793    }
32794}
32795///[`VkGraphicsPipelineLibraryCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGraphicsPipelineLibraryCreateInfoEXT.html)
32796/**
32797Provided by **VK_EXT_graphics_pipeline_library**.*/
32798///
32799///# Extends
32800///- [`GraphicsPipelineCreateInfo`]
32801#[repr(C)]
32802#[derive(Copy, Clone, Debug)]
32803#[doc(alias = "VkGraphicsPipelineLibraryCreateInfoEXT")]
32804pub struct GraphicsPipelineLibraryCreateInfoEXT {
32805    ///Must be `VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT`.
32806    pub s_type: StructureType,
32807    ///Optional, may be null.
32808    pub p_next: *const core::ffi::c_void,
32809    pub flags: GraphicsPipelineLibraryFlagsEXT,
32810}
32811impl Default for GraphicsPipelineLibraryCreateInfoEXT {
32812    #[inline]
32813    fn default() -> Self {
32814        Self {
32815            s_type: StructureType::from_raw(1000320002i32),
32816            p_next: core::ptr::null(),
32817            flags: Default::default(),
32818        }
32819    }
32820}
32821///[`VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE.html)
32822/**
32823Provided by **VK_VALVE_descriptor_set_host_mapping**.*/
32824///
32825///# Extends
32826///- [`PhysicalDeviceFeatures2`]
32827///- [`DeviceCreateInfo`]
32828#[repr(C)]
32829#[derive(Copy, Clone, Debug)]
32830#[doc(alias = "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE")]
32831pub struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
32832    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE`.
32833    pub s_type: StructureType,
32834    ///Optional, may be null.
32835    pub p_next: *mut core::ffi::c_void,
32836    pub descriptor_set_host_mapping: u32,
32837}
32838impl Default for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
32839    #[inline]
32840    fn default() -> Self {
32841        Self {
32842            s_type: StructureType::from_raw(1000420000i32),
32843            p_next: core::ptr::null_mut(),
32844            descriptor_set_host_mapping: Default::default(),
32845        }
32846    }
32847}
32848///[`VkDescriptorSetBindingReferenceVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetBindingReferenceVALVE.html)
32849/**
32850Provided by **VK_VALVE_descriptor_set_host_mapping**.*/
32851#[repr(C)]
32852#[derive(Copy, Clone, Debug)]
32853#[doc(alias = "VkDescriptorSetBindingReferenceVALVE")]
32854pub struct DescriptorSetBindingReferenceVALVE {
32855    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE`.
32856    pub s_type: StructureType,
32857    ///Optional, may be null.
32858    pub p_next: *const core::ffi::c_void,
32859    pub descriptor_set_layout: DescriptorSetLayout,
32860    pub binding: u32,
32861}
32862impl Default for DescriptorSetBindingReferenceVALVE {
32863    #[inline]
32864    fn default() -> Self {
32865        Self {
32866            s_type: StructureType::from_raw(1000420001i32),
32867            p_next: core::ptr::null(),
32868            descriptor_set_layout: Default::default(),
32869            binding: Default::default(),
32870        }
32871    }
32872}
32873///[`VkDescriptorSetLayoutHostMappingInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetLayoutHostMappingInfoVALVE.html)
32874/**
32875Provided by **VK_VALVE_descriptor_set_host_mapping**.*/
32876#[repr(C)]
32877#[derive(Copy, Clone, Debug)]
32878#[doc(alias = "VkDescriptorSetLayoutHostMappingInfoVALVE")]
32879pub struct DescriptorSetLayoutHostMappingInfoVALVE {
32880    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE`.
32881    pub s_type: StructureType,
32882    ///Optional, may be null.
32883    pub p_next: *mut core::ffi::c_void,
32884    pub descriptor_offset: usize,
32885    pub descriptor_size: u32,
32886}
32887impl Default for DescriptorSetLayoutHostMappingInfoVALVE {
32888    #[inline]
32889    fn default() -> Self {
32890        Self {
32891            s_type: StructureType::from_raw(1000420002i32),
32892            p_next: core::ptr::null_mut(),
32893            descriptor_offset: Default::default(),
32894            descriptor_size: Default::default(),
32895        }
32896    }
32897}
32898///[`VkPhysicalDeviceNestedCommandBufferFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceNestedCommandBufferFeaturesEXT.html)
32899/**
32900Provided by **VK_EXT_nested_command_buffer**.*/
32901///
32902///# Extends
32903///- [`PhysicalDeviceFeatures2`]
32904///- [`DeviceCreateInfo`]
32905#[repr(C)]
32906#[derive(Copy, Clone, Debug)]
32907#[doc(alias = "VkPhysicalDeviceNestedCommandBufferFeaturesEXT")]
32908pub struct PhysicalDeviceNestedCommandBufferFeaturesEXT {
32909    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT`.
32910    pub s_type: StructureType,
32911    ///Optional, may be null.
32912    pub p_next: *mut core::ffi::c_void,
32913    pub nested_command_buffer: u32,
32914    pub nested_command_buffer_rendering: u32,
32915    pub nested_command_buffer_simultaneous_use: u32,
32916}
32917impl Default for PhysicalDeviceNestedCommandBufferFeaturesEXT {
32918    #[inline]
32919    fn default() -> Self {
32920        Self {
32921            s_type: StructureType::from_raw(1000451000i32),
32922            p_next: core::ptr::null_mut(),
32923            nested_command_buffer: Default::default(),
32924            nested_command_buffer_rendering: Default::default(),
32925            nested_command_buffer_simultaneous_use: Default::default(),
32926        }
32927    }
32928}
32929///[`VkPhysicalDeviceNestedCommandBufferPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceNestedCommandBufferPropertiesEXT.html)
32930/**
32931Provided by **VK_EXT_nested_command_buffer**.*/
32932/**
32933**Returned only**, filled by Vulkan, not constructed by the application.*/
32934///
32935///# Extends
32936///- [`PhysicalDeviceProperties2`]
32937#[repr(C)]
32938#[derive(Copy, Clone, Debug)]
32939#[doc(alias = "VkPhysicalDeviceNestedCommandBufferPropertiesEXT")]
32940pub struct PhysicalDeviceNestedCommandBufferPropertiesEXT {
32941    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT`.
32942    pub s_type: StructureType,
32943    ///Optional, may be null.
32944    pub p_next: *mut core::ffi::c_void,
32945    pub max_command_buffer_nesting_level: u32,
32946}
32947impl Default for PhysicalDeviceNestedCommandBufferPropertiesEXT {
32948    #[inline]
32949    fn default() -> Self {
32950        Self {
32951            s_type: StructureType::from_raw(1000451001i32),
32952            p_next: core::ptr::null_mut(),
32953            max_command_buffer_nesting_level: Default::default(),
32954        }
32955    }
32956}
32957///[`VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT.html)
32958/**
32959Provided by **VK_EXT_shader_module_identifier**.*/
32960///
32961///# Extends
32962///- [`PhysicalDeviceFeatures2`]
32963///- [`DeviceCreateInfo`]
32964#[repr(C)]
32965#[derive(Copy, Clone, Debug)]
32966#[doc(alias = "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT")]
32967pub struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
32968    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT`.
32969    pub s_type: StructureType,
32970    ///Optional, may be null.
32971    pub p_next: *mut core::ffi::c_void,
32972    pub shader_module_identifier: u32,
32973}
32974impl Default for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
32975    #[inline]
32976    fn default() -> Self {
32977        Self {
32978            s_type: StructureType::from_raw(1000462000i32),
32979            p_next: core::ptr::null_mut(),
32980            shader_module_identifier: Default::default(),
32981        }
32982    }
32983}
32984///[`VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT.html)
32985/**
32986Provided by **VK_EXT_shader_module_identifier**.*/
32987/**
32988**Returned only**, filled by Vulkan, not constructed by the application.*/
32989///
32990///# Extends
32991///- [`PhysicalDeviceProperties2`]
32992#[repr(C)]
32993#[derive(Copy, Clone, Debug)]
32994#[doc(alias = "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT")]
32995pub struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
32996    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT`.
32997    pub s_type: StructureType,
32998    ///Optional, may be null.
32999    pub p_next: *mut core::ffi::c_void,
33000    pub shader_module_identifier_algorithm_uuid: [u8; UUID_SIZE as usize],
33001}
33002impl Default for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
33003    #[inline]
33004    fn default() -> Self {
33005        Self {
33006            s_type: StructureType::from_raw(1000462001i32),
33007            p_next: core::ptr::null_mut(),
33008            shader_module_identifier_algorithm_uuid: unsafe { core::mem::zeroed() },
33009        }
33010    }
33011}
33012///[`VkPipelineShaderStageModuleIdentifierCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineShaderStageModuleIdentifierCreateInfoEXT.html)
33013/**
33014Provided by **VK_EXT_shader_module_identifier**.*/
33015///
33016///# Extends
33017///- [`PipelineShaderStageCreateInfo`]
33018#[repr(C)]
33019#[derive(Copy, Clone, Debug)]
33020#[doc(alias = "VkPipelineShaderStageModuleIdentifierCreateInfoEXT")]
33021pub struct PipelineShaderStageModuleIdentifierCreateInfoEXT {
33022    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT`.
33023    pub s_type: StructureType,
33024    ///Optional, may be null.
33025    pub p_next: *const core::ffi::c_void,
33026    ///Length of `p_identifier`.
33027    pub identifier_size: u32,
33028    pub p_identifier: *const u8,
33029}
33030impl Default for PipelineShaderStageModuleIdentifierCreateInfoEXT {
33031    #[inline]
33032    fn default() -> Self {
33033        Self {
33034            s_type: StructureType::from_raw(1000462002i32),
33035            p_next: core::ptr::null(),
33036            identifier_size: Default::default(),
33037            p_identifier: core::ptr::null(),
33038        }
33039    }
33040}
33041///[`VkShaderModuleIdentifierEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderModuleIdentifierEXT.html)
33042/**
33043Provided by **VK_EXT_shader_module_identifier**.*/
33044/**
33045**Returned only**, filled by Vulkan, not constructed by the application.*/
33046#[repr(C)]
33047#[derive(Copy, Clone, Debug)]
33048#[doc(alias = "VkShaderModuleIdentifierEXT")]
33049pub struct ShaderModuleIdentifierEXT {
33050    ///Must be `VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT`.
33051    pub s_type: StructureType,
33052    ///Optional, may be null.
33053    pub p_next: *mut core::ffi::c_void,
33054    pub identifier_size: u32,
33055    pub identifier: [u8; MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT as usize],
33056}
33057impl Default for ShaderModuleIdentifierEXT {
33058    #[inline]
33059    fn default() -> Self {
33060        Self {
33061            s_type: StructureType::from_raw(1000462003i32),
33062            p_next: core::ptr::null_mut(),
33063            identifier_size: Default::default(),
33064            identifier: unsafe { core::mem::zeroed() },
33065        }
33066    }
33067}
33068///[`VkImageCompressionControlEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCompressionControlEXT.html)
33069/**
33070Provided by **VK_EXT_image_compression_control**.*/
33071///
33072///# Extends
33073///- [`ImageCreateInfo`]
33074///- [`SwapchainCreateInfoKHR`]
33075///- [`PhysicalDeviceImageFormatInfo2`]
33076#[repr(C)]
33077#[derive(Copy, Clone, Debug)]
33078#[doc(alias = "VkImageCompressionControlEXT")]
33079pub struct ImageCompressionControlEXT {
33080    ///Must be `VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT`.
33081    pub s_type: StructureType,
33082    ///Optional, may be null.
33083    pub p_next: *const core::ffi::c_void,
33084    pub flags: ImageCompressionFlagsEXT,
33085    ///Length of `p_fixed_rate_flags`.
33086    pub compression_control_plane_count: u32,
33087    pub p_fixed_rate_flags: *mut ImageCompressionFixedRateFlagsEXT,
33088}
33089impl Default for ImageCompressionControlEXT {
33090    #[inline]
33091    fn default() -> Self {
33092        Self {
33093            s_type: StructureType::from_raw(1000338001i32),
33094            p_next: core::ptr::null(),
33095            flags: Default::default(),
33096            compression_control_plane_count: Default::default(),
33097            p_fixed_rate_flags: core::ptr::null_mut(),
33098        }
33099    }
33100}
33101///[`VkPhysicalDeviceImageCompressionControlFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageCompressionControlFeaturesEXT.html)
33102/**
33103Provided by **VK_EXT_image_compression_control**.*/
33104///
33105///# Extends
33106///- [`PhysicalDeviceFeatures2`]
33107///- [`DeviceCreateInfo`]
33108#[repr(C)]
33109#[derive(Copy, Clone, Debug)]
33110#[doc(alias = "VkPhysicalDeviceImageCompressionControlFeaturesEXT")]
33111pub struct PhysicalDeviceImageCompressionControlFeaturesEXT {
33112    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT`.
33113    pub s_type: StructureType,
33114    ///Optional, may be null.
33115    pub p_next: *mut core::ffi::c_void,
33116    pub image_compression_control: u32,
33117}
33118impl Default for PhysicalDeviceImageCompressionControlFeaturesEXT {
33119    #[inline]
33120    fn default() -> Self {
33121        Self {
33122            s_type: StructureType::from_raw(1000338000i32),
33123            p_next: core::ptr::null_mut(),
33124            image_compression_control: Default::default(),
33125        }
33126    }
33127}
33128///[`VkImageCompressionPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageCompressionPropertiesEXT.html)
33129/**
33130Provided by **VK_EXT_image_compression_control**.*/
33131/**
33132**Returned only**, filled by Vulkan, not constructed by the application.*/
33133///
33134///# Extends
33135///- [`ImageFormatProperties2`]
33136///- [`SurfaceFormat2KHR`]
33137///- [`SubresourceLayout2`]
33138#[repr(C)]
33139#[derive(Copy, Clone, Debug)]
33140#[doc(alias = "VkImageCompressionPropertiesEXT")]
33141pub struct ImageCompressionPropertiesEXT {
33142    ///Must be `VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT`.
33143    pub s_type: StructureType,
33144    ///Optional, may be null.
33145    pub p_next: *mut core::ffi::c_void,
33146    pub image_compression_flags: ImageCompressionFlagsEXT,
33147    pub image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT,
33148}
33149impl Default for ImageCompressionPropertiesEXT {
33150    #[inline]
33151    fn default() -> Self {
33152        Self {
33153            s_type: StructureType::from_raw(1000338004i32),
33154            p_next: core::ptr::null_mut(),
33155            image_compression_flags: Default::default(),
33156            image_compression_fixed_rate_flags: Default::default(),
33157        }
33158    }
33159}
33160///[`VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT.html)
33161/**
33162Provided by **VK_EXT_image_compression_control_swapchain**.*/
33163///
33164///# Extends
33165///- [`PhysicalDeviceFeatures2`]
33166///- [`DeviceCreateInfo`]
33167#[repr(C)]
33168#[derive(Copy, Clone, Debug)]
33169#[doc(alias = "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT")]
33170pub struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
33171    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT`.
33172    pub s_type: StructureType,
33173    ///Optional, may be null.
33174    pub p_next: *mut core::ffi::c_void,
33175    pub image_compression_control_swapchain: u32,
33176}
33177impl Default for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
33178    #[inline]
33179    fn default() -> Self {
33180        Self {
33181            s_type: StructureType::from_raw(1000437000i32),
33182            p_next: core::ptr::null_mut(),
33183            image_compression_control_swapchain: Default::default(),
33184        }
33185    }
33186}
33187///[`VkImageSubresource2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageSubresource2.html)
33188/**
33189Provided by **VK_BASE_VERSION_1_4**.*/
33190#[repr(C)]
33191#[derive(Copy, Clone, Debug)]
33192#[doc(alias = "VkImageSubresource2")]
33193pub struct ImageSubresource2 {
33194    ///Must be `VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2`.
33195    pub s_type: StructureType,
33196    ///Optional, may be null.
33197    pub p_next: *mut core::ffi::c_void,
33198    pub image_subresource: ImageSubresource,
33199}
33200impl Default for ImageSubresource2 {
33201    #[inline]
33202    fn default() -> Self {
33203        Self {
33204            s_type: StructureType::from_raw(1000338003i32),
33205            p_next: core::ptr::null_mut(),
33206            image_subresource: Default::default(),
33207        }
33208    }
33209}
33210///[`VkSubresourceLayout2`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubresourceLayout2.html)
33211/**
33212Provided by **VK_BASE_VERSION_1_4**.*/
33213/**
33214**Returned only**, filled by Vulkan, not constructed by the application.*/
33215///
33216///# Extended By
33217///- [`ImageCompressionPropertiesEXT`]
33218///- [`SubresourceHostMemcpySize`]
33219#[repr(C)]
33220#[derive(Copy, Clone, Debug)]
33221#[doc(alias = "VkSubresourceLayout2")]
33222pub struct SubresourceLayout2 {
33223    ///Must be `VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2`.
33224    pub s_type: StructureType,
33225    ///Optional, may be null.
33226    pub p_next: *mut core::ffi::c_void,
33227    pub subresource_layout: SubresourceLayout,
33228}
33229impl Default for SubresourceLayout2 {
33230    #[inline]
33231    fn default() -> Self {
33232        Self {
33233            s_type: StructureType::from_raw(1000338002i32),
33234            p_next: core::ptr::null_mut(),
33235            subresource_layout: Default::default(),
33236        }
33237    }
33238}
33239///[`VkRenderPassCreationControlEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreationControlEXT.html)
33240/**
33241Provided by **VK_EXT_subpass_merge_feedback**.*/
33242///
33243///# Extends
33244///- [`RenderPassCreateInfo2`]
33245///- [`SubpassDescription2`]
33246#[repr(C)]
33247#[derive(Copy, Clone, Debug)]
33248#[doc(alias = "VkRenderPassCreationControlEXT")]
33249pub struct RenderPassCreationControlEXT {
33250    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT`.
33251    pub s_type: StructureType,
33252    ///Optional, may be null.
33253    pub p_next: *const core::ffi::c_void,
33254    pub disallow_merging: u32,
33255}
33256impl Default for RenderPassCreationControlEXT {
33257    #[inline]
33258    fn default() -> Self {
33259        Self {
33260            s_type: StructureType::from_raw(1000458001i32),
33261            p_next: core::ptr::null(),
33262            disallow_merging: Default::default(),
33263        }
33264    }
33265}
33266///[`VkRenderPassCreationFeedbackInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreationFeedbackInfoEXT.html)
33267/**
33268Provided by **VK_EXT_subpass_merge_feedback**.*/
33269/**
33270**Returned only**, filled by Vulkan, not constructed by the application.*/
33271#[repr(C)]
33272#[derive(Copy, Clone, Debug)]
33273#[doc(alias = "VkRenderPassCreationFeedbackInfoEXT")]
33274pub struct RenderPassCreationFeedbackInfoEXT {
33275    pub post_merge_subpass_count: u32,
33276}
33277impl Default for RenderPassCreationFeedbackInfoEXT {
33278    #[inline]
33279    fn default() -> Self {
33280        unsafe { core::mem::zeroed() }
33281    }
33282}
33283///[`VkRenderPassCreationFeedbackCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassCreationFeedbackCreateInfoEXT.html)
33284/**
33285Provided by **VK_EXT_subpass_merge_feedback**.*/
33286///
33287///# Extends
33288///- [`RenderPassCreateInfo2`]
33289#[repr(C)]
33290#[derive(Copy, Clone, Debug)]
33291#[doc(alias = "VkRenderPassCreationFeedbackCreateInfoEXT")]
33292pub struct RenderPassCreationFeedbackCreateInfoEXT {
33293    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT`.
33294    pub s_type: StructureType,
33295    ///Optional, may be null.
33296    pub p_next: *const core::ffi::c_void,
33297    pub p_render_pass_feedback: *mut RenderPassCreationFeedbackInfoEXT,
33298}
33299impl Default for RenderPassCreationFeedbackCreateInfoEXT {
33300    #[inline]
33301    fn default() -> Self {
33302        Self {
33303            s_type: StructureType::from_raw(1000458002i32),
33304            p_next: core::ptr::null(),
33305            p_render_pass_feedback: core::ptr::null_mut(),
33306        }
33307    }
33308}
33309///[`VkRenderPassSubpassFeedbackInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassSubpassFeedbackInfoEXT.html)
33310/**
33311Provided by **VK_EXT_subpass_merge_feedback**.*/
33312/**
33313**Returned only**, filled by Vulkan, not constructed by the application.*/
33314#[repr(C)]
33315#[derive(Copy, Clone, Debug)]
33316#[doc(alias = "VkRenderPassSubpassFeedbackInfoEXT")]
33317pub struct RenderPassSubpassFeedbackInfoEXT {
33318    pub subpass_merge_status: SubpassMergeStatusEXT,
33319    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
33320    pub post_merge_index: u32,
33321}
33322impl Default for RenderPassSubpassFeedbackInfoEXT {
33323    #[inline]
33324    fn default() -> Self {
33325        unsafe { core::mem::zeroed() }
33326    }
33327}
33328///[`VkRenderPassSubpassFeedbackCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassSubpassFeedbackCreateInfoEXT.html)
33329/**
33330Provided by **VK_EXT_subpass_merge_feedback**.*/
33331///
33332///# Extends
33333///- [`SubpassDescription2`]
33334#[repr(C)]
33335#[derive(Copy, Clone, Debug)]
33336#[doc(alias = "VkRenderPassSubpassFeedbackCreateInfoEXT")]
33337pub struct RenderPassSubpassFeedbackCreateInfoEXT {
33338    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT`.
33339    pub s_type: StructureType,
33340    ///Optional, may be null.
33341    pub p_next: *const core::ffi::c_void,
33342    pub p_subpass_feedback: *mut RenderPassSubpassFeedbackInfoEXT,
33343}
33344impl Default for RenderPassSubpassFeedbackCreateInfoEXT {
33345    #[inline]
33346    fn default() -> Self {
33347        Self {
33348            s_type: StructureType::from_raw(1000458003i32),
33349            p_next: core::ptr::null(),
33350            p_subpass_feedback: core::ptr::null_mut(),
33351        }
33352    }
33353}
33354///[`VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT.html)
33355/**
33356Provided by **VK_EXT_subpass_merge_feedback**.*/
33357///
33358///# Extends
33359///- [`PhysicalDeviceFeatures2`]
33360///- [`DeviceCreateInfo`]
33361#[repr(C)]
33362#[derive(Copy, Clone, Debug)]
33363#[doc(alias = "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT")]
33364pub struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
33365    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT`.
33366    pub s_type: StructureType,
33367    ///Optional, may be null.
33368    pub p_next: *mut core::ffi::c_void,
33369    pub subpass_merge_feedback: u32,
33370}
33371impl Default for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
33372    #[inline]
33373    fn default() -> Self {
33374        Self {
33375            s_type: StructureType::from_raw(1000458000i32),
33376            p_next: core::ptr::null_mut(),
33377            subpass_merge_feedback: Default::default(),
33378        }
33379    }
33380}
33381///[`VkMicromapBuildInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapBuildInfoEXT.html)
33382/**
33383Provided by **VK_EXT_opacity_micromap**.*/
33384#[repr(C)]
33385#[derive(Copy, Clone, Debug)]
33386#[doc(alias = "VkMicromapBuildInfoEXT")]
33387pub struct MicromapBuildInfoEXT {
33388    ///Must be `VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT`.
33389    pub s_type: StructureType,
33390    ///Optional, may be null.
33391    pub p_next: *const core::ffi::c_void,
33392    pub r#type: MicromapTypeEXT,
33393    pub flags: BuildMicromapFlagsEXT,
33394    pub mode: BuildMicromapModeEXT,
33395    pub dst_micromap: MicromapEXT,
33396    ///Length of `pp_usage_counts`.
33397    pub usage_counts_count: u32,
33398    ///Optional, may be null.
33399    pub p_usage_counts: *const MicromapUsageEXT,
33400    ///Optional, may be null.
33401    pub pp_usage_counts: *const *const MicromapUsageEXT,
33402    pub data: DeviceOrHostAddressConstKHR,
33403    pub scratch_data: DeviceOrHostAddressKHR,
33404    pub triangle_array: DeviceOrHostAddressConstKHR,
33405    pub triangle_array_stride: u64,
33406}
33407impl Default for MicromapBuildInfoEXT {
33408    #[inline]
33409    fn default() -> Self {
33410        Self {
33411            s_type: StructureType::from_raw(1000396000i32),
33412            p_next: core::ptr::null(),
33413            r#type: Default::default(),
33414            flags: Default::default(),
33415            mode: Default::default(),
33416            dst_micromap: Default::default(),
33417            usage_counts_count: Default::default(),
33418            p_usage_counts: core::ptr::null(),
33419            pp_usage_counts: core::ptr::null(),
33420            data: Default::default(),
33421            scratch_data: Default::default(),
33422            triangle_array: Default::default(),
33423            triangle_array_stride: Default::default(),
33424        }
33425    }
33426}
33427///[`VkMicromapCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapCreateInfoEXT.html)
33428/**
33429Provided by **VK_EXT_opacity_micromap**.*/
33430#[repr(C)]
33431#[derive(Copy, Clone, Debug)]
33432#[doc(alias = "VkMicromapCreateInfoEXT")]
33433pub struct MicromapCreateInfoEXT {
33434    ///Must be `VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT`.
33435    pub s_type: StructureType,
33436    ///Optional, may be null.
33437    pub p_next: *const core::ffi::c_void,
33438    pub create_flags: MicromapCreateFlagsEXT,
33439    pub buffer: Buffer,
33440    pub offset: u64,
33441    pub size: u64,
33442    pub r#type: MicromapTypeEXT,
33443    pub device_address: u64,
33444}
33445impl Default for MicromapCreateInfoEXT {
33446    #[inline]
33447    fn default() -> Self {
33448        Self {
33449            s_type: StructureType::from_raw(1000396007i32),
33450            p_next: core::ptr::null(),
33451            create_flags: Default::default(),
33452            buffer: Default::default(),
33453            offset: Default::default(),
33454            size: Default::default(),
33455            r#type: Default::default(),
33456            device_address: Default::default(),
33457        }
33458    }
33459}
33460///[`VkMicromapVersionInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapVersionInfoEXT.html)
33461/**
33462Provided by **VK_EXT_opacity_micromap**.*/
33463#[repr(C)]
33464#[derive(Copy, Clone, Debug)]
33465#[doc(alias = "VkMicromapVersionInfoEXT")]
33466pub struct MicromapVersionInfoEXT {
33467    ///Must be `VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT`.
33468    pub s_type: StructureType,
33469    ///Optional, may be null.
33470    pub p_next: *const core::ffi::c_void,
33471    pub p_version_data: *const u8,
33472}
33473impl Default for MicromapVersionInfoEXT {
33474    #[inline]
33475    fn default() -> Self {
33476        Self {
33477            s_type: StructureType::from_raw(1000396001i32),
33478            p_next: core::ptr::null(),
33479            p_version_data: core::ptr::null(),
33480        }
33481    }
33482}
33483///[`VkCopyMicromapInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMicromapInfoEXT.html)
33484/**
33485Provided by **VK_EXT_opacity_micromap**.*/
33486#[repr(C)]
33487#[derive(Copy, Clone, Debug)]
33488#[doc(alias = "VkCopyMicromapInfoEXT")]
33489pub struct CopyMicromapInfoEXT {
33490    ///Must be `VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT`.
33491    pub s_type: StructureType,
33492    ///Optional, may be null.
33493    pub p_next: *const core::ffi::c_void,
33494    pub src: MicromapEXT,
33495    pub dst: MicromapEXT,
33496    pub mode: CopyMicromapModeEXT,
33497}
33498impl Default for CopyMicromapInfoEXT {
33499    #[inline]
33500    fn default() -> Self {
33501        Self {
33502            s_type: StructureType::from_raw(1000396002i32),
33503            p_next: core::ptr::null(),
33504            src: Default::default(),
33505            dst: Default::default(),
33506            mode: Default::default(),
33507        }
33508    }
33509}
33510///[`VkCopyMicromapToMemoryInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMicromapToMemoryInfoEXT.html)
33511/**
33512Provided by **VK_EXT_opacity_micromap**.*/
33513#[repr(C)]
33514#[derive(Copy, Clone, Debug)]
33515#[doc(alias = "VkCopyMicromapToMemoryInfoEXT")]
33516pub struct CopyMicromapToMemoryInfoEXT {
33517    ///Must be `VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT`.
33518    pub s_type: StructureType,
33519    ///Optional, may be null.
33520    pub p_next: *const core::ffi::c_void,
33521    pub src: MicromapEXT,
33522    pub dst: DeviceOrHostAddressKHR,
33523    pub mode: CopyMicromapModeEXT,
33524}
33525impl Default for CopyMicromapToMemoryInfoEXT {
33526    #[inline]
33527    fn default() -> Self {
33528        Self {
33529            s_type: StructureType::from_raw(1000396003i32),
33530            p_next: core::ptr::null(),
33531            src: Default::default(),
33532            dst: Default::default(),
33533            mode: Default::default(),
33534        }
33535    }
33536}
33537///[`VkCopyMemoryToMicromapInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToMicromapInfoEXT.html)
33538/**
33539Provided by **VK_EXT_opacity_micromap**.*/
33540#[repr(C)]
33541#[derive(Copy, Clone, Debug)]
33542#[doc(alias = "VkCopyMemoryToMicromapInfoEXT")]
33543pub struct CopyMemoryToMicromapInfoEXT {
33544    ///Must be `VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT`.
33545    pub s_type: StructureType,
33546    ///Optional, may be null.
33547    pub p_next: *const core::ffi::c_void,
33548    pub src: DeviceOrHostAddressConstKHR,
33549    pub dst: MicromapEXT,
33550    pub mode: CopyMicromapModeEXT,
33551}
33552impl Default for CopyMemoryToMicromapInfoEXT {
33553    #[inline]
33554    fn default() -> Self {
33555        Self {
33556            s_type: StructureType::from_raw(1000396004i32),
33557            p_next: core::ptr::null(),
33558            src: Default::default(),
33559            dst: Default::default(),
33560            mode: Default::default(),
33561        }
33562    }
33563}
33564///[`VkMicromapBuildSizesInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapBuildSizesInfoEXT.html)
33565/**
33566Provided by **VK_EXT_opacity_micromap**.*/
33567#[repr(C)]
33568#[derive(Copy, Clone, Debug)]
33569#[doc(alias = "VkMicromapBuildSizesInfoEXT")]
33570pub struct MicromapBuildSizesInfoEXT {
33571    ///Must be `VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT`.
33572    pub s_type: StructureType,
33573    ///Optional, may be null.
33574    pub p_next: *const core::ffi::c_void,
33575    pub micromap_size: u64,
33576    pub build_scratch_size: u64,
33577    pub discardable: u32,
33578}
33579impl Default for MicromapBuildSizesInfoEXT {
33580    #[inline]
33581    fn default() -> Self {
33582        Self {
33583            s_type: StructureType::from_raw(1000396008i32),
33584            p_next: core::ptr::null(),
33585            micromap_size: Default::default(),
33586            build_scratch_size: Default::default(),
33587            discardable: Default::default(),
33588        }
33589    }
33590}
33591///[`VkMicromapUsageEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapUsageEXT.html)
33592/**
33593Provided by **VK_EXT_opacity_micromap**.*/
33594#[repr(C)]
33595#[derive(Copy, Clone, Debug)]
33596#[doc(alias = "VkMicromapUsageEXT")]
33597pub struct MicromapUsageEXT {
33598    pub count: u32,
33599    pub subdivision_level: u32,
33600    pub format: u32,
33601}
33602impl Default for MicromapUsageEXT {
33603    #[inline]
33604    fn default() -> Self {
33605        unsafe { core::mem::zeroed() }
33606    }
33607}
33608///[`VkMicromapTriangleEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMicromapTriangleEXT.html)
33609/**
33610Provided by **VK_EXT_opacity_micromap**.*/
33611#[repr(C)]
33612#[derive(Copy, Clone, Debug)]
33613#[doc(alias = "VkMicromapTriangleEXT")]
33614pub struct MicromapTriangleEXT {
33615    pub data_offset: u32,
33616    pub subdivision_level: u16,
33617    pub format: u16,
33618}
33619impl Default for MicromapTriangleEXT {
33620    #[inline]
33621    fn default() -> Self {
33622        unsafe { core::mem::zeroed() }
33623    }
33624}
33625///[`VkPhysicalDeviceOpacityMicromapFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceOpacityMicromapFeaturesEXT.html)
33626/**
33627Provided by **VK_EXT_opacity_micromap**.*/
33628///
33629///# Extends
33630///- [`PhysicalDeviceFeatures2`]
33631///- [`DeviceCreateInfo`]
33632#[repr(C)]
33633#[derive(Copy, Clone, Debug)]
33634#[doc(alias = "VkPhysicalDeviceOpacityMicromapFeaturesEXT")]
33635pub struct PhysicalDeviceOpacityMicromapFeaturesEXT {
33636    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT`.
33637    pub s_type: StructureType,
33638    ///Optional, may be null.
33639    pub p_next: *mut core::ffi::c_void,
33640    pub micromap: u32,
33641    pub micromap_capture_replay: u32,
33642    pub micromap_host_commands: u32,
33643}
33644impl Default for PhysicalDeviceOpacityMicromapFeaturesEXT {
33645    #[inline]
33646    fn default() -> Self {
33647        Self {
33648            s_type: StructureType::from_raw(1000396005i32),
33649            p_next: core::ptr::null_mut(),
33650            micromap: Default::default(),
33651            micromap_capture_replay: Default::default(),
33652            micromap_host_commands: Default::default(),
33653        }
33654    }
33655}
33656///[`VkPhysicalDeviceOpacityMicromapPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceOpacityMicromapPropertiesEXT.html)
33657/**
33658Provided by **VK_EXT_opacity_micromap**.*/
33659/**
33660**Returned only**, filled by Vulkan, not constructed by the application.*/
33661///
33662///# Extends
33663///- [`PhysicalDeviceProperties2`]
33664#[repr(C)]
33665#[derive(Copy, Clone, Debug)]
33666#[doc(alias = "VkPhysicalDeviceOpacityMicromapPropertiesEXT")]
33667pub struct PhysicalDeviceOpacityMicromapPropertiesEXT {
33668    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT`.
33669    pub s_type: StructureType,
33670    ///Optional, may be null.
33671    pub p_next: *mut core::ffi::c_void,
33672    pub max_opacity2_state_subdivision_level: u32,
33673    pub max_opacity4_state_subdivision_level: u32,
33674}
33675impl Default for PhysicalDeviceOpacityMicromapPropertiesEXT {
33676    #[inline]
33677    fn default() -> Self {
33678        Self {
33679            s_type: StructureType::from_raw(1000396006i32),
33680            p_next: core::ptr::null_mut(),
33681            max_opacity2_state_subdivision_level: Default::default(),
33682            max_opacity4_state_subdivision_level: Default::default(),
33683        }
33684    }
33685}
33686///[`VkAccelerationStructureTrianglesOpacityMicromapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureTrianglesOpacityMicromapEXT.html)
33687/**
33688Provided by **VK_EXT_opacity_micromap**.*/
33689///
33690///# Extends
33691///- [`AccelerationStructureGeometryTrianglesDataKHR`]
33692///- [`AccelerationStructureDenseGeometryFormatTrianglesDataAMDX`]
33693#[repr(C)]
33694#[derive(Copy, Clone, Debug)]
33695#[doc(alias = "VkAccelerationStructureTrianglesOpacityMicromapEXT")]
33696pub struct AccelerationStructureTrianglesOpacityMicromapEXT {
33697    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT`.
33698    pub s_type: StructureType,
33699    ///Optional, may be null.
33700    pub p_next: *mut core::ffi::c_void,
33701    pub index_type: IndexType,
33702    pub index_buffer: DeviceOrHostAddressConstKHR,
33703    pub index_stride: u64,
33704    pub base_triangle: u32,
33705    ///Length of `pp_usage_counts`.
33706    pub usage_counts_count: u32,
33707    ///Optional, may be null.
33708    pub p_usage_counts: *const MicromapUsageEXT,
33709    ///Optional, may be null.
33710    pub pp_usage_counts: *const *const MicromapUsageEXT,
33711    pub micromap: MicromapEXT,
33712}
33713impl Default for AccelerationStructureTrianglesOpacityMicromapEXT {
33714    #[inline]
33715    fn default() -> Self {
33716        Self {
33717            s_type: StructureType::from_raw(1000396009i32),
33718            p_next: core::ptr::null_mut(),
33719            index_type: Default::default(),
33720            index_buffer: Default::default(),
33721            index_stride: Default::default(),
33722            base_triangle: Default::default(),
33723            usage_counts_count: Default::default(),
33724            p_usage_counts: core::ptr::null(),
33725            pp_usage_counts: core::ptr::null(),
33726            micromap: Default::default(),
33727        }
33728    }
33729}
33730///[`VkPhysicalDeviceDisplacementMicromapFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDisplacementMicromapFeaturesNV.html)
33731/**
33732Provided by **VK_NV_displacement_micromap**.*/
33733///
33734///# Extends
33735///- [`PhysicalDeviceFeatures2`]
33736///- [`DeviceCreateInfo`]
33737#[repr(C)]
33738#[derive(Copy, Clone, Debug)]
33739#[doc(alias = "VkPhysicalDeviceDisplacementMicromapFeaturesNV")]
33740pub struct PhysicalDeviceDisplacementMicromapFeaturesNV {
33741    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV`.
33742    pub s_type: StructureType,
33743    ///Optional, may be null.
33744    pub p_next: *mut core::ffi::c_void,
33745    pub displacement_micromap: u32,
33746}
33747impl Default for PhysicalDeviceDisplacementMicromapFeaturesNV {
33748    #[inline]
33749    fn default() -> Self {
33750        Self {
33751            s_type: StructureType::from_raw(1000397000i32),
33752            p_next: core::ptr::null_mut(),
33753            displacement_micromap: Default::default(),
33754        }
33755    }
33756}
33757///[`VkPhysicalDeviceDisplacementMicromapPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDisplacementMicromapPropertiesNV.html)
33758/**
33759Provided by **VK_NV_displacement_micromap**.*/
33760/**
33761**Returned only**, filled by Vulkan, not constructed by the application.*/
33762///
33763///# Extends
33764///- [`PhysicalDeviceProperties2`]
33765#[repr(C)]
33766#[derive(Copy, Clone, Debug)]
33767#[doc(alias = "VkPhysicalDeviceDisplacementMicromapPropertiesNV")]
33768pub struct PhysicalDeviceDisplacementMicromapPropertiesNV {
33769    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV`.
33770    pub s_type: StructureType,
33771    ///Optional, may be null.
33772    pub p_next: *mut core::ffi::c_void,
33773    pub max_displacement_micromap_subdivision_level: u32,
33774}
33775impl Default for PhysicalDeviceDisplacementMicromapPropertiesNV {
33776    #[inline]
33777    fn default() -> Self {
33778        Self {
33779            s_type: StructureType::from_raw(1000397001i32),
33780            p_next: core::ptr::null_mut(),
33781            max_displacement_micromap_subdivision_level: Default::default(),
33782        }
33783    }
33784}
33785///[`VkAccelerationStructureTrianglesDisplacementMicromapNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureTrianglesDisplacementMicromapNV.html)
33786/**
33787Provided by **VK_NV_displacement_micromap**.*/
33788///
33789///# Extends
33790///- [`AccelerationStructureGeometryTrianglesDataKHR`]
33791#[repr(C)]
33792#[derive(Copy, Clone, Debug)]
33793#[doc(alias = "VkAccelerationStructureTrianglesDisplacementMicromapNV")]
33794pub struct AccelerationStructureTrianglesDisplacementMicromapNV {
33795    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV`.
33796    pub s_type: StructureType,
33797    ///Optional, may be null.
33798    pub p_next: *mut core::ffi::c_void,
33799    pub displacement_bias_and_scale_format: Format,
33800    pub displacement_vector_format: Format,
33801    pub displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR,
33802    pub displacement_bias_and_scale_stride: u64,
33803    pub displacement_vector_buffer: DeviceOrHostAddressConstKHR,
33804    pub displacement_vector_stride: u64,
33805    pub displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR,
33806    pub displaced_micromap_primitive_flags_stride: u64,
33807    pub index_type: IndexType,
33808    pub index_buffer: DeviceOrHostAddressConstKHR,
33809    pub index_stride: u64,
33810    pub base_triangle: u32,
33811    ///Length of `pp_usage_counts`.
33812    pub usage_counts_count: u32,
33813    ///Optional, may be null.
33814    pub p_usage_counts: *const MicromapUsageEXT,
33815    ///Optional, may be null.
33816    pub pp_usage_counts: *const *const MicromapUsageEXT,
33817    pub micromap: MicromapEXT,
33818}
33819impl Default for AccelerationStructureTrianglesDisplacementMicromapNV {
33820    #[inline]
33821    fn default() -> Self {
33822        Self {
33823            s_type: StructureType::from_raw(1000397002i32),
33824            p_next: core::ptr::null_mut(),
33825            displacement_bias_and_scale_format: Default::default(),
33826            displacement_vector_format: Default::default(),
33827            displacement_bias_and_scale_buffer: Default::default(),
33828            displacement_bias_and_scale_stride: Default::default(),
33829            displacement_vector_buffer: Default::default(),
33830            displacement_vector_stride: Default::default(),
33831            displaced_micromap_primitive_flags: Default::default(),
33832            displaced_micromap_primitive_flags_stride: Default::default(),
33833            index_type: Default::default(),
33834            index_buffer: Default::default(),
33835            index_stride: Default::default(),
33836            base_triangle: Default::default(),
33837            usage_counts_count: Default::default(),
33838            p_usage_counts: core::ptr::null(),
33839            pp_usage_counts: core::ptr::null(),
33840            micromap: Default::default(),
33841        }
33842    }
33843}
33844///[`VkPipelinePropertiesIdentifierEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelinePropertiesIdentifierEXT.html)
33845/**
33846Provided by **VK_EXT_pipeline_properties**.*/
33847/**
33848**Returned only**, filled by Vulkan, not constructed by the application.*/
33849#[repr(C)]
33850#[derive(Copy, Clone, Debug)]
33851#[doc(alias = "VkPipelinePropertiesIdentifierEXT")]
33852pub struct PipelinePropertiesIdentifierEXT {
33853    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT`.
33854    pub s_type: StructureType,
33855    ///Optional, may be null.
33856    pub p_next: *mut core::ffi::c_void,
33857    pub pipeline_identifier: [u8; UUID_SIZE as usize],
33858}
33859impl Default for PipelinePropertiesIdentifierEXT {
33860    #[inline]
33861    fn default() -> Self {
33862        Self {
33863            s_type: StructureType::from_raw(1000372000i32),
33864            p_next: core::ptr::null_mut(),
33865            pipeline_identifier: unsafe { core::mem::zeroed() },
33866        }
33867    }
33868}
33869///[`VkPhysicalDevicePipelinePropertiesFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelinePropertiesFeaturesEXT.html)
33870/**
33871Provided by **VK_EXT_pipeline_properties**.*/
33872///
33873///# Extends
33874///- [`PhysicalDeviceFeatures2`]
33875///- [`DeviceCreateInfo`]
33876#[repr(C)]
33877#[derive(Copy, Clone, Debug)]
33878#[doc(alias = "VkPhysicalDevicePipelinePropertiesFeaturesEXT")]
33879pub struct PhysicalDevicePipelinePropertiesFeaturesEXT {
33880    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT`.
33881    pub s_type: StructureType,
33882    ///Optional, may be null.
33883    pub p_next: *mut core::ffi::c_void,
33884    pub pipeline_properties_identifier: u32,
33885}
33886impl Default for PhysicalDevicePipelinePropertiesFeaturesEXT {
33887    #[inline]
33888    fn default() -> Self {
33889        Self {
33890            s_type: StructureType::from_raw(1000372001i32),
33891            p_next: core::ptr::null_mut(),
33892            pipeline_properties_identifier: Default::default(),
33893        }
33894    }
33895}
33896///[`VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.html)
33897/**
33898Provided by **VK_AMD_shader_early_and_late_fragment_tests**.*/
33899///
33900///# Extends
33901///- [`PhysicalDeviceFeatures2`]
33902///- [`DeviceCreateInfo`]
33903#[repr(C)]
33904#[derive(Copy, Clone, Debug)]
33905#[doc(alias = "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD")]
33906pub struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
33907    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD`.
33908    pub s_type: StructureType,
33909    ///Optional, may be null.
33910    pub p_next: *mut core::ffi::c_void,
33911    pub shader_early_and_late_fragment_tests: u32,
33912}
33913impl Default for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
33914    #[inline]
33915    fn default() -> Self {
33916        Self {
33917            s_type: StructureType::from_raw(1000321000i32),
33918            p_next: core::ptr::null_mut(),
33919            shader_early_and_late_fragment_tests: Default::default(),
33920        }
33921    }
33922}
33923///[`VkExternalMemoryAcquireUnmodifiedEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryAcquireUnmodifiedEXT.html)
33924/**
33925Provided by **VK_EXT_external_memory_acquire_unmodified**.*/
33926///
33927///# Extends
33928///- [`BufferMemoryBarrier`]
33929///- [`BufferMemoryBarrier2`]
33930///- [`ImageMemoryBarrier`]
33931///- [`ImageMemoryBarrier2`]
33932#[repr(C)]
33933#[derive(Copy, Clone, Debug)]
33934#[doc(alias = "VkExternalMemoryAcquireUnmodifiedEXT")]
33935pub struct ExternalMemoryAcquireUnmodifiedEXT {
33936    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT`.
33937    pub s_type: StructureType,
33938    ///Optional, may be null.
33939    pub p_next: *const core::ffi::c_void,
33940    pub acquire_unmodified_memory: u32,
33941}
33942impl Default for ExternalMemoryAcquireUnmodifiedEXT {
33943    #[inline]
33944    fn default() -> Self {
33945        Self {
33946            s_type: StructureType::from_raw(1000453000i32),
33947            p_next: core::ptr::null(),
33948            acquire_unmodified_memory: Default::default(),
33949        }
33950    }
33951}
33952///[`VkExportMetalObjectCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalObjectCreateInfoEXT.html)
33953/**
33954Provided by **VK_EXT_metal_objects**.*/
33955///
33956///# Extends
33957///- [`InstanceCreateInfo`]
33958///- [`MemoryAllocateInfo`]
33959///- [`ImageCreateInfo`]
33960///- [`ImageViewCreateInfo`]
33961///- [`BufferViewCreateInfo`]
33962///- [`SemaphoreCreateInfo`]
33963///- [`EventCreateInfo`]
33964#[repr(C)]
33965#[derive(Copy, Clone, Debug)]
33966#[doc(alias = "VkExportMetalObjectCreateInfoEXT")]
33967pub struct ExportMetalObjectCreateInfoEXT {
33968    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT`.
33969    pub s_type: StructureType,
33970    ///Optional, may be null.
33971    pub p_next: *const core::ffi::c_void,
33972    pub export_object_type: ExportMetalObjectTypeFlagBitsEXT,
33973}
33974impl Default for ExportMetalObjectCreateInfoEXT {
33975    #[inline]
33976    fn default() -> Self {
33977        Self {
33978            s_type: StructureType::from_raw(1000311000i32),
33979            p_next: core::ptr::null(),
33980            export_object_type: Default::default(),
33981        }
33982    }
33983}
33984///[`VkExportMetalObjectsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalObjectsInfoEXT.html)
33985/**
33986Provided by **VK_EXT_metal_objects**.*/
33987///
33988///# Extended By
33989///- [`ExportMetalBufferInfoEXT`]
33990///- [`ExportMetalCommandQueueInfoEXT`]
33991///- [`ExportMetalDeviceInfoEXT`]
33992///- [`ExportMetalIOSurfaceInfoEXT`]
33993///- [`ExportMetalSharedEventInfoEXT`]
33994///- [`ExportMetalTextureInfoEXT`]
33995#[repr(C)]
33996#[derive(Copy, Clone, Debug)]
33997#[doc(alias = "VkExportMetalObjectsInfoEXT")]
33998pub struct ExportMetalObjectsInfoEXT {
33999    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT`.
34000    pub s_type: StructureType,
34001    ///Optional, may be null.
34002    pub p_next: *const core::ffi::c_void,
34003}
34004impl Default for ExportMetalObjectsInfoEXT {
34005    #[inline]
34006    fn default() -> Self {
34007        Self {
34008            s_type: StructureType::from_raw(1000311001i32),
34009            p_next: core::ptr::null(),
34010        }
34011    }
34012}
34013///[`VkExportMetalDeviceInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalDeviceInfoEXT.html)
34014/**
34015Provided by **VK_EXT_metal_objects**.*/
34016///
34017///# Extends
34018///- [`ExportMetalObjectsInfoEXT`]
34019#[repr(C)]
34020#[derive(Copy, Clone, Debug)]
34021#[doc(alias = "VkExportMetalDeviceInfoEXT")]
34022pub struct ExportMetalDeviceInfoEXT {
34023    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT`.
34024    pub s_type: StructureType,
34025    ///Optional, may be null.
34026    pub p_next: *const core::ffi::c_void,
34027    pub mtl_device: *const core::ffi::c_void,
34028}
34029impl Default for ExportMetalDeviceInfoEXT {
34030    #[inline]
34031    fn default() -> Self {
34032        Self {
34033            s_type: StructureType::from_raw(1000311002i32),
34034            p_next: core::ptr::null(),
34035            mtl_device: core::ptr::null(),
34036        }
34037    }
34038}
34039///[`VkExportMetalCommandQueueInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalCommandQueueInfoEXT.html)
34040/**
34041Provided by **VK_EXT_metal_objects**.*/
34042///
34043///# Extends
34044///- [`ExportMetalObjectsInfoEXT`]
34045#[repr(C)]
34046#[derive(Copy, Clone, Debug)]
34047#[doc(alias = "VkExportMetalCommandQueueInfoEXT")]
34048pub struct ExportMetalCommandQueueInfoEXT {
34049    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT`.
34050    pub s_type: StructureType,
34051    ///Optional, may be null.
34052    pub p_next: *const core::ffi::c_void,
34053    pub queue: Queue,
34054    pub mtl_command_queue: *const core::ffi::c_void,
34055}
34056impl Default for ExportMetalCommandQueueInfoEXT {
34057    #[inline]
34058    fn default() -> Self {
34059        Self {
34060            s_type: StructureType::from_raw(1000311003i32),
34061            p_next: core::ptr::null(),
34062            queue: Default::default(),
34063            mtl_command_queue: core::ptr::null(),
34064        }
34065    }
34066}
34067///[`VkExportMetalBufferInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalBufferInfoEXT.html)
34068/**
34069Provided by **VK_EXT_metal_objects**.*/
34070///
34071///# Extends
34072///- [`ExportMetalObjectsInfoEXT`]
34073#[repr(C)]
34074#[derive(Copy, Clone, Debug)]
34075#[doc(alias = "VkExportMetalBufferInfoEXT")]
34076pub struct ExportMetalBufferInfoEXT {
34077    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT`.
34078    pub s_type: StructureType,
34079    ///Optional, may be null.
34080    pub p_next: *const core::ffi::c_void,
34081    pub memory: DeviceMemory,
34082    pub mtl_buffer: *const core::ffi::c_void,
34083}
34084impl Default for ExportMetalBufferInfoEXT {
34085    #[inline]
34086    fn default() -> Self {
34087        Self {
34088            s_type: StructureType::from_raw(1000311004i32),
34089            p_next: core::ptr::null(),
34090            memory: Default::default(),
34091            mtl_buffer: core::ptr::null(),
34092        }
34093    }
34094}
34095///[`VkImportMetalBufferInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMetalBufferInfoEXT.html)
34096/**
34097Provided by **VK_EXT_metal_objects**.*/
34098///
34099///# Extends
34100///- [`MemoryAllocateInfo`]
34101#[repr(C)]
34102#[derive(Copy, Clone, Debug)]
34103#[doc(alias = "VkImportMetalBufferInfoEXT")]
34104pub struct ImportMetalBufferInfoEXT {
34105    ///Must be `VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT`.
34106    pub s_type: StructureType,
34107    ///Optional, may be null.
34108    pub p_next: *const core::ffi::c_void,
34109    pub mtl_buffer: *const core::ffi::c_void,
34110}
34111impl Default for ImportMetalBufferInfoEXT {
34112    #[inline]
34113    fn default() -> Self {
34114        Self {
34115            s_type: StructureType::from_raw(1000311005i32),
34116            p_next: core::ptr::null(),
34117            mtl_buffer: core::ptr::null(),
34118        }
34119    }
34120}
34121///[`VkExportMetalTextureInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalTextureInfoEXT.html)
34122/**
34123Provided by **VK_EXT_metal_objects**.*/
34124///
34125///# Extends
34126///- [`ExportMetalObjectsInfoEXT`]
34127#[repr(C)]
34128#[derive(Copy, Clone, Debug)]
34129#[doc(alias = "VkExportMetalTextureInfoEXT")]
34130pub struct ExportMetalTextureInfoEXT {
34131    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT`.
34132    pub s_type: StructureType,
34133    ///Optional, may be null.
34134    pub p_next: *const core::ffi::c_void,
34135    pub image: Image,
34136    pub image_view: ImageView,
34137    pub buffer_view: BufferView,
34138    pub plane: ImageAspectFlagBits,
34139    pub mtl_texture: *const core::ffi::c_void,
34140}
34141impl Default for ExportMetalTextureInfoEXT {
34142    #[inline]
34143    fn default() -> Self {
34144        Self {
34145            s_type: StructureType::from_raw(1000311006i32),
34146            p_next: core::ptr::null(),
34147            image: Default::default(),
34148            image_view: Default::default(),
34149            buffer_view: Default::default(),
34150            plane: Default::default(),
34151            mtl_texture: core::ptr::null(),
34152        }
34153    }
34154}
34155///[`VkImportMetalTextureInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMetalTextureInfoEXT.html)
34156/**
34157Provided by **VK_EXT_metal_objects**.*/
34158///
34159///# Extends
34160///- [`ImageCreateInfo`]
34161#[repr(C)]
34162#[derive(Copy, Clone, Debug)]
34163#[doc(alias = "VkImportMetalTextureInfoEXT")]
34164pub struct ImportMetalTextureInfoEXT {
34165    ///Must be `VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT`.
34166    pub s_type: StructureType,
34167    ///Optional, may be null.
34168    pub p_next: *const core::ffi::c_void,
34169    pub plane: ImageAspectFlagBits,
34170    pub mtl_texture: *const core::ffi::c_void,
34171}
34172impl Default for ImportMetalTextureInfoEXT {
34173    #[inline]
34174    fn default() -> Self {
34175        Self {
34176            s_type: StructureType::from_raw(1000311007i32),
34177            p_next: core::ptr::null(),
34178            plane: Default::default(),
34179            mtl_texture: core::ptr::null(),
34180        }
34181    }
34182}
34183///[`VkExportMetalIOSurfaceInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalIOSurfaceInfoEXT.html)
34184/**
34185Provided by **VK_EXT_metal_objects**.*/
34186///
34187///# Extends
34188///- [`ExportMetalObjectsInfoEXT`]
34189#[repr(C)]
34190#[derive(Copy, Clone, Debug)]
34191#[doc(alias = "VkExportMetalIOSurfaceInfoEXT")]
34192pub struct ExportMetalIOSurfaceInfoEXT {
34193    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT`.
34194    pub s_type: StructureType,
34195    ///Optional, may be null.
34196    pub p_next: *const core::ffi::c_void,
34197    pub image: Image,
34198    pub io_surface: *const core::ffi::c_void,
34199}
34200impl Default for ExportMetalIOSurfaceInfoEXT {
34201    #[inline]
34202    fn default() -> Self {
34203        Self {
34204            s_type: StructureType::from_raw(1000311008i32),
34205            p_next: core::ptr::null(),
34206            image: Default::default(),
34207            io_surface: core::ptr::null(),
34208        }
34209    }
34210}
34211///[`VkImportMetalIOSurfaceInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMetalIOSurfaceInfoEXT.html)
34212/**
34213Provided by **VK_EXT_metal_objects**.*/
34214///
34215///# Extends
34216///- [`ImageCreateInfo`]
34217#[repr(C)]
34218#[derive(Copy, Clone, Debug)]
34219#[doc(alias = "VkImportMetalIOSurfaceInfoEXT")]
34220pub struct ImportMetalIOSurfaceInfoEXT {
34221    ///Must be `VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT`.
34222    pub s_type: StructureType,
34223    ///Optional, may be null.
34224    pub p_next: *const core::ffi::c_void,
34225    pub io_surface: *const core::ffi::c_void,
34226}
34227impl Default for ImportMetalIOSurfaceInfoEXT {
34228    #[inline]
34229    fn default() -> Self {
34230        Self {
34231            s_type: StructureType::from_raw(1000311009i32),
34232            p_next: core::ptr::null(),
34233            io_surface: core::ptr::null(),
34234        }
34235    }
34236}
34237///[`VkExportMetalSharedEventInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExportMetalSharedEventInfoEXT.html)
34238/**
34239Provided by **VK_EXT_metal_objects**.*/
34240///
34241///# Extends
34242///- [`ExportMetalObjectsInfoEXT`]
34243#[repr(C)]
34244#[derive(Copy, Clone, Debug)]
34245#[doc(alias = "VkExportMetalSharedEventInfoEXT")]
34246pub struct ExportMetalSharedEventInfoEXT {
34247    ///Must be `VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT`.
34248    pub s_type: StructureType,
34249    ///Optional, may be null.
34250    pub p_next: *const core::ffi::c_void,
34251    pub semaphore: Semaphore,
34252    pub event: Event,
34253    pub mtl_shared_event: *const core::ffi::c_void,
34254}
34255impl Default for ExportMetalSharedEventInfoEXT {
34256    #[inline]
34257    fn default() -> Self {
34258        Self {
34259            s_type: StructureType::from_raw(1000311010i32),
34260            p_next: core::ptr::null(),
34261            semaphore: Default::default(),
34262            event: Default::default(),
34263            mtl_shared_event: core::ptr::null(),
34264        }
34265    }
34266}
34267///[`VkImportMetalSharedEventInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportMetalSharedEventInfoEXT.html)
34268/**
34269Provided by **VK_EXT_metal_objects**.*/
34270///
34271///# Extends
34272///- [`SemaphoreCreateInfo`]
34273///- [`EventCreateInfo`]
34274#[repr(C)]
34275#[derive(Copy, Clone, Debug)]
34276#[doc(alias = "VkImportMetalSharedEventInfoEXT")]
34277pub struct ImportMetalSharedEventInfoEXT {
34278    ///Must be `VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT`.
34279    pub s_type: StructureType,
34280    ///Optional, may be null.
34281    pub p_next: *const core::ffi::c_void,
34282    pub mtl_shared_event: *const core::ffi::c_void,
34283}
34284impl Default for ImportMetalSharedEventInfoEXT {
34285    #[inline]
34286    fn default() -> Self {
34287        Self {
34288            s_type: StructureType::from_raw(1000311011i32),
34289            p_next: core::ptr::null(),
34290            mtl_shared_event: core::ptr::null(),
34291        }
34292    }
34293}
34294///[`VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT.html)
34295/**
34296Provided by **VK_EXT_non_seamless_cube_map**.*/
34297///
34298///# Extends
34299///- [`PhysicalDeviceFeatures2`]
34300///- [`DeviceCreateInfo`]
34301#[repr(C)]
34302#[derive(Copy, Clone, Debug)]
34303#[doc(alias = "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT")]
34304pub struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
34305    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT`.
34306    pub s_type: StructureType,
34307    ///Optional, may be null.
34308    pub p_next: *mut core::ffi::c_void,
34309    pub non_seamless_cube_map: u32,
34310}
34311impl Default for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
34312    #[inline]
34313    fn default() -> Self {
34314        Self {
34315            s_type: StructureType::from_raw(1000422000i32),
34316            p_next: core::ptr::null_mut(),
34317            non_seamless_cube_map: Default::default(),
34318        }
34319    }
34320}
34321///[`VkPhysicalDevicePipelineRobustnessFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineRobustnessFeatures.html)
34322/**
34323Provided by **VK_COMPUTE_VERSION_1_4**.*/
34324///
34325///# Extends
34326///- [`PhysicalDeviceFeatures2`]
34327///- [`DeviceCreateInfo`]
34328#[repr(C)]
34329#[derive(Copy, Clone, Debug)]
34330#[doc(alias = "VkPhysicalDevicePipelineRobustnessFeatures")]
34331pub struct PhysicalDevicePipelineRobustnessFeatures {
34332    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES`.
34333    pub s_type: StructureType,
34334    ///Optional, may be null.
34335    pub p_next: *mut core::ffi::c_void,
34336    pub pipeline_robustness: u32,
34337}
34338impl Default for PhysicalDevicePipelineRobustnessFeatures {
34339    #[inline]
34340    fn default() -> Self {
34341        Self {
34342            s_type: StructureType::from_raw(1000068001i32),
34343            p_next: core::ptr::null_mut(),
34344            pipeline_robustness: Default::default(),
34345        }
34346    }
34347}
34348///[`VkPipelineRobustnessCreateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineRobustnessCreateInfo.html)
34349/**
34350Provided by **VK_COMPUTE_VERSION_1_4**.*/
34351///
34352///# Extends
34353///- [`GraphicsPipelineCreateInfo`]
34354///- [`ComputePipelineCreateInfo`]
34355///- [`PipelineShaderStageCreateInfo`]
34356///- [`RayTracingPipelineCreateInfoKHR`]
34357#[repr(C)]
34358#[derive(Copy, Clone, Debug)]
34359#[doc(alias = "VkPipelineRobustnessCreateInfo")]
34360pub struct PipelineRobustnessCreateInfo {
34361    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO`.
34362    pub s_type: StructureType,
34363    ///Optional, may be null.
34364    pub p_next: *const core::ffi::c_void,
34365    pub storage_buffers: PipelineRobustnessBufferBehavior,
34366    pub uniform_buffers: PipelineRobustnessBufferBehavior,
34367    pub vertex_inputs: PipelineRobustnessBufferBehavior,
34368    pub images: PipelineRobustnessImageBehavior,
34369}
34370impl Default for PipelineRobustnessCreateInfo {
34371    #[inline]
34372    fn default() -> Self {
34373        Self {
34374            s_type: StructureType::from_raw(1000068000i32),
34375            p_next: core::ptr::null(),
34376            storage_buffers: Default::default(),
34377            uniform_buffers: Default::default(),
34378            vertex_inputs: Default::default(),
34379            images: Default::default(),
34380        }
34381    }
34382}
34383///[`VkPhysicalDevicePipelineRobustnessProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineRobustnessProperties.html)
34384/**
34385Provided by **VK_COMPUTE_VERSION_1_4**.*/
34386/**
34387**Returned only**, filled by Vulkan, not constructed by the application.*/
34388///
34389///# Extends
34390///- [`PhysicalDeviceProperties2`]
34391#[repr(C)]
34392#[derive(Copy, Clone, Debug)]
34393#[doc(alias = "VkPhysicalDevicePipelineRobustnessProperties")]
34394pub struct PhysicalDevicePipelineRobustnessProperties {
34395    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES`.
34396    pub s_type: StructureType,
34397    ///Optional, may be null.
34398    pub p_next: *mut core::ffi::c_void,
34399    pub default_robustness_storage_buffers: PipelineRobustnessBufferBehavior,
34400    pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior,
34401    pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior,
34402    pub default_robustness_images: PipelineRobustnessImageBehavior,
34403}
34404impl Default for PhysicalDevicePipelineRobustnessProperties {
34405    #[inline]
34406    fn default() -> Self {
34407        Self {
34408            s_type: StructureType::from_raw(1000068002i32),
34409            p_next: core::ptr::null_mut(),
34410            default_robustness_storage_buffers: Default::default(),
34411            default_robustness_uniform_buffers: Default::default(),
34412            default_robustness_vertex_inputs: Default::default(),
34413            default_robustness_images: Default::default(),
34414        }
34415    }
34416}
34417///[`VkImageViewSampleWeightCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageViewSampleWeightCreateInfoQCOM.html)
34418/**
34419Provided by **VK_QCOM_image_processing**.*/
34420///
34421///# Extends
34422///- [`ImageViewCreateInfo`]
34423#[repr(C)]
34424#[derive(Copy, Clone, Debug)]
34425#[doc(alias = "VkImageViewSampleWeightCreateInfoQCOM")]
34426pub struct ImageViewSampleWeightCreateInfoQCOM {
34427    ///Must be `VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM`.
34428    pub s_type: StructureType,
34429    ///Optional, may be null.
34430    pub p_next: *const core::ffi::c_void,
34431    pub filter_center: Offset2D,
34432    pub filter_size: Extent2D,
34433    pub num_phases: u32,
34434}
34435impl Default for ImageViewSampleWeightCreateInfoQCOM {
34436    #[inline]
34437    fn default() -> Self {
34438        Self {
34439            s_type: StructureType::from_raw(1000440002i32),
34440            p_next: core::ptr::null(),
34441            filter_center: Default::default(),
34442            filter_size: Default::default(),
34443            num_phases: Default::default(),
34444        }
34445    }
34446}
34447///[`VkPhysicalDeviceImageProcessingFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageProcessingFeaturesQCOM.html)
34448/**
34449Provided by **VK_QCOM_image_processing**.*/
34450///
34451///# Extends
34452///- [`PhysicalDeviceFeatures2`]
34453///- [`DeviceCreateInfo`]
34454#[repr(C)]
34455#[derive(Copy, Clone, Debug)]
34456#[doc(alias = "VkPhysicalDeviceImageProcessingFeaturesQCOM")]
34457pub struct PhysicalDeviceImageProcessingFeaturesQCOM {
34458    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM`.
34459    pub s_type: StructureType,
34460    ///Optional, may be null.
34461    pub p_next: *mut core::ffi::c_void,
34462    pub texture_sample_weighted: u32,
34463    pub texture_box_filter: u32,
34464    pub texture_block_match: u32,
34465}
34466impl Default for PhysicalDeviceImageProcessingFeaturesQCOM {
34467    #[inline]
34468    fn default() -> Self {
34469        Self {
34470            s_type: StructureType::from_raw(1000440000i32),
34471            p_next: core::ptr::null_mut(),
34472            texture_sample_weighted: Default::default(),
34473            texture_box_filter: Default::default(),
34474            texture_block_match: Default::default(),
34475        }
34476    }
34477}
34478///[`VkPhysicalDeviceImageProcessingPropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageProcessingPropertiesQCOM.html)
34479/**
34480Provided by **VK_QCOM_image_processing**.*/
34481/**
34482**Returned only**, filled by Vulkan, not constructed by the application.*/
34483///
34484///# Extends
34485///- [`PhysicalDeviceProperties2`]
34486#[repr(C)]
34487#[derive(Copy, Clone, Debug)]
34488#[doc(alias = "VkPhysicalDeviceImageProcessingPropertiesQCOM")]
34489pub struct PhysicalDeviceImageProcessingPropertiesQCOM {
34490    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM`.
34491    pub s_type: StructureType,
34492    ///Optional, may be null.
34493    pub p_next: *mut core::ffi::c_void,
34494    pub max_weight_filter_phases: u32,
34495    pub max_weight_filter_dimension: Extent2D,
34496    pub max_block_match_region: Extent2D,
34497    pub max_box_filter_block_size: Extent2D,
34498}
34499impl Default for PhysicalDeviceImageProcessingPropertiesQCOM {
34500    #[inline]
34501    fn default() -> Self {
34502        Self {
34503            s_type: StructureType::from_raw(1000440001i32),
34504            p_next: core::ptr::null_mut(),
34505            max_weight_filter_phases: Default::default(),
34506            max_weight_filter_dimension: Default::default(),
34507            max_block_match_region: Default::default(),
34508            max_box_filter_block_size: Default::default(),
34509        }
34510    }
34511}
34512///[`VkPhysicalDeviceTilePropertiesFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTilePropertiesFeaturesQCOM.html)
34513/**
34514Provided by **VK_QCOM_tile_properties**.*/
34515///
34516///# Extends
34517///- [`PhysicalDeviceFeatures2`]
34518///- [`DeviceCreateInfo`]
34519#[repr(C)]
34520#[derive(Copy, Clone, Debug)]
34521#[doc(alias = "VkPhysicalDeviceTilePropertiesFeaturesQCOM")]
34522pub struct PhysicalDeviceTilePropertiesFeaturesQCOM {
34523    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM`.
34524    pub s_type: StructureType,
34525    ///Optional, may be null.
34526    pub p_next: *mut core::ffi::c_void,
34527    pub tile_properties: u32,
34528}
34529impl Default for PhysicalDeviceTilePropertiesFeaturesQCOM {
34530    #[inline]
34531    fn default() -> Self {
34532        Self {
34533            s_type: StructureType::from_raw(1000484000i32),
34534            p_next: core::ptr::null_mut(),
34535            tile_properties: Default::default(),
34536        }
34537    }
34538}
34539///[`VkTilePropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTilePropertiesQCOM.html)
34540/**
34541Provided by **VK_QCOM_tile_properties**.*/
34542#[repr(C)]
34543#[derive(Copy, Clone, Debug)]
34544#[doc(alias = "VkTilePropertiesQCOM")]
34545pub struct TilePropertiesQCOM {
34546    ///Must be `VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM`.
34547    pub s_type: StructureType,
34548    ///Optional, may be null.
34549    pub p_next: *mut core::ffi::c_void,
34550    pub tile_size: Extent3D,
34551    pub apron_size: Extent2D,
34552    pub origin: Offset2D,
34553}
34554impl Default for TilePropertiesQCOM {
34555    #[inline]
34556    fn default() -> Self {
34557        Self {
34558            s_type: StructureType::from_raw(1000484001i32),
34559            p_next: core::ptr::null_mut(),
34560            tile_size: Default::default(),
34561            apron_size: Default::default(),
34562            origin: Default::default(),
34563        }
34564    }
34565}
34566///[`VkTileMemoryBindInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTileMemoryBindInfoQCOM.html)
34567/**
34568Provided by **VK_QCOM_tile_memory_heap**.*/
34569///
34570///# Extends
34571///- [`CommandBufferInheritanceInfo`]
34572#[repr(C)]
34573#[derive(Copy, Clone, Debug)]
34574#[doc(alias = "VkTileMemoryBindInfoQCOM")]
34575pub struct TileMemoryBindInfoQCOM {
34576    ///Must be `VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM`.
34577    pub s_type: StructureType,
34578    ///Optional, may be null.
34579    pub p_next: *const core::ffi::c_void,
34580    pub memory: DeviceMemory,
34581}
34582impl Default for TileMemoryBindInfoQCOM {
34583    #[inline]
34584    fn default() -> Self {
34585        Self {
34586            s_type: StructureType::from_raw(1000547003i32),
34587            p_next: core::ptr::null(),
34588            memory: Default::default(),
34589        }
34590    }
34591}
34592///[`VkPhysicalDeviceAmigoProfilingFeaturesSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAmigoProfilingFeaturesSEC.html)
34593/**
34594Provided by **VK_SEC_amigo_profiling**.*/
34595///
34596///# Extends
34597///- [`PhysicalDeviceFeatures2`]
34598///- [`DeviceCreateInfo`]
34599#[repr(C)]
34600#[derive(Copy, Clone, Debug)]
34601#[doc(alias = "VkPhysicalDeviceAmigoProfilingFeaturesSEC")]
34602pub struct PhysicalDeviceAmigoProfilingFeaturesSEC {
34603    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC`.
34604    pub s_type: StructureType,
34605    ///Optional, may be null.
34606    pub p_next: *mut core::ffi::c_void,
34607    pub amigo_profiling: u32,
34608}
34609impl Default for PhysicalDeviceAmigoProfilingFeaturesSEC {
34610    #[inline]
34611    fn default() -> Self {
34612        Self {
34613            s_type: StructureType::from_raw(1000485000i32),
34614            p_next: core::ptr::null_mut(),
34615            amigo_profiling: Default::default(),
34616        }
34617    }
34618}
34619///[`VkAmigoProfilingSubmitInfoSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAmigoProfilingSubmitInfoSEC.html)
34620/**
34621Provided by **VK_SEC_amigo_profiling**.*/
34622///
34623///# Extends
34624///- [`SubmitInfo`]
34625#[repr(C)]
34626#[derive(Copy, Clone, Debug)]
34627#[doc(alias = "VkAmigoProfilingSubmitInfoSEC")]
34628pub struct AmigoProfilingSubmitInfoSEC {
34629    ///Must be `VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC`.
34630    pub s_type: StructureType,
34631    ///Optional, may be null.
34632    pub p_next: *const core::ffi::c_void,
34633    pub first_draw_timestamp: u64,
34634    pub swap_buffer_timestamp: u64,
34635}
34636impl Default for AmigoProfilingSubmitInfoSEC {
34637    #[inline]
34638    fn default() -> Self {
34639        Self {
34640            s_type: StructureType::from_raw(1000485001i32),
34641            p_next: core::ptr::null(),
34642            first_draw_timestamp: Default::default(),
34643            swap_buffer_timestamp: Default::default(),
34644        }
34645    }
34646}
34647///[`VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.html)
34648/**
34649Provided by **VK_EXT_attachment_feedback_loop_layout**.*/
34650///
34651///# Extends
34652///- [`PhysicalDeviceFeatures2`]
34653///- [`DeviceCreateInfo`]
34654#[repr(C)]
34655#[derive(Copy, Clone, Debug)]
34656#[doc(alias = "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT")]
34657pub struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
34658    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT`.
34659    pub s_type: StructureType,
34660    ///Optional, may be null.
34661    pub p_next: *mut core::ffi::c_void,
34662    pub attachment_feedback_loop_layout: u32,
34663}
34664impl Default for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
34665    #[inline]
34666    fn default() -> Self {
34667        Self {
34668            s_type: StructureType::from_raw(1000339000i32),
34669            p_next: core::ptr::null_mut(),
34670            attachment_feedback_loop_layout: Default::default(),
34671        }
34672    }
34673}
34674///[`VkAttachmentFeedbackLoopInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentFeedbackLoopInfoEXT.html)
34675/**
34676Provided by **VK_KHR_unified_image_layouts**.*/
34677///
34678///# Extends
34679///- [`RenderingAttachmentInfo`]
34680#[repr(C)]
34681#[derive(Copy, Clone, Debug)]
34682#[doc(alias = "VkAttachmentFeedbackLoopInfoEXT")]
34683pub struct AttachmentFeedbackLoopInfoEXT {
34684    ///Must be `VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT`.
34685    pub s_type: StructureType,
34686    ///Optional, may be null.
34687    pub p_next: *const core::ffi::c_void,
34688    pub feedback_loop_enable: u32,
34689}
34690impl Default for AttachmentFeedbackLoopInfoEXT {
34691    #[inline]
34692    fn default() -> Self {
34693        Self {
34694            s_type: StructureType::from_raw(1000527001i32),
34695            p_next: core::ptr::null(),
34696            feedback_loop_enable: Default::default(),
34697        }
34698    }
34699}
34700///[`VkPhysicalDeviceAddressBindingReportFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAddressBindingReportFeaturesEXT.html)
34701/**
34702Provided by **VK_EXT_device_address_binding_report**.*/
34703///
34704///# Extends
34705///- [`PhysicalDeviceFeatures2`]
34706///- [`DeviceCreateInfo`]
34707#[repr(C)]
34708#[derive(Copy, Clone, Debug)]
34709#[doc(alias = "VkPhysicalDeviceAddressBindingReportFeaturesEXT")]
34710pub struct PhysicalDeviceAddressBindingReportFeaturesEXT {
34711    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT`.
34712    pub s_type: StructureType,
34713    ///Optional, may be null.
34714    pub p_next: *mut core::ffi::c_void,
34715    pub report_address_binding: u32,
34716}
34717impl Default for PhysicalDeviceAddressBindingReportFeaturesEXT {
34718    #[inline]
34719    fn default() -> Self {
34720        Self {
34721            s_type: StructureType::from_raw(1000354000i32),
34722            p_next: core::ptr::null_mut(),
34723            report_address_binding: Default::default(),
34724        }
34725    }
34726}
34727///[`VkRenderingAttachmentFlagsInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingAttachmentFlagsInfoKHR.html)
34728/**
34729Provided by **VK_KHR_maintenance10**.*/
34730///
34731///# Extends
34732///- [`RenderingAttachmentInfo`]
34733#[repr(C)]
34734#[derive(Copy, Clone, Debug)]
34735#[doc(alias = "VkRenderingAttachmentFlagsInfoKHR")]
34736pub struct RenderingAttachmentFlagsInfoKHR {
34737    ///Must be `VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR`.
34738    pub s_type: StructureType,
34739    ///Optional, may be null.
34740    pub p_next: *const core::ffi::c_void,
34741    pub flags: RenderingAttachmentFlagsKHR,
34742}
34743impl Default for RenderingAttachmentFlagsInfoKHR {
34744    #[inline]
34745    fn default() -> Self {
34746        Self {
34747            s_type: StructureType::from_raw(1000630002i32),
34748            p_next: core::ptr::null(),
34749            flags: Default::default(),
34750        }
34751    }
34752}
34753///[`VkResolveImageModeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkResolveImageModeInfoKHR.html)
34754/**
34755Provided by **VK_KHR_maintenance10**.*/
34756///
34757///# Extends
34758///- [`ResolveImageInfo2`]
34759#[repr(C)]
34760#[derive(Copy, Clone, Debug)]
34761#[doc(alias = "VkResolveImageModeInfoKHR")]
34762pub struct ResolveImageModeInfoKHR {
34763    ///Must be `VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR`.
34764    pub s_type: StructureType,
34765    ///Optional, may be null.
34766    pub p_next: *const core::ffi::c_void,
34767    pub flags: ResolveImageFlagsKHR,
34768    pub resolve_mode: ResolveModeFlagBits,
34769    pub stencil_resolve_mode: ResolveModeFlagBits,
34770}
34771impl Default for ResolveImageModeInfoKHR {
34772    #[inline]
34773    fn default() -> Self {
34774        Self {
34775            s_type: StructureType::from_raw(1000630004i32),
34776            p_next: core::ptr::null(),
34777            flags: Default::default(),
34778            resolve_mode: Default::default(),
34779            stencil_resolve_mode: Default::default(),
34780        }
34781    }
34782}
34783///[`VkDeviceAddressBindingCallbackDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceAddressBindingCallbackDataEXT.html)
34784/**
34785Provided by **VK_EXT_device_address_binding_report**.*/
34786///
34787///# Extends
34788///- [`DebugUtilsMessengerCallbackDataEXT`]
34789#[repr(C)]
34790#[derive(Copy, Clone, Debug)]
34791#[doc(alias = "VkDeviceAddressBindingCallbackDataEXT")]
34792pub struct DeviceAddressBindingCallbackDataEXT {
34793    ///Must be `VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT`.
34794    pub s_type: StructureType,
34795    ///Optional, may be null.
34796    pub p_next: *mut core::ffi::c_void,
34797    pub flags: DeviceAddressBindingFlagsEXT,
34798    pub base_address: u64,
34799    pub size: u64,
34800    pub binding_type: DeviceAddressBindingTypeEXT,
34801}
34802impl Default for DeviceAddressBindingCallbackDataEXT {
34803    #[inline]
34804    fn default() -> Self {
34805        Self {
34806            s_type: StructureType::from_raw(1000354001i32),
34807            p_next: core::ptr::null_mut(),
34808            flags: Default::default(),
34809            base_address: Default::default(),
34810            size: Default::default(),
34811            binding_type: Default::default(),
34812        }
34813    }
34814}
34815///[`VkPhysicalDeviceOpticalFlowFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceOpticalFlowFeaturesNV.html)
34816/**
34817Provided by **VK_NV_optical_flow**.*/
34818///
34819///# Extends
34820///- [`PhysicalDeviceFeatures2`]
34821///- [`DeviceCreateInfo`]
34822#[repr(C)]
34823#[derive(Copy, Clone, Debug)]
34824#[doc(alias = "VkPhysicalDeviceOpticalFlowFeaturesNV")]
34825pub struct PhysicalDeviceOpticalFlowFeaturesNV {
34826    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV`.
34827    pub s_type: StructureType,
34828    ///Optional, may be null.
34829    pub p_next: *mut core::ffi::c_void,
34830    pub optical_flow: u32,
34831}
34832impl Default for PhysicalDeviceOpticalFlowFeaturesNV {
34833    #[inline]
34834    fn default() -> Self {
34835        Self {
34836            s_type: StructureType::from_raw(1000464000i32),
34837            p_next: core::ptr::null_mut(),
34838            optical_flow: Default::default(),
34839        }
34840    }
34841}
34842///[`VkPhysicalDeviceOpticalFlowPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceOpticalFlowPropertiesNV.html)
34843/**
34844Provided by **VK_NV_optical_flow**.*/
34845/**
34846**Returned only**, filled by Vulkan, not constructed by the application.*/
34847///
34848///# Extends
34849///- [`PhysicalDeviceProperties2`]
34850#[repr(C)]
34851#[derive(Copy, Clone, Debug)]
34852#[doc(alias = "VkPhysicalDeviceOpticalFlowPropertiesNV")]
34853pub struct PhysicalDeviceOpticalFlowPropertiesNV {
34854    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV`.
34855    pub s_type: StructureType,
34856    ///Optional, may be null.
34857    pub p_next: *mut core::ffi::c_void,
34858    pub supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV,
34859    pub supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV,
34860    pub hint_supported: u32,
34861    pub cost_supported: u32,
34862    pub bidirectional_flow_supported: u32,
34863    pub global_flow_supported: u32,
34864    pub min_width: u32,
34865    pub min_height: u32,
34866    pub max_width: u32,
34867    pub max_height: u32,
34868    pub max_num_regions_of_interest: u32,
34869}
34870impl Default for PhysicalDeviceOpticalFlowPropertiesNV {
34871    #[inline]
34872    fn default() -> Self {
34873        Self {
34874            s_type: StructureType::from_raw(1000464001i32),
34875            p_next: core::ptr::null_mut(),
34876            supported_output_grid_sizes: Default::default(),
34877            supported_hint_grid_sizes: Default::default(),
34878            hint_supported: Default::default(),
34879            cost_supported: Default::default(),
34880            bidirectional_flow_supported: Default::default(),
34881            global_flow_supported: Default::default(),
34882            min_width: Default::default(),
34883            min_height: Default::default(),
34884            max_width: Default::default(),
34885            max_height: Default::default(),
34886            max_num_regions_of_interest: Default::default(),
34887        }
34888    }
34889}
34890///[`VkOpticalFlowImageFormatInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowImageFormatInfoNV.html)
34891/**
34892Provided by **VK_NV_optical_flow**.*/
34893///
34894///# Extends
34895///- [`PhysicalDeviceImageFormatInfo2`]
34896///- [`ImageCreateInfo`]
34897#[repr(C)]
34898#[derive(Copy, Clone, Debug)]
34899#[doc(alias = "VkOpticalFlowImageFormatInfoNV")]
34900pub struct OpticalFlowImageFormatInfoNV {
34901    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV`.
34902    pub s_type: StructureType,
34903    ///Optional, may be null.
34904    pub p_next: *const core::ffi::c_void,
34905    pub usage: OpticalFlowUsageFlagsNV,
34906}
34907impl Default for OpticalFlowImageFormatInfoNV {
34908    #[inline]
34909    fn default() -> Self {
34910        Self {
34911            s_type: StructureType::from_raw(1000464002i32),
34912            p_next: core::ptr::null(),
34913            usage: Default::default(),
34914        }
34915    }
34916}
34917///[`VkOpticalFlowImageFormatPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowImageFormatPropertiesNV.html)
34918/**
34919Provided by **VK_NV_optical_flow**.*/
34920/**
34921**Returned only**, filled by Vulkan, not constructed by the application.*/
34922#[repr(C)]
34923#[derive(Copy, Clone, Debug)]
34924#[doc(alias = "VkOpticalFlowImageFormatPropertiesNV")]
34925pub struct OpticalFlowImageFormatPropertiesNV {
34926    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV`.
34927    pub s_type: StructureType,
34928    ///Optional, may be null.
34929    pub p_next: *mut core::ffi::c_void,
34930    pub format: Format,
34931}
34932impl Default for OpticalFlowImageFormatPropertiesNV {
34933    #[inline]
34934    fn default() -> Self {
34935        Self {
34936            s_type: StructureType::from_raw(1000464003i32),
34937            p_next: core::ptr::null_mut(),
34938            format: Default::default(),
34939        }
34940    }
34941}
34942///[`VkOpticalFlowSessionCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowSessionCreateInfoNV.html)
34943/**
34944Provided by **VK_NV_optical_flow**.*/
34945///
34946///# Extended By
34947///- [`OpticalFlowSessionCreatePrivateDataInfoNV`]
34948#[repr(C)]
34949#[derive(Copy, Clone, Debug)]
34950#[doc(alias = "VkOpticalFlowSessionCreateInfoNV")]
34951pub struct OpticalFlowSessionCreateInfoNV {
34952    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV`.
34953    pub s_type: StructureType,
34954    ///Optional, may be null.
34955    pub p_next: *mut core::ffi::c_void,
34956    pub width: u32,
34957    pub height: u32,
34958    pub image_format: Format,
34959    pub flow_vector_format: Format,
34960    pub cost_format: Format,
34961    pub output_grid_size: OpticalFlowGridSizeFlagsNV,
34962    pub hint_grid_size: OpticalFlowGridSizeFlagsNV,
34963    pub performance_level: OpticalFlowPerformanceLevelNV,
34964    pub flags: OpticalFlowSessionCreateFlagsNV,
34965}
34966impl Default for OpticalFlowSessionCreateInfoNV {
34967    #[inline]
34968    fn default() -> Self {
34969        Self {
34970            s_type: StructureType::from_raw(1000464004i32),
34971            p_next: core::ptr::null_mut(),
34972            width: Default::default(),
34973            height: Default::default(),
34974            image_format: Default::default(),
34975            flow_vector_format: Default::default(),
34976            cost_format: Default::default(),
34977            output_grid_size: Default::default(),
34978            hint_grid_size: Default::default(),
34979            performance_level: Default::default(),
34980            flags: Default::default(),
34981        }
34982    }
34983}
34984///[`VkOpticalFlowSessionCreatePrivateDataInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowSessionCreatePrivateDataInfoNV.html)
34985/**
34986Provided by **VK_NV_optical_flow**.*/
34987///
34988///# Extends
34989///- [`OpticalFlowSessionCreateInfoNV`]
34990#[repr(C)]
34991#[derive(Copy, Clone, Debug)]
34992#[doc(alias = "VkOpticalFlowSessionCreatePrivateDataInfoNV")]
34993pub struct OpticalFlowSessionCreatePrivateDataInfoNV {
34994    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV`.
34995    pub s_type: StructureType,
34996    ///Optional, may be null.
34997    pub p_next: *mut core::ffi::c_void,
34998    pub id: u32,
34999    pub size: u32,
35000    pub p_private_data: *const core::ffi::c_void,
35001}
35002impl Default for OpticalFlowSessionCreatePrivateDataInfoNV {
35003    #[inline]
35004    fn default() -> Self {
35005        Self {
35006            s_type: StructureType::from_raw(1000464010i32),
35007            p_next: core::ptr::null_mut(),
35008            id: Default::default(),
35009            size: Default::default(),
35010            p_private_data: core::ptr::null(),
35011        }
35012    }
35013}
35014///[`VkOpticalFlowExecuteInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowExecuteInfoNV.html)
35015/**
35016Provided by **VK_NV_optical_flow**.*/
35017#[repr(C)]
35018#[derive(Copy, Clone, Debug)]
35019#[doc(alias = "VkOpticalFlowExecuteInfoNV")]
35020pub struct OpticalFlowExecuteInfoNV {
35021    ///Must be `VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV`.
35022    pub s_type: StructureType,
35023    ///Optional, may be null.
35024    pub p_next: *mut core::ffi::c_void,
35025    pub flags: OpticalFlowExecuteFlagsNV,
35026    ///Length of `p_regions`.
35027    pub region_count: u32,
35028    pub p_regions: *const Rect2D,
35029}
35030impl Default for OpticalFlowExecuteInfoNV {
35031    #[inline]
35032    fn default() -> Self {
35033        Self {
35034            s_type: StructureType::from_raw(1000464005i32),
35035            p_next: core::ptr::null_mut(),
35036            flags: Default::default(),
35037            region_count: Default::default(),
35038            p_regions: core::ptr::null(),
35039        }
35040    }
35041}
35042///[`VkPhysicalDeviceFaultFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFaultFeaturesEXT.html)
35043/**
35044Provided by **VK_EXT_device_fault**.*/
35045///
35046///# Extends
35047///- [`PhysicalDeviceFeatures2`]
35048///- [`DeviceCreateInfo`]
35049#[repr(C)]
35050#[derive(Copy, Clone, Debug)]
35051#[doc(alias = "VkPhysicalDeviceFaultFeaturesEXT")]
35052pub struct PhysicalDeviceFaultFeaturesEXT {
35053    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT`.
35054    pub s_type: StructureType,
35055    ///Optional, may be null.
35056    pub p_next: *mut core::ffi::c_void,
35057    pub device_fault: u32,
35058    pub device_fault_vendor_binary: u32,
35059}
35060impl Default for PhysicalDeviceFaultFeaturesEXT {
35061    #[inline]
35062    fn default() -> Self {
35063        Self {
35064            s_type: StructureType::from_raw(1000341000i32),
35065            p_next: core::ptr::null_mut(),
35066            device_fault: Default::default(),
35067            device_fault_vendor_binary: Default::default(),
35068        }
35069    }
35070}
35071///[`VkDeviceFaultAddressInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultAddressInfoKHR.html)
35072/**
35073Provided by **VK_KHR_device_fault**.*/
35074/**
35075**Returned only**, filled by Vulkan, not constructed by the application.*/
35076#[repr(C)]
35077#[derive(Copy, Clone, Debug)]
35078#[doc(alias = "VkDeviceFaultAddressInfoKHR")]
35079pub struct DeviceFaultAddressInfoKHR {
35080    pub address_type: DeviceFaultAddressTypeKHR,
35081    pub reported_address: u64,
35082    pub address_precision: u64,
35083}
35084impl Default for DeviceFaultAddressInfoKHR {
35085    #[inline]
35086    fn default() -> Self {
35087        unsafe { core::mem::zeroed() }
35088    }
35089}
35090///[`VkDeviceFaultVendorInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultVendorInfoKHR.html)
35091/**
35092Provided by **VK_KHR_device_fault**.*/
35093/**
35094**Returned only**, filled by Vulkan, not constructed by the application.*/
35095#[repr(C)]
35096#[derive(Copy, Clone, Debug)]
35097#[doc(alias = "VkDeviceFaultVendorInfoKHR")]
35098pub struct DeviceFaultVendorInfoKHR {
35099    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
35100    pub vendor_fault_code: u64,
35101    pub vendor_fault_data: u64,
35102}
35103impl Default for DeviceFaultVendorInfoKHR {
35104    #[inline]
35105    fn default() -> Self {
35106        unsafe { core::mem::zeroed() }
35107    }
35108}
35109///[`VkDeviceFaultInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultInfoKHR.html)
35110/**
35111Provided by **VK_KHR_device_fault**.*/
35112/**
35113**Returned only**, filled by Vulkan, not constructed by the application.*/
35114#[repr(C)]
35115#[derive(Copy, Clone, Debug)]
35116#[doc(alias = "VkDeviceFaultInfoKHR")]
35117pub struct DeviceFaultInfoKHR {
35118    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_KHR`.
35119    pub s_type: StructureType,
35120    ///Optional, may be null.
35121    pub p_next: *mut core::ffi::c_void,
35122    pub flags: DeviceFaultFlagsKHR,
35123    pub group_id: u64,
35124    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
35125    pub fault_address_info: DeviceFaultAddressInfoKHR,
35126    pub instruction_address_info: DeviceFaultAddressInfoKHR,
35127    pub vendor_info: DeviceFaultVendorInfoKHR,
35128}
35129impl Default for DeviceFaultInfoKHR {
35130    #[inline]
35131    fn default() -> Self {
35132        Self {
35133            s_type: StructureType::from_raw(1000573002i32),
35134            p_next: core::ptr::null_mut(),
35135            flags: Default::default(),
35136            group_id: Default::default(),
35137            description: unsafe { core::mem::zeroed() },
35138            fault_address_info: Default::default(),
35139            instruction_address_info: Default::default(),
35140            vendor_info: Default::default(),
35141        }
35142    }
35143}
35144///[`VkDeviceFaultDebugInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultDebugInfoKHR.html)
35145/**
35146Provided by **VK_KHR_device_fault**.*/
35147/**
35148**Returned only**, filled by Vulkan, not constructed by the application.*/
35149///
35150///# Extended By
35151///- [`DeviceFaultShaderAbortMessageInfoKHR`]
35152#[repr(C)]
35153#[derive(Copy, Clone, Debug)]
35154#[doc(alias = "VkDeviceFaultDebugInfoKHR")]
35155pub struct DeviceFaultDebugInfoKHR {
35156    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_DEBUG_INFO_KHR`.
35157    pub s_type: StructureType,
35158    ///Optional, may be null.
35159    pub p_next: *mut core::ffi::c_void,
35160    ///Length of `p_vendor_binary_data`.
35161    pub vendor_binary_size: u32,
35162    ///Optional, may be null.
35163    pub p_vendor_binary_data: *mut core::ffi::c_void,
35164}
35165impl Default for DeviceFaultDebugInfoKHR {
35166    #[inline]
35167    fn default() -> Self {
35168        Self {
35169            s_type: StructureType::from_raw(1000573003i32),
35170            p_next: core::ptr::null_mut(),
35171            vendor_binary_size: Default::default(),
35172            p_vendor_binary_data: core::ptr::null_mut(),
35173        }
35174    }
35175}
35176///[`VkDeviceFaultCountsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultCountsEXT.html)
35177/**
35178Provided by **VK_EXT_device_fault**.*/
35179#[repr(C)]
35180#[derive(Copy, Clone, Debug)]
35181#[doc(alias = "VkDeviceFaultCountsEXT")]
35182pub struct DeviceFaultCountsEXT {
35183    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT`.
35184    pub s_type: StructureType,
35185    ///Optional, may be null.
35186    pub p_next: *mut core::ffi::c_void,
35187    pub address_info_count: u32,
35188    pub vendor_info_count: u32,
35189    pub vendor_binary_size: u64,
35190}
35191impl Default for DeviceFaultCountsEXT {
35192    #[inline]
35193    fn default() -> Self {
35194        Self {
35195            s_type: StructureType::from_raw(1000341001i32),
35196            p_next: core::ptr::null_mut(),
35197            address_info_count: Default::default(),
35198            vendor_info_count: Default::default(),
35199            vendor_binary_size: Default::default(),
35200        }
35201    }
35202}
35203///[`VkDeviceFaultInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultInfoEXT.html)
35204/**
35205Provided by **VK_EXT_device_fault**.*/
35206/**
35207**Returned only**, filled by Vulkan, not constructed by the application.*/
35208#[repr(C)]
35209#[derive(Copy, Clone, Debug)]
35210#[doc(alias = "VkDeviceFaultInfoEXT")]
35211pub struct DeviceFaultInfoEXT {
35212    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT`.
35213    pub s_type: StructureType,
35214    ///Optional, may be null.
35215    pub p_next: *mut core::ffi::c_void,
35216    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
35217    ///Optional, may be null.
35218    pub p_address_infos: *mut DeviceFaultAddressInfoKHR,
35219    ///Optional, may be null.
35220    pub p_vendor_infos: *mut DeviceFaultVendorInfoKHR,
35221    ///Optional, may be null.
35222    pub p_vendor_binary_data: *mut core::ffi::c_void,
35223}
35224impl Default for DeviceFaultInfoEXT {
35225    #[inline]
35226    fn default() -> Self {
35227        Self {
35228            s_type: StructureType::from_raw(1000341002i32),
35229            p_next: core::ptr::null_mut(),
35230            description: unsafe { core::mem::zeroed() },
35231            p_address_infos: core::ptr::null_mut(),
35232            p_vendor_infos: core::ptr::null_mut(),
35233            p_vendor_binary_data: core::ptr::null_mut(),
35234        }
35235    }
35236}
35237///[`VkDeviceFaultVendorBinaryHeaderVersionOneKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultVendorBinaryHeaderVersionOneKHR.html)
35238/**
35239Provided by **VK_KHR_device_fault**.*/
35240#[repr(C)]
35241#[derive(Copy, Clone, Debug)]
35242#[doc(alias = "VkDeviceFaultVendorBinaryHeaderVersionOneKHR")]
35243pub struct DeviceFaultVendorBinaryHeaderVersionOneKHR {
35244    pub header_size: u32,
35245    pub header_version: DeviceFaultVendorBinaryHeaderVersionKHR,
35246    pub vendor_id: u32,
35247    pub device_id: u32,
35248    pub driver_version: u32,
35249    pub pipeline_cache_uuid: [u8; UUID_SIZE as usize],
35250    pub application_name_offset: u32,
35251    pub application_version: u32,
35252    pub engine_name_offset: u32,
35253    pub engine_version: u32,
35254    pub api_version: u32,
35255}
35256impl Default for DeviceFaultVendorBinaryHeaderVersionOneKHR {
35257    #[inline]
35258    fn default() -> Self {
35259        unsafe { core::mem::zeroed() }
35260    }
35261}
35262///[`VkPhysicalDeviceFaultFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFaultFeaturesKHR.html)
35263/**
35264Provided by **VK_KHR_device_fault**.*/
35265///
35266///# Extends
35267///- [`PhysicalDeviceFeatures2`]
35268///- [`DeviceCreateInfo`]
35269#[repr(C)]
35270#[derive(Copy, Clone, Debug)]
35271#[doc(alias = "VkPhysicalDeviceFaultFeaturesKHR")]
35272pub struct PhysicalDeviceFaultFeaturesKHR {
35273    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR`.
35274    pub s_type: StructureType,
35275    ///Optional, may be null.
35276    pub p_next: *mut core::ffi::c_void,
35277    pub device_fault: u32,
35278    pub device_fault_vendor_binary: u32,
35279    pub device_fault_report_masked: u32,
35280    pub device_fault_device_lost_on_masked: u32,
35281}
35282impl Default for PhysicalDeviceFaultFeaturesKHR {
35283    #[inline]
35284    fn default() -> Self {
35285        Self {
35286            s_type: StructureType::from_raw(1000573000i32),
35287            p_next: core::ptr::null_mut(),
35288            device_fault: Default::default(),
35289            device_fault_vendor_binary: Default::default(),
35290            device_fault_report_masked: Default::default(),
35291            device_fault_device_lost_on_masked: Default::default(),
35292        }
35293    }
35294}
35295///[`VkPhysicalDeviceFaultPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFaultPropertiesKHR.html)
35296/**
35297Provided by **VK_KHR_device_fault**.*/
35298/**
35299**Returned only**, filled by Vulkan, not constructed by the application.*/
35300///
35301///# Extends
35302///- [`PhysicalDeviceProperties2`]
35303#[repr(C)]
35304#[derive(Copy, Clone, Debug)]
35305#[doc(alias = "VkPhysicalDeviceFaultPropertiesKHR")]
35306pub struct PhysicalDeviceFaultPropertiesKHR {
35307    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR`.
35308    pub s_type: StructureType,
35309    ///Optional, may be null.
35310    pub p_next: *mut core::ffi::c_void,
35311    pub max_device_fault_count: u32,
35312}
35313impl Default for PhysicalDeviceFaultPropertiesKHR {
35314    #[inline]
35315    fn default() -> Self {
35316        Self {
35317            s_type: StructureType::from_raw(1000573001i32),
35318            p_next: core::ptr::null_mut(),
35319            max_device_fault_count: Default::default(),
35320        }
35321    }
35322}
35323///[`VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT.html)
35324/**
35325Provided by **VK_EXT_pipeline_library_group_handles**.*/
35326///
35327///# Extends
35328///- [`PhysicalDeviceFeatures2`]
35329///- [`DeviceCreateInfo`]
35330#[repr(C)]
35331#[derive(Copy, Clone, Debug)]
35332#[doc(alias = "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT")]
35333pub struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
35334    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT`.
35335    pub s_type: StructureType,
35336    ///Optional, may be null.
35337    pub p_next: *mut core::ffi::c_void,
35338    pub pipeline_library_group_handles: u32,
35339}
35340impl Default for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
35341    #[inline]
35342    fn default() -> Self {
35343        Self {
35344            s_type: StructureType::from_raw(1000498000i32),
35345            p_next: core::ptr::null_mut(),
35346            pipeline_library_group_handles: Default::default(),
35347        }
35348    }
35349}
35350///[`VkDepthBiasInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDepthBiasInfoEXT.html)
35351/**
35352Provided by **VK_EXT_depth_bias_control**.*/
35353///
35354///# Extended By
35355///- [`DepthBiasRepresentationInfoEXT`]
35356#[repr(C)]
35357#[derive(Copy, Clone, Debug)]
35358#[doc(alias = "VkDepthBiasInfoEXT")]
35359pub struct DepthBiasInfoEXT {
35360    ///Must be `VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT`.
35361    pub s_type: StructureType,
35362    ///Optional, may be null.
35363    pub p_next: *const core::ffi::c_void,
35364    pub depth_bias_constant_factor: f32,
35365    pub depth_bias_clamp: f32,
35366    pub depth_bias_slope_factor: f32,
35367}
35368impl Default for DepthBiasInfoEXT {
35369    #[inline]
35370    fn default() -> Self {
35371        Self {
35372            s_type: StructureType::from_raw(1000283001i32),
35373            p_next: core::ptr::null(),
35374            depth_bias_constant_factor: Default::default(),
35375            depth_bias_clamp: Default::default(),
35376            depth_bias_slope_factor: Default::default(),
35377        }
35378    }
35379}
35380///[`VkDepthBiasRepresentationInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDepthBiasRepresentationInfoEXT.html)
35381/**
35382Provided by **VK_EXT_depth_bias_control**.*/
35383///
35384///# Extends
35385///- [`DepthBiasInfoEXT`]
35386///- [`PipelineRasterizationStateCreateInfo`]
35387#[repr(C)]
35388#[derive(Copy, Clone, Debug)]
35389#[doc(alias = "VkDepthBiasRepresentationInfoEXT")]
35390pub struct DepthBiasRepresentationInfoEXT {
35391    ///Must be `VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT`.
35392    pub s_type: StructureType,
35393    ///Optional, may be null.
35394    pub p_next: *const core::ffi::c_void,
35395    pub depth_bias_representation: DepthBiasRepresentationEXT,
35396    pub depth_bias_exact: u32,
35397}
35398impl Default for DepthBiasRepresentationInfoEXT {
35399    #[inline]
35400    fn default() -> Self {
35401        Self {
35402            s_type: StructureType::from_raw(1000283002i32),
35403            p_next: core::ptr::null(),
35404            depth_bias_representation: Default::default(),
35405            depth_bias_exact: Default::default(),
35406        }
35407    }
35408}
35409///[`VkDecompressMemoryRegionNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDecompressMemoryRegionNV.html)
35410/**
35411Provided by **VK_NV_memory_decompression**.*/
35412#[repr(C)]
35413#[derive(Copy, Clone, Debug)]
35414#[doc(alias = "VkDecompressMemoryRegionNV")]
35415pub struct DecompressMemoryRegionNV {
35416    pub src_address: u64,
35417    pub dst_address: u64,
35418    pub compressed_size: u64,
35419    pub decompressed_size: u64,
35420    pub decompression_method: MemoryDecompressionMethodFlagsNV,
35421}
35422impl Default for DecompressMemoryRegionNV {
35423    #[inline]
35424    fn default() -> Self {
35425        unsafe { core::mem::zeroed() }
35426    }
35427}
35428///[`VkDecompressMemoryRegionEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDecompressMemoryRegionEXT.html)
35429/**
35430Provided by **VK_EXT_memory_decompression**.*/
35431#[repr(C)]
35432#[derive(Copy, Clone, Debug)]
35433#[doc(alias = "VkDecompressMemoryRegionEXT")]
35434pub struct DecompressMemoryRegionEXT {
35435    pub src_address: u64,
35436    pub dst_address: u64,
35437    pub compressed_size: u64,
35438    pub decompressed_size: u64,
35439}
35440impl Default for DecompressMemoryRegionEXT {
35441    #[inline]
35442    fn default() -> Self {
35443        unsafe { core::mem::zeroed() }
35444    }
35445}
35446///[`VkDecompressMemoryInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDecompressMemoryInfoEXT.html)
35447/**
35448Provided by **VK_EXT_memory_decompression**.*/
35449#[repr(C)]
35450#[derive(Copy, Clone, Debug)]
35451#[doc(alias = "VkDecompressMemoryInfoEXT")]
35452pub struct DecompressMemoryInfoEXT {
35453    ///Must be `VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT`.
35454    pub s_type: StructureType,
35455    ///Optional, may be null.
35456    pub p_next: *const core::ffi::c_void,
35457    pub decompression_method: MemoryDecompressionMethodFlagsEXT,
35458    ///Length of `p_regions`.
35459    pub region_count: u32,
35460    pub p_regions: *const DecompressMemoryRegionEXT,
35461}
35462impl Default for DecompressMemoryInfoEXT {
35463    #[inline]
35464    fn default() -> Self {
35465        Self {
35466            s_type: StructureType::from_raw(1000550002i32),
35467            p_next: core::ptr::null(),
35468            decompression_method: Default::default(),
35469            region_count: Default::default(),
35470            p_regions: core::ptr::null(),
35471        }
35472    }
35473}
35474///[`VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM.html)
35475/**
35476Provided by **VK_ARM_shader_core_builtins**.*/
35477/**
35478**Returned only**, filled by Vulkan, not constructed by the application.*/
35479///
35480///# Extends
35481///- [`PhysicalDeviceProperties2`]
35482#[repr(C)]
35483#[derive(Copy, Clone, Debug)]
35484#[doc(alias = "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM")]
35485pub struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
35486    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM`.
35487    pub s_type: StructureType,
35488    ///Optional, may be null.
35489    pub p_next: *mut core::ffi::c_void,
35490    pub shader_core_mask: u64,
35491    pub shader_core_count: u32,
35492    pub shader_warps_per_core: u32,
35493}
35494impl Default for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
35495    #[inline]
35496    fn default() -> Self {
35497        Self {
35498            s_type: StructureType::from_raw(1000497001i32),
35499            p_next: core::ptr::null_mut(),
35500            shader_core_mask: Default::default(),
35501            shader_core_count: Default::default(),
35502            shader_warps_per_core: Default::default(),
35503        }
35504    }
35505}
35506///[`VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM.html)
35507/**
35508Provided by **VK_ARM_shader_core_builtins**.*/
35509///
35510///# Extends
35511///- [`PhysicalDeviceFeatures2`]
35512///- [`DeviceCreateInfo`]
35513#[repr(C)]
35514#[derive(Copy, Clone, Debug)]
35515#[doc(alias = "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM")]
35516pub struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
35517    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM`.
35518    pub s_type: StructureType,
35519    ///Optional, may be null.
35520    pub p_next: *mut core::ffi::c_void,
35521    pub shader_core_builtins: u32,
35522}
35523impl Default for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
35524    #[inline]
35525    fn default() -> Self {
35526        Self {
35527            s_type: StructureType::from_raw(1000497000i32),
35528            p_next: core::ptr::null_mut(),
35529            shader_core_builtins: Default::default(),
35530        }
35531    }
35532}
35533///[`VkFrameBoundaryEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFrameBoundaryEXT.html)
35534/**
35535Provided by **VK_EXT_frame_boundary**.*/
35536///
35537///# Extends
35538///- [`SubmitInfo`]
35539///- [`SubmitInfo2`]
35540///- [`PresentInfoKHR`]
35541///- [`BindSparseInfo`]
35542#[repr(C)]
35543#[derive(Copy, Clone, Debug)]
35544#[doc(alias = "VkFrameBoundaryEXT")]
35545pub struct FrameBoundaryEXT {
35546    ///Must be `VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT`.
35547    pub s_type: StructureType,
35548    ///Optional, may be null.
35549    pub p_next: *const core::ffi::c_void,
35550    pub flags: FrameBoundaryFlagsEXT,
35551    pub frame_id: u64,
35552    ///Length of `p_images`.
35553    pub image_count: u32,
35554    ///Optional, may be null.
35555    pub p_images: *const Image,
35556    ///Length of `p_buffers`.
35557    pub buffer_count: u32,
35558    ///Optional, may be null.
35559    pub p_buffers: *const Buffer,
35560    pub tag_name: u64,
35561    ///Length of `p_tag`.
35562    pub tag_size: usize,
35563    ///Optional, may be null.
35564    pub p_tag: *const core::ffi::c_void,
35565}
35566impl Default for FrameBoundaryEXT {
35567    #[inline]
35568    fn default() -> Self {
35569        Self {
35570            s_type: StructureType::from_raw(1000375001i32),
35571            p_next: core::ptr::null(),
35572            flags: Default::default(),
35573            frame_id: Default::default(),
35574            image_count: Default::default(),
35575            p_images: core::ptr::null(),
35576            buffer_count: Default::default(),
35577            p_buffers: core::ptr::null(),
35578            tag_name: Default::default(),
35579            tag_size: Default::default(),
35580            p_tag: core::ptr::null(),
35581        }
35582    }
35583}
35584///[`VkPhysicalDeviceFrameBoundaryFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFrameBoundaryFeaturesEXT.html)
35585/**
35586Provided by **VK_EXT_frame_boundary**.*/
35587///
35588///# Extends
35589///- [`PhysicalDeviceFeatures2`]
35590///- [`DeviceCreateInfo`]
35591#[repr(C)]
35592#[derive(Copy, Clone, Debug)]
35593#[doc(alias = "VkPhysicalDeviceFrameBoundaryFeaturesEXT")]
35594pub struct PhysicalDeviceFrameBoundaryFeaturesEXT {
35595    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT`.
35596    pub s_type: StructureType,
35597    ///Optional, may be null.
35598    pub p_next: *mut core::ffi::c_void,
35599    pub frame_boundary: u32,
35600}
35601impl Default for PhysicalDeviceFrameBoundaryFeaturesEXT {
35602    #[inline]
35603    fn default() -> Self {
35604        Self {
35605            s_type: StructureType::from_raw(1000375000i32),
35606            p_next: core::ptr::null_mut(),
35607            frame_boundary: Default::default(),
35608        }
35609    }
35610}
35611///[`VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.html)
35612/**
35613Provided by **VK_EXT_dynamic_rendering_unused_attachments**.*/
35614///
35615///# Extends
35616///- [`PhysicalDeviceFeatures2`]
35617///- [`DeviceCreateInfo`]
35618#[repr(C)]
35619#[derive(Copy, Clone, Debug)]
35620#[doc(alias = "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT")]
35621pub struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
35622    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT`.
35623    pub s_type: StructureType,
35624    ///Optional, may be null.
35625    pub p_next: *mut core::ffi::c_void,
35626    pub dynamic_rendering_unused_attachments: u32,
35627}
35628impl Default for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
35629    #[inline]
35630    fn default() -> Self {
35631        Self {
35632            s_type: StructureType::from_raw(1000499000i32),
35633            p_next: core::ptr::null_mut(),
35634            dynamic_rendering_unused_attachments: Default::default(),
35635        }
35636    }
35637}
35638///[`VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR.html)
35639/**
35640Provided by **VK_KHR_internally_synchronized_queues**.*/
35641///
35642///# Extends
35643///- [`PhysicalDeviceFeatures2`]
35644///- [`DeviceCreateInfo`]
35645#[repr(C)]
35646#[derive(Copy, Clone, Debug)]
35647#[doc(alias = "VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR")]
35648pub struct PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
35649    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR`.
35650    pub s_type: StructureType,
35651    ///Optional, may be null.
35652    pub p_next: *mut core::ffi::c_void,
35653    pub internally_synchronized_queues: u32,
35654}
35655impl Default for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
35656    #[inline]
35657    fn default() -> Self {
35658        Self {
35659            s_type: StructureType::from_raw(1000504000i32),
35660            p_next: core::ptr::null_mut(),
35661            internally_synchronized_queues: Default::default(),
35662        }
35663    }
35664}
35665///[`VkSurfacePresentModeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfacePresentModeKHR.html)
35666/**
35667Provided by **VK_KHR_surface_maintenance1**.*/
35668///
35669///# Extends
35670///- [`PhysicalDeviceSurfaceInfo2KHR`]
35671#[repr(C)]
35672#[derive(Copy, Clone, Debug)]
35673#[doc(alias = "VkSurfacePresentModeKHR")]
35674pub struct SurfacePresentModeKHR {
35675    ///Must be `VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR`.
35676    pub s_type: StructureType,
35677    ///Optional, may be null.
35678    pub p_next: *mut core::ffi::c_void,
35679    pub present_mode: PresentModeKHR,
35680}
35681impl Default for SurfacePresentModeKHR {
35682    #[inline]
35683    fn default() -> Self {
35684        Self {
35685            s_type: StructureType::from_raw(1000274000i32),
35686            p_next: core::ptr::null_mut(),
35687            present_mode: Default::default(),
35688        }
35689    }
35690}
35691///[`VkSurfacePresentScalingCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfacePresentScalingCapabilitiesKHR.html)
35692/**
35693Provided by **VK_KHR_surface_maintenance1**.*/
35694///
35695///# Extends
35696///- [`SurfaceCapabilities2KHR`]
35697#[repr(C)]
35698#[derive(Copy, Clone, Debug)]
35699#[doc(alias = "VkSurfacePresentScalingCapabilitiesKHR")]
35700pub struct SurfacePresentScalingCapabilitiesKHR {
35701    ///Must be `VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR`.
35702    pub s_type: StructureType,
35703    ///Optional, may be null.
35704    pub p_next: *mut core::ffi::c_void,
35705    pub supported_present_scaling: PresentScalingFlagsKHR,
35706    pub supported_present_gravity_x: PresentGravityFlagsKHR,
35707    pub supported_present_gravity_y: PresentGravityFlagsKHR,
35708    pub min_scaled_image_extent: Extent2D,
35709    pub max_scaled_image_extent: Extent2D,
35710}
35711impl Default for SurfacePresentScalingCapabilitiesKHR {
35712    #[inline]
35713    fn default() -> Self {
35714        Self {
35715            s_type: StructureType::from_raw(1000274001i32),
35716            p_next: core::ptr::null_mut(),
35717            supported_present_scaling: Default::default(),
35718            supported_present_gravity_x: Default::default(),
35719            supported_present_gravity_y: Default::default(),
35720            min_scaled_image_extent: Default::default(),
35721            max_scaled_image_extent: Default::default(),
35722        }
35723    }
35724}
35725///[`VkSurfacePresentModeCompatibilityKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfacePresentModeCompatibilityKHR.html)
35726/**
35727Provided by **VK_KHR_surface_maintenance1**.*/
35728///
35729///# Extends
35730///- [`SurfaceCapabilities2KHR`]
35731#[repr(C)]
35732#[derive(Copy, Clone, Debug)]
35733#[doc(alias = "VkSurfacePresentModeCompatibilityKHR")]
35734pub struct SurfacePresentModeCompatibilityKHR {
35735    ///Must be `VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR`.
35736    pub s_type: StructureType,
35737    ///Optional, may be null.
35738    pub p_next: *mut core::ffi::c_void,
35739    ///Length of `p_present_modes`.
35740    pub present_mode_count: u32,
35741    ///Optional, may be null.
35742    pub p_present_modes: *mut PresentModeKHR,
35743}
35744impl Default for SurfacePresentModeCompatibilityKHR {
35745    #[inline]
35746    fn default() -> Self {
35747        Self {
35748            s_type: StructureType::from_raw(1000274002i32),
35749            p_next: core::ptr::null_mut(),
35750            present_mode_count: Default::default(),
35751            p_present_modes: core::ptr::null_mut(),
35752        }
35753    }
35754}
35755///[`VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR.html)
35756/**
35757Provided by **VK_KHR_swapchain_maintenance1**.*/
35758///
35759///# Extends
35760///- [`PhysicalDeviceFeatures2`]
35761///- [`DeviceCreateInfo`]
35762#[repr(C)]
35763#[derive(Copy, Clone, Debug)]
35764#[doc(alias = "VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR")]
35765pub struct PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
35766    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR`.
35767    pub s_type: StructureType,
35768    ///Optional, may be null.
35769    pub p_next: *mut core::ffi::c_void,
35770    pub swapchain_maintenance1: u32,
35771}
35772impl Default for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
35773    #[inline]
35774    fn default() -> Self {
35775        Self {
35776            s_type: StructureType::from_raw(1000275000i32),
35777            p_next: core::ptr::null_mut(),
35778            swapchain_maintenance1: Default::default(),
35779        }
35780    }
35781}
35782///[`VkSwapchainPresentFenceInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentFenceInfoKHR.html)
35783/**
35784Provided by **VK_KHR_swapchain_maintenance1**.*/
35785///
35786///# Extends
35787///- [`PresentInfoKHR`]
35788#[repr(C)]
35789#[derive(Copy, Clone, Debug)]
35790#[doc(alias = "VkSwapchainPresentFenceInfoKHR")]
35791pub struct SwapchainPresentFenceInfoKHR {
35792    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR`.
35793    pub s_type: StructureType,
35794    ///Optional, may be null.
35795    pub p_next: *const core::ffi::c_void,
35796    ///Length of `p_fences`.
35797    pub swapchain_count: u32,
35798    ///Optional, may be null.
35799    pub p_fences: *const Fence,
35800}
35801impl Default for SwapchainPresentFenceInfoKHR {
35802    #[inline]
35803    fn default() -> Self {
35804        Self {
35805            s_type: StructureType::from_raw(1000275001i32),
35806            p_next: core::ptr::null(),
35807            swapchain_count: Default::default(),
35808            p_fences: core::ptr::null(),
35809        }
35810    }
35811}
35812///[`VkSwapchainPresentModesCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentModesCreateInfoKHR.html)
35813/**
35814Provided by **VK_KHR_swapchain_maintenance1**.*/
35815///
35816///# Extends
35817///- [`SwapchainCreateInfoKHR`]
35818#[repr(C)]
35819#[derive(Copy, Clone, Debug)]
35820#[doc(alias = "VkSwapchainPresentModesCreateInfoKHR")]
35821pub struct SwapchainPresentModesCreateInfoKHR {
35822    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR`.
35823    pub s_type: StructureType,
35824    ///Optional, may be null.
35825    pub p_next: *const core::ffi::c_void,
35826    ///Length of `p_present_modes`.
35827    pub present_mode_count: u32,
35828    pub p_present_modes: *const PresentModeKHR,
35829}
35830impl Default for SwapchainPresentModesCreateInfoKHR {
35831    #[inline]
35832    fn default() -> Self {
35833        Self {
35834            s_type: StructureType::from_raw(1000275002i32),
35835            p_next: core::ptr::null(),
35836            present_mode_count: Default::default(),
35837            p_present_modes: core::ptr::null(),
35838        }
35839    }
35840}
35841///[`VkSwapchainPresentModeInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentModeInfoKHR.html)
35842/**
35843Provided by **VK_KHR_swapchain_maintenance1**.*/
35844///
35845///# Extends
35846///- [`PresentInfoKHR`]
35847#[repr(C)]
35848#[derive(Copy, Clone, Debug)]
35849#[doc(alias = "VkSwapchainPresentModeInfoKHR")]
35850pub struct SwapchainPresentModeInfoKHR {
35851    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR`.
35852    pub s_type: StructureType,
35853    ///Optional, may be null.
35854    pub p_next: *const core::ffi::c_void,
35855    ///Length of `p_present_modes`.
35856    pub swapchain_count: u32,
35857    pub p_present_modes: *const PresentModeKHR,
35858}
35859impl Default for SwapchainPresentModeInfoKHR {
35860    #[inline]
35861    fn default() -> Self {
35862        Self {
35863            s_type: StructureType::from_raw(1000275003i32),
35864            p_next: core::ptr::null(),
35865            swapchain_count: Default::default(),
35866            p_present_modes: core::ptr::null(),
35867        }
35868    }
35869}
35870///[`VkSwapchainPresentScalingCreateInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainPresentScalingCreateInfoKHR.html)
35871/**
35872Provided by **VK_KHR_swapchain_maintenance1**.*/
35873///
35874///# Extends
35875///- [`SwapchainCreateInfoKHR`]
35876#[repr(C)]
35877#[derive(Copy, Clone, Debug)]
35878#[doc(alias = "VkSwapchainPresentScalingCreateInfoKHR")]
35879pub struct SwapchainPresentScalingCreateInfoKHR {
35880    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR`.
35881    pub s_type: StructureType,
35882    ///Optional, may be null.
35883    pub p_next: *const core::ffi::c_void,
35884    pub scaling_behavior: PresentScalingFlagsKHR,
35885    pub present_gravity_x: PresentGravityFlagsKHR,
35886    pub present_gravity_y: PresentGravityFlagsKHR,
35887}
35888impl Default for SwapchainPresentScalingCreateInfoKHR {
35889    #[inline]
35890    fn default() -> Self {
35891        Self {
35892            s_type: StructureType::from_raw(1000275004i32),
35893            p_next: core::ptr::null(),
35894            scaling_behavior: Default::default(),
35895            present_gravity_x: Default::default(),
35896            present_gravity_y: Default::default(),
35897        }
35898    }
35899}
35900///[`VkReleaseSwapchainImagesInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkReleaseSwapchainImagesInfoKHR.html)
35901/**
35902Provided by **VK_KHR_swapchain_maintenance1**.*/
35903#[repr(C)]
35904#[derive(Copy, Clone, Debug)]
35905#[doc(alias = "VkReleaseSwapchainImagesInfoKHR")]
35906pub struct ReleaseSwapchainImagesInfoKHR {
35907    ///Must be `VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR`.
35908    pub s_type: StructureType,
35909    ///Optional, may be null.
35910    pub p_next: *const core::ffi::c_void,
35911    ///**Thread safety:** must be externally synchronized.
35912    pub swapchain: SwapchainKHR,
35913    ///Length of `p_image_indices`.
35914    pub image_index_count: u32,
35915    pub p_image_indices: *const u32,
35916}
35917impl Default for ReleaseSwapchainImagesInfoKHR {
35918    #[inline]
35919    fn default() -> Self {
35920        Self {
35921            s_type: StructureType::from_raw(1000275005i32),
35922            p_next: core::ptr::null(),
35923            swapchain: Default::default(),
35924            image_index_count: Default::default(),
35925            p_image_indices: core::ptr::null(),
35926        }
35927    }
35928}
35929///[`VkPhysicalDeviceDepthBiasControlFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthBiasControlFeaturesEXT.html)
35930/**
35931Provided by **VK_EXT_depth_bias_control**.*/
35932///
35933///# Extends
35934///- [`PhysicalDeviceFeatures2`]
35935///- [`DeviceCreateInfo`]
35936#[repr(C)]
35937#[derive(Copy, Clone, Debug)]
35938#[doc(alias = "VkPhysicalDeviceDepthBiasControlFeaturesEXT")]
35939pub struct PhysicalDeviceDepthBiasControlFeaturesEXT {
35940    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT`.
35941    pub s_type: StructureType,
35942    ///Optional, may be null.
35943    pub p_next: *mut core::ffi::c_void,
35944    pub depth_bias_control: u32,
35945    pub least_representable_value_force_unorm_representation: u32,
35946    pub float_representation: u32,
35947    pub depth_bias_exact: u32,
35948}
35949impl Default for PhysicalDeviceDepthBiasControlFeaturesEXT {
35950    #[inline]
35951    fn default() -> Self {
35952        Self {
35953            s_type: StructureType::from_raw(1000283000i32),
35954            p_next: core::ptr::null_mut(),
35955            depth_bias_control: Default::default(),
35956            least_representable_value_force_unorm_representation: Default::default(),
35957            float_representation: Default::default(),
35958            depth_bias_exact: Default::default(),
35959        }
35960    }
35961}
35962///[`VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT.html)
35963/**
35964Provided by **VK_EXT_ray_tracing_invocation_reorder**.*/
35965///
35966///# Extends
35967///- [`PhysicalDeviceFeatures2`]
35968///- [`DeviceCreateInfo`]
35969#[repr(C)]
35970#[derive(Copy, Clone, Debug)]
35971#[doc(alias = "VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT")]
35972pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
35973    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT`.
35974    pub s_type: StructureType,
35975    ///Optional, may be null.
35976    pub p_next: *mut core::ffi::c_void,
35977    pub ray_tracing_invocation_reorder: u32,
35978}
35979impl Default for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
35980    #[inline]
35981    fn default() -> Self {
35982        Self {
35983            s_type: StructureType::from_raw(1000581000i32),
35984            p_next: core::ptr::null_mut(),
35985            ray_tracing_invocation_reorder: Default::default(),
35986        }
35987    }
35988}
35989///[`VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV.html)
35990/**
35991Provided by **VK_NV_ray_tracing_invocation_reorder**.*/
35992///
35993///# Extends
35994///- [`PhysicalDeviceFeatures2`]
35995///- [`DeviceCreateInfo`]
35996#[repr(C)]
35997#[derive(Copy, Clone, Debug)]
35998#[doc(alias = "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV")]
35999pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
36000    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV`.
36001    pub s_type: StructureType,
36002    ///Optional, may be null.
36003    pub p_next: *mut core::ffi::c_void,
36004    pub ray_tracing_invocation_reorder: u32,
36005}
36006impl Default for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
36007    #[inline]
36008    fn default() -> Self {
36009        Self {
36010            s_type: StructureType::from_raw(1000490000i32),
36011            p_next: core::ptr::null_mut(),
36012            ray_tracing_invocation_reorder: Default::default(),
36013        }
36014    }
36015}
36016///[`VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT.html)
36017/**
36018Provided by **VK_EXT_ray_tracing_invocation_reorder**.*/
36019/**
36020**Returned only**, filled by Vulkan, not constructed by the application.*/
36021///
36022///# Extends
36023///- [`PhysicalDeviceProperties2`]
36024#[repr(C)]
36025#[derive(Copy, Clone, Debug)]
36026#[doc(alias = "VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT")]
36027pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
36028    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT`.
36029    pub s_type: StructureType,
36030    ///Optional, may be null.
36031    pub p_next: *mut core::ffi::c_void,
36032    pub ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeEXT,
36033    pub max_shader_binding_table_record_index: u32,
36034}
36035impl Default for PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
36036    #[inline]
36037    fn default() -> Self {
36038        Self {
36039            s_type: StructureType::from_raw(1000581001i32),
36040            p_next: core::ptr::null_mut(),
36041            ray_tracing_invocation_reorder_reordering_hint: Default::default(),
36042            max_shader_binding_table_record_index: Default::default(),
36043        }
36044    }
36045}
36046///[`VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV.html)
36047/**
36048Provided by **VK_NV_ray_tracing_invocation_reorder**.*/
36049/**
36050**Returned only**, filled by Vulkan, not constructed by the application.*/
36051///
36052///# Extends
36053///- [`PhysicalDeviceProperties2`]
36054#[repr(C)]
36055#[derive(Copy, Clone, Debug)]
36056#[doc(alias = "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV")]
36057pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
36058    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_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_reordering_hint: RayTracingInvocationReorderModeEXT,
36063}
36064impl Default for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
36065    #[inline]
36066    fn default() -> Self {
36067        Self {
36068            s_type: StructureType::from_raw(1000490001i32),
36069            p_next: core::ptr::null_mut(),
36070            ray_tracing_invocation_reorder_reordering_hint: Default::default(),
36071        }
36072    }
36073}
36074///[`VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV.html)
36075/**
36076Provided by **VK_NV_extended_sparse_address_space**.*/
36077///
36078///# Extends
36079///- [`PhysicalDeviceFeatures2`]
36080///- [`DeviceCreateInfo`]
36081#[repr(C)]
36082#[derive(Copy, Clone, Debug)]
36083#[doc(alias = "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV")]
36084pub struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
36085    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV`.
36086    pub s_type: StructureType,
36087    ///Optional, may be null.
36088    pub p_next: *mut core::ffi::c_void,
36089    pub extended_sparse_address_space: u32,
36090}
36091impl Default for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
36092    #[inline]
36093    fn default() -> Self {
36094        Self {
36095            s_type: StructureType::from_raw(1000492000i32),
36096            p_next: core::ptr::null_mut(),
36097            extended_sparse_address_space: Default::default(),
36098        }
36099    }
36100}
36101///[`VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV.html)
36102/**
36103Provided by **VK_NV_extended_sparse_address_space**.*/
36104/**
36105**Returned only**, filled by Vulkan, not constructed by the application.*/
36106///
36107///# Extends
36108///- [`PhysicalDeviceProperties2`]
36109#[repr(C)]
36110#[derive(Copy, Clone, Debug)]
36111#[doc(alias = "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV")]
36112pub struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
36113    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV`.
36114    pub s_type: StructureType,
36115    ///Optional, may be null.
36116    pub p_next: *mut core::ffi::c_void,
36117    pub extended_sparse_address_space_size: u64,
36118    pub extended_sparse_image_usage_flags: ImageUsageFlags,
36119    pub extended_sparse_buffer_usage_flags: BufferUsageFlags,
36120}
36121impl Default for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
36122    #[inline]
36123    fn default() -> Self {
36124        Self {
36125            s_type: StructureType::from_raw(1000492001i32),
36126            p_next: core::ptr::null_mut(),
36127            extended_sparse_address_space_size: Default::default(),
36128            extended_sparse_image_usage_flags: Default::default(),
36129            extended_sparse_buffer_usage_flags: Default::default(),
36130        }
36131    }
36132}
36133///[`VkDirectDriverLoadingInfoLUNARG`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDirectDriverLoadingInfoLUNARG.html)
36134/**
36135Provided by **VK_LUNARG_direct_driver_loading**.*/
36136#[repr(C)]
36137#[derive(Copy, Clone, Debug)]
36138#[doc(alias = "VkDirectDriverLoadingInfoLUNARG")]
36139pub struct DirectDriverLoadingInfoLUNARG {
36140    ///Must be `VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG`.
36141    pub s_type: StructureType,
36142    ///Optional, may be null.
36143    pub p_next: *mut core::ffi::c_void,
36144    pub flags: DirectDriverLoadingFlagsLUNARG,
36145    pub pfn_get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG,
36146}
36147impl Default for DirectDriverLoadingInfoLUNARG {
36148    #[inline]
36149    fn default() -> Self {
36150        Self {
36151            s_type: StructureType::from_raw(1000459000i32),
36152            p_next: core::ptr::null_mut(),
36153            flags: Default::default(),
36154            pfn_get_instance_proc_addr: Default::default(),
36155        }
36156    }
36157}
36158///[`VkDirectDriverLoadingListLUNARG`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDirectDriverLoadingListLUNARG.html)
36159/**
36160Provided by **VK_LUNARG_direct_driver_loading**.*/
36161///
36162///# Extends
36163///- [`InstanceCreateInfo`]
36164#[repr(C)]
36165#[derive(Copy, Clone, Debug)]
36166#[doc(alias = "VkDirectDriverLoadingListLUNARG")]
36167pub struct DirectDriverLoadingListLUNARG {
36168    ///Must be `VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG`.
36169    pub s_type: StructureType,
36170    ///Optional, may be null.
36171    pub p_next: *const core::ffi::c_void,
36172    pub mode: DirectDriverLoadingModeLUNARG,
36173    ///Length of `p_drivers`.
36174    pub driver_count: u32,
36175    pub p_drivers: *const DirectDriverLoadingInfoLUNARG,
36176}
36177impl Default for DirectDriverLoadingListLUNARG {
36178    #[inline]
36179    fn default() -> Self {
36180        Self {
36181            s_type: StructureType::from_raw(1000459001i32),
36182            p_next: core::ptr::null(),
36183            mode: Default::default(),
36184            driver_count: Default::default(),
36185            p_drivers: core::ptr::null(),
36186        }
36187    }
36188}
36189///[`VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.html)
36190/**
36191Provided by **VK_QCOM_multiview_per_view_viewports**.*/
36192///
36193///# Extends
36194///- [`PhysicalDeviceFeatures2`]
36195///- [`DeviceCreateInfo`]
36196#[repr(C)]
36197#[derive(Copy, Clone, Debug)]
36198#[doc(alias = "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM")]
36199pub struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
36200    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM`.
36201    pub s_type: StructureType,
36202    ///Optional, may be null.
36203    pub p_next: *mut core::ffi::c_void,
36204    pub multiview_per_view_viewports: u32,
36205}
36206impl Default for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
36207    #[inline]
36208    fn default() -> Self {
36209        Self {
36210            s_type: StructureType::from_raw(1000488000i32),
36211            p_next: core::ptr::null_mut(),
36212            multiview_per_view_viewports: Default::default(),
36213        }
36214    }
36215}
36216///[`VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR.html)
36217/**
36218Provided by **VK_KHR_ray_tracing_position_fetch**.*/
36219///
36220///# Extends
36221///- [`PhysicalDeviceFeatures2`]
36222///- [`DeviceCreateInfo`]
36223#[repr(C)]
36224#[derive(Copy, Clone, Debug)]
36225#[doc(alias = "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR")]
36226pub struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
36227    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR`.
36228    pub s_type: StructureType,
36229    ///Optional, may be null.
36230    pub p_next: *mut core::ffi::c_void,
36231    pub ray_tracing_position_fetch: u32,
36232}
36233impl Default for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
36234    #[inline]
36235    fn default() -> Self {
36236        Self {
36237            s_type: StructureType::from_raw(1000481000i32),
36238            p_next: core::ptr::null_mut(),
36239            ray_tracing_position_fetch: Default::default(),
36240        }
36241    }
36242}
36243///[`VkDeviceImageSubresourceInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceImageSubresourceInfo.html)
36244/**
36245Provided by **VK_BASE_VERSION_1_4**.*/
36246#[repr(C)]
36247#[derive(Copy, Clone, Debug)]
36248#[doc(alias = "VkDeviceImageSubresourceInfo")]
36249pub struct DeviceImageSubresourceInfo {
36250    ///Must be `VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO`.
36251    pub s_type: StructureType,
36252    ///Optional, may be null.
36253    pub p_next: *const core::ffi::c_void,
36254    pub p_create_info: *const ImageCreateInfo,
36255    pub p_subresource: *const ImageSubresource2,
36256}
36257impl Default for DeviceImageSubresourceInfo {
36258    #[inline]
36259    fn default() -> Self {
36260        Self {
36261            s_type: StructureType::from_raw(1000470004i32),
36262            p_next: core::ptr::null(),
36263            p_create_info: core::ptr::null(),
36264            p_subresource: core::ptr::null(),
36265        }
36266    }
36267}
36268///[`VkPhysicalDeviceShaderCorePropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderCorePropertiesARM.html)
36269/**
36270Provided by **VK_ARM_shader_core_properties**.*/
36271/**
36272**Returned only**, filled by Vulkan, not constructed by the application.*/
36273///
36274///# Extends
36275///- [`PhysicalDeviceProperties2`]
36276#[repr(C)]
36277#[derive(Copy, Clone, Debug)]
36278#[doc(alias = "VkPhysicalDeviceShaderCorePropertiesARM")]
36279pub struct PhysicalDeviceShaderCorePropertiesARM {
36280    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM`.
36281    pub s_type: StructureType,
36282    ///Optional, may be null.
36283    pub p_next: *mut core::ffi::c_void,
36284    pub pixel_rate: u32,
36285    pub texel_rate: u32,
36286    pub fma_rate: u32,
36287}
36288impl Default for PhysicalDeviceShaderCorePropertiesARM {
36289    #[inline]
36290    fn default() -> Self {
36291        Self {
36292            s_type: StructureType::from_raw(1000415000i32),
36293            p_next: core::ptr::null_mut(),
36294            pixel_rate: Default::default(),
36295            texel_rate: Default::default(),
36296            fma_rate: Default::default(),
36297        }
36298    }
36299}
36300///[`VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.html)
36301/**
36302Provided by **VK_QCOM_multiview_per_view_render_areas**.*/
36303///
36304///# Extends
36305///- [`PhysicalDeviceFeatures2`]
36306///- [`DeviceCreateInfo`]
36307#[repr(C)]
36308#[derive(Copy, Clone, Debug)]
36309#[doc(alias = "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM")]
36310pub struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
36311    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM`.
36312    pub s_type: StructureType,
36313    ///Optional, may be null.
36314    pub p_next: *mut core::ffi::c_void,
36315    pub multiview_per_view_render_areas: u32,
36316}
36317impl Default for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
36318    #[inline]
36319    fn default() -> Self {
36320        Self {
36321            s_type: StructureType::from_raw(1000510000i32),
36322            p_next: core::ptr::null_mut(),
36323            multiview_per_view_render_areas: Default::default(),
36324        }
36325    }
36326}
36327///[`VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM.html)
36328/**
36329Provided by **VK_QCOM_multiview_per_view_render_areas**.*/
36330///
36331///# Extends
36332///- [`RenderPassBeginInfo`]
36333///- [`RenderingInfo`]
36334#[repr(C)]
36335#[derive(Copy, Clone, Debug)]
36336#[doc(alias = "VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM")]
36337pub struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
36338    ///Must be `VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM`.
36339    pub s_type: StructureType,
36340    ///Optional, may be null.
36341    pub p_next: *const core::ffi::c_void,
36342    ///Length of `p_per_view_render_areas`.
36343    pub per_view_render_area_count: u32,
36344    pub p_per_view_render_areas: *const Rect2D,
36345}
36346impl Default for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
36347    #[inline]
36348    fn default() -> Self {
36349        Self {
36350            s_type: StructureType::from_raw(1000510001i32),
36351            p_next: core::ptr::null(),
36352            per_view_render_area_count: Default::default(),
36353            p_per_view_render_areas: core::ptr::null(),
36354        }
36355    }
36356}
36357///[`VkQueryLowLatencySupportNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryLowLatencySupportNV.html)
36358/**
36359Provided by **VK_NV_low_latency**.*/
36360///
36361///# Extends
36362///- [`SemaphoreCreateInfo`]
36363#[repr(C)]
36364#[derive(Copy, Clone, Debug)]
36365#[doc(alias = "VkQueryLowLatencySupportNV")]
36366pub struct QueryLowLatencySupportNV {
36367    ///Must be `VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV`.
36368    pub s_type: StructureType,
36369    ///Optional, may be null.
36370    pub p_next: *const core::ffi::c_void,
36371    pub p_queried_low_latency_data: *mut core::ffi::c_void,
36372}
36373impl Default for QueryLowLatencySupportNV {
36374    #[inline]
36375    fn default() -> Self {
36376        Self {
36377            s_type: StructureType::from_raw(1000310000i32),
36378            p_next: core::ptr::null(),
36379            p_queried_low_latency_data: core::ptr::null_mut(),
36380        }
36381    }
36382}
36383///[`VkMemoryMapInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryMapInfo.html)
36384/**
36385Provided by **VK_BASE_VERSION_1_4**.*/
36386///
36387///# Extended By
36388///- [`MemoryMapPlacedInfoEXT`]
36389#[repr(C)]
36390#[derive(Copy, Clone, Debug)]
36391#[doc(alias = "VkMemoryMapInfo")]
36392pub struct MemoryMapInfo {
36393    ///Must be `VK_STRUCTURE_TYPE_MEMORY_MAP_INFO`.
36394    pub s_type: StructureType,
36395    ///Optional, may be null.
36396    pub p_next: *const core::ffi::c_void,
36397    pub flags: MemoryMapFlags,
36398    ///**Thread safety:** must be externally synchronized.
36399    pub memory: DeviceMemory,
36400    pub offset: u64,
36401    pub size: u64,
36402}
36403impl Default for MemoryMapInfo {
36404    #[inline]
36405    fn default() -> Self {
36406        Self {
36407            s_type: StructureType::from_raw(1000271000i32),
36408            p_next: core::ptr::null(),
36409            flags: Default::default(),
36410            memory: Default::default(),
36411            offset: Default::default(),
36412            size: Default::default(),
36413        }
36414    }
36415}
36416///[`VkMemoryUnmapInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryUnmapInfo.html)
36417/**
36418Provided by **VK_BASE_VERSION_1_4**.*/
36419#[repr(C)]
36420#[derive(Copy, Clone, Debug)]
36421#[doc(alias = "VkMemoryUnmapInfo")]
36422pub struct MemoryUnmapInfo {
36423    ///Must be `VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO`.
36424    pub s_type: StructureType,
36425    ///Optional, may be null.
36426    pub p_next: *const core::ffi::c_void,
36427    pub flags: MemoryUnmapFlags,
36428    ///**Thread safety:** must be externally synchronized.
36429    pub memory: DeviceMemory,
36430}
36431impl Default for MemoryUnmapInfo {
36432    #[inline]
36433    fn default() -> Self {
36434        Self {
36435            s_type: StructureType::from_raw(1000271001i32),
36436            p_next: core::ptr::null(),
36437            flags: Default::default(),
36438            memory: Default::default(),
36439        }
36440    }
36441}
36442///[`VkPhysicalDeviceShaderObjectFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderObjectFeaturesEXT.html)
36443/**
36444Provided by **VK_EXT_shader_object**.*/
36445///
36446///# Extends
36447///- [`PhysicalDeviceFeatures2`]
36448///- [`DeviceCreateInfo`]
36449#[repr(C)]
36450#[derive(Copy, Clone, Debug)]
36451#[doc(alias = "VkPhysicalDeviceShaderObjectFeaturesEXT")]
36452pub struct PhysicalDeviceShaderObjectFeaturesEXT {
36453    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT`.
36454    pub s_type: StructureType,
36455    ///Optional, may be null.
36456    pub p_next: *mut core::ffi::c_void,
36457    pub shader_object: u32,
36458}
36459impl Default for PhysicalDeviceShaderObjectFeaturesEXT {
36460    #[inline]
36461    fn default() -> Self {
36462        Self {
36463            s_type: StructureType::from_raw(1000482000i32),
36464            p_next: core::ptr::null_mut(),
36465            shader_object: Default::default(),
36466        }
36467    }
36468}
36469///[`VkPhysicalDeviceShaderObjectPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderObjectPropertiesEXT.html)
36470/**
36471Provided by **VK_EXT_shader_object**.*/
36472/**
36473**Returned only**, filled by Vulkan, not constructed by the application.*/
36474///
36475///# Extends
36476///- [`PhysicalDeviceProperties2`]
36477#[repr(C)]
36478#[derive(Copy, Clone, Debug)]
36479#[doc(alias = "VkPhysicalDeviceShaderObjectPropertiesEXT")]
36480pub struct PhysicalDeviceShaderObjectPropertiesEXT {
36481    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT`.
36482    pub s_type: StructureType,
36483    ///Optional, may be null.
36484    pub p_next: *mut core::ffi::c_void,
36485    pub shader_binary_uuid: [u8; UUID_SIZE as usize],
36486    pub shader_binary_version: u32,
36487}
36488impl Default for PhysicalDeviceShaderObjectPropertiesEXT {
36489    #[inline]
36490    fn default() -> Self {
36491        Self {
36492            s_type: StructureType::from_raw(1000482001i32),
36493            p_next: core::ptr::null_mut(),
36494            shader_binary_uuid: unsafe { core::mem::zeroed() },
36495            shader_binary_version: Default::default(),
36496        }
36497    }
36498}
36499///[`VkShaderCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderCreateInfoEXT.html)
36500/**
36501Provided by **VK_EXT_shader_object**.*/
36502///
36503///# Extended By
36504///- [`CustomResolveCreateInfoEXT`]
36505///- [`PipelineShaderStageRequiredSubgroupSizeCreateInfo`]
36506///- [`ShaderDescriptorSetAndBindingMappingInfoEXT`]
36507///- [`ValidationFeaturesEXT`]
36508#[repr(C)]
36509#[derive(Copy, Clone, Debug)]
36510#[doc(alias = "VkShaderCreateInfoEXT")]
36511pub struct ShaderCreateInfoEXT {
36512    ///Must be `VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT`.
36513    pub s_type: StructureType,
36514    ///Optional, may be null.
36515    pub p_next: *const core::ffi::c_void,
36516    pub flags: ShaderCreateFlagsEXT,
36517    pub stage: ShaderStageFlagBits,
36518    pub next_stage: ShaderStageFlags,
36519    pub code_type: ShaderCodeTypeEXT,
36520    ///Length of `p_code`.
36521    pub code_size: usize,
36522    pub p_code: *const core::ffi::c_void,
36523    ///Optional, may be null.
36524    pub p_name: *const core::ffi::c_char,
36525    ///Length of `p_set_layouts`.
36526    pub set_layout_count: u32,
36527    ///Optional, may be null.
36528    pub p_set_layouts: *const DescriptorSetLayout,
36529    ///Length of `p_push_constant_ranges`.
36530    pub push_constant_range_count: u32,
36531    ///Optional, may be null.
36532    pub p_push_constant_ranges: *const PushConstantRange,
36533    ///Optional, may be null.
36534    pub p_specialization_info: *const SpecializationInfo,
36535}
36536impl Default for ShaderCreateInfoEXT {
36537    #[inline]
36538    fn default() -> Self {
36539        Self {
36540            s_type: StructureType::from_raw(1000482002i32),
36541            p_next: core::ptr::null(),
36542            flags: Default::default(),
36543            stage: Default::default(),
36544            next_stage: Default::default(),
36545            code_type: Default::default(),
36546            code_size: Default::default(),
36547            p_code: core::ptr::null(),
36548            p_name: core::ptr::null(),
36549            set_layout_count: Default::default(),
36550            p_set_layouts: core::ptr::null(),
36551            push_constant_range_count: Default::default(),
36552            p_push_constant_ranges: core::ptr::null(),
36553            p_specialization_info: core::ptr::null(),
36554        }
36555    }
36556}
36557///[`VkPhysicalDeviceShaderTileImageFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderTileImageFeaturesEXT.html)
36558/**
36559Provided by **VK_EXT_shader_tile_image**.*/
36560///
36561///# Extends
36562///- [`PhysicalDeviceFeatures2`]
36563///- [`DeviceCreateInfo`]
36564#[repr(C)]
36565#[derive(Copy, Clone, Debug)]
36566#[doc(alias = "VkPhysicalDeviceShaderTileImageFeaturesEXT")]
36567pub struct PhysicalDeviceShaderTileImageFeaturesEXT {
36568    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT`.
36569    pub s_type: StructureType,
36570    ///Optional, may be null.
36571    pub p_next: *mut core::ffi::c_void,
36572    pub shader_tile_image_color_read_access: u32,
36573    pub shader_tile_image_depth_read_access: u32,
36574    pub shader_tile_image_stencil_read_access: u32,
36575}
36576impl Default for PhysicalDeviceShaderTileImageFeaturesEXT {
36577    #[inline]
36578    fn default() -> Self {
36579        Self {
36580            s_type: StructureType::from_raw(1000395000i32),
36581            p_next: core::ptr::null_mut(),
36582            shader_tile_image_color_read_access: Default::default(),
36583            shader_tile_image_depth_read_access: Default::default(),
36584            shader_tile_image_stencil_read_access: Default::default(),
36585        }
36586    }
36587}
36588///[`VkPhysicalDeviceShaderTileImagePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderTileImagePropertiesEXT.html)
36589/**
36590Provided by **VK_EXT_shader_tile_image**.*/
36591/**
36592**Returned only**, filled by Vulkan, not constructed by the application.*/
36593///
36594///# Extends
36595///- [`PhysicalDeviceProperties2`]
36596#[repr(C)]
36597#[derive(Copy, Clone, Debug)]
36598#[doc(alias = "VkPhysicalDeviceShaderTileImagePropertiesEXT")]
36599pub struct PhysicalDeviceShaderTileImagePropertiesEXT {
36600    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT`.
36601    pub s_type: StructureType,
36602    ///Optional, may be null.
36603    pub p_next: *mut core::ffi::c_void,
36604    pub shader_tile_image_coherent_read_accelerated: u32,
36605    pub shader_tile_image_read_sample_from_pixel_rate_invocation: u32,
36606    pub shader_tile_image_read_from_helper_invocation: u32,
36607}
36608impl Default for PhysicalDeviceShaderTileImagePropertiesEXT {
36609    #[inline]
36610    fn default() -> Self {
36611        Self {
36612            s_type: StructureType::from_raw(1000395001i32),
36613            p_next: core::ptr::null_mut(),
36614            shader_tile_image_coherent_read_accelerated: Default::default(),
36615            shader_tile_image_read_sample_from_pixel_rate_invocation: Default::default(),
36616            shader_tile_image_read_from_helper_invocation: Default::default(),
36617        }
36618    }
36619}
36620///[`VkImportScreenBufferInfoQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportScreenBufferInfoQNX.html)
36621/**
36622Provided by **VK_QNX_external_memory_screen_buffer**.*/
36623///
36624///# Extends
36625///- [`MemoryAllocateInfo`]
36626#[repr(C)]
36627#[derive(Copy, Clone, Debug)]
36628#[doc(alias = "VkImportScreenBufferInfoQNX")]
36629pub struct ImportScreenBufferInfoQNX {
36630    ///Must be `VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX`.
36631    pub s_type: StructureType,
36632    ///Optional, may be null.
36633    pub p_next: *const core::ffi::c_void,
36634    pub buffer: *mut core::ffi::c_void,
36635}
36636impl Default for ImportScreenBufferInfoQNX {
36637    #[inline]
36638    fn default() -> Self {
36639        Self {
36640            s_type: StructureType::from_raw(1000529002i32),
36641            p_next: core::ptr::null(),
36642            buffer: core::ptr::null_mut(),
36643        }
36644    }
36645}
36646///[`VkScreenBufferPropertiesQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkScreenBufferPropertiesQNX.html)
36647/**
36648Provided by **VK_QNX_external_memory_screen_buffer**.*/
36649/**
36650**Returned only**, filled by Vulkan, not constructed by the application.*/
36651///
36652///# Extended By
36653///- [`ScreenBufferFormatPropertiesQNX`]
36654#[repr(C)]
36655#[derive(Copy, Clone, Debug)]
36656#[doc(alias = "VkScreenBufferPropertiesQNX")]
36657pub struct ScreenBufferPropertiesQNX {
36658    ///Must be `VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX`.
36659    pub s_type: StructureType,
36660    ///Optional, may be null.
36661    pub p_next: *mut core::ffi::c_void,
36662    pub allocation_size: u64,
36663    pub memory_type_bits: u32,
36664}
36665impl Default for ScreenBufferPropertiesQNX {
36666    #[inline]
36667    fn default() -> Self {
36668        Self {
36669            s_type: StructureType::from_raw(1000529000i32),
36670            p_next: core::ptr::null_mut(),
36671            allocation_size: Default::default(),
36672            memory_type_bits: Default::default(),
36673        }
36674    }
36675}
36676///[`VkScreenBufferFormatPropertiesQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkScreenBufferFormatPropertiesQNX.html)
36677/**
36678Provided by **VK_QNX_external_memory_screen_buffer**.*/
36679/**
36680**Returned only**, filled by Vulkan, not constructed by the application.*/
36681///
36682///# Extends
36683///- [`ScreenBufferPropertiesQNX`]
36684#[repr(C)]
36685#[derive(Copy, Clone, Debug)]
36686#[doc(alias = "VkScreenBufferFormatPropertiesQNX")]
36687pub struct ScreenBufferFormatPropertiesQNX {
36688    ///Must be `VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX`.
36689    pub s_type: StructureType,
36690    ///Optional, may be null.
36691    pub p_next: *mut core::ffi::c_void,
36692    pub format: Format,
36693    pub external_format: u64,
36694    pub screen_usage: u64,
36695    pub format_features: FormatFeatureFlags,
36696    pub sampler_ycbcr_conversion_components: ComponentMapping,
36697    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
36698    pub suggested_ycbcr_range: SamplerYcbcrRange,
36699    pub suggested_x_chroma_offset: ChromaLocation,
36700    pub suggested_y_chroma_offset: ChromaLocation,
36701}
36702impl Default for ScreenBufferFormatPropertiesQNX {
36703    #[inline]
36704    fn default() -> Self {
36705        Self {
36706            s_type: StructureType::from_raw(1000529001i32),
36707            p_next: core::ptr::null_mut(),
36708            format: Default::default(),
36709            external_format: Default::default(),
36710            screen_usage: Default::default(),
36711            format_features: Default::default(),
36712            sampler_ycbcr_conversion_components: Default::default(),
36713            suggested_ycbcr_model: Default::default(),
36714            suggested_ycbcr_range: Default::default(),
36715            suggested_x_chroma_offset: Default::default(),
36716            suggested_y_chroma_offset: Default::default(),
36717        }
36718    }
36719}
36720///[`VkExternalFormatQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalFormatQNX.html)
36721/**
36722Provided by **VK_QNX_external_memory_screen_buffer**.*/
36723///
36724///# Extends
36725///- [`ImageCreateInfo`]
36726///- [`SamplerYcbcrConversionCreateInfo`]
36727#[repr(C)]
36728#[derive(Copy, Clone, Debug)]
36729#[doc(alias = "VkExternalFormatQNX")]
36730pub struct ExternalFormatQNX {
36731    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX`.
36732    pub s_type: StructureType,
36733    ///Optional, may be null.
36734    pub p_next: *mut core::ffi::c_void,
36735    pub external_format: u64,
36736}
36737impl Default for ExternalFormatQNX {
36738    #[inline]
36739    fn default() -> Self {
36740        Self {
36741            s_type: StructureType::from_raw(1000529003i32),
36742            p_next: core::ptr::null_mut(),
36743            external_format: Default::default(),
36744        }
36745    }
36746}
36747///[`VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX.html)
36748/**
36749Provided by **VK_QNX_external_memory_screen_buffer**.*/
36750///
36751///# Extends
36752///- [`PhysicalDeviceFeatures2`]
36753///- [`DeviceCreateInfo`]
36754#[repr(C)]
36755#[derive(Copy, Clone, Debug)]
36756#[doc(alias = "VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX")]
36757pub struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
36758    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX`.
36759    pub s_type: StructureType,
36760    ///Optional, may be null.
36761    pub p_next: *mut core::ffi::c_void,
36762    pub screen_buffer_import: u32,
36763}
36764impl Default for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
36765    #[inline]
36766    fn default() -> Self {
36767        Self {
36768            s_type: StructureType::from_raw(1000529004i32),
36769            p_next: core::ptr::null_mut(),
36770            screen_buffer_import: Default::default(),
36771        }
36772    }
36773}
36774///[`VkPhysicalDeviceCooperativeMatrixFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.html)
36775/**
36776Provided by **VK_KHR_cooperative_matrix**.*/
36777///
36778///# Extends
36779///- [`PhysicalDeviceFeatures2`]
36780///- [`DeviceCreateInfo`]
36781#[repr(C)]
36782#[derive(Copy, Clone, Debug)]
36783#[doc(alias = "VkPhysicalDeviceCooperativeMatrixFeaturesKHR")]
36784pub struct PhysicalDeviceCooperativeMatrixFeaturesKHR {
36785    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR`.
36786    pub s_type: StructureType,
36787    ///Optional, may be null.
36788    pub p_next: *mut core::ffi::c_void,
36789    pub cooperative_matrix: u32,
36790    pub cooperative_matrix_robust_buffer_access: u32,
36791}
36792impl Default for PhysicalDeviceCooperativeMatrixFeaturesKHR {
36793    #[inline]
36794    fn default() -> Self {
36795        Self {
36796            s_type: StructureType::from_raw(1000506000i32),
36797            p_next: core::ptr::null_mut(),
36798            cooperative_matrix: Default::default(),
36799            cooperative_matrix_robust_buffer_access: Default::default(),
36800        }
36801    }
36802}
36803///[`VkCooperativeMatrixPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeMatrixPropertiesKHR.html)
36804/**
36805Provided by **VK_KHR_cooperative_matrix**.*/
36806/**
36807**Returned only**, filled by Vulkan, not constructed by the application.*/
36808#[repr(C)]
36809#[derive(Copy, Clone, Debug)]
36810#[doc(alias = "VkCooperativeMatrixPropertiesKHR")]
36811pub struct CooperativeMatrixPropertiesKHR {
36812    ///Must be `VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR`.
36813    pub s_type: StructureType,
36814    ///Optional, may be null.
36815    pub p_next: *mut core::ffi::c_void,
36816    pub m_size: u32,
36817    pub n_size: u32,
36818    pub k_size: u32,
36819    pub a_type: ComponentTypeKHR,
36820    pub b_type: ComponentTypeKHR,
36821    pub c_type: ComponentTypeKHR,
36822    pub result_type: ComponentTypeKHR,
36823    pub saturating_accumulation: u32,
36824    pub scope: ScopeKHR,
36825}
36826impl Default for CooperativeMatrixPropertiesKHR {
36827    #[inline]
36828    fn default() -> Self {
36829        Self {
36830            s_type: StructureType::from_raw(1000506001i32),
36831            p_next: core::ptr::null_mut(),
36832            m_size: Default::default(),
36833            n_size: Default::default(),
36834            k_size: Default::default(),
36835            a_type: Default::default(),
36836            b_type: Default::default(),
36837            c_type: Default::default(),
36838            result_type: Default::default(),
36839            saturating_accumulation: Default::default(),
36840            scope: Default::default(),
36841        }
36842    }
36843}
36844///[`VkPhysicalDeviceCooperativeMatrixPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixPropertiesKHR.html)
36845/**
36846Provided by **VK_KHR_cooperative_matrix**.*/
36847/**
36848**Returned only**, filled by Vulkan, not constructed by the application.*/
36849///
36850///# Extends
36851///- [`PhysicalDeviceProperties2`]
36852#[repr(C)]
36853#[derive(Copy, Clone, Debug)]
36854#[doc(alias = "VkPhysicalDeviceCooperativeMatrixPropertiesKHR")]
36855pub struct PhysicalDeviceCooperativeMatrixPropertiesKHR {
36856    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR`.
36857    pub s_type: StructureType,
36858    ///Optional, may be null.
36859    pub p_next: *mut core::ffi::c_void,
36860    pub cooperative_matrix_supported_stages: ShaderStageFlags,
36861}
36862impl Default for PhysicalDeviceCooperativeMatrixPropertiesKHR {
36863    #[inline]
36864    fn default() -> Self {
36865        Self {
36866            s_type: StructureType::from_raw(1000506002i32),
36867            p_next: core::ptr::null_mut(),
36868            cooperative_matrix_supported_stages: Default::default(),
36869        }
36870    }
36871}
36872///[`VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM.html)
36873/**
36874Provided by **VK_QCOM_cooperative_matrix_conversion**.*/
36875///
36876///# Extends
36877///- [`PhysicalDeviceFeatures2`]
36878///- [`DeviceCreateInfo`]
36879#[repr(C)]
36880#[derive(Copy, Clone, Debug)]
36881#[doc(alias = "VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM")]
36882pub struct PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
36883    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_CONVERSION_FEATURES_QCOM`.
36884    pub s_type: StructureType,
36885    ///Optional, may be null.
36886    pub p_next: *mut core::ffi::c_void,
36887    pub cooperative_matrix_conversion: u32,
36888}
36889impl Default for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
36890    #[inline]
36891    fn default() -> Self {
36892        Self {
36893            s_type: StructureType::from_raw(1000172000i32),
36894            p_next: core::ptr::null_mut(),
36895            cooperative_matrix_conversion: Default::default(),
36896        }
36897    }
36898}
36899///[`VkPhysicalDeviceShaderEnqueuePropertiesAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderEnqueuePropertiesAMDX.html)
36900/**
36901Provided by **VK_AMDX_shader_enqueue**.*/
36902/**
36903**Returned only**, filled by Vulkan, not constructed by the application.*/
36904///
36905///# Extends
36906///- [`PhysicalDeviceProperties2`]
36907#[repr(C)]
36908#[derive(Copy, Clone, Debug)]
36909#[doc(alias = "VkPhysicalDeviceShaderEnqueuePropertiesAMDX")]
36910pub struct PhysicalDeviceShaderEnqueuePropertiesAMDX {
36911    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX`.
36912    pub s_type: StructureType,
36913    ///Optional, may be null.
36914    pub p_next: *mut core::ffi::c_void,
36915    pub max_execution_graph_depth: u32,
36916    pub max_execution_graph_shader_output_nodes: u32,
36917    pub max_execution_graph_shader_payload_size: u32,
36918    pub max_execution_graph_shader_payload_count: u32,
36919    pub execution_graph_dispatch_address_alignment: u32,
36920    pub max_execution_graph_workgroup_count: [u32; 3usize],
36921    pub max_execution_graph_workgroups: u32,
36922}
36923impl Default for PhysicalDeviceShaderEnqueuePropertiesAMDX {
36924    #[inline]
36925    fn default() -> Self {
36926        Self {
36927            s_type: StructureType::from_raw(1000134001i32),
36928            p_next: core::ptr::null_mut(),
36929            max_execution_graph_depth: Default::default(),
36930            max_execution_graph_shader_output_nodes: Default::default(),
36931            max_execution_graph_shader_payload_size: Default::default(),
36932            max_execution_graph_shader_payload_count: Default::default(),
36933            execution_graph_dispatch_address_alignment: Default::default(),
36934            max_execution_graph_workgroup_count: unsafe { core::mem::zeroed() },
36935            max_execution_graph_workgroups: Default::default(),
36936        }
36937    }
36938}
36939///[`VkPhysicalDeviceShaderEnqueueFeaturesAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.html)
36940/**
36941Provided by **VK_AMDX_shader_enqueue**.*/
36942///
36943///# Extends
36944///- [`PhysicalDeviceFeatures2`]
36945///- [`DeviceCreateInfo`]
36946#[repr(C)]
36947#[derive(Copy, Clone, Debug)]
36948#[doc(alias = "VkPhysicalDeviceShaderEnqueueFeaturesAMDX")]
36949pub struct PhysicalDeviceShaderEnqueueFeaturesAMDX {
36950    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX`.
36951    pub s_type: StructureType,
36952    ///Optional, may be null.
36953    pub p_next: *mut core::ffi::c_void,
36954    pub shader_enqueue: u32,
36955    pub shader_mesh_enqueue: u32,
36956}
36957impl Default for PhysicalDeviceShaderEnqueueFeaturesAMDX {
36958    #[inline]
36959    fn default() -> Self {
36960        Self {
36961            s_type: StructureType::from_raw(1000134000i32),
36962            p_next: core::ptr::null_mut(),
36963            shader_enqueue: Default::default(),
36964            shader_mesh_enqueue: Default::default(),
36965        }
36966    }
36967}
36968///[`VkExecutionGraphPipelineCreateInfoAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExecutionGraphPipelineCreateInfoAMDX.html)
36969/**
36970Provided by **VK_AMDX_shader_enqueue**.*/
36971///
36972///# Extended By
36973///- [`PipelineCompilerControlCreateInfoAMD`]
36974///- [`PipelineCreationFeedbackCreateInfo`]
36975#[repr(C)]
36976#[derive(Copy, Clone, Debug)]
36977#[doc(alias = "VkExecutionGraphPipelineCreateInfoAMDX")]
36978pub struct ExecutionGraphPipelineCreateInfoAMDX {
36979    ///Must be `VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX`.
36980    pub s_type: StructureType,
36981    ///Optional, may be null.
36982    pub p_next: *const core::ffi::c_void,
36983    pub flags: PipelineCreateFlags,
36984    ///Length of `p_stages`.
36985    pub stage_count: u32,
36986    ///Optional, may be null.
36987    pub p_stages: *const PipelineShaderStageCreateInfo,
36988    ///Optional, may be null.
36989    pub p_library_info: *const PipelineLibraryCreateInfoKHR,
36990    pub layout: PipelineLayout,
36991    pub base_pipeline_handle: Pipeline,
36992    pub base_pipeline_index: i32,
36993}
36994impl Default for ExecutionGraphPipelineCreateInfoAMDX {
36995    #[inline]
36996    fn default() -> Self {
36997        Self {
36998            s_type: StructureType::from_raw(1000134003i32),
36999            p_next: core::ptr::null(),
37000            flags: Default::default(),
37001            stage_count: Default::default(),
37002            p_stages: core::ptr::null(),
37003            p_library_info: core::ptr::null(),
37004            layout: Default::default(),
37005            base_pipeline_handle: Default::default(),
37006            base_pipeline_index: Default::default(),
37007        }
37008    }
37009}
37010///[`VkPipelineShaderStageNodeCreateInfoAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineShaderStageNodeCreateInfoAMDX.html)
37011/**
37012Provided by **VK_AMDX_shader_enqueue**.*/
37013///
37014///# Extends
37015///- [`PipelineShaderStageCreateInfo`]
37016#[repr(C)]
37017#[derive(Copy, Clone, Debug)]
37018#[doc(alias = "VkPipelineShaderStageNodeCreateInfoAMDX")]
37019pub struct PipelineShaderStageNodeCreateInfoAMDX {
37020    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX`.
37021    pub s_type: StructureType,
37022    ///Optional, may be null.
37023    pub p_next: *const core::ffi::c_void,
37024    ///Optional, may be null.
37025    pub p_name: *const core::ffi::c_char,
37026    pub index: u32,
37027}
37028impl Default for PipelineShaderStageNodeCreateInfoAMDX {
37029    #[inline]
37030    fn default() -> Self {
37031        Self {
37032            s_type: StructureType::from_raw(1000134004i32),
37033            p_next: core::ptr::null(),
37034            p_name: core::ptr::null(),
37035            index: Default::default(),
37036        }
37037    }
37038}
37039///[`VkExecutionGraphPipelineScratchSizeAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExecutionGraphPipelineScratchSizeAMDX.html)
37040/**
37041Provided by **VK_AMDX_shader_enqueue**.*/
37042#[repr(C)]
37043#[derive(Copy, Clone, Debug)]
37044#[doc(alias = "VkExecutionGraphPipelineScratchSizeAMDX")]
37045pub struct ExecutionGraphPipelineScratchSizeAMDX {
37046    ///Must be `VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX`.
37047    pub s_type: StructureType,
37048    ///Optional, may be null.
37049    pub p_next: *mut core::ffi::c_void,
37050    pub min_size: u64,
37051    pub max_size: u64,
37052    pub size_granularity: u64,
37053}
37054impl Default for ExecutionGraphPipelineScratchSizeAMDX {
37055    #[inline]
37056    fn default() -> Self {
37057        Self {
37058            s_type: StructureType::from_raw(1000134002i32),
37059            p_next: core::ptr::null_mut(),
37060            min_size: Default::default(),
37061            max_size: Default::default(),
37062            size_granularity: Default::default(),
37063        }
37064    }
37065}
37066///[`VkDispatchGraphInfoAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchGraphInfoAMDX.html)
37067/**
37068Provided by **VK_AMDX_shader_enqueue**.*/
37069#[repr(C)]
37070#[derive(Copy, Clone, Debug)]
37071#[doc(alias = "VkDispatchGraphInfoAMDX")]
37072pub struct DispatchGraphInfoAMDX {
37073    pub node_index: u32,
37074    pub payload_count: u32,
37075    pub payloads: DeviceOrHostAddressConstAMDX,
37076    pub payload_stride: u64,
37077}
37078impl Default for DispatchGraphInfoAMDX {
37079    #[inline]
37080    fn default() -> Self {
37081        unsafe { core::mem::zeroed() }
37082    }
37083}
37084///[`VkDispatchGraphCountInfoAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchGraphCountInfoAMDX.html)
37085/**
37086Provided by **VK_AMDX_shader_enqueue**.*/
37087#[repr(C)]
37088#[derive(Copy, Clone, Debug)]
37089#[doc(alias = "VkDispatchGraphCountInfoAMDX")]
37090pub struct DispatchGraphCountInfoAMDX {
37091    pub count: u32,
37092    pub infos: DeviceOrHostAddressConstAMDX,
37093    pub stride: u64,
37094}
37095impl Default for DispatchGraphCountInfoAMDX {
37096    #[inline]
37097    fn default() -> Self {
37098        unsafe { core::mem::zeroed() }
37099    }
37100}
37101///[`VkPhysicalDeviceAntiLagFeaturesAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceAntiLagFeaturesAMD.html)
37102/**
37103Provided by **VK_AMD_anti_lag**.*/
37104///
37105///# Extends
37106///- [`PhysicalDeviceFeatures2`]
37107///- [`DeviceCreateInfo`]
37108#[repr(C)]
37109#[derive(Copy, Clone, Debug)]
37110#[doc(alias = "VkPhysicalDeviceAntiLagFeaturesAMD")]
37111pub struct PhysicalDeviceAntiLagFeaturesAMD {
37112    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD`.
37113    pub s_type: StructureType,
37114    ///Optional, may be null.
37115    pub p_next: *mut core::ffi::c_void,
37116    pub anti_lag: u32,
37117}
37118impl Default for PhysicalDeviceAntiLagFeaturesAMD {
37119    #[inline]
37120    fn default() -> Self {
37121        Self {
37122            s_type: StructureType::from_raw(1000476000i32),
37123            p_next: core::ptr::null_mut(),
37124            anti_lag: Default::default(),
37125        }
37126    }
37127}
37128///[`VkAntiLagDataAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAntiLagDataAMD.html)
37129/**
37130Provided by **VK_AMD_anti_lag**.*/
37131#[repr(C)]
37132#[derive(Copy, Clone, Debug)]
37133#[doc(alias = "VkAntiLagDataAMD")]
37134pub struct AntiLagDataAMD {
37135    ///Must be `VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD`.
37136    pub s_type: StructureType,
37137    ///Optional, may be null.
37138    pub p_next: *const core::ffi::c_void,
37139    pub mode: AntiLagModeAMD,
37140    pub max_fps: u32,
37141    ///Optional, may be null.
37142    pub p_presentation_info: *const AntiLagPresentationInfoAMD,
37143}
37144impl Default for AntiLagDataAMD {
37145    #[inline]
37146    fn default() -> Self {
37147        Self {
37148            s_type: StructureType::from_raw(1000476001i32),
37149            p_next: core::ptr::null(),
37150            mode: Default::default(),
37151            max_fps: Default::default(),
37152            p_presentation_info: core::ptr::null(),
37153        }
37154    }
37155}
37156///[`VkAntiLagPresentationInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAntiLagPresentationInfoAMD.html)
37157/**
37158Provided by **VK_AMD_anti_lag**.*/
37159#[repr(C)]
37160#[derive(Copy, Clone, Debug)]
37161#[doc(alias = "VkAntiLagPresentationInfoAMD")]
37162pub struct AntiLagPresentationInfoAMD {
37163    ///Must be `VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD`.
37164    pub s_type: StructureType,
37165    ///Optional, may be null.
37166    pub p_next: *mut core::ffi::c_void,
37167    pub stage: AntiLagStageAMD,
37168    pub frame_index: u64,
37169}
37170impl Default for AntiLagPresentationInfoAMD {
37171    #[inline]
37172    fn default() -> Self {
37173        Self {
37174            s_type: StructureType::from_raw(1000476002i32),
37175            p_next: core::ptr::null_mut(),
37176            stage: Default::default(),
37177            frame_index: Default::default(),
37178        }
37179    }
37180}
37181///[`VkBindMemoryStatus`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindMemoryStatus.html)
37182/**
37183Provided by **VK_BASE_VERSION_1_4**.*/
37184///
37185///# Extends
37186///- [`BindBufferMemoryInfo`]
37187///- [`BindImageMemoryInfo`]
37188#[repr(C)]
37189#[derive(Copy, Clone, Debug)]
37190#[doc(alias = "VkBindMemoryStatus")]
37191pub struct BindMemoryStatus {
37192    ///Must be `VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS`.
37193    pub s_type: StructureType,
37194    ///Optional, may be null.
37195    pub p_next: *const core::ffi::c_void,
37196    pub p_result: *mut Result,
37197}
37198impl Default for BindMemoryStatus {
37199    #[inline]
37200    fn default() -> Self {
37201        Self {
37202            s_type: StructureType::from_raw(1000545002i32),
37203            p_next: core::ptr::null(),
37204            p_result: core::ptr::null_mut(),
37205        }
37206    }
37207}
37208///[`VkPhysicalDeviceTileMemoryHeapFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTileMemoryHeapFeaturesQCOM.html)
37209/**
37210Provided by **VK_QCOM_tile_memory_heap**.*/
37211///
37212///# Extends
37213///- [`PhysicalDeviceFeatures2`]
37214///- [`DeviceCreateInfo`]
37215#[repr(C)]
37216#[derive(Copy, Clone, Debug)]
37217#[doc(alias = "VkPhysicalDeviceTileMemoryHeapFeaturesQCOM")]
37218pub struct PhysicalDeviceTileMemoryHeapFeaturesQCOM {
37219    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM`.
37220    pub s_type: StructureType,
37221    ///Optional, may be null.
37222    pub p_next: *mut core::ffi::c_void,
37223    pub tile_memory_heap: u32,
37224}
37225impl Default for PhysicalDeviceTileMemoryHeapFeaturesQCOM {
37226    #[inline]
37227    fn default() -> Self {
37228        Self {
37229            s_type: StructureType::from_raw(1000547000i32),
37230            p_next: core::ptr::null_mut(),
37231            tile_memory_heap: Default::default(),
37232        }
37233    }
37234}
37235///[`VkPhysicalDeviceTileMemoryHeapPropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTileMemoryHeapPropertiesQCOM.html)
37236/**
37237Provided by **VK_QCOM_tile_memory_heap**.*/
37238///
37239///# Extends
37240///- [`PhysicalDeviceProperties2`]
37241#[repr(C)]
37242#[derive(Copy, Clone, Debug)]
37243#[doc(alias = "VkPhysicalDeviceTileMemoryHeapPropertiesQCOM")]
37244pub struct PhysicalDeviceTileMemoryHeapPropertiesQCOM {
37245    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM`.
37246    pub s_type: StructureType,
37247    ///Optional, may be null.
37248    pub p_next: *mut core::ffi::c_void,
37249    pub queue_submit_boundary: u32,
37250    pub tile_buffer_transfers: u32,
37251}
37252impl Default for PhysicalDeviceTileMemoryHeapPropertiesQCOM {
37253    #[inline]
37254    fn default() -> Self {
37255        Self {
37256            s_type: StructureType::from_raw(1000547001i32),
37257            p_next: core::ptr::null_mut(),
37258            queue_submit_boundary: Default::default(),
37259            tile_buffer_transfers: Default::default(),
37260        }
37261    }
37262}
37263///[`VkTileMemorySizeInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTileMemorySizeInfoQCOM.html)
37264/**
37265Provided by **VK_QCOM_tile_memory_heap**.*/
37266///
37267///# Extends
37268///- [`RenderPassCreateInfo`]
37269///- [`RenderPassCreateInfo2`]
37270///- [`RenderingInfo`]
37271#[repr(C)]
37272#[derive(Copy, Clone, Debug)]
37273#[doc(alias = "VkTileMemorySizeInfoQCOM")]
37274pub struct TileMemorySizeInfoQCOM {
37275    ///Must be `VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM`.
37276    pub s_type: StructureType,
37277    ///Optional, may be null.
37278    pub p_next: *const core::ffi::c_void,
37279    pub size: u64,
37280}
37281impl Default for TileMemorySizeInfoQCOM {
37282    #[inline]
37283    fn default() -> Self {
37284        Self {
37285            s_type: StructureType::from_raw(1000547004i32),
37286            p_next: core::ptr::null(),
37287            size: Default::default(),
37288        }
37289    }
37290}
37291///[`VkTileMemoryRequirementsQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTileMemoryRequirementsQCOM.html)
37292/**
37293Provided by **VK_QCOM_tile_memory_heap**.*/
37294///
37295///# Extends
37296///- [`MemoryRequirements2`]
37297#[repr(C)]
37298#[derive(Copy, Clone, Debug)]
37299#[doc(alias = "VkTileMemoryRequirementsQCOM")]
37300pub struct TileMemoryRequirementsQCOM {
37301    ///Must be `VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM`.
37302    pub s_type: StructureType,
37303    ///Optional, may be null.
37304    pub p_next: *mut core::ffi::c_void,
37305    pub size: u64,
37306    pub alignment: u64,
37307}
37308impl Default for TileMemoryRequirementsQCOM {
37309    #[inline]
37310    fn default() -> Self {
37311        Self {
37312            s_type: StructureType::from_raw(1000547002i32),
37313            p_next: core::ptr::null_mut(),
37314            size: Default::default(),
37315            alignment: Default::default(),
37316        }
37317    }
37318}
37319///[`VkBindDescriptorSetsInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindDescriptorSetsInfo.html)
37320/**
37321Provided by **VK_COMPUTE_VERSION_1_4**.*/
37322///
37323///# Extended By
37324///- [`PipelineLayoutCreateInfo`]
37325#[repr(C)]
37326#[derive(Copy, Clone, Debug)]
37327#[doc(alias = "VkBindDescriptorSetsInfo")]
37328pub struct BindDescriptorSetsInfo {
37329    ///Must be `VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO`.
37330    pub s_type: StructureType,
37331    ///Optional, may be null.
37332    pub p_next: *const core::ffi::c_void,
37333    pub stage_flags: ShaderStageFlags,
37334    pub layout: PipelineLayout,
37335    pub first_set: u32,
37336    ///Length of `p_descriptor_sets`.
37337    pub descriptor_set_count: u32,
37338    pub p_descriptor_sets: *const DescriptorSet,
37339    ///Length of `p_dynamic_offsets`.
37340    pub dynamic_offset_count: u32,
37341    ///Optional, may be null.
37342    pub p_dynamic_offsets: *const u32,
37343}
37344impl Default for BindDescriptorSetsInfo {
37345    #[inline]
37346    fn default() -> Self {
37347        Self {
37348            s_type: StructureType::from_raw(1000545003i32),
37349            p_next: core::ptr::null(),
37350            stage_flags: Default::default(),
37351            layout: Default::default(),
37352            first_set: Default::default(),
37353            descriptor_set_count: Default::default(),
37354            p_descriptor_sets: core::ptr::null(),
37355            dynamic_offset_count: Default::default(),
37356            p_dynamic_offsets: core::ptr::null(),
37357        }
37358    }
37359}
37360///[`VkPushConstantsInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushConstantsInfo.html)
37361/**
37362Provided by **VK_COMPUTE_VERSION_1_4**.*/
37363///
37364///# Extended By
37365///- [`PipelineLayoutCreateInfo`]
37366///- [`PushConstantBankInfoNV`]
37367#[repr(C)]
37368#[derive(Copy, Clone, Debug)]
37369#[doc(alias = "VkPushConstantsInfo")]
37370pub struct PushConstantsInfo {
37371    ///Must be `VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO`.
37372    pub s_type: StructureType,
37373    ///Optional, may be null.
37374    pub p_next: *const core::ffi::c_void,
37375    pub layout: PipelineLayout,
37376    pub stage_flags: ShaderStageFlags,
37377    pub offset: u32,
37378    ///Length of `p_values`.
37379    pub size: u32,
37380    pub p_values: *const core::ffi::c_void,
37381}
37382impl Default for PushConstantsInfo {
37383    #[inline]
37384    fn default() -> Self {
37385        Self {
37386            s_type: StructureType::from_raw(1000545004i32),
37387            p_next: core::ptr::null(),
37388            layout: Default::default(),
37389            stage_flags: Default::default(),
37390            offset: Default::default(),
37391            size: Default::default(),
37392            p_values: core::ptr::null(),
37393        }
37394    }
37395}
37396///[`VkPushDescriptorSetInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushDescriptorSetInfo.html)
37397/**
37398Provided by **VK_COMPUTE_VERSION_1_4**.*/
37399///
37400///# Extended By
37401///- [`PipelineLayoutCreateInfo`]
37402#[repr(C)]
37403#[derive(Copy, Clone, Debug)]
37404#[doc(alias = "VkPushDescriptorSetInfo")]
37405pub struct PushDescriptorSetInfo {
37406    ///Must be `VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO`.
37407    pub s_type: StructureType,
37408    ///Optional, may be null.
37409    pub p_next: *const core::ffi::c_void,
37410    pub stage_flags: ShaderStageFlags,
37411    pub layout: PipelineLayout,
37412    pub set: u32,
37413    ///Length of `p_descriptor_writes`.
37414    pub descriptor_write_count: u32,
37415    pub p_descriptor_writes: *const WriteDescriptorSet,
37416}
37417impl Default for PushDescriptorSetInfo {
37418    #[inline]
37419    fn default() -> Self {
37420        Self {
37421            s_type: StructureType::from_raw(1000545005i32),
37422            p_next: core::ptr::null(),
37423            stage_flags: Default::default(),
37424            layout: Default::default(),
37425            set: Default::default(),
37426            descriptor_write_count: Default::default(),
37427            p_descriptor_writes: core::ptr::null(),
37428        }
37429    }
37430}
37431///[`VkPushDescriptorSetWithTemplateInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushDescriptorSetWithTemplateInfo.html)
37432/**
37433Provided by **VK_COMPUTE_VERSION_1_4**.*/
37434///
37435///# Extended By
37436///- [`PipelineLayoutCreateInfo`]
37437#[repr(C)]
37438#[derive(Copy, Clone, Debug)]
37439#[doc(alias = "VkPushDescriptorSetWithTemplateInfo")]
37440pub struct PushDescriptorSetWithTemplateInfo {
37441    ///Must be `VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO`.
37442    pub s_type: StructureType,
37443    ///Optional, may be null.
37444    pub p_next: *const core::ffi::c_void,
37445    pub descriptor_update_template: DescriptorUpdateTemplate,
37446    pub layout: PipelineLayout,
37447    pub set: u32,
37448    pub p_data: *const core::ffi::c_void,
37449}
37450impl Default for PushDescriptorSetWithTemplateInfo {
37451    #[inline]
37452    fn default() -> Self {
37453        Self {
37454            s_type: StructureType::from_raw(1000545006i32),
37455            p_next: core::ptr::null(),
37456            descriptor_update_template: Default::default(),
37457            layout: Default::default(),
37458            set: Default::default(),
37459            p_data: core::ptr::null(),
37460        }
37461    }
37462}
37463///[`VkSetDescriptorBufferOffsetsInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSetDescriptorBufferOffsetsInfoEXT.html)
37464/**
37465Provided by **VK_KHR_maintenance6**.*/
37466///
37467///# Extended By
37468///- [`PipelineLayoutCreateInfo`]
37469#[repr(C)]
37470#[derive(Copy, Clone, Debug)]
37471#[doc(alias = "VkSetDescriptorBufferOffsetsInfoEXT")]
37472pub struct SetDescriptorBufferOffsetsInfoEXT {
37473    ///Must be `VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT`.
37474    pub s_type: StructureType,
37475    ///Optional, may be null.
37476    pub p_next: *const core::ffi::c_void,
37477    pub stage_flags: ShaderStageFlags,
37478    pub layout: PipelineLayout,
37479    pub first_set: u32,
37480    ///Length of `p_offsets`.
37481    pub set_count: u32,
37482    pub p_buffer_indices: *const u32,
37483    pub p_offsets: *const u64,
37484}
37485impl Default for SetDescriptorBufferOffsetsInfoEXT {
37486    #[inline]
37487    fn default() -> Self {
37488        Self {
37489            s_type: StructureType::from_raw(1000545007i32),
37490            p_next: core::ptr::null(),
37491            stage_flags: Default::default(),
37492            layout: Default::default(),
37493            first_set: Default::default(),
37494            set_count: Default::default(),
37495            p_buffer_indices: core::ptr::null(),
37496            p_offsets: core::ptr::null(),
37497        }
37498    }
37499}
37500///[`VkBindDescriptorBufferEmbeddedSamplersInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindDescriptorBufferEmbeddedSamplersInfoEXT.html)
37501/**
37502Provided by **VK_KHR_maintenance6**.*/
37503///
37504///# Extended By
37505///- [`PipelineLayoutCreateInfo`]
37506#[repr(C)]
37507#[derive(Copy, Clone, Debug)]
37508#[doc(alias = "VkBindDescriptorBufferEmbeddedSamplersInfoEXT")]
37509pub struct BindDescriptorBufferEmbeddedSamplersInfoEXT {
37510    ///Must be `VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT`.
37511    pub s_type: StructureType,
37512    ///Optional, may be null.
37513    pub p_next: *const core::ffi::c_void,
37514    pub stage_flags: ShaderStageFlags,
37515    pub layout: PipelineLayout,
37516    pub set: u32,
37517}
37518impl Default for BindDescriptorBufferEmbeddedSamplersInfoEXT {
37519    #[inline]
37520    fn default() -> Self {
37521        Self {
37522            s_type: StructureType::from_raw(1000545008i32),
37523            p_next: core::ptr::null(),
37524            stage_flags: Default::default(),
37525            layout: Default::default(),
37526            set: Default::default(),
37527        }
37528    }
37529}
37530///[`VkPhysicalDeviceCubicClampFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCubicClampFeaturesQCOM.html)
37531/**
37532Provided by **VK_QCOM_filter_cubic_clamp**.*/
37533///
37534///# Extends
37535///- [`PhysicalDeviceFeatures2`]
37536///- [`DeviceCreateInfo`]
37537#[repr(C)]
37538#[derive(Copy, Clone, Debug)]
37539#[doc(alias = "VkPhysicalDeviceCubicClampFeaturesQCOM")]
37540pub struct PhysicalDeviceCubicClampFeaturesQCOM {
37541    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM`.
37542    pub s_type: StructureType,
37543    ///Optional, may be null.
37544    pub p_next: *mut core::ffi::c_void,
37545    pub cubic_range_clamp: u32,
37546}
37547impl Default for PhysicalDeviceCubicClampFeaturesQCOM {
37548    #[inline]
37549    fn default() -> Self {
37550        Self {
37551            s_type: StructureType::from_raw(1000521000i32),
37552            p_next: core::ptr::null_mut(),
37553            cubic_range_clamp: Default::default(),
37554        }
37555    }
37556}
37557///[`VkPhysicalDeviceYcbcrDegammaFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceYcbcrDegammaFeaturesQCOM.html)
37558/**
37559Provided by **VK_QCOM_ycbcr_degamma**.*/
37560///
37561///# Extends
37562///- [`PhysicalDeviceFeatures2`]
37563///- [`DeviceCreateInfo`]
37564#[repr(C)]
37565#[derive(Copy, Clone, Debug)]
37566#[doc(alias = "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM")]
37567pub struct PhysicalDeviceYcbcrDegammaFeaturesQCOM {
37568    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM`.
37569    pub s_type: StructureType,
37570    ///Optional, may be null.
37571    pub p_next: *mut core::ffi::c_void,
37572    pub ycbcr_degamma: u32,
37573}
37574impl Default for PhysicalDeviceYcbcrDegammaFeaturesQCOM {
37575    #[inline]
37576    fn default() -> Self {
37577        Self {
37578            s_type: StructureType::from_raw(1000520000i32),
37579            p_next: core::ptr::null_mut(),
37580            ycbcr_degamma: Default::default(),
37581        }
37582    }
37583}
37584///[`VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.html)
37585/**
37586Provided by **VK_QCOM_ycbcr_degamma**.*/
37587///
37588///# Extends
37589///- [`SamplerYcbcrConversionCreateInfo`]
37590#[repr(C)]
37591#[derive(Copy, Clone, Debug)]
37592#[doc(alias = "VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM")]
37593pub struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
37594    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM`.
37595    pub s_type: StructureType,
37596    ///Optional, may be null.
37597    pub p_next: *mut core::ffi::c_void,
37598    pub enable_y_degamma: u32,
37599    pub enable_cb_cr_degamma: u32,
37600}
37601impl Default for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
37602    #[inline]
37603    fn default() -> Self {
37604        Self {
37605            s_type: StructureType::from_raw(1000520001i32),
37606            p_next: core::ptr::null_mut(),
37607            enable_y_degamma: Default::default(),
37608            enable_cb_cr_degamma: Default::default(),
37609        }
37610    }
37611}
37612///[`VkPhysicalDeviceCubicWeightsFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCubicWeightsFeaturesQCOM.html)
37613/**
37614Provided by **VK_QCOM_filter_cubic_weights**.*/
37615///
37616///# Extends
37617///- [`PhysicalDeviceFeatures2`]
37618///- [`DeviceCreateInfo`]
37619#[repr(C)]
37620#[derive(Copy, Clone, Debug)]
37621#[doc(alias = "VkPhysicalDeviceCubicWeightsFeaturesQCOM")]
37622pub struct PhysicalDeviceCubicWeightsFeaturesQCOM {
37623    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM`.
37624    pub s_type: StructureType,
37625    ///Optional, may be null.
37626    pub p_next: *mut core::ffi::c_void,
37627    pub selectable_cubic_weights: u32,
37628}
37629impl Default for PhysicalDeviceCubicWeightsFeaturesQCOM {
37630    #[inline]
37631    fn default() -> Self {
37632        Self {
37633            s_type: StructureType::from_raw(1000519001i32),
37634            p_next: core::ptr::null_mut(),
37635            selectable_cubic_weights: Default::default(),
37636        }
37637    }
37638}
37639///[`VkSamplerCubicWeightsCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCubicWeightsCreateInfoQCOM.html)
37640/**
37641Provided by **VK_QCOM_filter_cubic_weights**.*/
37642///
37643///# Extends
37644///- [`SamplerCreateInfo`]
37645#[repr(C)]
37646#[derive(Copy, Clone, Debug)]
37647#[doc(alias = "VkSamplerCubicWeightsCreateInfoQCOM")]
37648pub struct SamplerCubicWeightsCreateInfoQCOM {
37649    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM`.
37650    pub s_type: StructureType,
37651    ///Optional, may be null.
37652    pub p_next: *const core::ffi::c_void,
37653    pub cubic_weights: CubicFilterWeightsQCOM,
37654}
37655impl Default for SamplerCubicWeightsCreateInfoQCOM {
37656    #[inline]
37657    fn default() -> Self {
37658        Self {
37659            s_type: StructureType::from_raw(1000519000i32),
37660            p_next: core::ptr::null(),
37661            cubic_weights: Default::default(),
37662        }
37663    }
37664}
37665///[`VkBlitImageCubicWeightsInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBlitImageCubicWeightsInfoQCOM.html)
37666/**
37667Provided by **VK_QCOM_filter_cubic_weights**.*/
37668///
37669///# Extends
37670///- [`BlitImageInfo2`]
37671#[repr(C)]
37672#[derive(Copy, Clone, Debug)]
37673#[doc(alias = "VkBlitImageCubicWeightsInfoQCOM")]
37674pub struct BlitImageCubicWeightsInfoQCOM {
37675    ///Must be `VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM`.
37676    pub s_type: StructureType,
37677    ///Optional, may be null.
37678    pub p_next: *const core::ffi::c_void,
37679    pub cubic_weights: CubicFilterWeightsQCOM,
37680}
37681impl Default for BlitImageCubicWeightsInfoQCOM {
37682    #[inline]
37683    fn default() -> Self {
37684        Self {
37685            s_type: StructureType::from_raw(1000519002i32),
37686            p_next: core::ptr::null(),
37687            cubic_weights: Default::default(),
37688        }
37689    }
37690}
37691///[`VkPhysicalDeviceImageProcessing2FeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageProcessing2FeaturesQCOM.html)
37692/**
37693Provided by **VK_QCOM_image_processing2**.*/
37694///
37695///# Extends
37696///- [`PhysicalDeviceFeatures2`]
37697///- [`DeviceCreateInfo`]
37698#[repr(C)]
37699#[derive(Copy, Clone, Debug)]
37700#[doc(alias = "VkPhysicalDeviceImageProcessing2FeaturesQCOM")]
37701pub struct PhysicalDeviceImageProcessing2FeaturesQCOM {
37702    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM`.
37703    pub s_type: StructureType,
37704    ///Optional, may be null.
37705    pub p_next: *mut core::ffi::c_void,
37706    pub texture_block_match2: u32,
37707}
37708impl Default for PhysicalDeviceImageProcessing2FeaturesQCOM {
37709    #[inline]
37710    fn default() -> Self {
37711        Self {
37712            s_type: StructureType::from_raw(1000518000i32),
37713            p_next: core::ptr::null_mut(),
37714            texture_block_match2: Default::default(),
37715        }
37716    }
37717}
37718///[`VkPhysicalDeviceImageProcessing2PropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageProcessing2PropertiesQCOM.html)
37719/**
37720Provided by **VK_QCOM_image_processing2**.*/
37721/**
37722**Returned only**, filled by Vulkan, not constructed by the application.*/
37723///
37724///# Extends
37725///- [`PhysicalDeviceProperties2`]
37726#[repr(C)]
37727#[derive(Copy, Clone, Debug)]
37728#[doc(alias = "VkPhysicalDeviceImageProcessing2PropertiesQCOM")]
37729pub struct PhysicalDeviceImageProcessing2PropertiesQCOM {
37730    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM`.
37731    pub s_type: StructureType,
37732    ///Optional, may be null.
37733    pub p_next: *mut core::ffi::c_void,
37734    pub max_block_match_window: Extent2D,
37735}
37736impl Default for PhysicalDeviceImageProcessing2PropertiesQCOM {
37737    #[inline]
37738    fn default() -> Self {
37739        Self {
37740            s_type: StructureType::from_raw(1000518001i32),
37741            p_next: core::ptr::null_mut(),
37742            max_block_match_window: Default::default(),
37743        }
37744    }
37745}
37746///[`VkSamplerBlockMatchWindowCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerBlockMatchWindowCreateInfoQCOM.html)
37747/**
37748Provided by **VK_QCOM_image_processing2**.*/
37749///
37750///# Extends
37751///- [`SamplerCreateInfo`]
37752#[repr(C)]
37753#[derive(Copy, Clone, Debug)]
37754#[doc(alias = "VkSamplerBlockMatchWindowCreateInfoQCOM")]
37755pub struct SamplerBlockMatchWindowCreateInfoQCOM {
37756    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM`.
37757    pub s_type: StructureType,
37758    ///Optional, may be null.
37759    pub p_next: *const core::ffi::c_void,
37760    pub window_extent: Extent2D,
37761    pub window_compare_mode: BlockMatchWindowCompareModeQCOM,
37762}
37763impl Default for SamplerBlockMatchWindowCreateInfoQCOM {
37764    #[inline]
37765    fn default() -> Self {
37766        Self {
37767            s_type: StructureType::from_raw(1000518002i32),
37768            p_next: core::ptr::null(),
37769            window_extent: Default::default(),
37770            window_compare_mode: Default::default(),
37771        }
37772    }
37773}
37774///[`VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV.html)
37775/**
37776Provided by **VK_NV_descriptor_pool_overallocation**.*/
37777///
37778///# Extends
37779///- [`PhysicalDeviceFeatures2`]
37780///- [`DeviceCreateInfo`]
37781#[repr(C)]
37782#[derive(Copy, Clone, Debug)]
37783#[doc(alias = "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV")]
37784pub struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
37785    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV`.
37786    pub s_type: StructureType,
37787    ///Optional, may be null.
37788    pub p_next: *mut core::ffi::c_void,
37789    pub descriptor_pool_overallocation: u32,
37790}
37791impl Default for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
37792    #[inline]
37793    fn default() -> Self {
37794        Self {
37795            s_type: StructureType::from_raw(1000546000i32),
37796            p_next: core::ptr::null_mut(),
37797            descriptor_pool_overallocation: Default::default(),
37798        }
37799    }
37800}
37801///[`VkPhysicalDeviceLayeredDriverPropertiesMSFT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceLayeredDriverPropertiesMSFT.html)
37802/**
37803Provided by **VK_MSFT_layered_driver**.*/
37804/**
37805**Returned only**, filled by Vulkan, not constructed by the application.*/
37806///
37807///# Extends
37808///- [`PhysicalDeviceProperties2`]
37809#[repr(C)]
37810#[derive(Copy, Clone, Debug)]
37811#[doc(alias = "VkPhysicalDeviceLayeredDriverPropertiesMSFT")]
37812pub struct PhysicalDeviceLayeredDriverPropertiesMSFT {
37813    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT`.
37814    pub s_type: StructureType,
37815    ///Optional, may be null.
37816    pub p_next: *mut core::ffi::c_void,
37817    pub underlying_api: LayeredDriverUnderlyingApiMSFT,
37818}
37819impl Default for PhysicalDeviceLayeredDriverPropertiesMSFT {
37820    #[inline]
37821    fn default() -> Self {
37822        Self {
37823            s_type: StructureType::from_raw(1000530000i32),
37824            p_next: core::ptr::null_mut(),
37825            underlying_api: Default::default(),
37826        }
37827    }
37828}
37829///[`VkPhysicalDevicePerStageDescriptorSetFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerStageDescriptorSetFeaturesNV.html)
37830/**
37831Provided by **VK_NV_per_stage_descriptor_set**.*/
37832///
37833///# Extends
37834///- [`PhysicalDeviceFeatures2`]
37835///- [`DeviceCreateInfo`]
37836#[repr(C)]
37837#[derive(Copy, Clone, Debug)]
37838#[doc(alias = "VkPhysicalDevicePerStageDescriptorSetFeaturesNV")]
37839pub struct PhysicalDevicePerStageDescriptorSetFeaturesNV {
37840    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV`.
37841    pub s_type: StructureType,
37842    ///Optional, may be null.
37843    pub p_next: *mut core::ffi::c_void,
37844    pub per_stage_descriptor_set: u32,
37845    pub dynamic_pipeline_layout: u32,
37846}
37847impl Default for PhysicalDevicePerStageDescriptorSetFeaturesNV {
37848    #[inline]
37849    fn default() -> Self {
37850        Self {
37851            s_type: StructureType::from_raw(1000516000i32),
37852            p_next: core::ptr::null_mut(),
37853            per_stage_descriptor_set: Default::default(),
37854            dynamic_pipeline_layout: Default::default(),
37855        }
37856    }
37857}
37858///[`VkPhysicalDeviceExternalFormatResolveFeaturesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalFormatResolveFeaturesANDROID.html)
37859/**
37860Provided by **VK_ANDROID_external_format_resolve**.*/
37861///
37862///# Extends
37863///- [`PhysicalDeviceFeatures2`]
37864///- [`DeviceCreateInfo`]
37865#[repr(C)]
37866#[derive(Copy, Clone, Debug)]
37867#[doc(alias = "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID")]
37868pub struct PhysicalDeviceExternalFormatResolveFeaturesANDROID {
37869    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID`.
37870    pub s_type: StructureType,
37871    ///Optional, may be null.
37872    pub p_next: *mut core::ffi::c_void,
37873    pub external_format_resolve: u32,
37874}
37875impl Default for PhysicalDeviceExternalFormatResolveFeaturesANDROID {
37876    #[inline]
37877    fn default() -> Self {
37878        Self {
37879            s_type: StructureType::from_raw(1000468000i32),
37880            p_next: core::ptr::null_mut(),
37881            external_format_resolve: Default::default(),
37882        }
37883    }
37884}
37885///[`VkPhysicalDeviceExternalFormatResolvePropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalFormatResolvePropertiesANDROID.html)
37886/**
37887Provided by **VK_ANDROID_external_format_resolve**.*/
37888/**
37889**Returned only**, filled by Vulkan, not constructed by the application.*/
37890///
37891///# Extends
37892///- [`PhysicalDeviceProperties2`]
37893#[repr(C)]
37894#[derive(Copy, Clone, Debug)]
37895#[doc(alias = "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID")]
37896pub struct PhysicalDeviceExternalFormatResolvePropertiesANDROID {
37897    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID`.
37898    pub s_type: StructureType,
37899    ///Optional, may be null.
37900    pub p_next: *mut core::ffi::c_void,
37901    pub null_color_attachment_with_external_format_resolve: u32,
37902    pub external_format_resolve_chroma_offset_x: ChromaLocation,
37903    pub external_format_resolve_chroma_offset_y: ChromaLocation,
37904}
37905impl Default for PhysicalDeviceExternalFormatResolvePropertiesANDROID {
37906    #[inline]
37907    fn default() -> Self {
37908        Self {
37909            s_type: StructureType::from_raw(1000468001i32),
37910            p_next: core::ptr::null_mut(),
37911            null_color_attachment_with_external_format_resolve: Default::default(),
37912            external_format_resolve_chroma_offset_x: Default::default(),
37913            external_format_resolve_chroma_offset_y: Default::default(),
37914        }
37915    }
37916}
37917///[`VkAndroidHardwareBufferFormatResolvePropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAndroidHardwareBufferFormatResolvePropertiesANDROID.html)
37918/**
37919Provided by **VK_ANDROID_external_format_resolve**.*/
37920/**
37921**Returned only**, filled by Vulkan, not constructed by the application.*/
37922///
37923///# Extends
37924///- [`AndroidHardwareBufferPropertiesANDROID`]
37925#[repr(C)]
37926#[derive(Copy, Clone, Debug)]
37927#[doc(alias = "VkAndroidHardwareBufferFormatResolvePropertiesANDROID")]
37928pub struct AndroidHardwareBufferFormatResolvePropertiesANDROID {
37929    ///Must be `VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID`.
37930    pub s_type: StructureType,
37931    ///Optional, may be null.
37932    pub p_next: *mut core::ffi::c_void,
37933    pub color_attachment_format: Format,
37934}
37935impl Default for AndroidHardwareBufferFormatResolvePropertiesANDROID {
37936    #[inline]
37937    fn default() -> Self {
37938        Self {
37939            s_type: StructureType::from_raw(1000468002i32),
37940            p_next: core::ptr::null_mut(),
37941            color_attachment_format: Default::default(),
37942        }
37943    }
37944}
37945///[`VkLatencySleepModeInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencySleepModeInfoNV.html)
37946/**
37947Provided by **VK_NV_low_latency2**.*/
37948#[repr(C)]
37949#[derive(Copy, Clone, Debug)]
37950#[doc(alias = "VkLatencySleepModeInfoNV")]
37951pub struct LatencySleepModeInfoNV {
37952    ///Must be `VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV`.
37953    pub s_type: StructureType,
37954    ///Optional, may be null.
37955    pub p_next: *const core::ffi::c_void,
37956    pub low_latency_mode: u32,
37957    pub low_latency_boost: u32,
37958    pub minimum_interval_us: u32,
37959}
37960impl Default for LatencySleepModeInfoNV {
37961    #[inline]
37962    fn default() -> Self {
37963        Self {
37964            s_type: StructureType::from_raw(1000505000i32),
37965            p_next: core::ptr::null(),
37966            low_latency_mode: Default::default(),
37967            low_latency_boost: Default::default(),
37968            minimum_interval_us: Default::default(),
37969        }
37970    }
37971}
37972///[`VkLatencySleepInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencySleepInfoNV.html)
37973/**
37974Provided by **VK_NV_low_latency2**.*/
37975#[repr(C)]
37976#[derive(Copy, Clone, Debug)]
37977#[doc(alias = "VkLatencySleepInfoNV")]
37978pub struct LatencySleepInfoNV {
37979    ///Must be `VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV`.
37980    pub s_type: StructureType,
37981    ///Optional, may be null.
37982    pub p_next: *const core::ffi::c_void,
37983    pub signal_semaphore: Semaphore,
37984    pub value: u64,
37985}
37986impl Default for LatencySleepInfoNV {
37987    #[inline]
37988    fn default() -> Self {
37989        Self {
37990            s_type: StructureType::from_raw(1000505001i32),
37991            p_next: core::ptr::null(),
37992            signal_semaphore: Default::default(),
37993            value: Default::default(),
37994        }
37995    }
37996}
37997///[`VkSetLatencyMarkerInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSetLatencyMarkerInfoNV.html)
37998/**
37999Provided by **VK_NV_low_latency2**.*/
38000#[repr(C)]
38001#[derive(Copy, Clone, Debug)]
38002#[doc(alias = "VkSetLatencyMarkerInfoNV")]
38003pub struct SetLatencyMarkerInfoNV {
38004    ///Must be `VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV`.
38005    pub s_type: StructureType,
38006    ///Optional, may be null.
38007    pub p_next: *const core::ffi::c_void,
38008    pub present_id: u64,
38009    pub marker: LatencyMarkerNV,
38010}
38011impl Default for SetLatencyMarkerInfoNV {
38012    #[inline]
38013    fn default() -> Self {
38014        Self {
38015            s_type: StructureType::from_raw(1000505002i32),
38016            p_next: core::ptr::null(),
38017            present_id: Default::default(),
38018            marker: Default::default(),
38019        }
38020    }
38021}
38022///[`VkGetLatencyMarkerInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkGetLatencyMarkerInfoNV.html)
38023/**
38024Provided by **VK_NV_low_latency2**.*/
38025#[repr(C)]
38026#[derive(Copy, Clone, Debug)]
38027#[doc(alias = "VkGetLatencyMarkerInfoNV")]
38028pub struct GetLatencyMarkerInfoNV {
38029    ///Must be `VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV`.
38030    pub s_type: StructureType,
38031    ///Optional, may be null.
38032    pub p_next: *const core::ffi::c_void,
38033    ///Length of `p_timings`.
38034    pub timing_count: u32,
38035    ///Optional, may be null.
38036    pub p_timings: *mut LatencyTimingsFrameReportNV,
38037}
38038impl Default for GetLatencyMarkerInfoNV {
38039    #[inline]
38040    fn default() -> Self {
38041        Self {
38042            s_type: StructureType::from_raw(1000505003i32),
38043            p_next: core::ptr::null(),
38044            timing_count: Default::default(),
38045            p_timings: core::ptr::null_mut(),
38046        }
38047    }
38048}
38049///[`VkLatencyTimingsFrameReportNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencyTimingsFrameReportNV.html)
38050/**
38051Provided by **VK_NV_low_latency2**.*/
38052/**
38053**Returned only**, filled by Vulkan, not constructed by the application.*/
38054#[repr(C)]
38055#[derive(Copy, Clone, Debug)]
38056#[doc(alias = "VkLatencyTimingsFrameReportNV")]
38057pub struct LatencyTimingsFrameReportNV {
38058    ///Must be `VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV`.
38059    pub s_type: StructureType,
38060    ///Optional, may be null.
38061    pub p_next: *mut core::ffi::c_void,
38062    pub present_id: u64,
38063    pub input_sample_time_us: u64,
38064    pub sim_start_time_us: u64,
38065    pub sim_end_time_us: u64,
38066    pub render_submit_start_time_us: u64,
38067    pub render_submit_end_time_us: u64,
38068    pub present_start_time_us: u64,
38069    pub present_end_time_us: u64,
38070    pub driver_start_time_us: u64,
38071    pub driver_end_time_us: u64,
38072    pub os_render_queue_start_time_us: u64,
38073    pub os_render_queue_end_time_us: u64,
38074    pub gpu_render_start_time_us: u64,
38075    pub gpu_render_end_time_us: u64,
38076}
38077impl Default for LatencyTimingsFrameReportNV {
38078    #[inline]
38079    fn default() -> Self {
38080        Self {
38081            s_type: StructureType::from_raw(1000505004i32),
38082            p_next: core::ptr::null_mut(),
38083            present_id: Default::default(),
38084            input_sample_time_us: Default::default(),
38085            sim_start_time_us: Default::default(),
38086            sim_end_time_us: Default::default(),
38087            render_submit_start_time_us: Default::default(),
38088            render_submit_end_time_us: Default::default(),
38089            present_start_time_us: Default::default(),
38090            present_end_time_us: Default::default(),
38091            driver_start_time_us: Default::default(),
38092            driver_end_time_us: Default::default(),
38093            os_render_queue_start_time_us: Default::default(),
38094            os_render_queue_end_time_us: Default::default(),
38095            gpu_render_start_time_us: Default::default(),
38096            gpu_render_end_time_us: Default::default(),
38097        }
38098    }
38099}
38100///[`VkOutOfBandQueueTypeInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOutOfBandQueueTypeInfoNV.html)
38101/**
38102Provided by **VK_NV_low_latency2**.*/
38103#[repr(C)]
38104#[derive(Copy, Clone, Debug)]
38105#[doc(alias = "VkOutOfBandQueueTypeInfoNV")]
38106pub struct OutOfBandQueueTypeInfoNV {
38107    ///Must be `VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV`.
38108    pub s_type: StructureType,
38109    ///Optional, may be null.
38110    pub p_next: *const core::ffi::c_void,
38111    pub queue_type: OutOfBandQueueTypeNV,
38112}
38113impl Default for OutOfBandQueueTypeInfoNV {
38114    #[inline]
38115    fn default() -> Self {
38116        Self {
38117            s_type: StructureType::from_raw(1000505006i32),
38118            p_next: core::ptr::null(),
38119            queue_type: Default::default(),
38120        }
38121    }
38122}
38123///[`VkLatencySubmissionPresentIdNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencySubmissionPresentIdNV.html)
38124/**
38125Provided by **VK_NV_low_latency2**.*/
38126///
38127///# Extends
38128///- [`SubmitInfo`]
38129///- [`SubmitInfo2`]
38130#[repr(C)]
38131#[derive(Copy, Clone, Debug)]
38132#[doc(alias = "VkLatencySubmissionPresentIdNV")]
38133pub struct LatencySubmissionPresentIdNV {
38134    ///Must be `VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV`.
38135    pub s_type: StructureType,
38136    ///Optional, may be null.
38137    pub p_next: *const core::ffi::c_void,
38138    pub present_id: u64,
38139}
38140impl Default for LatencySubmissionPresentIdNV {
38141    #[inline]
38142    fn default() -> Self {
38143        Self {
38144            s_type: StructureType::from_raw(1000505005i32),
38145            p_next: core::ptr::null(),
38146            present_id: Default::default(),
38147        }
38148    }
38149}
38150///[`VkSwapchainLatencyCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainLatencyCreateInfoNV.html)
38151/**
38152Provided by **VK_NV_low_latency2**.*/
38153///
38154///# Extends
38155///- [`SwapchainCreateInfoKHR`]
38156#[repr(C)]
38157#[derive(Copy, Clone, Debug)]
38158#[doc(alias = "VkSwapchainLatencyCreateInfoNV")]
38159pub struct SwapchainLatencyCreateInfoNV {
38160    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV`.
38161    pub s_type: StructureType,
38162    ///Optional, may be null.
38163    pub p_next: *const core::ffi::c_void,
38164    pub latency_mode_enable: u32,
38165}
38166impl Default for SwapchainLatencyCreateInfoNV {
38167    #[inline]
38168    fn default() -> Self {
38169        Self {
38170            s_type: StructureType::from_raw(1000505007i32),
38171            p_next: core::ptr::null(),
38172            latency_mode_enable: Default::default(),
38173        }
38174    }
38175}
38176///[`VkLatencySurfaceCapabilitiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkLatencySurfaceCapabilitiesNV.html)
38177/**
38178Provided by **VK_NV_low_latency2**.*/
38179///
38180///# Extends
38181///- [`SurfaceCapabilities2KHR`]
38182#[repr(C)]
38183#[derive(Copy, Clone, Debug)]
38184#[doc(alias = "VkLatencySurfaceCapabilitiesNV")]
38185pub struct LatencySurfaceCapabilitiesNV {
38186    ///Must be `VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV`.
38187    pub s_type: StructureType,
38188    ///Optional, may be null.
38189    pub p_next: *const core::ffi::c_void,
38190    ///Length of `p_present_modes`.
38191    pub present_mode_count: u32,
38192    ///Optional, may be null.
38193    pub p_present_modes: *mut PresentModeKHR,
38194}
38195impl Default for LatencySurfaceCapabilitiesNV {
38196    #[inline]
38197    fn default() -> Self {
38198        Self {
38199            s_type: StructureType::from_raw(1000505008i32),
38200            p_next: core::ptr::null(),
38201            present_mode_count: Default::default(),
38202            p_present_modes: core::ptr::null_mut(),
38203        }
38204    }
38205}
38206///[`VkPhysicalDeviceCudaKernelLaunchFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCudaKernelLaunchFeaturesNV.html)
38207/**
38208Provided by **VK_NV_cuda_kernel_launch**.*/
38209///
38210///# Extends
38211///- [`PhysicalDeviceFeatures2`]
38212///- [`DeviceCreateInfo`]
38213#[repr(C)]
38214#[derive(Copy, Clone, Debug)]
38215#[doc(alias = "VkPhysicalDeviceCudaKernelLaunchFeaturesNV")]
38216pub struct PhysicalDeviceCudaKernelLaunchFeaturesNV {
38217    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV`.
38218    pub s_type: StructureType,
38219    ///Optional, may be null.
38220    pub p_next: *mut core::ffi::c_void,
38221    pub cuda_kernel_launch_features: u32,
38222}
38223impl Default for PhysicalDeviceCudaKernelLaunchFeaturesNV {
38224    #[inline]
38225    fn default() -> Self {
38226        Self {
38227            s_type: StructureType::from_raw(1000307003i32),
38228            p_next: core::ptr::null_mut(),
38229            cuda_kernel_launch_features: Default::default(),
38230        }
38231    }
38232}
38233///[`VkPhysicalDeviceCudaKernelLaunchPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCudaKernelLaunchPropertiesNV.html)
38234/**
38235Provided by **VK_NV_cuda_kernel_launch**.*/
38236/**
38237**Returned only**, filled by Vulkan, not constructed by the application.*/
38238///
38239///# Extends
38240///- [`PhysicalDeviceProperties2`]
38241#[repr(C)]
38242#[derive(Copy, Clone, Debug)]
38243#[doc(alias = "VkPhysicalDeviceCudaKernelLaunchPropertiesNV")]
38244pub struct PhysicalDeviceCudaKernelLaunchPropertiesNV {
38245    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV`.
38246    pub s_type: StructureType,
38247    ///Optional, may be null.
38248    pub p_next: *mut core::ffi::c_void,
38249    pub compute_capability_minor: u32,
38250    pub compute_capability_major: u32,
38251}
38252impl Default for PhysicalDeviceCudaKernelLaunchPropertiesNV {
38253    #[inline]
38254    fn default() -> Self {
38255        Self {
38256            s_type: StructureType::from_raw(1000307004i32),
38257            p_next: core::ptr::null_mut(),
38258            compute_capability_minor: Default::default(),
38259            compute_capability_major: Default::default(),
38260        }
38261    }
38262}
38263///[`VkDeviceQueueShaderCoreControlCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceQueueShaderCoreControlCreateInfoARM.html)
38264/**
38265Provided by **VK_ARM_scheduling_controls**.*/
38266///
38267///# Extends
38268///- [`DeviceQueueCreateInfo`]
38269///- [`DeviceCreateInfo`]
38270#[repr(C)]
38271#[derive(Copy, Clone, Debug)]
38272#[doc(alias = "VkDeviceQueueShaderCoreControlCreateInfoARM")]
38273pub struct DeviceQueueShaderCoreControlCreateInfoARM {
38274    ///Must be `VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM`.
38275    pub s_type: StructureType,
38276    ///Optional, may be null.
38277    pub p_next: *mut core::ffi::c_void,
38278    pub shader_core_count: u32,
38279}
38280impl Default for DeviceQueueShaderCoreControlCreateInfoARM {
38281    #[inline]
38282    fn default() -> Self {
38283        Self {
38284            s_type: StructureType::from_raw(1000417000i32),
38285            p_next: core::ptr::null_mut(),
38286            shader_core_count: Default::default(),
38287        }
38288    }
38289}
38290///[`VkPhysicalDeviceSchedulingControlsFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSchedulingControlsFeaturesARM.html)
38291/**
38292Provided by **VK_ARM_scheduling_controls**.*/
38293///
38294///# Extends
38295///- [`PhysicalDeviceFeatures2`]
38296///- [`DeviceCreateInfo`]
38297#[repr(C)]
38298#[derive(Copy, Clone, Debug)]
38299#[doc(alias = "VkPhysicalDeviceSchedulingControlsFeaturesARM")]
38300pub struct PhysicalDeviceSchedulingControlsFeaturesARM {
38301    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM`.
38302    pub s_type: StructureType,
38303    ///Optional, may be null.
38304    pub p_next: *mut core::ffi::c_void,
38305    pub scheduling_controls: u32,
38306}
38307impl Default for PhysicalDeviceSchedulingControlsFeaturesARM {
38308    #[inline]
38309    fn default() -> Self {
38310        Self {
38311            s_type: StructureType::from_raw(1000417001i32),
38312            p_next: core::ptr::null_mut(),
38313            scheduling_controls: Default::default(),
38314        }
38315    }
38316}
38317///[`VkPhysicalDeviceSchedulingControlsPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceSchedulingControlsPropertiesARM.html)
38318/**
38319Provided by **VK_ARM_scheduling_controls**.*/
38320/**
38321**Returned only**, filled by Vulkan, not constructed by the application.*/
38322///
38323///# Extends
38324///- [`PhysicalDeviceProperties2`]
38325#[repr(C)]
38326#[derive(Copy, Clone, Debug)]
38327#[doc(alias = "VkPhysicalDeviceSchedulingControlsPropertiesARM")]
38328pub struct PhysicalDeviceSchedulingControlsPropertiesARM {
38329    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM`.
38330    pub s_type: StructureType,
38331    ///Optional, may be null.
38332    pub p_next: *mut core::ffi::c_void,
38333    pub scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM,
38334}
38335impl Default for PhysicalDeviceSchedulingControlsPropertiesARM {
38336    #[inline]
38337    fn default() -> Self {
38338        Self {
38339            s_type: StructureType::from_raw(1000417002i32),
38340            p_next: core::ptr::null_mut(),
38341            scheduling_controls_flags: Default::default(),
38342        }
38343    }
38344}
38345///[`VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG.html)
38346/**
38347Provided by **VK_IMG_relaxed_line_rasterization**.*/
38348///
38349///# Extends
38350///- [`PhysicalDeviceFeatures2`]
38351///- [`DeviceCreateInfo`]
38352#[repr(C)]
38353#[derive(Copy, Clone, Debug)]
38354#[doc(alias = "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG")]
38355pub struct PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
38356    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG`.
38357    pub s_type: StructureType,
38358    ///Optional, may be null.
38359    pub p_next: *mut core::ffi::c_void,
38360    pub relaxed_line_rasterization: u32,
38361}
38362impl Default for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
38363    #[inline]
38364    fn default() -> Self {
38365        Self {
38366            s_type: StructureType::from_raw(1000110000i32),
38367            p_next: core::ptr::null_mut(),
38368            relaxed_line_rasterization: Default::default(),
38369        }
38370    }
38371}
38372///[`VkPhysicalDeviceRenderPassStripedFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRenderPassStripedFeaturesARM.html)
38373/**
38374Provided by **VK_ARM_render_pass_striped**.*/
38375///
38376///# Extends
38377///- [`PhysicalDeviceFeatures2`]
38378///- [`DeviceCreateInfo`]
38379#[repr(C)]
38380#[derive(Copy, Clone, Debug)]
38381#[doc(alias = "VkPhysicalDeviceRenderPassStripedFeaturesARM")]
38382pub struct PhysicalDeviceRenderPassStripedFeaturesARM {
38383    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM`.
38384    pub s_type: StructureType,
38385    ///Optional, may be null.
38386    pub p_next: *mut core::ffi::c_void,
38387    pub render_pass_striped: u32,
38388}
38389impl Default for PhysicalDeviceRenderPassStripedFeaturesARM {
38390    #[inline]
38391    fn default() -> Self {
38392        Self {
38393            s_type: StructureType::from_raw(1000424000i32),
38394            p_next: core::ptr::null_mut(),
38395            render_pass_striped: Default::default(),
38396        }
38397    }
38398}
38399///[`VkPhysicalDeviceRenderPassStripedPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRenderPassStripedPropertiesARM.html)
38400/**
38401Provided by **VK_ARM_render_pass_striped**.*/
38402/**
38403**Returned only**, filled by Vulkan, not constructed by the application.*/
38404///
38405///# Extends
38406///- [`PhysicalDeviceProperties2`]
38407#[repr(C)]
38408#[derive(Copy, Clone, Debug)]
38409#[doc(alias = "VkPhysicalDeviceRenderPassStripedPropertiesARM")]
38410pub struct PhysicalDeviceRenderPassStripedPropertiesARM {
38411    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM`.
38412    pub s_type: StructureType,
38413    ///Optional, may be null.
38414    pub p_next: *mut core::ffi::c_void,
38415    pub render_pass_stripe_granularity: Extent2D,
38416    pub max_render_pass_stripes: u32,
38417}
38418impl Default for PhysicalDeviceRenderPassStripedPropertiesARM {
38419    #[inline]
38420    fn default() -> Self {
38421        Self {
38422            s_type: StructureType::from_raw(1000424001i32),
38423            p_next: core::ptr::null_mut(),
38424            render_pass_stripe_granularity: Default::default(),
38425            max_render_pass_stripes: Default::default(),
38426        }
38427    }
38428}
38429///[`VkRenderPassStripeInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassStripeInfoARM.html)
38430/**
38431Provided by **VK_ARM_render_pass_striped**.*/
38432#[repr(C)]
38433#[derive(Copy, Clone, Debug)]
38434#[doc(alias = "VkRenderPassStripeInfoARM")]
38435pub struct RenderPassStripeInfoARM {
38436    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM`.
38437    pub s_type: StructureType,
38438    ///Optional, may be null.
38439    pub p_next: *const core::ffi::c_void,
38440    pub stripe_area: Rect2D,
38441}
38442impl Default for RenderPassStripeInfoARM {
38443    #[inline]
38444    fn default() -> Self {
38445        Self {
38446            s_type: StructureType::from_raw(1000424003i32),
38447            p_next: core::ptr::null(),
38448            stripe_area: Default::default(),
38449        }
38450    }
38451}
38452///[`VkRenderPassStripeBeginInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassStripeBeginInfoARM.html)
38453/**
38454Provided by **VK_ARM_render_pass_striped**.*/
38455///
38456///# Extends
38457///- [`RenderingInfo`]
38458///- [`RenderPassBeginInfo`]
38459#[repr(C)]
38460#[derive(Copy, Clone, Debug)]
38461#[doc(alias = "VkRenderPassStripeBeginInfoARM")]
38462pub struct RenderPassStripeBeginInfoARM {
38463    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM`.
38464    pub s_type: StructureType,
38465    ///Optional, may be null.
38466    pub p_next: *const core::ffi::c_void,
38467    ///Length of `p_stripe_infos`.
38468    pub stripe_info_count: u32,
38469    pub p_stripe_infos: *const RenderPassStripeInfoARM,
38470}
38471impl Default for RenderPassStripeBeginInfoARM {
38472    #[inline]
38473    fn default() -> Self {
38474        Self {
38475            s_type: StructureType::from_raw(1000424002i32),
38476            p_next: core::ptr::null(),
38477            stripe_info_count: Default::default(),
38478            p_stripe_infos: core::ptr::null(),
38479        }
38480    }
38481}
38482///[`VkRenderPassStripeSubmitInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassStripeSubmitInfoARM.html)
38483/**
38484Provided by **VK_ARM_render_pass_striped**.*/
38485///
38486///# Extends
38487///- [`CommandBufferSubmitInfo`]
38488#[repr(C)]
38489#[derive(Copy, Clone, Debug)]
38490#[doc(alias = "VkRenderPassStripeSubmitInfoARM")]
38491pub struct RenderPassStripeSubmitInfoARM {
38492    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM`.
38493    pub s_type: StructureType,
38494    ///Optional, may be null.
38495    pub p_next: *const core::ffi::c_void,
38496    ///Length of `p_stripe_semaphore_infos`.
38497    pub stripe_semaphore_info_count: u32,
38498    pub p_stripe_semaphore_infos: *const SemaphoreSubmitInfo,
38499}
38500impl Default for RenderPassStripeSubmitInfoARM {
38501    #[inline]
38502    fn default() -> Self {
38503        Self {
38504            s_type: StructureType::from_raw(1000424004i32),
38505            p_next: core::ptr::null(),
38506            stripe_semaphore_info_count: Default::default(),
38507            p_stripe_semaphore_infos: core::ptr::null(),
38508        }
38509    }
38510}
38511///[`VkPhysicalDevicePipelineOpacityMicromapFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineOpacityMicromapFeaturesARM.html)
38512/**
38513Provided by **VK_ARM_pipeline_opacity_micromap**.*/
38514///
38515///# Extends
38516///- [`PhysicalDeviceFeatures2`]
38517///- [`DeviceCreateInfo`]
38518#[repr(C)]
38519#[derive(Copy, Clone, Debug)]
38520#[doc(alias = "VkPhysicalDevicePipelineOpacityMicromapFeaturesARM")]
38521pub struct PhysicalDevicePipelineOpacityMicromapFeaturesARM {
38522    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM`.
38523    pub s_type: StructureType,
38524    ///Optional, may be null.
38525    pub p_next: *mut core::ffi::c_void,
38526    pub pipeline_opacity_micromap: u32,
38527}
38528impl Default for PhysicalDevicePipelineOpacityMicromapFeaturesARM {
38529    #[inline]
38530    fn default() -> Self {
38531        Self {
38532            s_type: StructureType::from_raw(1000596000i32),
38533            p_next: core::ptr::null_mut(),
38534            pipeline_opacity_micromap: Default::default(),
38535        }
38536    }
38537}
38538///[`VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR.html)
38539/**
38540Provided by **VK_KHR_shader_maximal_reconvergence**.*/
38541///
38542///# Extends
38543///- [`PhysicalDeviceFeatures2`]
38544///- [`DeviceCreateInfo`]
38545#[repr(C)]
38546#[derive(Copy, Clone, Debug)]
38547#[doc(alias = "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR")]
38548pub struct PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
38549    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR`.
38550    pub s_type: StructureType,
38551    ///Optional, may be null.
38552    pub p_next: *mut core::ffi::c_void,
38553    pub shader_maximal_reconvergence: u32,
38554}
38555impl Default for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
38556    #[inline]
38557    fn default() -> Self {
38558        Self {
38559            s_type: StructureType::from_raw(1000434000i32),
38560            p_next: core::ptr::null_mut(),
38561            shader_maximal_reconvergence: Default::default(),
38562        }
38563    }
38564}
38565///[`VkPhysicalDeviceShaderSubgroupRotateFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSubgroupRotateFeatures.html)
38566/**
38567Provided by **VK_COMPUTE_VERSION_1_4**.*/
38568///
38569///# Extends
38570///- [`PhysicalDeviceFeatures2`]
38571///- [`DeviceCreateInfo`]
38572#[repr(C)]
38573#[derive(Copy, Clone, Debug)]
38574#[doc(alias = "VkPhysicalDeviceShaderSubgroupRotateFeatures")]
38575pub struct PhysicalDeviceShaderSubgroupRotateFeatures {
38576    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES`.
38577    pub s_type: StructureType,
38578    ///Optional, may be null.
38579    pub p_next: *mut core::ffi::c_void,
38580    pub shader_subgroup_rotate: u32,
38581    pub shader_subgroup_rotate_clustered: u32,
38582}
38583impl Default for PhysicalDeviceShaderSubgroupRotateFeatures {
38584    #[inline]
38585    fn default() -> Self {
38586        Self {
38587            s_type: StructureType::from_raw(1000416000i32),
38588            p_next: core::ptr::null_mut(),
38589            shader_subgroup_rotate: Default::default(),
38590            shader_subgroup_rotate_clustered: Default::default(),
38591        }
38592    }
38593}
38594///[`VkPhysicalDeviceShaderExpectAssumeFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderExpectAssumeFeatures.html)
38595/**
38596Provided by **VK_COMPUTE_VERSION_1_4**.*/
38597///
38598///# Extends
38599///- [`PhysicalDeviceFeatures2`]
38600///- [`DeviceCreateInfo`]
38601#[repr(C)]
38602#[derive(Copy, Clone, Debug)]
38603#[doc(alias = "VkPhysicalDeviceShaderExpectAssumeFeatures")]
38604pub struct PhysicalDeviceShaderExpectAssumeFeatures {
38605    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES`.
38606    pub s_type: StructureType,
38607    ///Optional, may be null.
38608    pub p_next: *mut core::ffi::c_void,
38609    pub shader_expect_assume: u32,
38610}
38611impl Default for PhysicalDeviceShaderExpectAssumeFeatures {
38612    #[inline]
38613    fn default() -> Self {
38614        Self {
38615            s_type: StructureType::from_raw(1000544000i32),
38616            p_next: core::ptr::null_mut(),
38617            shader_expect_assume: Default::default(),
38618        }
38619    }
38620}
38621///[`VkPhysicalDeviceShaderFloatControls2Features`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFloatControls2Features.html)
38622/**
38623Provided by **VK_COMPUTE_VERSION_1_4**.*/
38624///
38625///# Extends
38626///- [`PhysicalDeviceFeatures2`]
38627///- [`DeviceCreateInfo`]
38628#[repr(C)]
38629#[derive(Copy, Clone, Debug)]
38630#[doc(alias = "VkPhysicalDeviceShaderFloatControls2Features")]
38631pub struct PhysicalDeviceShaderFloatControls2Features {
38632    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES`.
38633    pub s_type: StructureType,
38634    ///Optional, may be null.
38635    pub p_next: *mut core::ffi::c_void,
38636    pub shader_float_controls2: u32,
38637}
38638impl Default for PhysicalDeviceShaderFloatControls2Features {
38639    #[inline]
38640    fn default() -> Self {
38641        Self {
38642            s_type: StructureType::from_raw(1000528000i32),
38643            p_next: core::ptr::null_mut(),
38644            shader_float_controls2: Default::default(),
38645        }
38646    }
38647}
38648///[`VkPhysicalDeviceDynamicRenderingLocalReadFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDynamicRenderingLocalReadFeatures.html)
38649/**
38650Provided by **VK_GRAPHICS_VERSION_1_4**.*/
38651///
38652///# Extends
38653///- [`PhysicalDeviceFeatures2`]
38654///- [`DeviceCreateInfo`]
38655#[repr(C)]
38656#[derive(Copy, Clone, Debug)]
38657#[doc(alias = "VkPhysicalDeviceDynamicRenderingLocalReadFeatures")]
38658pub struct PhysicalDeviceDynamicRenderingLocalReadFeatures {
38659    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES`.
38660    pub s_type: StructureType,
38661    ///Optional, may be null.
38662    pub p_next: *mut core::ffi::c_void,
38663    pub dynamic_rendering_local_read: u32,
38664}
38665impl Default for PhysicalDeviceDynamicRenderingLocalReadFeatures {
38666    #[inline]
38667    fn default() -> Self {
38668        Self {
38669            s_type: StructureType::from_raw(1000232000i32),
38670            p_next: core::ptr::null_mut(),
38671            dynamic_rendering_local_read: Default::default(),
38672        }
38673    }
38674}
38675///[`VkRenderingAttachmentLocationInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingAttachmentLocationInfo.html)
38676/**
38677Provided by **VK_GRAPHICS_VERSION_1_4**.*/
38678///
38679///# Extends
38680///- [`GraphicsPipelineCreateInfo`]
38681///- [`CommandBufferInheritanceInfo`]
38682#[repr(C)]
38683#[derive(Copy, Clone, Debug)]
38684#[doc(alias = "VkRenderingAttachmentLocationInfo")]
38685pub struct RenderingAttachmentLocationInfo {
38686    ///Must be `VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO`.
38687    pub s_type: StructureType,
38688    ///Optional, may be null.
38689    pub p_next: *const core::ffi::c_void,
38690    ///Length of `p_color_attachment_locations`.
38691    pub color_attachment_count: u32,
38692    pub p_color_attachment_locations: *const u32,
38693}
38694impl Default for RenderingAttachmentLocationInfo {
38695    #[inline]
38696    fn default() -> Self {
38697        Self {
38698            s_type: StructureType::from_raw(1000232001i32),
38699            p_next: core::ptr::null(),
38700            color_attachment_count: Default::default(),
38701            p_color_attachment_locations: core::ptr::null(),
38702        }
38703    }
38704}
38705///[`VkRenderingInputAttachmentIndexInfo`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderingInputAttachmentIndexInfo.html)
38706/**
38707Provided by **VK_GRAPHICS_VERSION_1_4**.*/
38708///
38709///# Extends
38710///- [`GraphicsPipelineCreateInfo`]
38711///- [`CommandBufferInheritanceInfo`]
38712#[repr(C)]
38713#[derive(Copy, Clone, Debug)]
38714#[doc(alias = "VkRenderingInputAttachmentIndexInfo")]
38715pub struct RenderingInputAttachmentIndexInfo {
38716    ///Must be `VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO`.
38717    pub s_type: StructureType,
38718    ///Optional, may be null.
38719    pub p_next: *const core::ffi::c_void,
38720    ///Length of `p_color_attachment_input_indices`.
38721    pub color_attachment_count: u32,
38722    ///Optional, may be null.
38723    pub p_color_attachment_input_indices: *const u32,
38724    ///Optional, may be null.
38725    pub p_depth_input_attachment_index: *const u32,
38726    ///Optional, may be null.
38727    pub p_stencil_input_attachment_index: *const u32,
38728}
38729impl Default for RenderingInputAttachmentIndexInfo {
38730    #[inline]
38731    fn default() -> Self {
38732        Self {
38733            s_type: StructureType::from_raw(1000232002i32),
38734            p_next: core::ptr::null(),
38735            color_attachment_count: Default::default(),
38736            p_color_attachment_input_indices: core::ptr::null(),
38737            p_depth_input_attachment_index: core::ptr::null(),
38738            p_stencil_input_attachment_index: core::ptr::null(),
38739        }
38740    }
38741}
38742///[`VkPhysicalDeviceShaderQuadControlFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderQuadControlFeaturesKHR.html)
38743/**
38744Provided by **VK_KHR_shader_quad_control**.*/
38745///
38746///# Extends
38747///- [`PhysicalDeviceFeatures2`]
38748///- [`DeviceCreateInfo`]
38749#[repr(C)]
38750#[derive(Copy, Clone, Debug)]
38751#[doc(alias = "VkPhysicalDeviceShaderQuadControlFeaturesKHR")]
38752pub struct PhysicalDeviceShaderQuadControlFeaturesKHR {
38753    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR`.
38754    pub s_type: StructureType,
38755    ///Optional, may be null.
38756    pub p_next: *mut core::ffi::c_void,
38757    pub shader_quad_control: u32,
38758}
38759impl Default for PhysicalDeviceShaderQuadControlFeaturesKHR {
38760    #[inline]
38761    fn default() -> Self {
38762        Self {
38763            s_type: StructureType::from_raw(1000235000i32),
38764            p_next: core::ptr::null_mut(),
38765            shader_quad_control: Default::default(),
38766        }
38767    }
38768}
38769///[`VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV.html)
38770/**
38771Provided by **VK_NV_shader_atomic_float16_vector**.*/
38772///
38773///# Extends
38774///- [`PhysicalDeviceFeatures2`]
38775///- [`DeviceCreateInfo`]
38776#[repr(C)]
38777#[derive(Copy, Clone, Debug)]
38778#[doc(alias = "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV")]
38779pub struct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
38780    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV`.
38781    pub s_type: StructureType,
38782    ///Optional, may be null.
38783    pub p_next: *mut core::ffi::c_void,
38784    pub shader_float16_vector_atomics: u32,
38785}
38786impl Default for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
38787    #[inline]
38788    fn default() -> Self {
38789        Self {
38790            s_type: StructureType::from_raw(1000563000i32),
38791            p_next: core::ptr::null_mut(),
38792            shader_float16_vector_atomics: Default::default(),
38793        }
38794    }
38795}
38796///[`VkPhysicalDeviceMapMemoryPlacedFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMapMemoryPlacedFeaturesEXT.html)
38797/**
38798Provided by **VK_EXT_map_memory_placed**.*/
38799///
38800///# Extends
38801///- [`PhysicalDeviceFeatures2`]
38802///- [`DeviceCreateInfo`]
38803#[repr(C)]
38804#[derive(Copy, Clone, Debug)]
38805#[doc(alias = "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT")]
38806pub struct PhysicalDeviceMapMemoryPlacedFeaturesEXT {
38807    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT`.
38808    pub s_type: StructureType,
38809    ///Optional, may be null.
38810    pub p_next: *mut core::ffi::c_void,
38811    pub memory_map_placed: u32,
38812    pub memory_map_range_placed: u32,
38813    pub memory_unmap_reserve: u32,
38814}
38815impl Default for PhysicalDeviceMapMemoryPlacedFeaturesEXT {
38816    #[inline]
38817    fn default() -> Self {
38818        Self {
38819            s_type: StructureType::from_raw(1000272000i32),
38820            p_next: core::ptr::null_mut(),
38821            memory_map_placed: Default::default(),
38822            memory_map_range_placed: Default::default(),
38823            memory_unmap_reserve: Default::default(),
38824        }
38825    }
38826}
38827///[`VkPhysicalDeviceMapMemoryPlacedPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMapMemoryPlacedPropertiesEXT.html)
38828/**
38829Provided by **VK_EXT_map_memory_placed**.*/
38830/**
38831**Returned only**, filled by Vulkan, not constructed by the application.*/
38832///
38833///# Extends
38834///- [`PhysicalDeviceProperties2`]
38835#[repr(C)]
38836#[derive(Copy, Clone, Debug)]
38837#[doc(alias = "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT")]
38838pub struct PhysicalDeviceMapMemoryPlacedPropertiesEXT {
38839    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT`.
38840    pub s_type: StructureType,
38841    ///Optional, may be null.
38842    pub p_next: *mut core::ffi::c_void,
38843    pub min_placed_memory_map_alignment: u64,
38844}
38845impl Default for PhysicalDeviceMapMemoryPlacedPropertiesEXT {
38846    #[inline]
38847    fn default() -> Self {
38848        Self {
38849            s_type: StructureType::from_raw(1000272001i32),
38850            p_next: core::ptr::null_mut(),
38851            min_placed_memory_map_alignment: Default::default(),
38852        }
38853    }
38854}
38855///[`VkMemoryMapPlacedInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryMapPlacedInfoEXT.html)
38856/**
38857Provided by **VK_EXT_map_memory_placed**.*/
38858///
38859///# Extends
38860///- [`MemoryMapInfo`]
38861#[repr(C)]
38862#[derive(Copy, Clone, Debug)]
38863#[doc(alias = "VkMemoryMapPlacedInfoEXT")]
38864pub struct MemoryMapPlacedInfoEXT {
38865    ///Must be `VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT`.
38866    pub s_type: StructureType,
38867    ///Optional, may be null.
38868    pub p_next: *const core::ffi::c_void,
38869    pub p_placed_address: *mut core::ffi::c_void,
38870}
38871impl Default for MemoryMapPlacedInfoEXT {
38872    #[inline]
38873    fn default() -> Self {
38874        Self {
38875            s_type: StructureType::from_raw(1000272002i32),
38876            p_next: core::ptr::null(),
38877            p_placed_address: core::ptr::null_mut(),
38878        }
38879    }
38880}
38881///[`VkPhysicalDeviceShaderBfloat16FeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderBfloat16FeaturesKHR.html)
38882/**
38883Provided by **VK_KHR_shader_bfloat16**.*/
38884///
38885///# Extends
38886///- [`PhysicalDeviceFeatures2`]
38887///- [`DeviceCreateInfo`]
38888#[repr(C)]
38889#[derive(Copy, Clone, Debug)]
38890#[doc(alias = "VkPhysicalDeviceShaderBfloat16FeaturesKHR")]
38891pub struct PhysicalDeviceShaderBfloat16FeaturesKHR {
38892    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR`.
38893    pub s_type: StructureType,
38894    ///Optional, may be null.
38895    pub p_next: *mut core::ffi::c_void,
38896    pub shader_b_float16_type: u32,
38897    pub shader_b_float16_dot_product: u32,
38898    pub shader_b_float16_cooperative_matrix: u32,
38899}
38900impl Default for PhysicalDeviceShaderBfloat16FeaturesKHR {
38901    #[inline]
38902    fn default() -> Self {
38903        Self {
38904            s_type: StructureType::from_raw(1000141000i32),
38905            p_next: core::ptr::null_mut(),
38906            shader_b_float16_type: Default::default(),
38907            shader_b_float16_dot_product: Default::default(),
38908            shader_b_float16_cooperative_matrix: Default::default(),
38909        }
38910    }
38911}
38912///[`VkPhysicalDeviceRawAccessChainsFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceRawAccessChainsFeaturesNV.html)
38913/**
38914Provided by **VK_NV_raw_access_chains**.*/
38915///
38916///# Extends
38917///- [`PhysicalDeviceFeatures2`]
38918///- [`DeviceCreateInfo`]
38919#[repr(C)]
38920#[derive(Copy, Clone, Debug)]
38921#[doc(alias = "VkPhysicalDeviceRawAccessChainsFeaturesNV")]
38922pub struct PhysicalDeviceRawAccessChainsFeaturesNV {
38923    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV`.
38924    pub s_type: StructureType,
38925    ///Optional, may be null.
38926    pub p_next: *mut core::ffi::c_void,
38927    pub shader_raw_access_chains: u32,
38928}
38929impl Default for PhysicalDeviceRawAccessChainsFeaturesNV {
38930    #[inline]
38931    fn default() -> Self {
38932        Self {
38933            s_type: StructureType::from_raw(1000555000i32),
38934            p_next: core::ptr::null_mut(),
38935            shader_raw_access_chains: Default::default(),
38936        }
38937    }
38938}
38939///[`VkPhysicalDeviceCommandBufferInheritanceFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCommandBufferInheritanceFeaturesNV.html)
38940/**
38941Provided by **VK_NV_command_buffer_inheritance**.*/
38942///
38943///# Extends
38944///- [`PhysicalDeviceFeatures2`]
38945///- [`DeviceCreateInfo`]
38946#[repr(C)]
38947#[derive(Copy, Clone, Debug)]
38948#[doc(alias = "VkPhysicalDeviceCommandBufferInheritanceFeaturesNV")]
38949pub struct PhysicalDeviceCommandBufferInheritanceFeaturesNV {
38950    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV`.
38951    pub s_type: StructureType,
38952    ///Optional, may be null.
38953    pub p_next: *mut core::ffi::c_void,
38954    pub command_buffer_inheritance: u32,
38955}
38956impl Default for PhysicalDeviceCommandBufferInheritanceFeaturesNV {
38957    #[inline]
38958    fn default() -> Self {
38959        Self {
38960            s_type: StructureType::from_raw(1000559000i32),
38961            p_next: core::ptr::null_mut(),
38962            command_buffer_inheritance: Default::default(),
38963        }
38964    }
38965}
38966///[`VkPhysicalDeviceImageAlignmentControlFeaturesMESA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageAlignmentControlFeaturesMESA.html)
38967/**
38968Provided by **VK_MESA_image_alignment_control**.*/
38969///
38970///# Extends
38971///- [`PhysicalDeviceFeatures2`]
38972///- [`DeviceCreateInfo`]
38973#[repr(C)]
38974#[derive(Copy, Clone, Debug)]
38975#[doc(alias = "VkPhysicalDeviceImageAlignmentControlFeaturesMESA")]
38976pub struct PhysicalDeviceImageAlignmentControlFeaturesMESA {
38977    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA`.
38978    pub s_type: StructureType,
38979    ///Optional, may be null.
38980    pub p_next: *mut core::ffi::c_void,
38981    pub image_alignment_control: u32,
38982}
38983impl Default for PhysicalDeviceImageAlignmentControlFeaturesMESA {
38984    #[inline]
38985    fn default() -> Self {
38986        Self {
38987            s_type: StructureType::from_raw(1000575000i32),
38988            p_next: core::ptr::null_mut(),
38989            image_alignment_control: Default::default(),
38990        }
38991    }
38992}
38993///[`VkPhysicalDeviceImageAlignmentControlPropertiesMESA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceImageAlignmentControlPropertiesMESA.html)
38994/**
38995Provided by **VK_MESA_image_alignment_control**.*/
38996/**
38997**Returned only**, filled by Vulkan, not constructed by the application.*/
38998///
38999///# Extends
39000///- [`PhysicalDeviceProperties2`]
39001#[repr(C)]
39002#[derive(Copy, Clone, Debug)]
39003#[doc(alias = "VkPhysicalDeviceImageAlignmentControlPropertiesMESA")]
39004pub struct PhysicalDeviceImageAlignmentControlPropertiesMESA {
39005    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA`.
39006    pub s_type: StructureType,
39007    ///Optional, may be null.
39008    pub p_next: *mut core::ffi::c_void,
39009    pub supported_image_alignment_mask: u32,
39010}
39011impl Default for PhysicalDeviceImageAlignmentControlPropertiesMESA {
39012    #[inline]
39013    fn default() -> Self {
39014        Self {
39015            s_type: StructureType::from_raw(1000575001i32),
39016            p_next: core::ptr::null_mut(),
39017            supported_image_alignment_mask: Default::default(),
39018        }
39019    }
39020}
39021///[`VkImageAlignmentControlCreateInfoMESA`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageAlignmentControlCreateInfoMESA.html)
39022/**
39023Provided by **VK_MESA_image_alignment_control**.*/
39024///
39025///# Extends
39026///- [`ImageCreateInfo`]
39027#[repr(C)]
39028#[derive(Copy, Clone, Debug)]
39029#[doc(alias = "VkImageAlignmentControlCreateInfoMESA")]
39030pub struct ImageAlignmentControlCreateInfoMESA {
39031    ///Must be `VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA`.
39032    pub s_type: StructureType,
39033    ///Optional, may be null.
39034    pub p_next: *const core::ffi::c_void,
39035    pub maximum_requested_alignment: u32,
39036}
39037impl Default for ImageAlignmentControlCreateInfoMESA {
39038    #[inline]
39039    fn default() -> Self {
39040        Self {
39041            s_type: StructureType::from_raw(1000575002i32),
39042            p_next: core::ptr::null(),
39043            maximum_requested_alignment: Default::default(),
39044        }
39045    }
39046}
39047///[`VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT.html)
39048/**
39049Provided by **VK_EXT_shader_replicated_composites**.*/
39050///
39051///# Extends
39052///- [`PhysicalDeviceFeatures2`]
39053///- [`DeviceCreateInfo`]
39054#[repr(C)]
39055#[derive(Copy, Clone, Debug)]
39056#[doc(alias = "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT")]
39057pub struct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
39058    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT`.
39059    pub s_type: StructureType,
39060    ///Optional, may be null.
39061    pub p_next: *mut core::ffi::c_void,
39062    pub shader_replicated_composites: u32,
39063}
39064impl Default for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
39065    #[inline]
39066    fn default() -> Self {
39067        Self {
39068            s_type: StructureType::from_raw(1000564000i32),
39069            p_next: core::ptr::null_mut(),
39070            shader_replicated_composites: Default::default(),
39071        }
39072    }
39073}
39074///[`VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR.html)
39075/**
39076Provided by **VK_KHR_present_mode_fifo_latest_ready**.*/
39077///
39078///# Extends
39079///- [`PhysicalDeviceFeatures2`]
39080///- [`DeviceCreateInfo`]
39081#[repr(C)]
39082#[derive(Copy, Clone, Debug)]
39083#[doc(alias = "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR")]
39084pub struct PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
39085    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR`.
39086    pub s_type: StructureType,
39087    ///Optional, may be null.
39088    pub p_next: *mut core::ffi::c_void,
39089    pub present_mode_fifo_latest_ready: u32,
39090}
39091impl Default for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
39092    #[inline]
39093    fn default() -> Self {
39094        Self {
39095            s_type: StructureType::from_raw(1000361000i32),
39096            p_next: core::ptr::null_mut(),
39097            present_mode_fifo_latest_ready: Default::default(),
39098        }
39099    }
39100}
39101///[`VkDepthClampRangeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDepthClampRangeEXT.html)
39102/**
39103Provided by **VK_EXT_depth_clamp_control**.*/
39104#[repr(C)]
39105#[derive(Copy, Clone, Debug)]
39106#[doc(alias = "VkDepthClampRangeEXT")]
39107pub struct DepthClampRangeEXT {
39108    pub min_depth_clamp: f32,
39109    pub max_depth_clamp: f32,
39110}
39111impl Default for DepthClampRangeEXT {
39112    #[inline]
39113    fn default() -> Self {
39114        unsafe { core::mem::zeroed() }
39115    }
39116}
39117///[`VkPhysicalDeviceCooperativeMatrix2FeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.html)
39118/**
39119Provided by **VK_NV_cooperative_matrix2**.*/
39120///
39121///# Extends
39122///- [`PhysicalDeviceFeatures2`]
39123///- [`DeviceCreateInfo`]
39124#[repr(C)]
39125#[derive(Copy, Clone, Debug)]
39126#[doc(alias = "VkPhysicalDeviceCooperativeMatrix2FeaturesNV")]
39127pub struct PhysicalDeviceCooperativeMatrix2FeaturesNV {
39128    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV`.
39129    pub s_type: StructureType,
39130    ///Optional, may be null.
39131    pub p_next: *mut core::ffi::c_void,
39132    pub cooperative_matrix_workgroup_scope: u32,
39133    pub cooperative_matrix_flexible_dimensions: u32,
39134    pub cooperative_matrix_reductions: u32,
39135    pub cooperative_matrix_conversions: u32,
39136    pub cooperative_matrix_per_element_operations: u32,
39137    pub cooperative_matrix_tensor_addressing: u32,
39138    pub cooperative_matrix_block_loads: u32,
39139}
39140impl Default for PhysicalDeviceCooperativeMatrix2FeaturesNV {
39141    #[inline]
39142    fn default() -> Self {
39143        Self {
39144            s_type: StructureType::from_raw(1000593000i32),
39145            p_next: core::ptr::null_mut(),
39146            cooperative_matrix_workgroup_scope: Default::default(),
39147            cooperative_matrix_flexible_dimensions: Default::default(),
39148            cooperative_matrix_reductions: Default::default(),
39149            cooperative_matrix_conversions: Default::default(),
39150            cooperative_matrix_per_element_operations: Default::default(),
39151            cooperative_matrix_tensor_addressing: Default::default(),
39152            cooperative_matrix_block_loads: Default::default(),
39153        }
39154    }
39155}
39156///[`VkPhysicalDeviceCooperativeMatrix2PropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.html)
39157/**
39158Provided by **VK_NV_cooperative_matrix2**.*/
39159/**
39160**Returned only**, filled by Vulkan, not constructed by the application.*/
39161///
39162///# Extends
39163///- [`PhysicalDeviceProperties2`]
39164#[repr(C)]
39165#[derive(Copy, Clone, Debug)]
39166#[doc(alias = "VkPhysicalDeviceCooperativeMatrix2PropertiesNV")]
39167pub struct PhysicalDeviceCooperativeMatrix2PropertiesNV {
39168    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV`.
39169    pub s_type: StructureType,
39170    ///Optional, may be null.
39171    pub p_next: *mut core::ffi::c_void,
39172    pub cooperative_matrix_workgroup_scope_max_workgroup_size: u32,
39173    pub cooperative_matrix_flexible_dimensions_max_dimension: u32,
39174    pub cooperative_matrix_workgroup_scope_reserved_shared_memory: u32,
39175}
39176impl Default for PhysicalDeviceCooperativeMatrix2PropertiesNV {
39177    #[inline]
39178    fn default() -> Self {
39179        Self {
39180            s_type: StructureType::from_raw(1000593002i32),
39181            p_next: core::ptr::null_mut(),
39182            cooperative_matrix_workgroup_scope_max_workgroup_size: Default::default(),
39183            cooperative_matrix_flexible_dimensions_max_dimension: Default::default(),
39184            cooperative_matrix_workgroup_scope_reserved_shared_memory: Default::default(),
39185        }
39186    }
39187}
39188///[`VkCooperativeMatrixFlexibleDimensionsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.html)
39189/**
39190Provided by **VK_NV_cooperative_matrix2**.*/
39191/**
39192**Returned only**, filled by Vulkan, not constructed by the application.*/
39193#[repr(C)]
39194#[derive(Copy, Clone, Debug)]
39195#[doc(alias = "VkCooperativeMatrixFlexibleDimensionsPropertiesNV")]
39196pub struct CooperativeMatrixFlexibleDimensionsPropertiesNV {
39197    ///Must be `VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV`.
39198    pub s_type: StructureType,
39199    ///Optional, may be null.
39200    pub p_next: *mut core::ffi::c_void,
39201    pub m_granularity: u32,
39202    pub n_granularity: u32,
39203    pub k_granularity: u32,
39204    pub a_type: ComponentTypeKHR,
39205    pub b_type: ComponentTypeKHR,
39206    pub c_type: ComponentTypeKHR,
39207    pub result_type: ComponentTypeKHR,
39208    pub saturating_accumulation: u32,
39209    pub scope: ScopeKHR,
39210    pub workgroup_invocations: u32,
39211}
39212impl Default for CooperativeMatrixFlexibleDimensionsPropertiesNV {
39213    #[inline]
39214    fn default() -> Self {
39215        Self {
39216            s_type: StructureType::from_raw(1000593001i32),
39217            p_next: core::ptr::null_mut(),
39218            m_granularity: Default::default(),
39219            n_granularity: Default::default(),
39220            k_granularity: Default::default(),
39221            a_type: Default::default(),
39222            b_type: Default::default(),
39223            c_type: Default::default(),
39224            result_type: Default::default(),
39225            saturating_accumulation: Default::default(),
39226            scope: Default::default(),
39227            workgroup_invocations: Default::default(),
39228        }
39229    }
39230}
39231///[`VkPhysicalDeviceHdrVividFeaturesHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceHdrVividFeaturesHUAWEI.html)
39232/**
39233Provided by **VK_HUAWEI_hdr_vivid**.*/
39234///
39235///# Extends
39236///- [`PhysicalDeviceFeatures2`]
39237///- [`DeviceCreateInfo`]
39238#[repr(C)]
39239#[derive(Copy, Clone, Debug)]
39240#[doc(alias = "VkPhysicalDeviceHdrVividFeaturesHUAWEI")]
39241pub struct PhysicalDeviceHdrVividFeaturesHUAWEI {
39242    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI`.
39243    pub s_type: StructureType,
39244    ///Optional, may be null.
39245    pub p_next: *mut core::ffi::c_void,
39246    pub hdr_vivid: u32,
39247}
39248impl Default for PhysicalDeviceHdrVividFeaturesHUAWEI {
39249    #[inline]
39250    fn default() -> Self {
39251        Self {
39252            s_type: StructureType::from_raw(1000590000i32),
39253            p_next: core::ptr::null_mut(),
39254            hdr_vivid: Default::default(),
39255        }
39256    }
39257}
39258///[`VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT.html)
39259/**
39260Provided by **VK_EXT_vertex_attribute_robustness**.*/
39261///
39262///# Extends
39263///- [`PhysicalDeviceFeatures2`]
39264///- [`DeviceCreateInfo`]
39265#[repr(C)]
39266#[derive(Copy, Clone, Debug)]
39267#[doc(alias = "VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT")]
39268pub struct PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
39269    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT`.
39270    pub s_type: StructureType,
39271    ///Optional, may be null.
39272    pub p_next: *mut core::ffi::c_void,
39273    pub vertex_attribute_robustness: u32,
39274}
39275impl Default for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
39276    #[inline]
39277    fn default() -> Self {
39278        Self {
39279            s_type: StructureType::from_raw(1000608000i32),
39280            p_next: core::ptr::null_mut(),
39281            vertex_attribute_robustness: Default::default(),
39282        }
39283    }
39284}
39285///[`VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX.html)
39286/**
39287Provided by **VK_AMDX_dense_geometry_format**.*/
39288///
39289///# Extends
39290///- [`PhysicalDeviceFeatures2`]
39291///- [`DeviceCreateInfo`]
39292#[repr(C)]
39293#[derive(Copy, Clone, Debug)]
39294#[doc(alias = "VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX")]
39295pub struct PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
39296    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX`.
39297    pub s_type: StructureType,
39298    ///Optional, may be null.
39299    pub p_next: *mut core::ffi::c_void,
39300    pub dense_geometry_format: u32,
39301}
39302impl Default for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
39303    #[inline]
39304    fn default() -> Self {
39305        Self {
39306            s_type: StructureType::from_raw(1000478000i32),
39307            p_next: core::ptr::null_mut(),
39308            dense_geometry_format: Default::default(),
39309        }
39310    }
39311}
39312///[`VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX.html)
39313/**
39314Provided by **VK_AMDX_dense_geometry_format**.*/
39315///
39316///# Extends
39317///- [`AccelerationStructureGeometryKHR`]
39318///
39319///# Extended By
39320///- [`AccelerationStructureTrianglesOpacityMicromapEXT`]
39321#[repr(C)]
39322#[derive(Copy, Clone, Debug)]
39323#[doc(alias = "VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX")]
39324pub struct AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {
39325    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX`.
39326    pub s_type: StructureType,
39327    ///Optional, may be null.
39328    pub p_next: *const core::ffi::c_void,
39329    pub compressed_data: DeviceOrHostAddressConstKHR,
39330    pub data_size: u64,
39331    pub num_triangles: u32,
39332    pub num_vertices: u32,
39333    pub max_primitive_index: u32,
39334    pub max_geometry_index: u32,
39335    pub format: CompressedTriangleFormatAMDX,
39336}
39337impl Default for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {
39338    #[inline]
39339    fn default() -> Self {
39340        Self {
39341            s_type: StructureType::from_raw(1000478001i32),
39342            p_next: core::ptr::null(),
39343            compressed_data: Default::default(),
39344            data_size: Default::default(),
39345            num_triangles: Default::default(),
39346            num_vertices: Default::default(),
39347            max_primitive_index: Default::default(),
39348            max_geometry_index: Default::default(),
39349            format: Default::default(),
39350        }
39351    }
39352}
39353///[`VkPhysicalDeviceDepthClampZeroOneFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthClampZeroOneFeaturesKHR.html)
39354/**
39355Provided by **VK_KHR_depth_clamp_zero_one**.*/
39356///
39357///# Extends
39358///- [`PhysicalDeviceFeatures2`]
39359///- [`DeviceCreateInfo`]
39360#[repr(C)]
39361#[derive(Copy, Clone, Debug)]
39362#[doc(alias = "VkPhysicalDeviceDepthClampZeroOneFeaturesKHR")]
39363pub struct PhysicalDeviceDepthClampZeroOneFeaturesKHR {
39364    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR`.
39365    pub s_type: StructureType,
39366    ///Optional, may be null.
39367    pub p_next: *mut core::ffi::c_void,
39368    pub depth_clamp_zero_one: u32,
39369}
39370impl Default for PhysicalDeviceDepthClampZeroOneFeaturesKHR {
39371    #[inline]
39372    fn default() -> Self {
39373        Self {
39374            s_type: StructureType::from_raw(1000421000i32),
39375            p_next: core::ptr::null_mut(),
39376            depth_clamp_zero_one: Default::default(),
39377        }
39378    }
39379}
39380///[`VkPhysicalDeviceCooperativeVectorFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeVectorFeaturesNV.html)
39381/**
39382Provided by **VK_NV_cooperative_vector**.*/
39383///
39384///# Extends
39385///- [`PhysicalDeviceFeatures2`]
39386///- [`DeviceCreateInfo`]
39387#[repr(C)]
39388#[derive(Copy, Clone, Debug)]
39389#[doc(alias = "VkPhysicalDeviceCooperativeVectorFeaturesNV")]
39390pub struct PhysicalDeviceCooperativeVectorFeaturesNV {
39391    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV`.
39392    pub s_type: StructureType,
39393    ///Optional, may be null.
39394    pub p_next: *mut core::ffi::c_void,
39395    pub cooperative_vector: u32,
39396    pub cooperative_vector_training: u32,
39397}
39398impl Default for PhysicalDeviceCooperativeVectorFeaturesNV {
39399    #[inline]
39400    fn default() -> Self {
39401        Self {
39402            s_type: StructureType::from_raw(1000491000i32),
39403            p_next: core::ptr::null_mut(),
39404            cooperative_vector: Default::default(),
39405            cooperative_vector_training: Default::default(),
39406        }
39407    }
39408}
39409///[`VkCooperativeVectorPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeVectorPropertiesNV.html)
39410/**
39411Provided by **VK_NV_cooperative_vector**.*/
39412#[repr(C)]
39413#[derive(Copy, Clone, Debug)]
39414#[doc(alias = "VkCooperativeVectorPropertiesNV")]
39415pub struct CooperativeVectorPropertiesNV {
39416    ///Must be `VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV`.
39417    pub s_type: StructureType,
39418    ///Optional, may be null.
39419    pub p_next: *mut core::ffi::c_void,
39420    pub input_type: ComponentTypeKHR,
39421    pub input_interpretation: ComponentTypeKHR,
39422    pub matrix_interpretation: ComponentTypeKHR,
39423    pub bias_interpretation: ComponentTypeKHR,
39424    pub result_type: ComponentTypeKHR,
39425    pub transpose: u32,
39426}
39427impl Default for CooperativeVectorPropertiesNV {
39428    #[inline]
39429    fn default() -> Self {
39430        Self {
39431            s_type: StructureType::from_raw(1000491002i32),
39432            p_next: core::ptr::null_mut(),
39433            input_type: Default::default(),
39434            input_interpretation: Default::default(),
39435            matrix_interpretation: Default::default(),
39436            bias_interpretation: Default::default(),
39437            result_type: Default::default(),
39438            transpose: Default::default(),
39439        }
39440    }
39441}
39442///[`VkPhysicalDeviceCooperativeVectorPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCooperativeVectorPropertiesNV.html)
39443/**
39444Provided by **VK_NV_cooperative_vector**.*/
39445/**
39446**Returned only**, filled by Vulkan, not constructed by the application.*/
39447///
39448///# Extends
39449///- [`PhysicalDeviceProperties2`]
39450#[repr(C)]
39451#[derive(Copy, Clone, Debug)]
39452#[doc(alias = "VkPhysicalDeviceCooperativeVectorPropertiesNV")]
39453pub struct PhysicalDeviceCooperativeVectorPropertiesNV {
39454    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV`.
39455    pub s_type: StructureType,
39456    ///Optional, may be null.
39457    pub p_next: *mut core::ffi::c_void,
39458    pub cooperative_vector_supported_stages: ShaderStageFlags,
39459    pub cooperative_vector_training_float16_accumulation: u32,
39460    pub cooperative_vector_training_float32_accumulation: u32,
39461    pub max_cooperative_vector_components: u32,
39462}
39463impl Default for PhysicalDeviceCooperativeVectorPropertiesNV {
39464    #[inline]
39465    fn default() -> Self {
39466        Self {
39467            s_type: StructureType::from_raw(1000491001i32),
39468            p_next: core::ptr::null_mut(),
39469            cooperative_vector_supported_stages: Default::default(),
39470            cooperative_vector_training_float16_accumulation: Default::default(),
39471            cooperative_vector_training_float32_accumulation: Default::default(),
39472            max_cooperative_vector_components: Default::default(),
39473        }
39474    }
39475}
39476///[`VkConvertCooperativeVectorMatrixInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkConvertCooperativeVectorMatrixInfoNV.html)
39477/**
39478Provided by **VK_NV_cooperative_vector**.*/
39479#[repr(C)]
39480#[derive(Copy, Clone, Debug)]
39481#[doc(alias = "VkConvertCooperativeVectorMatrixInfoNV")]
39482pub struct ConvertCooperativeVectorMatrixInfoNV {
39483    ///Must be `VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV`.
39484    pub s_type: StructureType,
39485    ///Optional, may be null.
39486    pub p_next: *const core::ffi::c_void,
39487    pub src_size: usize,
39488    pub src_data: DeviceOrHostAddressConstKHR,
39489    ///Optional, may be null.
39490    pub p_dst_size: *mut usize,
39491    pub dst_data: DeviceOrHostAddressKHR,
39492    pub src_component_type: ComponentTypeKHR,
39493    pub dst_component_type: ComponentTypeKHR,
39494    pub num_rows: u32,
39495    pub num_columns: u32,
39496    pub src_layout: CooperativeVectorMatrixLayoutNV,
39497    pub src_stride: usize,
39498    pub dst_layout: CooperativeVectorMatrixLayoutNV,
39499    pub dst_stride: usize,
39500}
39501impl Default for ConvertCooperativeVectorMatrixInfoNV {
39502    #[inline]
39503    fn default() -> Self {
39504        Self {
39505            s_type: StructureType::from_raw(1000491004i32),
39506            p_next: core::ptr::null(),
39507            src_size: Default::default(),
39508            src_data: Default::default(),
39509            p_dst_size: core::ptr::null_mut(),
39510            dst_data: Default::default(),
39511            src_component_type: Default::default(),
39512            dst_component_type: Default::default(),
39513            num_rows: Default::default(),
39514            num_columns: Default::default(),
39515            src_layout: Default::default(),
39516            src_stride: Default::default(),
39517            dst_layout: Default::default(),
39518            dst_stride: Default::default(),
39519        }
39520    }
39521}
39522///[`VkPhysicalDeviceTileShadingFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTileShadingFeaturesQCOM.html)
39523/**
39524Provided by **VK_QCOM_tile_shading**.*/
39525///
39526///# Extends
39527///- [`PhysicalDeviceFeatures2`]
39528///- [`DeviceCreateInfo`]
39529#[repr(C)]
39530#[derive(Copy, Clone, Debug)]
39531#[doc(alias = "VkPhysicalDeviceTileShadingFeaturesQCOM")]
39532pub struct PhysicalDeviceTileShadingFeaturesQCOM {
39533    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM`.
39534    pub s_type: StructureType,
39535    ///Optional, may be null.
39536    pub p_next: *mut core::ffi::c_void,
39537    pub tile_shading: u32,
39538    pub tile_shading_fragment_stage: u32,
39539    pub tile_shading_color_attachments: u32,
39540    pub tile_shading_depth_attachments: u32,
39541    pub tile_shading_stencil_attachments: u32,
39542    pub tile_shading_input_attachments: u32,
39543    pub tile_shading_sampled_attachments: u32,
39544    pub tile_shading_per_tile_draw: u32,
39545    pub tile_shading_per_tile_dispatch: u32,
39546    pub tile_shading_dispatch_tile: u32,
39547    pub tile_shading_apron: u32,
39548    pub tile_shading_anisotropic_apron: u32,
39549    pub tile_shading_atomic_ops: u32,
39550    pub tile_shading_image_processing: u32,
39551}
39552impl Default for PhysicalDeviceTileShadingFeaturesQCOM {
39553    #[inline]
39554    fn default() -> Self {
39555        Self {
39556            s_type: StructureType::from_raw(1000309000i32),
39557            p_next: core::ptr::null_mut(),
39558            tile_shading: Default::default(),
39559            tile_shading_fragment_stage: Default::default(),
39560            tile_shading_color_attachments: Default::default(),
39561            tile_shading_depth_attachments: Default::default(),
39562            tile_shading_stencil_attachments: Default::default(),
39563            tile_shading_input_attachments: Default::default(),
39564            tile_shading_sampled_attachments: Default::default(),
39565            tile_shading_per_tile_draw: Default::default(),
39566            tile_shading_per_tile_dispatch: Default::default(),
39567            tile_shading_dispatch_tile: Default::default(),
39568            tile_shading_apron: Default::default(),
39569            tile_shading_anisotropic_apron: Default::default(),
39570            tile_shading_atomic_ops: Default::default(),
39571            tile_shading_image_processing: Default::default(),
39572        }
39573    }
39574}
39575///[`VkPhysicalDeviceTileShadingPropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTileShadingPropertiesQCOM.html)
39576/**
39577Provided by **VK_QCOM_tile_shading**.*/
39578/**
39579**Returned only**, filled by Vulkan, not constructed by the application.*/
39580///
39581///# Extends
39582///- [`PhysicalDeviceProperties2`]
39583#[repr(C)]
39584#[derive(Copy, Clone, Debug)]
39585#[doc(alias = "VkPhysicalDeviceTileShadingPropertiesQCOM")]
39586pub struct PhysicalDeviceTileShadingPropertiesQCOM {
39587    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM`.
39588    pub s_type: StructureType,
39589    ///Optional, may be null.
39590    pub p_next: *mut core::ffi::c_void,
39591    pub max_apron_size: u32,
39592    pub prefer_non_coherent: u32,
39593    pub tile_granularity: Extent2D,
39594    pub max_tile_shading_rate: Extent2D,
39595}
39596impl Default for PhysicalDeviceTileShadingPropertiesQCOM {
39597    #[inline]
39598    fn default() -> Self {
39599        Self {
39600            s_type: StructureType::from_raw(1000309001i32),
39601            p_next: core::ptr::null_mut(),
39602            max_apron_size: Default::default(),
39603            prefer_non_coherent: Default::default(),
39604            tile_granularity: Default::default(),
39605            max_tile_shading_rate: Default::default(),
39606        }
39607    }
39608}
39609///[`VkRenderPassTileShadingCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassTileShadingCreateInfoQCOM.html)
39610/**
39611Provided by **VK_QCOM_tile_shading**.*/
39612///
39613///# Extends
39614///- [`RenderPassCreateInfo`]
39615///- [`RenderPassCreateInfo2`]
39616///- [`RenderingInfo`]
39617///- [`CommandBufferInheritanceInfo`]
39618#[repr(C)]
39619#[derive(Copy, Clone, Debug)]
39620#[doc(alias = "VkRenderPassTileShadingCreateInfoQCOM")]
39621pub struct RenderPassTileShadingCreateInfoQCOM {
39622    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM`.
39623    pub s_type: StructureType,
39624    ///Optional, may be null.
39625    pub p_next: *const core::ffi::c_void,
39626    pub flags: TileShadingRenderPassFlagsQCOM,
39627    pub tile_apron_size: Extent2D,
39628}
39629impl Default for RenderPassTileShadingCreateInfoQCOM {
39630    #[inline]
39631    fn default() -> Self {
39632        Self {
39633            s_type: StructureType::from_raw(1000309002i32),
39634            p_next: core::ptr::null(),
39635            flags: Default::default(),
39636            tile_apron_size: Default::default(),
39637        }
39638    }
39639}
39640///[`VkPerTileBeginInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerTileBeginInfoQCOM.html)
39641/**
39642Provided by **VK_QCOM_tile_shading**.*/
39643#[repr(C)]
39644#[derive(Copy, Clone, Debug)]
39645#[doc(alias = "VkPerTileBeginInfoQCOM")]
39646pub struct PerTileBeginInfoQCOM {
39647    ///Must be `VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM`.
39648    pub s_type: StructureType,
39649    ///Optional, may be null.
39650    pub p_next: *const core::ffi::c_void,
39651}
39652impl Default for PerTileBeginInfoQCOM {
39653    #[inline]
39654    fn default() -> Self {
39655        Self {
39656            s_type: StructureType::from_raw(1000309003i32),
39657            p_next: core::ptr::null(),
39658        }
39659    }
39660}
39661///[`VkPerTileEndInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerTileEndInfoQCOM.html)
39662/**
39663Provided by **VK_QCOM_tile_shading**.*/
39664#[repr(C)]
39665#[derive(Copy, Clone, Debug)]
39666#[doc(alias = "VkPerTileEndInfoQCOM")]
39667pub struct PerTileEndInfoQCOM {
39668    ///Must be `VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM`.
39669    pub s_type: StructureType,
39670    ///Optional, may be null.
39671    pub p_next: *const core::ffi::c_void,
39672}
39673impl Default for PerTileEndInfoQCOM {
39674    #[inline]
39675    fn default() -> Self {
39676        Self {
39677            s_type: StructureType::from_raw(1000309004i32),
39678            p_next: core::ptr::null(),
39679        }
39680    }
39681}
39682///[`VkDispatchTileInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchTileInfoQCOM.html)
39683/**
39684Provided by **VK_QCOM_tile_shading**.*/
39685#[repr(C)]
39686#[derive(Copy, Clone, Debug)]
39687#[doc(alias = "VkDispatchTileInfoQCOM")]
39688pub struct DispatchTileInfoQCOM {
39689    ///Must be `VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM`.
39690    pub s_type: StructureType,
39691    ///Optional, may be null.
39692    pub p_next: *const core::ffi::c_void,
39693}
39694impl Default for DispatchTileInfoQCOM {
39695    #[inline]
39696    fn default() -> Self {
39697        Self {
39698            s_type: StructureType::from_raw(1000309005i32),
39699            p_next: core::ptr::null(),
39700        }
39701    }
39702}
39703///[`VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE.html)
39704/**
39705Provided by **VK_VALVE_fragment_density_map_layered**.*/
39706/**
39707**Returned only**, filled by Vulkan, not constructed by the application.*/
39708///
39709///# Extends
39710///- [`PhysicalDeviceProperties2`]
39711#[repr(C)]
39712#[derive(Copy, Clone, Debug)]
39713#[doc(alias = "VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE")]
39714pub struct PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
39715    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE`.
39716    pub s_type: StructureType,
39717    ///Optional, may be null.
39718    pub p_next: *mut core::ffi::c_void,
39719    pub max_fragment_density_map_layers: u32,
39720}
39721impl Default for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
39722    #[inline]
39723    fn default() -> Self {
39724        Self {
39725            s_type: StructureType::from_raw(1000611001i32),
39726            p_next: core::ptr::null_mut(),
39727            max_fragment_density_map_layers: Default::default(),
39728        }
39729    }
39730}
39731///[`VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE.html)
39732/**
39733Provided by **VK_VALVE_fragment_density_map_layered**.*/
39734///
39735///# Extends
39736///- [`PhysicalDeviceFeatures2`]
39737///- [`DeviceCreateInfo`]
39738#[repr(C)]
39739#[derive(Copy, Clone, Debug)]
39740#[doc(alias = "VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE")]
39741pub struct PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
39742    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE`.
39743    pub s_type: StructureType,
39744    ///Optional, may be null.
39745    pub p_next: *mut core::ffi::c_void,
39746    pub fragment_density_map_layered: u32,
39747}
39748impl Default for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
39749    #[inline]
39750    fn default() -> Self {
39751        Self {
39752            s_type: StructureType::from_raw(1000611000i32),
39753            p_next: core::ptr::null_mut(),
39754            fragment_density_map_layered: Default::default(),
39755        }
39756    }
39757}
39758///[`VkPipelineFragmentDensityMapLayeredCreateInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPipelineFragmentDensityMapLayeredCreateInfoVALVE.html)
39759/**
39760Provided by **VK_VALVE_fragment_density_map_layered**.*/
39761///
39762///# Extends
39763///- [`GraphicsPipelineCreateInfo`]
39764#[repr(C)]
39765#[derive(Copy, Clone, Debug)]
39766#[doc(alias = "VkPipelineFragmentDensityMapLayeredCreateInfoVALVE")]
39767pub struct PipelineFragmentDensityMapLayeredCreateInfoVALVE {
39768    ///Must be `VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE`.
39769    pub s_type: StructureType,
39770    ///Optional, may be null.
39771    pub p_next: *const core::ffi::c_void,
39772    pub max_fragment_density_map_layers: u32,
39773}
39774impl Default for PipelineFragmentDensityMapLayeredCreateInfoVALVE {
39775    #[inline]
39776    fn default() -> Self {
39777        Self {
39778            s_type: StructureType::from_raw(1000611002i32),
39779            p_next: core::ptr::null(),
39780            max_fragment_density_map_layers: Default::default(),
39781        }
39782    }
39783}
39784///[`VkSetPresentConfigNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSetPresentConfigNV.html)
39785/**
39786Provided by **VK_NV_present_metering**.*/
39787///
39788///# Extends
39789///- [`PresentInfoKHR`]
39790#[repr(C)]
39791#[derive(Copy, Clone, Debug)]
39792#[doc(alias = "VkSetPresentConfigNV")]
39793pub struct SetPresentConfigNV {
39794    ///Must be `VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV`.
39795    pub s_type: StructureType,
39796    ///Optional, may be null.
39797    pub p_next: *const core::ffi::c_void,
39798    pub num_frames_per_batch: u32,
39799    pub present_config_feedback: u32,
39800}
39801impl Default for SetPresentConfigNV {
39802    #[inline]
39803    fn default() -> Self {
39804        Self {
39805            s_type: StructureType::from_raw(1000613000i32),
39806            p_next: core::ptr::null(),
39807            num_frames_per_batch: Default::default(),
39808            present_config_feedback: Default::default(),
39809        }
39810    }
39811}
39812///[`VkPhysicalDevicePresentMeteringFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentMeteringFeaturesNV.html)
39813/**
39814Provided by **VK_NV_present_metering**.*/
39815///
39816///# Extends
39817///- [`PhysicalDeviceFeatures2`]
39818///- [`DeviceCreateInfo`]
39819#[repr(C)]
39820#[derive(Copy, Clone, Debug)]
39821#[doc(alias = "VkPhysicalDevicePresentMeteringFeaturesNV")]
39822pub struct PhysicalDevicePresentMeteringFeaturesNV {
39823    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV`.
39824    pub s_type: StructureType,
39825    ///Optional, may be null.
39826    pub p_next: *mut core::ffi::c_void,
39827    pub present_metering: u32,
39828}
39829impl Default for PhysicalDevicePresentMeteringFeaturesNV {
39830    #[inline]
39831    fn default() -> Self {
39832        Self {
39833            s_type: StructureType::from_raw(1000613001i32),
39834            p_next: core::ptr::null_mut(),
39835            present_metering: Default::default(),
39836        }
39837    }
39838}
39839///[`VkExternalComputeQueueDeviceCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalComputeQueueDeviceCreateInfoNV.html)
39840/**
39841Provided by **VK_NV_external_compute_queue**.*/
39842///
39843///# Extends
39844///- [`DeviceCreateInfo`]
39845#[repr(C)]
39846#[derive(Copy, Clone, Debug)]
39847#[doc(alias = "VkExternalComputeQueueDeviceCreateInfoNV")]
39848pub struct ExternalComputeQueueDeviceCreateInfoNV {
39849    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV`.
39850    pub s_type: StructureType,
39851    ///Optional, may be null.
39852    pub p_next: *const core::ffi::c_void,
39853    pub reserved_external_queues: u32,
39854}
39855impl Default for ExternalComputeQueueDeviceCreateInfoNV {
39856    #[inline]
39857    fn default() -> Self {
39858        Self {
39859            s_type: StructureType::from_raw(1000556000i32),
39860            p_next: core::ptr::null(),
39861            reserved_external_queues: Default::default(),
39862        }
39863    }
39864}
39865///[`VkExternalComputeQueueCreateInfoNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalComputeQueueCreateInfoNV.html)
39866/**
39867Provided by **VK_NV_external_compute_queue**.*/
39868#[repr(C)]
39869#[derive(Copy, Clone, Debug)]
39870#[doc(alias = "VkExternalComputeQueueCreateInfoNV")]
39871pub struct ExternalComputeQueueCreateInfoNV {
39872    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV`.
39873    pub s_type: StructureType,
39874    ///Optional, may be null.
39875    pub p_next: *const core::ffi::c_void,
39876    pub preferred_queue: Queue,
39877}
39878impl Default for ExternalComputeQueueCreateInfoNV {
39879    #[inline]
39880    fn default() -> Self {
39881        Self {
39882            s_type: StructureType::from_raw(1000556001i32),
39883            p_next: core::ptr::null(),
39884            preferred_queue: Default::default(),
39885        }
39886    }
39887}
39888///[`VkExternalComputeQueueDataParamsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalComputeQueueDataParamsNV.html)
39889/**
39890Provided by **VK_NV_external_compute_queue**.*/
39891#[repr(C)]
39892#[derive(Copy, Clone, Debug)]
39893#[doc(alias = "VkExternalComputeQueueDataParamsNV")]
39894pub struct ExternalComputeQueueDataParamsNV {
39895    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV`.
39896    pub s_type: StructureType,
39897    ///Optional, may be null.
39898    pub p_next: *const core::ffi::c_void,
39899    pub device_index: u32,
39900}
39901impl Default for ExternalComputeQueueDataParamsNV {
39902    #[inline]
39903    fn default() -> Self {
39904        Self {
39905            s_type: StructureType::from_raw(1000556002i32),
39906            p_next: core::ptr::null(),
39907            device_index: Default::default(),
39908        }
39909    }
39910}
39911///[`VkPhysicalDeviceExternalComputeQueuePropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalComputeQueuePropertiesNV.html)
39912/**
39913Provided by **VK_NV_external_compute_queue**.*/
39914/**
39915**Returned only**, filled by Vulkan, not constructed by the application.*/
39916///
39917///# Extends
39918///- [`PhysicalDeviceProperties2`]
39919#[repr(C)]
39920#[derive(Copy, Clone, Debug)]
39921#[doc(alias = "VkPhysicalDeviceExternalComputeQueuePropertiesNV")]
39922pub struct PhysicalDeviceExternalComputeQueuePropertiesNV {
39923    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV`.
39924    pub s_type: StructureType,
39925    ///Optional, may be null.
39926    pub p_next: *mut core::ffi::c_void,
39927    pub external_data_size: u32,
39928    pub max_external_queues: u32,
39929}
39930impl Default for PhysicalDeviceExternalComputeQueuePropertiesNV {
39931    #[inline]
39932    fn default() -> Self {
39933        Self {
39934            s_type: StructureType::from_raw(1000556003i32),
39935            p_next: core::ptr::null_mut(),
39936            external_data_size: Default::default(),
39937            max_external_queues: Default::default(),
39938        }
39939    }
39940}
39941///[`VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT.html)
39942/**
39943Provided by **VK_EXT_shader_uniform_buffer_unsized_array**.*/
39944///
39945///# Extends
39946///- [`PhysicalDeviceFeatures2`]
39947///- [`DeviceCreateInfo`]
39948#[repr(C)]
39949#[derive(Copy, Clone, Debug)]
39950#[doc(alias = "VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT")]
39951pub struct PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
39952    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT`.
39953    pub s_type: StructureType,
39954    ///Optional, may be null.
39955    pub p_next: *mut core::ffi::c_void,
39956    pub shader_uniform_buffer_unsized_array: u32,
39957}
39958impl Default for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
39959    #[inline]
39960    fn default() -> Self {
39961        Self {
39962            s_type: StructureType::from_raw(1000642000i32),
39963            p_next: core::ptr::null_mut(),
39964            shader_uniform_buffer_unsized_array: Default::default(),
39965        }
39966    }
39967}
39968///[`VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE.html)
39969/**
39970Provided by **VK_VALVE_shader_mixed_float_dot_product**.*/
39971///
39972///# Extends
39973///- [`PhysicalDeviceFeatures2`]
39974///- [`DeviceCreateInfo`]
39975#[repr(C)]
39976#[derive(Copy, Clone, Debug)]
39977#[doc(alias = "VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE")]
39978pub struct PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {
39979    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MIXED_FLOAT_DOT_PRODUCT_FEATURES_VALVE`.
39980    pub s_type: StructureType,
39981    ///Optional, may be null.
39982    pub p_next: *mut core::ffi::c_void,
39983    pub shader_mixed_float_dot_product_float16_acc_float32: u32,
39984    pub shader_mixed_float_dot_product_float16_acc_float16: u32,
39985    pub shader_mixed_float_dot_product_b_float16_acc: u32,
39986    pub shader_mixed_float_dot_product_float8_acc_float32: u32,
39987}
39988impl Default for PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {
39989    #[inline]
39990    fn default() -> Self {
39991        Self {
39992            s_type: StructureType::from_raw(1000673000i32),
39993            p_next: core::ptr::null_mut(),
39994            shader_mixed_float_dot_product_float16_acc_float32: Default::default(),
39995            shader_mixed_float_dot_product_float16_acc_float16: Default::default(),
39996            shader_mixed_float_dot_product_b_float16_acc: Default::default(),
39997            shader_mixed_float_dot_product_float8_acc_float32: Default::default(),
39998        }
39999    }
40000}
40001///[`VkPhysicalDeviceFormatPackFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFormatPackFeaturesARM.html)
40002/**
40003Provided by **VK_ARM_format_pack**.*/
40004///
40005///# Extends
40006///- [`PhysicalDeviceFeatures2`]
40007///- [`DeviceCreateInfo`]
40008#[repr(C)]
40009#[derive(Copy, Clone, Debug)]
40010#[doc(alias = "VkPhysicalDeviceFormatPackFeaturesARM")]
40011pub struct PhysicalDeviceFormatPackFeaturesARM {
40012    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM`.
40013    pub s_type: StructureType,
40014    ///Optional, may be null.
40015    pub p_next: *mut core::ffi::c_void,
40016    pub format_pack: u32,
40017}
40018impl Default for PhysicalDeviceFormatPackFeaturesARM {
40019    #[inline]
40020    fn default() -> Self {
40021        Self {
40022            s_type: StructureType::from_raw(1000609000i32),
40023            p_next: core::ptr::null_mut(),
40024            format_pack: Default::default(),
40025        }
40026    }
40027}
40028///[`VkTensorDescriptionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorDescriptionARM.html)
40029/**
40030Provided by **VK_ARM_tensors**.*/
40031///
40032///# Extends
40033///- [`DataGraphPipelineResourceInfoARM`]
40034///- [`DataGraphPipelineConstantARM`]
40035#[repr(C)]
40036#[derive(Copy, Clone, Debug)]
40037#[doc(alias = "VkTensorDescriptionARM")]
40038pub struct TensorDescriptionARM {
40039    ///Must be `VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM`.
40040    pub s_type: StructureType,
40041    ///Optional, may be null.
40042    pub p_next: *const core::ffi::c_void,
40043    pub tiling: TensorTilingARM,
40044    pub format: Format,
40045    ///Length of `p_strides`.
40046    pub dimension_count: u32,
40047    pub p_dimensions: *const i64,
40048    ///Optional, may be null.
40049    pub p_strides: *const i64,
40050    pub usage: TensorUsageFlagsARM,
40051}
40052impl Default for TensorDescriptionARM {
40053    #[inline]
40054    fn default() -> Self {
40055        Self {
40056            s_type: StructureType::from_raw(1000460006i32),
40057            p_next: core::ptr::null(),
40058            tiling: Default::default(),
40059            format: Default::default(),
40060            dimension_count: Default::default(),
40061            p_dimensions: core::ptr::null(),
40062            p_strides: core::ptr::null(),
40063            usage: Default::default(),
40064        }
40065    }
40066}
40067///[`VkTensorCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCreateInfoARM.html)
40068/**
40069Provided by **VK_ARM_tensors**.*/
40070///
40071///# Extended By
40072///- [`ExternalMemoryTensorCreateInfoARM`]
40073///- [`OpaqueCaptureDataCreateInfoEXT`]
40074///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
40075#[repr(C)]
40076#[derive(Copy, Clone, Debug)]
40077#[doc(alias = "VkTensorCreateInfoARM")]
40078pub struct TensorCreateInfoARM {
40079    ///Must be `VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM`.
40080    pub s_type: StructureType,
40081    ///Optional, may be null.
40082    pub p_next: *const core::ffi::c_void,
40083    pub flags: TensorCreateFlagsARM,
40084    pub p_description: *const TensorDescriptionARM,
40085    pub sharing_mode: SharingMode,
40086    ///Length of `p_queue_family_indices`.
40087    pub queue_family_index_count: u32,
40088    pub p_queue_family_indices: *const u32,
40089}
40090impl Default for TensorCreateInfoARM {
40091    #[inline]
40092    fn default() -> Self {
40093        Self {
40094            s_type: StructureType::from_raw(1000460000i32),
40095            p_next: core::ptr::null(),
40096            flags: Default::default(),
40097            p_description: core::ptr::null(),
40098            sharing_mode: Default::default(),
40099            queue_family_index_count: Default::default(),
40100            p_queue_family_indices: core::ptr::null(),
40101        }
40102    }
40103}
40104///[`VkTensorViewCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewCreateInfoARM.html)
40105/**
40106Provided by **VK_EXT_descriptor_heap**.*/
40107///
40108///# Extended By
40109///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
40110#[repr(C)]
40111#[derive(Copy, Clone, Debug)]
40112#[doc(alias = "VkTensorViewCreateInfoARM")]
40113pub struct TensorViewCreateInfoARM {
40114    ///Must be `VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM`.
40115    pub s_type: StructureType,
40116    ///Optional, may be null.
40117    pub p_next: *const core::ffi::c_void,
40118    pub flags: TensorViewCreateFlagsARM,
40119    pub tensor: TensorARM,
40120    pub format: Format,
40121}
40122impl Default for TensorViewCreateInfoARM {
40123    #[inline]
40124    fn default() -> Self {
40125        Self {
40126            s_type: StructureType::from_raw(1000460001i32),
40127            p_next: core::ptr::null(),
40128            flags: Default::default(),
40129            tensor: Default::default(),
40130            format: Default::default(),
40131        }
40132    }
40133}
40134///[`VkTensorMemoryRequirementsInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorMemoryRequirementsInfoARM.html)
40135/**
40136Provided by **VK_ARM_tensors**.*/
40137#[repr(C)]
40138#[derive(Copy, Clone, Debug)]
40139#[doc(alias = "VkTensorMemoryRequirementsInfoARM")]
40140pub struct TensorMemoryRequirementsInfoARM {
40141    ///Must be `VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM`.
40142    pub s_type: StructureType,
40143    ///Optional, may be null.
40144    pub p_next: *const core::ffi::c_void,
40145    pub tensor: TensorARM,
40146}
40147impl Default for TensorMemoryRequirementsInfoARM {
40148    #[inline]
40149    fn default() -> Self {
40150        Self {
40151            s_type: StructureType::from_raw(1000460007i32),
40152            p_next: core::ptr::null(),
40153            tensor: Default::default(),
40154        }
40155    }
40156}
40157///[`VkBindTensorMemoryInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindTensorMemoryInfoARM.html)
40158/**
40159Provided by **VK_ARM_tensors**.*/
40160#[repr(C)]
40161#[derive(Copy, Clone, Debug)]
40162#[doc(alias = "VkBindTensorMemoryInfoARM")]
40163pub struct BindTensorMemoryInfoARM {
40164    ///Must be `VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM`.
40165    pub s_type: StructureType,
40166    ///Optional, may be null.
40167    pub p_next: *const core::ffi::c_void,
40168    ///**Thread safety:** must be externally synchronized.
40169    pub tensor: TensorARM,
40170    pub memory: DeviceMemory,
40171    pub memory_offset: u64,
40172}
40173impl Default for BindTensorMemoryInfoARM {
40174    #[inline]
40175    fn default() -> Self {
40176        Self {
40177            s_type: StructureType::from_raw(1000460002i32),
40178            p_next: core::ptr::null(),
40179            tensor: Default::default(),
40180            memory: Default::default(),
40181            memory_offset: Default::default(),
40182        }
40183    }
40184}
40185///[`VkWriteDescriptorSetTensorARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetTensorARM.html)
40186/**
40187Provided by **VK_ARM_tensors**.*/
40188///
40189///# Extends
40190///- [`WriteDescriptorSet`]
40191#[repr(C)]
40192#[derive(Copy, Clone, Debug)]
40193#[doc(alias = "VkWriteDescriptorSetTensorARM")]
40194pub struct WriteDescriptorSetTensorARM {
40195    ///Must be `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM`.
40196    pub s_type: StructureType,
40197    ///Optional, may be null.
40198    pub p_next: *const core::ffi::c_void,
40199    ///Length of `p_tensor_views`.
40200    pub tensor_view_count: u32,
40201    ///Optional, may be null.
40202    pub p_tensor_views: *const TensorViewARM,
40203}
40204impl Default for WriteDescriptorSetTensorARM {
40205    #[inline]
40206    fn default() -> Self {
40207        Self {
40208            s_type: StructureType::from_raw(1000460003i32),
40209            p_next: core::ptr::null(),
40210            tensor_view_count: Default::default(),
40211            p_tensor_views: core::ptr::null(),
40212        }
40213    }
40214}
40215///[`VkTensorFormatPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorFormatPropertiesARM.html)
40216/**
40217Provided by **VK_ARM_tensors**.*/
40218/**
40219**Returned only**, filled by Vulkan, not constructed by the application.*/
40220///
40221///# Extends
40222///- [`FormatProperties2`]
40223#[repr(C)]
40224#[derive(Copy, Clone, Debug)]
40225#[doc(alias = "VkTensorFormatPropertiesARM")]
40226pub struct TensorFormatPropertiesARM {
40227    ///Must be `VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM`.
40228    pub s_type: StructureType,
40229    ///Optional, may be null.
40230    pub p_next: *mut core::ffi::c_void,
40231    pub optimal_tiling_tensor_features: FormatFeatureFlags2,
40232    pub linear_tiling_tensor_features: FormatFeatureFlags2,
40233}
40234impl Default for TensorFormatPropertiesARM {
40235    #[inline]
40236    fn default() -> Self {
40237        Self {
40238            s_type: StructureType::from_raw(1000460005i32),
40239            p_next: core::ptr::null_mut(),
40240            optimal_tiling_tensor_features: Default::default(),
40241            linear_tiling_tensor_features: Default::default(),
40242        }
40243    }
40244}
40245///[`VkPhysicalDeviceTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTensorPropertiesARM.html)
40246/**
40247Provided by **VK_ARM_tensors**.*/
40248/**
40249**Returned only**, filled by Vulkan, not constructed by the application.*/
40250///
40251///# Extends
40252///- [`PhysicalDeviceProperties2`]
40253#[repr(C)]
40254#[derive(Copy, Clone, Debug)]
40255#[doc(alias = "VkPhysicalDeviceTensorPropertiesARM")]
40256pub struct PhysicalDeviceTensorPropertiesARM {
40257    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM`.
40258    pub s_type: StructureType,
40259    ///Optional, may be null.
40260    pub p_next: *mut core::ffi::c_void,
40261    pub max_tensor_dimension_count: u32,
40262    pub max_tensor_elements: u64,
40263    pub max_per_dimension_tensor_elements: u64,
40264    pub max_tensor_stride: i64,
40265    pub max_tensor_size: u64,
40266    pub max_tensor_shader_access_array_length: u32,
40267    pub max_tensor_shader_access_size: u32,
40268    pub max_descriptor_set_storage_tensors: u32,
40269    pub max_per_stage_descriptor_set_storage_tensors: u32,
40270    pub max_descriptor_set_update_after_bind_storage_tensors: u32,
40271    pub max_per_stage_descriptor_update_after_bind_storage_tensors: u32,
40272    pub shader_storage_tensor_array_non_uniform_indexing_native: u32,
40273    pub shader_tensor_supported_stages: ShaderStageFlags,
40274}
40275impl Default for PhysicalDeviceTensorPropertiesARM {
40276    #[inline]
40277    fn default() -> Self {
40278        Self {
40279            s_type: StructureType::from_raw(1000460004i32),
40280            p_next: core::ptr::null_mut(),
40281            max_tensor_dimension_count: Default::default(),
40282            max_tensor_elements: Default::default(),
40283            max_per_dimension_tensor_elements: Default::default(),
40284            max_tensor_stride: Default::default(),
40285            max_tensor_size: Default::default(),
40286            max_tensor_shader_access_array_length: Default::default(),
40287            max_tensor_shader_access_size: Default::default(),
40288            max_descriptor_set_storage_tensors: Default::default(),
40289            max_per_stage_descriptor_set_storage_tensors: Default::default(),
40290            max_descriptor_set_update_after_bind_storage_tensors: Default::default(),
40291            max_per_stage_descriptor_update_after_bind_storage_tensors: Default::default(),
40292            shader_storage_tensor_array_non_uniform_indexing_native: Default::default(),
40293            shader_tensor_supported_stages: Default::default(),
40294        }
40295    }
40296}
40297///[`VkTensorMemoryBarrierARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorMemoryBarrierARM.html)
40298/**
40299Provided by **VK_ARM_tensors**.*/
40300///
40301///# Extends
40302///- [`DependencyInfo`]
40303#[repr(C)]
40304#[derive(Copy, Clone, Debug)]
40305#[doc(alias = "VkTensorMemoryBarrierARM")]
40306pub struct TensorMemoryBarrierARM {
40307    ///Must be `VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM`.
40308    pub s_type: StructureType,
40309    ///Optional, may be null.
40310    pub p_next: *const core::ffi::c_void,
40311    pub src_stage_mask: PipelineStageFlags2,
40312    pub src_access_mask: AccessFlags2,
40313    pub dst_stage_mask: PipelineStageFlags2,
40314    pub dst_access_mask: AccessFlags2,
40315    pub src_queue_family_index: u32,
40316    pub dst_queue_family_index: u32,
40317    pub tensor: TensorARM,
40318}
40319impl Default for TensorMemoryBarrierARM {
40320    #[inline]
40321    fn default() -> Self {
40322        Self {
40323            s_type: StructureType::from_raw(1000460008i32),
40324            p_next: core::ptr::null(),
40325            src_stage_mask: Default::default(),
40326            src_access_mask: Default::default(),
40327            dst_stage_mask: Default::default(),
40328            dst_access_mask: Default::default(),
40329            src_queue_family_index: Default::default(),
40330            dst_queue_family_index: Default::default(),
40331            tensor: Default::default(),
40332        }
40333    }
40334}
40335///[`VkTensorDependencyInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorDependencyInfoARM.html)
40336/**
40337Provided by **VK_ARM_tensors**.*/
40338///
40339///# Extends
40340///- [`DependencyInfo`]
40341#[repr(C)]
40342#[derive(Copy, Clone, Debug)]
40343#[doc(alias = "VkTensorDependencyInfoARM")]
40344pub struct TensorDependencyInfoARM {
40345    ///Must be `VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM`.
40346    pub s_type: StructureType,
40347    ///Optional, may be null.
40348    pub p_next: *const core::ffi::c_void,
40349    pub tensor_memory_barrier_count: u32,
40350    pub p_tensor_memory_barriers: *const TensorMemoryBarrierARM,
40351}
40352impl Default for TensorDependencyInfoARM {
40353    #[inline]
40354    fn default() -> Self {
40355        Self {
40356            s_type: StructureType::from_raw(1000460013i32),
40357            p_next: core::ptr::null(),
40358            tensor_memory_barrier_count: Default::default(),
40359            p_tensor_memory_barriers: core::ptr::null(),
40360        }
40361    }
40362}
40363///[`VkPhysicalDeviceTensorFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTensorFeaturesARM.html)
40364/**
40365Provided by **VK_ARM_tensors**.*/
40366///
40367///# Extends
40368///- [`PhysicalDeviceFeatures2`]
40369///- [`DeviceCreateInfo`]
40370#[repr(C)]
40371#[derive(Copy, Clone, Debug)]
40372#[doc(alias = "VkPhysicalDeviceTensorFeaturesARM")]
40373pub struct PhysicalDeviceTensorFeaturesARM {
40374    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM`.
40375    pub s_type: StructureType,
40376    ///Optional, may be null.
40377    pub p_next: *mut core::ffi::c_void,
40378    pub tensor_non_packed: u32,
40379    pub shader_tensor_access: u32,
40380    pub shader_storage_tensor_array_dynamic_indexing: u32,
40381    pub shader_storage_tensor_array_non_uniform_indexing: u32,
40382    pub descriptor_binding_storage_tensor_update_after_bind: u32,
40383    pub tensors: u32,
40384}
40385impl Default for PhysicalDeviceTensorFeaturesARM {
40386    #[inline]
40387    fn default() -> Self {
40388        Self {
40389            s_type: StructureType::from_raw(1000460009i32),
40390            p_next: core::ptr::null_mut(),
40391            tensor_non_packed: Default::default(),
40392            shader_tensor_access: Default::default(),
40393            shader_storage_tensor_array_dynamic_indexing: Default::default(),
40394            shader_storage_tensor_array_non_uniform_indexing: Default::default(),
40395            descriptor_binding_storage_tensor_update_after_bind: Default::default(),
40396            tensors: Default::default(),
40397        }
40398    }
40399}
40400///[`VkDeviceTensorMemoryRequirementsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceTensorMemoryRequirementsARM.html)
40401/**
40402Provided by **VK_ARM_tensors**.*/
40403#[repr(C)]
40404#[derive(Copy, Clone, Debug)]
40405#[doc(alias = "VkDeviceTensorMemoryRequirementsARM")]
40406pub struct DeviceTensorMemoryRequirementsARM {
40407    ///Must be `VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM`.
40408    pub s_type: StructureType,
40409    ///Optional, may be null.
40410    pub p_next: *const core::ffi::c_void,
40411    pub p_create_info: *const TensorCreateInfoARM,
40412}
40413impl Default for DeviceTensorMemoryRequirementsARM {
40414    #[inline]
40415    fn default() -> Self {
40416        Self {
40417            s_type: StructureType::from_raw(1000460010i32),
40418            p_next: core::ptr::null(),
40419            p_create_info: core::ptr::null(),
40420        }
40421    }
40422}
40423///[`VkCopyTensorInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyTensorInfoARM.html)
40424/**
40425Provided by **VK_ARM_tensors**.*/
40426#[repr(C)]
40427#[derive(Copy, Clone, Debug)]
40428#[doc(alias = "VkCopyTensorInfoARM")]
40429pub struct CopyTensorInfoARM {
40430    ///Must be `VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM`.
40431    pub s_type: StructureType,
40432    ///Optional, may be null.
40433    pub p_next: *const core::ffi::c_void,
40434    pub src_tensor: TensorARM,
40435    pub dst_tensor: TensorARM,
40436    ///Length of `p_regions`.
40437    pub region_count: u32,
40438    pub p_regions: *const TensorCopyARM,
40439}
40440impl Default for CopyTensorInfoARM {
40441    #[inline]
40442    fn default() -> Self {
40443        Self {
40444            s_type: StructureType::from_raw(1000460011i32),
40445            p_next: core::ptr::null(),
40446            src_tensor: Default::default(),
40447            dst_tensor: Default::default(),
40448            region_count: Default::default(),
40449            p_regions: core::ptr::null(),
40450        }
40451    }
40452}
40453///[`VkTensorCopyARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCopyARM.html)
40454/**
40455Provided by **VK_ARM_tensors**.*/
40456#[repr(C)]
40457#[derive(Copy, Clone, Debug)]
40458#[doc(alias = "VkTensorCopyARM")]
40459pub struct TensorCopyARM {
40460    ///Must be `VK_STRUCTURE_TYPE_TENSOR_COPY_ARM`.
40461    pub s_type: StructureType,
40462    ///Optional, may be null.
40463    pub p_next: *const core::ffi::c_void,
40464    ///Length of `p_extent`.
40465    pub dimension_count: u32,
40466    ///Optional, may be null.
40467    pub p_src_offset: *const u64,
40468    ///Optional, may be null.
40469    pub p_dst_offset: *const u64,
40470    ///Optional, may be null.
40471    pub p_extent: *const u64,
40472}
40473impl Default for TensorCopyARM {
40474    #[inline]
40475    fn default() -> Self {
40476        Self {
40477            s_type: StructureType::from_raw(1000460012i32),
40478            p_next: core::ptr::null(),
40479            dimension_count: Default::default(),
40480            p_src_offset: core::ptr::null(),
40481            p_dst_offset: core::ptr::null(),
40482            p_extent: core::ptr::null(),
40483        }
40484    }
40485}
40486///[`VkMemoryDedicatedAllocateInfoTensorARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryDedicatedAllocateInfoTensorARM.html)
40487/**
40488Provided by **VK_ARM_tensors**.*/
40489///
40490///# Extends
40491///- [`MemoryAllocateInfo`]
40492#[repr(C)]
40493#[derive(Copy, Clone, Debug)]
40494#[doc(alias = "VkMemoryDedicatedAllocateInfoTensorARM")]
40495pub struct MemoryDedicatedAllocateInfoTensorARM {
40496    ///Must be `VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM`.
40497    pub s_type: StructureType,
40498    ///Optional, may be null.
40499    pub p_next: *const core::ffi::c_void,
40500    pub tensor: TensorARM,
40501}
40502impl Default for MemoryDedicatedAllocateInfoTensorARM {
40503    #[inline]
40504    fn default() -> Self {
40505        Self {
40506            s_type: StructureType::from_raw(1000460014i32),
40507            p_next: core::ptr::null(),
40508            tensor: Default::default(),
40509        }
40510    }
40511}
40512///[`VkPhysicalDeviceDescriptorBufferTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferTensorPropertiesARM.html)
40513/**
40514Provided by **VK_ARM_tensors**.*/
40515///
40516///# Extends
40517///- [`PhysicalDeviceProperties2`]
40518#[repr(C)]
40519#[derive(Copy, Clone, Debug)]
40520#[doc(alias = "VkPhysicalDeviceDescriptorBufferTensorPropertiesARM")]
40521pub struct PhysicalDeviceDescriptorBufferTensorPropertiesARM {
40522    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM`.
40523    pub s_type: StructureType,
40524    ///Optional, may be null.
40525    pub p_next: *mut core::ffi::c_void,
40526    pub tensor_capture_replay_descriptor_data_size: usize,
40527    pub tensor_view_capture_replay_descriptor_data_size: usize,
40528    pub tensor_descriptor_size: usize,
40529}
40530impl Default for PhysicalDeviceDescriptorBufferTensorPropertiesARM {
40531    #[inline]
40532    fn default() -> Self {
40533        Self {
40534            s_type: StructureType::from_raw(1000460019i32),
40535            p_next: core::ptr::null_mut(),
40536            tensor_capture_replay_descriptor_data_size: Default::default(),
40537            tensor_view_capture_replay_descriptor_data_size: Default::default(),
40538            tensor_descriptor_size: Default::default(),
40539        }
40540    }
40541}
40542///[`VkPhysicalDeviceDescriptorBufferTensorFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferTensorFeaturesARM.html)
40543/**
40544Provided by **VK_ARM_tensors**.*/
40545///
40546///# Extends
40547///- [`PhysicalDeviceFeatures2`]
40548///- [`DeviceCreateInfo`]
40549#[repr(C)]
40550#[derive(Copy, Clone, Debug)]
40551#[doc(alias = "VkPhysicalDeviceDescriptorBufferTensorFeaturesARM")]
40552pub struct PhysicalDeviceDescriptorBufferTensorFeaturesARM {
40553    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM`.
40554    pub s_type: StructureType,
40555    ///Optional, may be null.
40556    pub p_next: *mut core::ffi::c_void,
40557    pub descriptor_buffer_tensor_descriptors: u32,
40558}
40559impl Default for PhysicalDeviceDescriptorBufferTensorFeaturesARM {
40560    #[inline]
40561    fn default() -> Self {
40562        Self {
40563            s_type: StructureType::from_raw(1000460018i32),
40564            p_next: core::ptr::null_mut(),
40565            descriptor_buffer_tensor_descriptors: Default::default(),
40566        }
40567    }
40568}
40569///[`VkTensorCaptureDescriptorDataInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCaptureDescriptorDataInfoARM.html)
40570/**
40571Provided by **VK_ARM_tensors**.*/
40572#[repr(C)]
40573#[derive(Copy, Clone, Debug)]
40574#[doc(alias = "VkTensorCaptureDescriptorDataInfoARM")]
40575pub struct TensorCaptureDescriptorDataInfoARM {
40576    ///Must be `VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM`.
40577    pub s_type: StructureType,
40578    ///Optional, may be null.
40579    pub p_next: *const core::ffi::c_void,
40580    pub tensor: TensorARM,
40581}
40582impl Default for TensorCaptureDescriptorDataInfoARM {
40583    #[inline]
40584    fn default() -> Self {
40585        Self {
40586            s_type: StructureType::from_raw(1000460021i32),
40587            p_next: core::ptr::null(),
40588            tensor: Default::default(),
40589        }
40590    }
40591}
40592///[`VkTensorViewCaptureDescriptorDataInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewCaptureDescriptorDataInfoARM.html)
40593/**
40594Provided by **VK_ARM_tensors**.*/
40595#[repr(C)]
40596#[derive(Copy, Clone, Debug)]
40597#[doc(alias = "VkTensorViewCaptureDescriptorDataInfoARM")]
40598pub struct TensorViewCaptureDescriptorDataInfoARM {
40599    ///Must be `VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM`.
40600    pub s_type: StructureType,
40601    ///Optional, may be null.
40602    pub p_next: *const core::ffi::c_void,
40603    pub tensor_view: TensorViewARM,
40604}
40605impl Default for TensorViewCaptureDescriptorDataInfoARM {
40606    #[inline]
40607    fn default() -> Self {
40608        Self {
40609            s_type: StructureType::from_raw(1000460022i32),
40610            p_next: core::ptr::null(),
40611            tensor_view: Default::default(),
40612        }
40613    }
40614}
40615///[`VkDescriptorGetTensorInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorGetTensorInfoARM.html)
40616/**
40617Provided by **VK_ARM_tensors**.*/
40618///
40619///# Extends
40620///- [`DescriptorGetInfoEXT`]
40621#[repr(C)]
40622#[derive(Copy, Clone, Debug)]
40623#[doc(alias = "VkDescriptorGetTensorInfoARM")]
40624pub struct DescriptorGetTensorInfoARM {
40625    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM`.
40626    pub s_type: StructureType,
40627    ///Optional, may be null.
40628    pub p_next: *const core::ffi::c_void,
40629    pub tensor_view: TensorViewARM,
40630}
40631impl Default for DescriptorGetTensorInfoARM {
40632    #[inline]
40633    fn default() -> Self {
40634        Self {
40635            s_type: StructureType::from_raw(1000460020i32),
40636            p_next: core::ptr::null(),
40637            tensor_view: Default::default(),
40638        }
40639    }
40640}
40641///[`VkFrameBoundaryTensorsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkFrameBoundaryTensorsARM.html)
40642/**
40643Provided by **VK_ARM_tensors**.*/
40644///
40645///# Extends
40646///- [`SubmitInfo`]
40647///- [`SubmitInfo2`]
40648///- [`PresentInfoKHR`]
40649///- [`BindSparseInfo`]
40650#[repr(C)]
40651#[derive(Copy, Clone, Debug)]
40652#[doc(alias = "VkFrameBoundaryTensorsARM")]
40653pub struct FrameBoundaryTensorsARM {
40654    ///Must be `VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM`.
40655    pub s_type: StructureType,
40656    ///Optional, may be null.
40657    pub p_next: *const core::ffi::c_void,
40658    ///Length of `p_tensors`.
40659    pub tensor_count: u32,
40660    pub p_tensors: *const TensorARM,
40661}
40662impl Default for FrameBoundaryTensorsARM {
40663    #[inline]
40664    fn default() -> Self {
40665        Self {
40666            s_type: StructureType::from_raw(1000460023i32),
40667            p_next: core::ptr::null(),
40668            tensor_count: Default::default(),
40669            p_tensors: core::ptr::null(),
40670        }
40671    }
40672}
40673///[`VkPhysicalDeviceExternalTensorInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalTensorInfoARM.html)
40674/**
40675Provided by **VK_ARM_tensors**.*/
40676#[repr(C)]
40677#[derive(Copy, Clone, Debug)]
40678#[doc(alias = "VkPhysicalDeviceExternalTensorInfoARM")]
40679pub struct PhysicalDeviceExternalTensorInfoARM {
40680    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM`.
40681    pub s_type: StructureType,
40682    ///Optional, may be null.
40683    pub p_next: *const core::ffi::c_void,
40684    pub flags: TensorCreateFlagsARM,
40685    pub p_description: *const TensorDescriptionARM,
40686    pub handle_type: ExternalMemoryHandleTypeFlagBits,
40687}
40688impl Default for PhysicalDeviceExternalTensorInfoARM {
40689    #[inline]
40690    fn default() -> Self {
40691        Self {
40692            s_type: StructureType::from_raw(1000460015i32),
40693            p_next: core::ptr::null(),
40694            flags: Default::default(),
40695            p_description: core::ptr::null(),
40696            handle_type: Default::default(),
40697        }
40698    }
40699}
40700///[`VkExternalTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalTensorPropertiesARM.html)
40701/**
40702Provided by **VK_ARM_tensors**.*/
40703#[repr(C)]
40704#[derive(Copy, Clone, Debug)]
40705#[doc(alias = "VkExternalTensorPropertiesARM")]
40706pub struct ExternalTensorPropertiesARM {
40707    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM`.
40708    pub s_type: StructureType,
40709    ///Optional, may be null.
40710    pub p_next: *const core::ffi::c_void,
40711    pub external_memory_properties: ExternalMemoryProperties,
40712}
40713impl Default for ExternalTensorPropertiesARM {
40714    #[inline]
40715    fn default() -> Self {
40716        Self {
40717            s_type: StructureType::from_raw(1000460016i32),
40718            p_next: core::ptr::null(),
40719            external_memory_properties: Default::default(),
40720        }
40721    }
40722}
40723///[`VkExternalMemoryTensorCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryTensorCreateInfoARM.html)
40724/**
40725Provided by **VK_ARM_tensors**.*/
40726///
40727///# Extends
40728///- [`TensorCreateInfoARM`]
40729#[repr(C)]
40730#[derive(Copy, Clone, Debug)]
40731#[doc(alias = "VkExternalMemoryTensorCreateInfoARM")]
40732pub struct ExternalMemoryTensorCreateInfoARM {
40733    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM`.
40734    pub s_type: StructureType,
40735    ///Optional, may be null.
40736    pub p_next: *const core::ffi::c_void,
40737    pub handle_types: ExternalMemoryHandleTypeFlags,
40738}
40739impl Default for ExternalMemoryTensorCreateInfoARM {
40740    #[inline]
40741    fn default() -> Self {
40742        Self {
40743            s_type: StructureType::from_raw(1000460017i32),
40744            p_next: core::ptr::null(),
40745            handle_types: Default::default(),
40746        }
40747    }
40748}
40749///[`VkPhysicalDeviceShaderFloat8FeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFloat8FeaturesEXT.html)
40750/**
40751Provided by **VK_EXT_shader_float8**.*/
40752///
40753///# Extends
40754///- [`PhysicalDeviceFeatures2`]
40755///- [`DeviceCreateInfo`]
40756#[repr(C)]
40757#[derive(Copy, Clone, Debug)]
40758#[doc(alias = "VkPhysicalDeviceShaderFloat8FeaturesEXT")]
40759pub struct PhysicalDeviceShaderFloat8FeaturesEXT {
40760    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT`.
40761    pub s_type: StructureType,
40762    ///Optional, may be null.
40763    pub p_next: *mut core::ffi::c_void,
40764    pub shader_float8: u32,
40765    pub shader_float8_cooperative_matrix: u32,
40766}
40767impl Default for PhysicalDeviceShaderFloat8FeaturesEXT {
40768    #[inline]
40769    fn default() -> Self {
40770        Self {
40771            s_type: StructureType::from_raw(1000567000i32),
40772            p_next: core::ptr::null_mut(),
40773            shader_float8: Default::default(),
40774            shader_float8_cooperative_matrix: Default::default(),
40775        }
40776    }
40777}
40778///[`VkSurfaceCreateInfoOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCreateInfoOHOS.html)
40779/**
40780Provided by **VK_OHOS_surface**.*/
40781#[repr(C)]
40782#[derive(Copy, Clone, Debug)]
40783#[doc(alias = "VkSurfaceCreateInfoOHOS")]
40784pub struct SurfaceCreateInfoOHOS {
40785    ///Must be `VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS`.
40786    pub s_type: StructureType,
40787    ///Optional, may be null.
40788    pub p_next: *const core::ffi::c_void,
40789    pub flags: SurfaceCreateFlagsOHOS,
40790    pub window: *mut core::ffi::c_void,
40791}
40792impl Default for SurfaceCreateInfoOHOS {
40793    #[inline]
40794    fn default() -> Self {
40795        Self {
40796            s_type: StructureType::from_raw(1000685000i32),
40797            p_next: core::ptr::null(),
40798            flags: Default::default(),
40799            window: core::ptr::null_mut(),
40800        }
40801    }
40802}
40803///[`VkPhysicalDeviceDataGraphFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDataGraphFeaturesARM.html)
40804/**
40805Provided by **VK_ARM_data_graph**.*/
40806///
40807///# Extends
40808///- [`PhysicalDeviceFeatures2`]
40809///- [`DeviceCreateInfo`]
40810#[repr(C)]
40811#[derive(Copy, Clone, Debug)]
40812#[doc(alias = "VkPhysicalDeviceDataGraphFeaturesARM")]
40813pub struct PhysicalDeviceDataGraphFeaturesARM {
40814    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM`.
40815    pub s_type: StructureType,
40816    ///Optional, may be null.
40817    pub p_next: *mut core::ffi::c_void,
40818    pub data_graph: u32,
40819    pub data_graph_update_after_bind: u32,
40820    pub data_graph_specialization_constants: u32,
40821    pub data_graph_descriptor_buffer: u32,
40822    pub data_graph_shader_module: u32,
40823}
40824impl Default for PhysicalDeviceDataGraphFeaturesARM {
40825    #[inline]
40826    fn default() -> Self {
40827        Self {
40828            s_type: StructureType::from_raw(1000507006i32),
40829            p_next: core::ptr::null_mut(),
40830            data_graph: Default::default(),
40831            data_graph_update_after_bind: Default::default(),
40832            data_graph_specialization_constants: Default::default(),
40833            data_graph_descriptor_buffer: Default::default(),
40834            data_graph_shader_module: Default::default(),
40835        }
40836    }
40837}
40838///[`VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM.html)
40839/**
40840Provided by **VK_ARM_data_graph**.*/
40841///
40842///# Extends
40843///- [`DataGraphPipelineConstantARM`]
40844#[repr(C)]
40845#[derive(Copy, Clone, Debug)]
40846#[doc(alias = "VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM")]
40847pub struct DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
40848    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM`.
40849    pub s_type: StructureType,
40850    ///Optional, may be null.
40851    pub p_next: *const core::ffi::c_void,
40852    pub dimension: u32,
40853    pub zero_count: u32,
40854    pub group_size: u32,
40855}
40856impl Default for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
40857    #[inline]
40858    fn default() -> Self {
40859        Self {
40860            s_type: StructureType::from_raw(1000507015i32),
40861            p_next: core::ptr::null(),
40862            dimension: Default::default(),
40863            zero_count: Default::default(),
40864            group_size: Default::default(),
40865        }
40866    }
40867}
40868///[`VkDataGraphPipelineConstantARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineConstantARM.html)
40869/**
40870Provided by **VK_ARM_data_graph**.*/
40871///
40872///# Extended By
40873///- [`DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM`]
40874///- [`TensorDescriptionARM`]
40875#[repr(C)]
40876#[derive(Copy, Clone, Debug)]
40877#[doc(alias = "VkDataGraphPipelineConstantARM")]
40878pub struct DataGraphPipelineConstantARM {
40879    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM`.
40880    pub s_type: StructureType,
40881    ///Optional, may be null.
40882    pub p_next: *const core::ffi::c_void,
40883    pub id: u32,
40884    pub p_constant_data: *const core::ffi::c_void,
40885}
40886impl Default for DataGraphPipelineConstantARM {
40887    #[inline]
40888    fn default() -> Self {
40889        Self {
40890            s_type: StructureType::from_raw(1000507003i32),
40891            p_next: core::ptr::null(),
40892            id: Default::default(),
40893            p_constant_data: core::ptr::null(),
40894        }
40895    }
40896}
40897///[`VkDataGraphPipelineResourceInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineResourceInfoARM.html)
40898/**
40899Provided by **VK_ARM_data_graph**.*/
40900///
40901///# Extended By
40902///- [`TensorDescriptionARM`]
40903#[repr(C)]
40904#[derive(Copy, Clone, Debug)]
40905#[doc(alias = "VkDataGraphPipelineResourceInfoARM")]
40906pub struct DataGraphPipelineResourceInfoARM {
40907    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM`.
40908    pub s_type: StructureType,
40909    ///Optional, may be null.
40910    pub p_next: *const core::ffi::c_void,
40911    pub descriptor_set: u32,
40912    pub binding: u32,
40913    pub array_element: u32,
40914}
40915impl Default for DataGraphPipelineResourceInfoARM {
40916    #[inline]
40917    fn default() -> Self {
40918        Self {
40919            s_type: StructureType::from_raw(1000507002i32),
40920            p_next: core::ptr::null(),
40921            descriptor_set: Default::default(),
40922            binding: Default::default(),
40923            array_element: Default::default(),
40924        }
40925    }
40926}
40927///[`VkDataGraphPipelineCompilerControlCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineCompilerControlCreateInfoARM.html)
40928/**
40929Provided by **VK_ARM_data_graph**.*/
40930///
40931///# Extends
40932///- [`DataGraphPipelineCreateInfoARM`]
40933#[repr(C)]
40934#[derive(Copy, Clone, Debug)]
40935#[doc(alias = "VkDataGraphPipelineCompilerControlCreateInfoARM")]
40936pub struct DataGraphPipelineCompilerControlCreateInfoARM {
40937    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM`.
40938    pub s_type: StructureType,
40939    ///Optional, may be null.
40940    pub p_next: *const core::ffi::c_void,
40941    pub p_vendor_options: *const core::ffi::c_char,
40942}
40943impl Default for DataGraphPipelineCompilerControlCreateInfoARM {
40944    #[inline]
40945    fn default() -> Self {
40946        Self {
40947            s_type: StructureType::from_raw(1000507010i32),
40948            p_next: core::ptr::null(),
40949            p_vendor_options: core::ptr::null(),
40950        }
40951    }
40952}
40953///[`VkDataGraphPipelineCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineCreateInfoARM.html)
40954/**
40955Provided by **VK_ARM_data_graph**.*/
40956///
40957///# Extended By
40958///- [`DataGraphPipelineBuiltinModelCreateInfoQCOM`]
40959///- [`DataGraphPipelineCompilerControlCreateInfoARM`]
40960///- [`DataGraphPipelineIdentifierCreateInfoARM`]
40961///- [`DataGraphPipelineShaderModuleCreateInfoARM`]
40962///- [`DataGraphProcessingEngineCreateInfoARM`]
40963///- [`PipelineCreationFeedbackCreateInfo`]
40964///- [`ShaderModuleCreateInfo`]
40965#[repr(C)]
40966#[derive(Copy, Clone, Debug)]
40967#[doc(alias = "VkDataGraphPipelineCreateInfoARM")]
40968pub struct DataGraphPipelineCreateInfoARM {
40969    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM`.
40970    pub s_type: StructureType,
40971    ///Optional, may be null.
40972    pub p_next: *const core::ffi::c_void,
40973    pub flags: PipelineCreateFlags2KHR,
40974    pub layout: PipelineLayout,
40975    ///Length of `p_resource_infos`.
40976    pub resource_info_count: u32,
40977    pub p_resource_infos: *const DataGraphPipelineResourceInfoARM,
40978}
40979impl Default for DataGraphPipelineCreateInfoARM {
40980    #[inline]
40981    fn default() -> Self {
40982        Self {
40983            s_type: StructureType::from_raw(1000507000i32),
40984            p_next: core::ptr::null(),
40985            flags: Default::default(),
40986            layout: Default::default(),
40987            resource_info_count: Default::default(),
40988            p_resource_infos: core::ptr::null(),
40989        }
40990    }
40991}
40992///[`VkDataGraphPipelineShaderModuleCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineShaderModuleCreateInfoARM.html)
40993/**
40994Provided by **VK_ARM_data_graph**.*/
40995///
40996///# Extends
40997///- [`DataGraphPipelineCreateInfoARM`]
40998#[repr(C)]
40999#[derive(Copy, Clone, Debug)]
41000#[doc(alias = "VkDataGraphPipelineShaderModuleCreateInfoARM")]
41001pub struct DataGraphPipelineShaderModuleCreateInfoARM {
41002    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM`.
41003    pub s_type: StructureType,
41004    ///Optional, may be null.
41005    pub p_next: *const core::ffi::c_void,
41006    pub module: ShaderModule,
41007    pub p_name: *const core::ffi::c_char,
41008    ///Optional, may be null.
41009    pub p_specialization_info: *const SpecializationInfo,
41010    ///Length of `p_constants`.
41011    pub constant_count: u32,
41012    ///Optional, may be null.
41013    pub p_constants: *const DataGraphPipelineConstantARM,
41014}
41015impl Default for DataGraphPipelineShaderModuleCreateInfoARM {
41016    #[inline]
41017    fn default() -> Self {
41018        Self {
41019            s_type: StructureType::from_raw(1000507007i32),
41020            p_next: core::ptr::null(),
41021            module: Default::default(),
41022            p_name: core::ptr::null(),
41023            p_specialization_info: core::ptr::null(),
41024            constant_count: Default::default(),
41025            p_constants: core::ptr::null(),
41026        }
41027    }
41028}
41029///[`VkDataGraphPipelineSessionCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionCreateInfoARM.html)
41030/**
41031Provided by **VK_ARM_data_graph**.*/
41032#[repr(C)]
41033#[derive(Copy, Clone, Debug)]
41034#[doc(alias = "VkDataGraphPipelineSessionCreateInfoARM")]
41035pub struct DataGraphPipelineSessionCreateInfoARM {
41036    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM`.
41037    pub s_type: StructureType,
41038    ///Optional, may be null.
41039    pub p_next: *const core::ffi::c_void,
41040    pub flags: DataGraphPipelineSessionCreateFlagsARM,
41041    pub data_graph_pipeline: Pipeline,
41042}
41043impl Default for DataGraphPipelineSessionCreateInfoARM {
41044    #[inline]
41045    fn default() -> Self {
41046        Self {
41047            s_type: StructureType::from_raw(1000507001i32),
41048            p_next: core::ptr::null(),
41049            flags: Default::default(),
41050            data_graph_pipeline: Default::default(),
41051        }
41052    }
41053}
41054///[`VkDataGraphPipelineSessionBindPointRequirementsInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionBindPointRequirementsInfoARM.html)
41055/**
41056Provided by **VK_ARM_data_graph**.*/
41057#[repr(C)]
41058#[derive(Copy, Clone, Debug)]
41059#[doc(alias = "VkDataGraphPipelineSessionBindPointRequirementsInfoARM")]
41060pub struct DataGraphPipelineSessionBindPointRequirementsInfoARM {
41061    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM`.
41062    pub s_type: StructureType,
41063    ///Optional, may be null.
41064    pub p_next: *const core::ffi::c_void,
41065    pub session: DataGraphPipelineSessionARM,
41066}
41067impl Default for DataGraphPipelineSessionBindPointRequirementsInfoARM {
41068    #[inline]
41069    fn default() -> Self {
41070        Self {
41071            s_type: StructureType::from_raw(1000507011i32),
41072            p_next: core::ptr::null(),
41073            session: Default::default(),
41074        }
41075    }
41076}
41077///[`VkDataGraphPipelineSessionBindPointRequirementARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionBindPointRequirementARM.html)
41078/**
41079Provided by **VK_ARM_data_graph**.*/
41080/**
41081**Returned only**, filled by Vulkan, not constructed by the application.*/
41082#[repr(C)]
41083#[derive(Copy, Clone, Debug)]
41084#[doc(alias = "VkDataGraphPipelineSessionBindPointRequirementARM")]
41085pub struct DataGraphPipelineSessionBindPointRequirementARM {
41086    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM`.
41087    pub s_type: StructureType,
41088    ///Optional, may be null.
41089    pub p_next: *mut core::ffi::c_void,
41090    pub bind_point: DataGraphPipelineSessionBindPointARM,
41091    pub bind_point_type: DataGraphPipelineSessionBindPointTypeARM,
41092    pub num_objects: u32,
41093}
41094impl Default for DataGraphPipelineSessionBindPointRequirementARM {
41095    #[inline]
41096    fn default() -> Self {
41097        Self {
41098            s_type: StructureType::from_raw(1000507012i32),
41099            p_next: core::ptr::null_mut(),
41100            bind_point: Default::default(),
41101            bind_point_type: Default::default(),
41102            num_objects: Default::default(),
41103        }
41104    }
41105}
41106///[`VkDataGraphPipelineSessionMemoryRequirementsInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionMemoryRequirementsInfoARM.html)
41107/**
41108Provided by **VK_ARM_data_graph**.*/
41109#[repr(C)]
41110#[derive(Copy, Clone, Debug)]
41111#[doc(alias = "VkDataGraphPipelineSessionMemoryRequirementsInfoARM")]
41112pub struct DataGraphPipelineSessionMemoryRequirementsInfoARM {
41113    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM`.
41114    pub s_type: StructureType,
41115    ///Optional, may be null.
41116    pub p_next: *const core::ffi::c_void,
41117    pub session: DataGraphPipelineSessionARM,
41118    pub bind_point: DataGraphPipelineSessionBindPointARM,
41119    pub object_index: u32,
41120}
41121impl Default for DataGraphPipelineSessionMemoryRequirementsInfoARM {
41122    #[inline]
41123    fn default() -> Self {
41124        Self {
41125            s_type: StructureType::from_raw(1000507004i32),
41126            p_next: core::ptr::null(),
41127            session: Default::default(),
41128            bind_point: Default::default(),
41129            object_index: Default::default(),
41130        }
41131    }
41132}
41133///[`VkBindDataGraphPipelineSessionMemoryInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindDataGraphPipelineSessionMemoryInfoARM.html)
41134/**
41135Provided by **VK_ARM_data_graph**.*/
41136#[repr(C)]
41137#[derive(Copy, Clone, Debug)]
41138#[doc(alias = "VkBindDataGraphPipelineSessionMemoryInfoARM")]
41139pub struct BindDataGraphPipelineSessionMemoryInfoARM {
41140    ///Must be `VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM`.
41141    pub s_type: StructureType,
41142    ///Optional, may be null.
41143    pub p_next: *const core::ffi::c_void,
41144    pub session: DataGraphPipelineSessionARM,
41145    pub bind_point: DataGraphPipelineSessionBindPointARM,
41146    pub object_index: u32,
41147    pub memory: DeviceMemory,
41148    pub memory_offset: u64,
41149}
41150impl Default for BindDataGraphPipelineSessionMemoryInfoARM {
41151    #[inline]
41152    fn default() -> Self {
41153        Self {
41154            s_type: StructureType::from_raw(1000507005i32),
41155            p_next: core::ptr::null(),
41156            session: Default::default(),
41157            bind_point: Default::default(),
41158            object_index: Default::default(),
41159            memory: Default::default(),
41160            memory_offset: Default::default(),
41161        }
41162    }
41163}
41164///[`VkDataGraphPipelineInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineInfoARM.html)
41165/**
41166Provided by **VK_ARM_data_graph**.*/
41167#[repr(C)]
41168#[derive(Copy, Clone, Debug)]
41169#[doc(alias = "VkDataGraphPipelineInfoARM")]
41170pub struct DataGraphPipelineInfoARM {
41171    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM`.
41172    pub s_type: StructureType,
41173    ///Optional, may be null.
41174    pub p_next: *const core::ffi::c_void,
41175    pub data_graph_pipeline: Pipeline,
41176}
41177impl Default for DataGraphPipelineInfoARM {
41178    #[inline]
41179    fn default() -> Self {
41180        Self {
41181            s_type: StructureType::from_raw(1000507009i32),
41182            p_next: core::ptr::null(),
41183            data_graph_pipeline: Default::default(),
41184        }
41185    }
41186}
41187///[`VkDataGraphPipelinePropertyQueryResultARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelinePropertyQueryResultARM.html)
41188/**
41189Provided by **VK_ARM_data_graph**.*/
41190#[repr(C)]
41191#[derive(Copy, Clone, Debug)]
41192#[doc(alias = "VkDataGraphPipelinePropertyQueryResultARM")]
41193pub struct DataGraphPipelinePropertyQueryResultARM {
41194    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM`.
41195    pub s_type: StructureType,
41196    ///Optional, may be null.
41197    pub p_next: *mut core::ffi::c_void,
41198    pub property: DataGraphPipelinePropertyARM,
41199    pub is_text: u32,
41200    ///Length of `p_data`.
41201    pub data_size: usize,
41202    ///Optional, may be null.
41203    pub p_data: *mut core::ffi::c_void,
41204}
41205impl Default for DataGraphPipelinePropertyQueryResultARM {
41206    #[inline]
41207    fn default() -> Self {
41208        Self {
41209            s_type: StructureType::from_raw(1000507008i32),
41210            p_next: core::ptr::null_mut(),
41211            property: Default::default(),
41212            is_text: Default::default(),
41213            data_size: Default::default(),
41214            p_data: core::ptr::null_mut(),
41215        }
41216    }
41217}
41218///[`VkDataGraphPipelineIdentifierCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineIdentifierCreateInfoARM.html)
41219/**
41220Provided by **VK_ARM_data_graph**.*/
41221///
41222///# Extends
41223///- [`DataGraphPipelineCreateInfoARM`]
41224#[repr(C)]
41225#[derive(Copy, Clone, Debug)]
41226#[doc(alias = "VkDataGraphPipelineIdentifierCreateInfoARM")]
41227pub struct DataGraphPipelineIdentifierCreateInfoARM {
41228    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM`.
41229    pub s_type: StructureType,
41230    ///Optional, may be null.
41231    pub p_next: *const core::ffi::c_void,
41232    ///Length of `p_identifier`.
41233    pub identifier_size: u32,
41234    pub p_identifier: *const u8,
41235}
41236impl Default for DataGraphPipelineIdentifierCreateInfoARM {
41237    #[inline]
41238    fn default() -> Self {
41239        Self {
41240            s_type: StructureType::from_raw(1000507013i32),
41241            p_next: core::ptr::null(),
41242            identifier_size: Default::default(),
41243            p_identifier: core::ptr::null(),
41244        }
41245    }
41246}
41247///[`VkDataGraphPipelineDispatchInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineDispatchInfoARM.html)
41248/**
41249Provided by **VK_ARM_data_graph**.*/
41250#[repr(C)]
41251#[derive(Copy, Clone, Debug)]
41252#[doc(alias = "VkDataGraphPipelineDispatchInfoARM")]
41253pub struct DataGraphPipelineDispatchInfoARM {
41254    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM`.
41255    pub s_type: StructureType,
41256    ///Optional, may be null.
41257    pub p_next: *mut core::ffi::c_void,
41258    pub flags: DataGraphPipelineDispatchFlagsARM,
41259}
41260impl Default for DataGraphPipelineDispatchInfoARM {
41261    #[inline]
41262    fn default() -> Self {
41263        Self {
41264            s_type: StructureType::from_raw(1000507014i32),
41265            p_next: core::ptr::null_mut(),
41266            flags: Default::default(),
41267        }
41268    }
41269}
41270///[`VkPhysicalDeviceDataGraphProcessingEngineARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDataGraphProcessingEngineARM.html)
41271/**
41272Provided by **VK_ARM_data_graph**.*/
41273#[repr(C)]
41274#[derive(Copy, Clone, Debug)]
41275#[doc(alias = "VkPhysicalDeviceDataGraphProcessingEngineARM")]
41276pub struct PhysicalDeviceDataGraphProcessingEngineARM {
41277    pub r#type: PhysicalDeviceDataGraphProcessingEngineTypeARM,
41278    pub is_foreign: u32,
41279}
41280impl Default for PhysicalDeviceDataGraphProcessingEngineARM {
41281    #[inline]
41282    fn default() -> Self {
41283        unsafe { core::mem::zeroed() }
41284    }
41285}
41286///[`VkPhysicalDeviceDataGraphOperationSupportARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDataGraphOperationSupportARM.html)
41287/**
41288Provided by **VK_ARM_data_graph**.*/
41289#[repr(C)]
41290#[derive(Copy, Clone, Debug)]
41291#[doc(alias = "VkPhysicalDeviceDataGraphOperationSupportARM")]
41292pub struct PhysicalDeviceDataGraphOperationSupportARM {
41293    pub operation_type: PhysicalDeviceDataGraphOperationTypeARM,
41294    pub name: crate::StringArray<
41295        { MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM as usize },
41296    >,
41297    pub version: u32,
41298}
41299impl Default for PhysicalDeviceDataGraphOperationSupportARM {
41300    #[inline]
41301    fn default() -> Self {
41302        unsafe { core::mem::zeroed() }
41303    }
41304}
41305///[`VkQueueFamilyDataGraphPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyDataGraphPropertiesARM.html)
41306/**
41307Provided by **VK_ARM_data_graph**.*/
41308/**
41309**Returned only**, filled by Vulkan, not constructed by the application.*/
41310#[repr(C)]
41311#[derive(Copy, Clone, Debug)]
41312#[doc(alias = "VkQueueFamilyDataGraphPropertiesARM")]
41313pub struct QueueFamilyDataGraphPropertiesARM {
41314    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM`.
41315    pub s_type: StructureType,
41316    ///Optional, may be null.
41317    pub p_next: *mut core::ffi::c_void,
41318    pub engine: PhysicalDeviceDataGraphProcessingEngineARM,
41319    pub operation: PhysicalDeviceDataGraphOperationSupportARM,
41320}
41321impl Default for QueueFamilyDataGraphPropertiesARM {
41322    #[inline]
41323    fn default() -> Self {
41324        Self {
41325            s_type: StructureType::from_raw(1000507018i32),
41326            p_next: core::ptr::null_mut(),
41327            engine: Default::default(),
41328            operation: Default::default(),
41329        }
41330    }
41331}
41332///[`VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM.html)
41333/**
41334Provided by **VK_ARM_data_graph**.*/
41335#[repr(C)]
41336#[derive(Copy, Clone, Debug)]
41337#[doc(alias = "VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM")]
41338pub struct PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
41339    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM`.
41340    pub s_type: StructureType,
41341    ///Optional, may be null.
41342    pub p_next: *const core::ffi::c_void,
41343    pub queue_family_index: u32,
41344    pub engine_type: PhysicalDeviceDataGraphProcessingEngineTypeARM,
41345}
41346impl Default for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
41347    #[inline]
41348    fn default() -> Self {
41349        Self {
41350            s_type: StructureType::from_raw(1000507019i32),
41351            p_next: core::ptr::null(),
41352            queue_family_index: Default::default(),
41353            engine_type: Default::default(),
41354        }
41355    }
41356}
41357///[`VkQueueFamilyDataGraphProcessingEnginePropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyDataGraphProcessingEnginePropertiesARM.html)
41358/**
41359Provided by **VK_ARM_data_graph**.*/
41360/**
41361**Returned only**, filled by Vulkan, not constructed by the application.*/
41362#[repr(C)]
41363#[derive(Copy, Clone, Debug)]
41364#[doc(alias = "VkQueueFamilyDataGraphProcessingEnginePropertiesARM")]
41365pub struct QueueFamilyDataGraphProcessingEnginePropertiesARM {
41366    ///Must be `VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM`.
41367    pub s_type: StructureType,
41368    ///Optional, may be null.
41369    pub p_next: *mut core::ffi::c_void,
41370    pub foreign_semaphore_handle_types: ExternalSemaphoreHandleTypeFlags,
41371    pub foreign_memory_handle_types: ExternalMemoryHandleTypeFlags,
41372}
41373impl Default for QueueFamilyDataGraphProcessingEnginePropertiesARM {
41374    #[inline]
41375    fn default() -> Self {
41376        Self {
41377            s_type: StructureType::from_raw(1000507017i32),
41378            p_next: core::ptr::null_mut(),
41379            foreign_semaphore_handle_types: Default::default(),
41380            foreign_memory_handle_types: Default::default(),
41381        }
41382    }
41383}
41384///[`VkDataGraphProcessingEngineCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphProcessingEngineCreateInfoARM.html)
41385/**
41386Provided by **VK_ARM_data_graph**.*/
41387///
41388///# Extends
41389///- [`DataGraphPipelineCreateInfoARM`]
41390///- [`DescriptorPoolCreateInfo`]
41391///- [`CommandPoolCreateInfo`]
41392#[repr(C)]
41393#[derive(Copy, Clone, Debug)]
41394#[doc(alias = "VkDataGraphProcessingEngineCreateInfoARM")]
41395pub struct DataGraphProcessingEngineCreateInfoARM {
41396    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM`.
41397    pub s_type: StructureType,
41398    ///Optional, may be null.
41399    pub p_next: *const core::ffi::c_void,
41400    ///Length of `p_processing_engines`.
41401    pub processing_engine_count: u32,
41402    pub p_processing_engines: *mut PhysicalDeviceDataGraphProcessingEngineARM,
41403}
41404impl Default for DataGraphProcessingEngineCreateInfoARM {
41405    #[inline]
41406    fn default() -> Self {
41407        Self {
41408            s_type: StructureType::from_raw(1000507016i32),
41409            p_next: core::ptr::null(),
41410            processing_engine_count: Default::default(),
41411            p_processing_engines: core::ptr::null_mut(),
41412        }
41413    }
41414}
41415///[`VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC.html)
41416/**
41417Provided by **VK_SEC_pipeline_cache_incremental_mode**.*/
41418///
41419///# Extends
41420///- [`PhysicalDeviceFeatures2`]
41421///- [`DeviceCreateInfo`]
41422#[repr(C)]
41423#[derive(Copy, Clone, Debug)]
41424#[doc(alias = "VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC")]
41425pub struct PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
41426    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC`.
41427    pub s_type: StructureType,
41428    ///Optional, may be null.
41429    pub p_next: *mut core::ffi::c_void,
41430    pub pipeline_cache_incremental_mode: u32,
41431}
41432impl Default for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
41433    #[inline]
41434    fn default() -> Self {
41435        Self {
41436            s_type: StructureType::from_raw(1000637000i32),
41437            p_next: core::ptr::null_mut(),
41438            pipeline_cache_incremental_mode: Default::default(),
41439        }
41440    }
41441}
41442///[`VkDataGraphPipelineBuiltinModelCreateInfoQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDataGraphPipelineBuiltinModelCreateInfoQCOM.html)
41443/**
41444Provided by **VK_QCOM_data_graph_model**.*/
41445///
41446///# Extends
41447///- [`DataGraphPipelineCreateInfoARM`]
41448#[repr(C)]
41449#[derive(Copy, Clone, Debug)]
41450#[doc(alias = "VkDataGraphPipelineBuiltinModelCreateInfoQCOM")]
41451pub struct DataGraphPipelineBuiltinModelCreateInfoQCOM {
41452    ///Must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM`.
41453    pub s_type: StructureType,
41454    ///Optional, may be null.
41455    pub p_next: *const core::ffi::c_void,
41456    pub p_operation: *const PhysicalDeviceDataGraphOperationSupportARM,
41457}
41458impl Default for DataGraphPipelineBuiltinModelCreateInfoQCOM {
41459    #[inline]
41460    fn default() -> Self {
41461        Self {
41462            s_type: StructureType::from_raw(1000629001i32),
41463            p_next: core::ptr::null(),
41464            p_operation: core::ptr::null(),
41465        }
41466    }
41467}
41468///[`VkPhysicalDeviceDataGraphModelFeaturesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDataGraphModelFeaturesQCOM.html)
41469/**
41470Provided by **VK_QCOM_data_graph_model**.*/
41471///
41472///# Extends
41473///- [`PhysicalDeviceFeatures2`]
41474///- [`DeviceCreateInfo`]
41475#[repr(C)]
41476#[derive(Copy, Clone, Debug)]
41477#[doc(alias = "VkPhysicalDeviceDataGraphModelFeaturesQCOM")]
41478pub struct PhysicalDeviceDataGraphModelFeaturesQCOM {
41479    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM`.
41480    pub s_type: StructureType,
41481    ///Optional, may be null.
41482    pub p_next: *mut core::ffi::c_void,
41483    pub data_graph_model: u32,
41484}
41485impl Default for PhysicalDeviceDataGraphModelFeaturesQCOM {
41486    #[inline]
41487    fn default() -> Self {
41488        Self {
41489            s_type: StructureType::from_raw(1000629000i32),
41490            p_next: core::ptr::null_mut(),
41491            data_graph_model: Default::default(),
41492        }
41493    }
41494}
41495///[`VkPhysicalDeviceShaderUntypedPointersFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderUntypedPointersFeaturesKHR.html)
41496/**
41497Provided by **VK_KHR_shader_untyped_pointers**.*/
41498///
41499///# Extends
41500///- [`PhysicalDeviceFeatures2`]
41501///- [`DeviceCreateInfo`]
41502#[repr(C)]
41503#[derive(Copy, Clone, Debug)]
41504#[doc(alias = "VkPhysicalDeviceShaderUntypedPointersFeaturesKHR")]
41505pub struct PhysicalDeviceShaderUntypedPointersFeaturesKHR {
41506    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR`.
41507    pub s_type: StructureType,
41508    ///Optional, may be null.
41509    pub p_next: *mut core::ffi::c_void,
41510    pub shader_untyped_pointers: u32,
41511}
41512impl Default for PhysicalDeviceShaderUntypedPointersFeaturesKHR {
41513    #[inline]
41514    fn default() -> Self {
41515        Self {
41516            s_type: StructureType::from_raw(1000387000i32),
41517            p_next: core::ptr::null_mut(),
41518            shader_untyped_pointers: Default::default(),
41519        }
41520    }
41521}
41522///[`VkNativeBufferOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferOHOS.html)
41523///
41524///# Extends
41525///- [`ImageCreateInfo`]
41526///- [`BindImageMemoryInfo`]
41527#[repr(C)]
41528#[derive(Copy, Clone, Debug)]
41529#[doc(alias = "VkNativeBufferOHOS")]
41530pub struct NativeBufferOHOS {
41531    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS`.
41532    pub s_type: StructureType,
41533    ///Optional, may be null.
41534    pub p_next: *const core::ffi::c_void,
41535    pub handle: *mut core::ffi::c_void,
41536}
41537impl Default for NativeBufferOHOS {
41538    #[inline]
41539    fn default() -> Self {
41540        Self {
41541            s_type: Default::default(),
41542            p_next: core::ptr::null(),
41543            handle: core::ptr::null_mut(),
41544        }
41545    }
41546}
41547///[`VkSwapchainImageCreateInfoOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSwapchainImageCreateInfoOHOS.html)
41548///
41549///# Extends
41550///- [`ImageCreateInfo`]
41551#[repr(C)]
41552#[derive(Copy, Clone, Debug)]
41553#[doc(alias = "VkSwapchainImageCreateInfoOHOS")]
41554pub struct SwapchainImageCreateInfoOHOS {
41555    ///Must be `VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS`.
41556    pub s_type: StructureType,
41557    ///Optional, may be null.
41558    pub p_next: *const core::ffi::c_void,
41559    pub usage: SwapchainImageUsageFlagsOHOS,
41560}
41561impl Default for SwapchainImageCreateInfoOHOS {
41562    #[inline]
41563    fn default() -> Self {
41564        Self {
41565            s_type: Default::default(),
41566            p_next: core::ptr::null(),
41567            usage: Default::default(),
41568        }
41569    }
41570}
41571///[`VkPhysicalDevicePresentationPropertiesOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentationPropertiesOHOS.html)
41572/**
41573**Returned only**, filled by Vulkan, not constructed by the application.*/
41574///
41575///# Extends
41576///- [`PhysicalDeviceProperties2`]
41577#[repr(C)]
41578#[derive(Copy, Clone, Debug)]
41579#[doc(alias = "VkPhysicalDevicePresentationPropertiesOHOS")]
41580pub struct PhysicalDevicePresentationPropertiesOHOS {
41581    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS`.
41582    pub s_type: StructureType,
41583    ///Optional, may be null.
41584    pub p_next: *mut core::ffi::c_void,
41585    pub shared_image: u32,
41586}
41587impl Default for PhysicalDevicePresentationPropertiesOHOS {
41588    #[inline]
41589    fn default() -> Self {
41590        Self {
41591            s_type: Default::default(),
41592            p_next: core::ptr::null_mut(),
41593            shared_image: Default::default(),
41594        }
41595    }
41596}
41597///[`VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE.html)
41598/**
41599Provided by **VK_VALVE_video_encode_rgb_conversion**.*/
41600///
41601///# Extends
41602///- [`PhysicalDeviceFeatures2`]
41603///- [`DeviceCreateInfo`]
41604#[repr(C)]
41605#[derive(Copy, Clone, Debug)]
41606#[doc(alias = "VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE")]
41607pub struct PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
41608    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE`.
41609    pub s_type: StructureType,
41610    ///Optional, may be null.
41611    pub p_next: *mut core::ffi::c_void,
41612    pub video_encode_rgb_conversion: u32,
41613}
41614impl Default for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
41615    #[inline]
41616    fn default() -> Self {
41617        Self {
41618            s_type: StructureType::from_raw(1000390000i32),
41619            p_next: core::ptr::null_mut(),
41620            video_encode_rgb_conversion: Default::default(),
41621        }
41622    }
41623}
41624///[`VkVideoEncodeRgbConversionCapabilitiesVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeRgbConversionCapabilitiesVALVE.html)
41625/**
41626Provided by **VK_VALVE_video_encode_rgb_conversion**.*/
41627/**
41628**Returned only**, filled by Vulkan, not constructed by the application.*/
41629///
41630///# Extends
41631///- [`VideoCapabilitiesKHR`]
41632#[repr(C)]
41633#[derive(Copy, Clone, Debug)]
41634#[doc(alias = "VkVideoEncodeRgbConversionCapabilitiesVALVE")]
41635pub struct VideoEncodeRgbConversionCapabilitiesVALVE {
41636    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE`.
41637    pub s_type: StructureType,
41638    ///Optional, may be null.
41639    pub p_next: *mut core::ffi::c_void,
41640    pub rgb_models: VideoEncodeRgbModelConversionFlagsVALVE,
41641    pub rgb_ranges: VideoEncodeRgbRangeCompressionFlagsVALVE,
41642    pub x_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE,
41643    pub y_chroma_offsets: VideoEncodeRgbChromaOffsetFlagsVALVE,
41644}
41645impl Default for VideoEncodeRgbConversionCapabilitiesVALVE {
41646    #[inline]
41647    fn default() -> Self {
41648        Self {
41649            s_type: StructureType::from_raw(1000390001i32),
41650            p_next: core::ptr::null_mut(),
41651            rgb_models: Default::default(),
41652            rgb_ranges: Default::default(),
41653            x_chroma_offsets: Default::default(),
41654            y_chroma_offsets: Default::default(),
41655        }
41656    }
41657}
41658///[`VkVideoEncodeProfileRgbConversionInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeProfileRgbConversionInfoVALVE.html)
41659/**
41660Provided by **VK_VALVE_video_encode_rgb_conversion**.*/
41661///
41662///# Extends
41663///- [`VideoProfileInfoKHR`]
41664#[repr(C)]
41665#[derive(Copy, Clone, Debug)]
41666#[doc(alias = "VkVideoEncodeProfileRgbConversionInfoVALVE")]
41667pub struct VideoEncodeProfileRgbConversionInfoVALVE {
41668    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE`.
41669    pub s_type: StructureType,
41670    ///Optional, may be null.
41671    pub p_next: *const core::ffi::c_void,
41672    pub perform_encode_rgb_conversion: u32,
41673}
41674impl Default for VideoEncodeProfileRgbConversionInfoVALVE {
41675    #[inline]
41676    fn default() -> Self {
41677        Self {
41678            s_type: StructureType::from_raw(1000390002i32),
41679            p_next: core::ptr::null(),
41680            perform_encode_rgb_conversion: Default::default(),
41681        }
41682    }
41683}
41684///[`VkVideoEncodeSessionRgbConversionCreateInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeSessionRgbConversionCreateInfoVALVE.html)
41685/**
41686Provided by **VK_VALVE_video_encode_rgb_conversion**.*/
41687///
41688///# Extends
41689///- [`VideoSessionCreateInfoKHR`]
41690#[repr(C)]
41691#[derive(Copy, Clone, Debug)]
41692#[doc(alias = "VkVideoEncodeSessionRgbConversionCreateInfoVALVE")]
41693pub struct VideoEncodeSessionRgbConversionCreateInfoVALVE {
41694    ///Must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE`.
41695    pub s_type: StructureType,
41696    ///Optional, may be null.
41697    pub p_next: *const core::ffi::c_void,
41698    pub rgb_model: VideoEncodeRgbModelConversionFlagBitsVALVE,
41699    pub rgb_range: VideoEncodeRgbRangeCompressionFlagBitsVALVE,
41700    pub x_chroma_offset: VideoEncodeRgbChromaOffsetFlagBitsVALVE,
41701    pub y_chroma_offset: VideoEncodeRgbChromaOffsetFlagBitsVALVE,
41702}
41703impl Default for VideoEncodeSessionRgbConversionCreateInfoVALVE {
41704    #[inline]
41705    fn default() -> Self {
41706        Self {
41707            s_type: StructureType::from_raw(1000390003i32),
41708            p_next: core::ptr::null(),
41709            rgb_model: Default::default(),
41710            rgb_range: Default::default(),
41711            x_chroma_offset: Default::default(),
41712            y_chroma_offset: Default::default(),
41713        }
41714    }
41715}
41716///[`VkPhysicalDeviceShader64BitIndexingFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShader64BitIndexingFeaturesEXT.html)
41717/**
41718Provided by **VK_EXT_shader_64bit_indexing**.*/
41719///
41720///# Extends
41721///- [`PhysicalDeviceFeatures2`]
41722///- [`DeviceCreateInfo`]
41723#[repr(C)]
41724#[derive(Copy, Clone, Debug)]
41725#[doc(alias = "VkPhysicalDeviceShader64BitIndexingFeaturesEXT")]
41726pub struct PhysicalDeviceShader64BitIndexingFeaturesEXT {
41727    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT`.
41728    pub s_type: StructureType,
41729    ///Optional, may be null.
41730    pub p_next: *mut core::ffi::c_void,
41731    pub shader64_bit_indexing: u32,
41732}
41733impl Default for PhysicalDeviceShader64BitIndexingFeaturesEXT {
41734    #[inline]
41735    fn default() -> Self {
41736        Self {
41737            s_type: StructureType::from_raw(1000627000i32),
41738            p_next: core::ptr::null_mut(),
41739            shader64_bit_indexing: Default::default(),
41740        }
41741    }
41742}
41743///[`VkNativeBufferUsageOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferUsageOHOS.html)
41744/**
41745Provided by **VK_OHOS_external_memory**.*/
41746/**
41747**Returned only**, filled by Vulkan, not constructed by the application.*/
41748///
41749///# Extends
41750///- [`ImageFormatProperties2`]
41751#[repr(C)]
41752#[derive(Copy, Clone, Debug)]
41753#[doc(alias = "VkNativeBufferUsageOHOS")]
41754pub struct NativeBufferUsageOHOS {
41755    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS`.
41756    pub s_type: StructureType,
41757    ///Optional, may be null.
41758    pub p_next: *mut core::ffi::c_void,
41759    pub ohos_native_buffer_usage: u64,
41760}
41761impl Default for NativeBufferUsageOHOS {
41762    #[inline]
41763    fn default() -> Self {
41764        Self {
41765            s_type: StructureType::from_raw(1000452000i32),
41766            p_next: core::ptr::null_mut(),
41767            ohos_native_buffer_usage: Default::default(),
41768        }
41769    }
41770}
41771///[`VkNativeBufferPropertiesOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferPropertiesOHOS.html)
41772/**
41773Provided by **VK_OHOS_external_memory**.*/
41774/**
41775**Returned only**, filled by Vulkan, not constructed by the application.*/
41776///
41777///# Extended By
41778///- [`NativeBufferFormatPropertiesOHOS`]
41779#[repr(C)]
41780#[derive(Copy, Clone, Debug)]
41781#[doc(alias = "VkNativeBufferPropertiesOHOS")]
41782pub struct NativeBufferPropertiesOHOS {
41783    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS`.
41784    pub s_type: StructureType,
41785    ///Optional, may be null.
41786    pub p_next: *mut core::ffi::c_void,
41787    pub allocation_size: u64,
41788    pub memory_type_bits: u32,
41789}
41790impl Default for NativeBufferPropertiesOHOS {
41791    #[inline]
41792    fn default() -> Self {
41793        Self {
41794            s_type: StructureType::from_raw(1000452001i32),
41795            p_next: core::ptr::null_mut(),
41796            allocation_size: Default::default(),
41797            memory_type_bits: Default::default(),
41798        }
41799    }
41800}
41801///[`VkNativeBufferFormatPropertiesOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkNativeBufferFormatPropertiesOHOS.html)
41802/**
41803Provided by **VK_OHOS_external_memory**.*/
41804/**
41805**Returned only**, filled by Vulkan, not constructed by the application.*/
41806///
41807///# Extends
41808///- [`NativeBufferPropertiesOHOS`]
41809#[repr(C)]
41810#[derive(Copy, Clone, Debug)]
41811#[doc(alias = "VkNativeBufferFormatPropertiesOHOS")]
41812pub struct NativeBufferFormatPropertiesOHOS {
41813    ///Must be `VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS`.
41814    pub s_type: StructureType,
41815    ///Optional, may be null.
41816    pub p_next: *mut core::ffi::c_void,
41817    pub format: Format,
41818    pub external_format: u64,
41819    pub format_features: FormatFeatureFlags,
41820    pub sampler_ycbcr_conversion_components: ComponentMapping,
41821    pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
41822    pub suggested_ycbcr_range: SamplerYcbcrRange,
41823    pub suggested_x_chroma_offset: ChromaLocation,
41824    pub suggested_y_chroma_offset: ChromaLocation,
41825}
41826impl Default for NativeBufferFormatPropertiesOHOS {
41827    #[inline]
41828    fn default() -> Self {
41829        Self {
41830            s_type: StructureType::from_raw(1000452002i32),
41831            p_next: core::ptr::null_mut(),
41832            format: Default::default(),
41833            external_format: Default::default(),
41834            format_features: Default::default(),
41835            sampler_ycbcr_conversion_components: Default::default(),
41836            suggested_ycbcr_model: Default::default(),
41837            suggested_ycbcr_range: Default::default(),
41838            suggested_x_chroma_offset: Default::default(),
41839            suggested_y_chroma_offset: Default::default(),
41840        }
41841    }
41842}
41843///[`VkImportNativeBufferInfoOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImportNativeBufferInfoOHOS.html)
41844/**
41845Provided by **VK_OHOS_external_memory**.*/
41846///
41847///# Extends
41848///- [`MemoryAllocateInfo`]
41849#[repr(C)]
41850#[derive(Copy, Clone, Debug)]
41851#[doc(alias = "VkImportNativeBufferInfoOHOS")]
41852pub struct ImportNativeBufferInfoOHOS {
41853    ///Must be `VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS`.
41854    pub s_type: StructureType,
41855    ///Optional, may be null.
41856    pub p_next: *const core::ffi::c_void,
41857    pub buffer: *mut core::ffi::c_void,
41858}
41859impl Default for ImportNativeBufferInfoOHOS {
41860    #[inline]
41861    fn default() -> Self {
41862        Self {
41863            s_type: StructureType::from_raw(1000452003i32),
41864            p_next: core::ptr::null(),
41865            buffer: core::ptr::null_mut(),
41866        }
41867    }
41868}
41869///[`VkMemoryGetNativeBufferInfoOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryGetNativeBufferInfoOHOS.html)
41870/**
41871Provided by **VK_OHOS_external_memory**.*/
41872#[repr(C)]
41873#[derive(Copy, Clone, Debug)]
41874#[doc(alias = "VkMemoryGetNativeBufferInfoOHOS")]
41875pub struct MemoryGetNativeBufferInfoOHOS {
41876    ///Must be `VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS`.
41877    pub s_type: StructureType,
41878    ///Optional, may be null.
41879    pub p_next: *const core::ffi::c_void,
41880    pub memory: DeviceMemory,
41881}
41882impl Default for MemoryGetNativeBufferInfoOHOS {
41883    #[inline]
41884    fn default() -> Self {
41885        Self {
41886            s_type: StructureType::from_raw(1000452004i32),
41887            p_next: core::ptr::null(),
41888            memory: Default::default(),
41889        }
41890    }
41891}
41892///[`VkExternalFormatOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalFormatOHOS.html)
41893/**
41894Provided by **VK_OHOS_external_memory**.*/
41895///
41896///# Extends
41897///- [`ImageCreateInfo`]
41898///- [`SamplerYcbcrConversionCreateInfo`]
41899///- [`AttachmentDescription2`]
41900///- [`GraphicsPipelineCreateInfo`]
41901///- [`CommandBufferInheritanceInfo`]
41902#[repr(C)]
41903#[derive(Copy, Clone, Debug)]
41904#[doc(alias = "VkExternalFormatOHOS")]
41905pub struct ExternalFormatOHOS {
41906    ///Must be `VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS`.
41907    pub s_type: StructureType,
41908    ///Optional, may be null.
41909    pub p_next: *mut core::ffi::c_void,
41910    pub external_format: u64,
41911}
41912impl Default for ExternalFormatOHOS {
41913    #[inline]
41914    fn default() -> Self {
41915        Self {
41916            s_type: StructureType::from_raw(1000452005i32),
41917            p_next: core::ptr::null_mut(),
41918            external_format: Default::default(),
41919        }
41920    }
41921}
41922///[`VkPhysicalDevicePerformanceCountersByRegionFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerformanceCountersByRegionFeaturesARM.html)
41923/**
41924Provided by **VK_ARM_performance_counters_by_region**.*/
41925///
41926///# Extends
41927///- [`PhysicalDeviceFeatures2`]
41928///- [`DeviceCreateInfo`]
41929#[repr(C)]
41930#[derive(Copy, Clone, Debug)]
41931#[doc(alias = "VkPhysicalDevicePerformanceCountersByRegionFeaturesARM")]
41932pub struct PhysicalDevicePerformanceCountersByRegionFeaturesARM {
41933    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM`.
41934    pub s_type: StructureType,
41935    ///Optional, may be null.
41936    pub p_next: *mut core::ffi::c_void,
41937    pub performance_counters_by_region: u32,
41938}
41939impl Default for PhysicalDevicePerformanceCountersByRegionFeaturesARM {
41940    #[inline]
41941    fn default() -> Self {
41942        Self {
41943            s_type: StructureType::from_raw(1000605000i32),
41944            p_next: core::ptr::null_mut(),
41945            performance_counters_by_region: Default::default(),
41946        }
41947    }
41948}
41949///[`VkPhysicalDevicePerformanceCountersByRegionPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePerformanceCountersByRegionPropertiesARM.html)
41950/**
41951Provided by **VK_ARM_performance_counters_by_region**.*/
41952/**
41953**Returned only**, filled by Vulkan, not constructed by the application.*/
41954///
41955///# Extends
41956///- [`PhysicalDeviceProperties2`]
41957#[repr(C)]
41958#[derive(Copy, Clone, Debug)]
41959#[doc(alias = "VkPhysicalDevicePerformanceCountersByRegionPropertiesARM")]
41960pub struct PhysicalDevicePerformanceCountersByRegionPropertiesARM {
41961    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM`.
41962    pub s_type: StructureType,
41963    ///Optional, may be null.
41964    pub p_next: *mut core::ffi::c_void,
41965    pub max_per_region_performance_counters: u32,
41966    pub performance_counter_region_size: Extent2D,
41967    pub row_stride_alignment: u32,
41968    pub region_alignment: u32,
41969    pub identity_transform_order: u32,
41970}
41971impl Default for PhysicalDevicePerformanceCountersByRegionPropertiesARM {
41972    #[inline]
41973    fn default() -> Self {
41974        Self {
41975            s_type: StructureType::from_raw(1000605001i32),
41976            p_next: core::ptr::null_mut(),
41977            max_per_region_performance_counters: Default::default(),
41978            performance_counter_region_size: Default::default(),
41979            row_stride_alignment: Default::default(),
41980            region_alignment: Default::default(),
41981            identity_transform_order: Default::default(),
41982        }
41983    }
41984}
41985///[`VkPerformanceCounterARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterARM.html)
41986/**
41987Provided by **VK_ARM_performance_counters_by_region**.*/
41988/**
41989**Returned only**, filled by Vulkan, not constructed by the application.*/
41990#[repr(C)]
41991#[derive(Copy, Clone, Debug)]
41992#[doc(alias = "VkPerformanceCounterARM")]
41993pub struct PerformanceCounterARM {
41994    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM`.
41995    pub s_type: StructureType,
41996    ///Optional, may be null.
41997    pub p_next: *mut core::ffi::c_void,
41998    pub counter_id: u32,
41999}
42000impl Default for PerformanceCounterARM {
42001    #[inline]
42002    fn default() -> Self {
42003        Self {
42004            s_type: StructureType::from_raw(1000605002i32),
42005            p_next: core::ptr::null_mut(),
42006            counter_id: Default::default(),
42007        }
42008    }
42009}
42010///[`VkPerformanceCounterDescriptionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPerformanceCounterDescriptionARM.html)
42011/**
42012Provided by **VK_ARM_performance_counters_by_region**.*/
42013/**
42014**Returned only**, filled by Vulkan, not constructed by the application.*/
42015#[repr(C)]
42016#[derive(Copy, Clone, Debug)]
42017#[doc(alias = "VkPerformanceCounterDescriptionARM")]
42018pub struct PerformanceCounterDescriptionARM {
42019    ///Must be `VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM`.
42020    pub s_type: StructureType,
42021    ///Optional, may be null.
42022    pub p_next: *mut core::ffi::c_void,
42023    pub flags: PerformanceCounterDescriptionFlagsARM,
42024    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
42025}
42026impl Default for PerformanceCounterDescriptionARM {
42027    #[inline]
42028    fn default() -> Self {
42029        Self {
42030            s_type: StructureType::from_raw(1000605003i32),
42031            p_next: core::ptr::null_mut(),
42032            flags: Default::default(),
42033            name: unsafe { core::mem::zeroed() },
42034        }
42035    }
42036}
42037///[`VkRenderPassPerformanceCountersByRegionBeginInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkRenderPassPerformanceCountersByRegionBeginInfoARM.html)
42038/**
42039Provided by **VK_ARM_performance_counters_by_region**.*/
42040///
42041///# Extends
42042///- [`RenderPassBeginInfo`]
42043///- [`RenderingInfo`]
42044#[repr(C)]
42045#[derive(Copy, Clone, Debug)]
42046#[doc(alias = "VkRenderPassPerformanceCountersByRegionBeginInfoARM")]
42047pub struct RenderPassPerformanceCountersByRegionBeginInfoARM {
42048    ///Must be `VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM`.
42049    pub s_type: StructureType,
42050    ///Optional, may be null.
42051    pub p_next: *mut core::ffi::c_void,
42052    ///Length of `p_counter_addresses`.
42053    pub counter_address_count: u32,
42054    pub p_counter_addresses: *const u64,
42055    pub serialize_regions: u32,
42056    ///Length of `p_counter_indices`.
42057    pub counter_index_count: u32,
42058    pub p_counter_indices: *mut u32,
42059}
42060impl Default for RenderPassPerformanceCountersByRegionBeginInfoARM {
42061    #[inline]
42062    fn default() -> Self {
42063        Self {
42064            s_type: StructureType::from_raw(1000605004i32),
42065            p_next: core::ptr::null_mut(),
42066            counter_address_count: Default::default(),
42067            p_counter_addresses: core::ptr::null(),
42068            serialize_regions: Default::default(),
42069            counter_index_count: Default::default(),
42070            p_counter_indices: core::ptr::null_mut(),
42071        }
42072    }
42073}
42074///[`VkComputeOccupancyPriorityParametersNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkComputeOccupancyPriorityParametersNV.html)
42075/**
42076Provided by **VK_NV_compute_occupancy_priority**.*/
42077#[repr(C)]
42078#[derive(Copy, Clone, Debug)]
42079#[doc(alias = "VkComputeOccupancyPriorityParametersNV")]
42080pub struct ComputeOccupancyPriorityParametersNV {
42081    ///Must be `VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV`.
42082    pub s_type: StructureType,
42083    ///Optional, may be null.
42084    pub p_next: *const core::ffi::c_void,
42085    pub occupancy_priority: f32,
42086    pub occupancy_throttling: f32,
42087}
42088impl Default for ComputeOccupancyPriorityParametersNV {
42089    #[inline]
42090    fn default() -> Self {
42091        Self {
42092            s_type: StructureType::from_raw(1000645000i32),
42093            p_next: core::ptr::null(),
42094            occupancy_priority: Default::default(),
42095            occupancy_throttling: Default::default(),
42096        }
42097    }
42098}
42099///[`VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV.html)
42100/**
42101Provided by **VK_NV_compute_occupancy_priority**.*/
42102///
42103///# Extends
42104///- [`PhysicalDeviceFeatures2`]
42105///- [`DeviceCreateInfo`]
42106#[repr(C)]
42107#[derive(Copy, Clone, Debug)]
42108#[doc(alias = "VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV")]
42109pub struct PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
42110    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV`.
42111    pub s_type: StructureType,
42112    ///Optional, may be null.
42113    pub p_next: *mut core::ffi::c_void,
42114    pub compute_occupancy_priority: u32,
42115}
42116impl Default for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
42117    #[inline]
42118    fn default() -> Self {
42119        Self {
42120            s_type: StructureType::from_raw(1000645001i32),
42121            p_next: core::ptr::null_mut(),
42122            compute_occupancy_priority: Default::default(),
42123        }
42124    }
42125}
42126///[`VkPhysicalDeviceShaderLongVectorFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderLongVectorFeaturesEXT.html)
42127/**
42128Provided by **VK_EXT_shader_long_vector**.*/
42129///
42130///# Extends
42131///- [`PhysicalDeviceFeatures2`]
42132///- [`DeviceCreateInfo`]
42133#[repr(C)]
42134#[derive(Copy, Clone, Debug)]
42135#[doc(alias = "VkPhysicalDeviceShaderLongVectorFeaturesEXT")]
42136pub struct PhysicalDeviceShaderLongVectorFeaturesEXT {
42137    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT`.
42138    pub s_type: StructureType,
42139    ///Optional, may be null.
42140    pub p_next: *mut core::ffi::c_void,
42141    pub long_vector: u32,
42142}
42143impl Default for PhysicalDeviceShaderLongVectorFeaturesEXT {
42144    #[inline]
42145    fn default() -> Self {
42146        Self {
42147            s_type: StructureType::from_raw(1000635000i32),
42148            p_next: core::ptr::null_mut(),
42149            long_vector: Default::default(),
42150        }
42151    }
42152}
42153///[`VkPhysicalDeviceShaderLongVectorPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderLongVectorPropertiesEXT.html)
42154/**
42155Provided by **VK_EXT_shader_long_vector**.*/
42156/**
42157**Returned only**, filled by Vulkan, not constructed by the application.*/
42158///
42159///# Extends
42160///- [`PhysicalDeviceProperties2`]
42161#[repr(C)]
42162#[derive(Copy, Clone, Debug)]
42163#[doc(alias = "VkPhysicalDeviceShaderLongVectorPropertiesEXT")]
42164pub struct PhysicalDeviceShaderLongVectorPropertiesEXT {
42165    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT`.
42166    pub s_type: StructureType,
42167    ///Optional, may be null.
42168    pub p_next: *mut core::ffi::c_void,
42169    pub max_vector_components: u32,
42170}
42171impl Default for PhysicalDeviceShaderLongVectorPropertiesEXT {
42172    #[inline]
42173    fn default() -> Self {
42174        Self {
42175            s_type: StructureType::from_raw(1000635001i32),
42176            p_next: core::ptr::null_mut(),
42177            max_vector_components: Default::default(),
42178        }
42179    }
42180}
42181///[`VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT.html)
42182/**
42183Provided by **VK_EXT_texture_compression_astc_3d**.*/
42184///
42185///# Extends
42186///- [`PhysicalDeviceFeatures2`]
42187///- [`DeviceCreateInfo`]
42188#[repr(C)]
42189#[derive(Copy, Clone, Debug)]
42190#[doc(alias = "VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT")]
42191pub struct PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
42192    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT`.
42193    pub s_type: StructureType,
42194    ///Optional, may be null.
42195    pub p_next: *mut core::ffi::c_void,
42196    pub texture_compression_astc_3d: u32,
42197}
42198impl Default for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
42199    #[inline]
42200    fn default() -> Self {
42201        Self {
42202            s_type: StructureType::from_raw(1000288000i32),
42203            p_next: core::ptr::null_mut(),
42204            texture_compression_astc_3d: Default::default(),
42205        }
42206    }
42207}
42208///[`VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT.html)
42209/**
42210Provided by **VK_EXT_shader_subgroup_partitioned**.*/
42211///
42212///# Extends
42213///- [`PhysicalDeviceFeatures2`]
42214///- [`DeviceCreateInfo`]
42215#[repr(C)]
42216#[derive(Copy, Clone, Debug)]
42217#[doc(alias = "VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT")]
42218pub struct PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
42219    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT`.
42220    pub s_type: StructureType,
42221    ///Optional, may be null.
42222    pub p_next: *mut core::ffi::c_void,
42223    pub shader_subgroup_partitioned: u32,
42224}
42225impl Default for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
42226    #[inline]
42227    fn default() -> Self {
42228        Self {
42229            s_type: StructureType::from_raw(1000662000i32),
42230            p_next: core::ptr::null_mut(),
42231            shader_subgroup_partitioned: Default::default(),
42232        }
42233    }
42234}
42235///[`VkHostAddressRangeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostAddressRangeEXT.html)
42236/**
42237Provided by **VK_EXT_descriptor_heap**.*/
42238#[repr(C)]
42239#[derive(Copy, Clone, Debug)]
42240#[doc(alias = "VkHostAddressRangeEXT")]
42241pub struct HostAddressRangeEXT {
42242    pub address: *mut core::ffi::c_void,
42243    ///Length of `address`.
42244    pub size: usize,
42245}
42246impl Default for HostAddressRangeEXT {
42247    #[inline]
42248    fn default() -> Self {
42249        unsafe { core::mem::zeroed() }
42250    }
42251}
42252///[`VkHostAddressRangeConstEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostAddressRangeConstEXT.html)
42253/**
42254Provided by **VK_EXT_descriptor_heap**.*/
42255#[repr(C)]
42256#[derive(Copy, Clone, Debug)]
42257#[doc(alias = "VkHostAddressRangeConstEXT")]
42258pub struct HostAddressRangeConstEXT {
42259    pub address: *const core::ffi::c_void,
42260    ///Length of `address`.
42261    pub size: usize,
42262}
42263impl Default for HostAddressRangeConstEXT {
42264    #[inline]
42265    fn default() -> Self {
42266        unsafe { core::mem::zeroed() }
42267    }
42268}
42269///[`VkTexelBufferDescriptorInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkTexelBufferDescriptorInfoEXT.html)
42270/**
42271Provided by **VK_EXT_descriptor_heap**.*/
42272#[repr(C)]
42273#[derive(Copy, Clone, Debug)]
42274#[doc(alias = "VkTexelBufferDescriptorInfoEXT")]
42275pub struct TexelBufferDescriptorInfoEXT {
42276    ///Must be `VK_STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT`.
42277    pub s_type: StructureType,
42278    ///Optional, may be null.
42279    pub p_next: *const core::ffi::c_void,
42280    pub format: Format,
42281    pub address_range: DeviceAddressRangeEXT,
42282}
42283impl Default for TexelBufferDescriptorInfoEXT {
42284    #[inline]
42285    fn default() -> Self {
42286        Self {
42287            s_type: StructureType::from_raw(1000135000i32),
42288            p_next: core::ptr::null(),
42289            format: Default::default(),
42290            address_range: Default::default(),
42291        }
42292    }
42293}
42294///[`VkImageDescriptorInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkImageDescriptorInfoEXT.html)
42295/**
42296Provided by **VK_EXT_descriptor_heap**.*/
42297#[repr(C)]
42298#[derive(Copy, Clone, Debug)]
42299#[doc(alias = "VkImageDescriptorInfoEXT")]
42300pub struct ImageDescriptorInfoEXT {
42301    ///Must be `VK_STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT`.
42302    pub s_type: StructureType,
42303    ///Optional, may be null.
42304    pub p_next: *const core::ffi::c_void,
42305    pub p_view: *const ImageViewCreateInfo,
42306    pub layout: ImageLayout,
42307}
42308impl Default for ImageDescriptorInfoEXT {
42309    #[inline]
42310    fn default() -> Self {
42311        Self {
42312            s_type: StructureType::from_raw(1000135001i32),
42313            p_next: core::ptr::null(),
42314            p_view: core::ptr::null(),
42315            layout: Default::default(),
42316        }
42317    }
42318}
42319///[`VkResourceDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkResourceDescriptorDataEXT.html)
42320/**
42321Provided by **VK_EXT_descriptor_heap**.*/
42322#[repr(C)]
42323#[derive(Copy, Clone)]
42324#[doc(alias = "VkResourceDescriptorDataEXT")]
42325pub union ResourceDescriptorDataEXT {
42326    pub p_image: *const ImageDescriptorInfoEXT,
42327    pub p_texel_buffer: *const TexelBufferDescriptorInfoEXT,
42328    pub p_address_range: *const DeviceAddressRangeEXT,
42329    pub p_tensor_arm: *const TensorViewCreateInfoARM,
42330}
42331impl Default for ResourceDescriptorDataEXT {
42332    #[inline]
42333    fn default() -> Self {
42334        unsafe { core::mem::zeroed() }
42335    }
42336}
42337impl core::fmt::Debug for ResourceDescriptorDataEXT {
42338    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
42339        f.write_str(stringify!(ResourceDescriptorDataEXT))
42340    }
42341}
42342///[`VkResourceDescriptorInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkResourceDescriptorInfoEXT.html)
42343/**
42344Provided by **VK_EXT_descriptor_heap**.*/
42345///
42346///# Extended By
42347///- [`DebugUtilsObjectNameInfoEXT`]
42348#[repr(C)]
42349#[derive(Copy, Clone, Debug)]
42350#[doc(alias = "VkResourceDescriptorInfoEXT")]
42351pub struct ResourceDescriptorInfoEXT {
42352    ///Must be `VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT`.
42353    pub s_type: StructureType,
42354    ///Optional, may be null.
42355    pub p_next: *const core::ffi::c_void,
42356    pub r#type: DescriptorType,
42357    pub data: ResourceDescriptorDataEXT,
42358}
42359impl Default for ResourceDescriptorInfoEXT {
42360    #[inline]
42361    fn default() -> Self {
42362        Self {
42363            s_type: StructureType::from_raw(1000135002i32),
42364            p_next: core::ptr::null(),
42365            r#type: Default::default(),
42366            data: Default::default(),
42367        }
42368    }
42369}
42370///[`VkBindHeapInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindHeapInfoEXT.html)
42371/**
42372Provided by **VK_EXT_descriptor_heap**.*/
42373#[repr(C)]
42374#[derive(Copy, Clone, Debug)]
42375#[doc(alias = "VkBindHeapInfoEXT")]
42376pub struct BindHeapInfoEXT {
42377    ///Must be `VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT`.
42378    pub s_type: StructureType,
42379    ///Optional, may be null.
42380    pub p_next: *const core::ffi::c_void,
42381    pub heap_range: DeviceAddressRangeEXT,
42382    pub reserved_range_offset: u64,
42383    pub reserved_range_size: u64,
42384}
42385impl Default for BindHeapInfoEXT {
42386    #[inline]
42387    fn default() -> Self {
42388        Self {
42389            s_type: StructureType::from_raw(1000135003i32),
42390            p_next: core::ptr::null(),
42391            heap_range: Default::default(),
42392            reserved_range_offset: Default::default(),
42393            reserved_range_size: Default::default(),
42394        }
42395    }
42396}
42397///[`VkPushDataInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPushDataInfoEXT.html)
42398/**
42399Provided by **VK_EXT_descriptor_heap**.*/
42400///
42401///# Extended By
42402///- [`PushConstantBankInfoNV`]
42403#[repr(C)]
42404#[derive(Copy, Clone, Debug)]
42405#[doc(alias = "VkPushDataInfoEXT")]
42406pub struct PushDataInfoEXT {
42407    ///Must be `VK_STRUCTURE_TYPE_PUSH_DATA_INFO_EXT`.
42408    pub s_type: StructureType,
42409    ///Optional, may be null.
42410    pub p_next: *const core::ffi::c_void,
42411    pub offset: u32,
42412    pub data: HostAddressRangeConstEXT,
42413}
42414impl Default for PushDataInfoEXT {
42415    #[inline]
42416    fn default() -> Self {
42417        Self {
42418            s_type: StructureType::from_raw(1000135004i32),
42419            p_next: core::ptr::null(),
42420            offset: Default::default(),
42421            data: Default::default(),
42422        }
42423    }
42424}
42425///[`VkDescriptorMappingSourceConstantOffsetEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceConstantOffsetEXT.html)
42426/**
42427Provided by **VK_EXT_descriptor_heap**.*/
42428#[repr(C)]
42429#[derive(Copy, Clone, Debug)]
42430#[doc(alias = "VkDescriptorMappingSourceConstantOffsetEXT")]
42431pub struct DescriptorMappingSourceConstantOffsetEXT {
42432    pub heap_offset: u32,
42433    pub heap_array_stride: u32,
42434    ///Optional, may be null.
42435    pub p_embedded_sampler: *const SamplerCreateInfo,
42436    pub sampler_heap_offset: u32,
42437    pub sampler_heap_array_stride: u32,
42438}
42439impl Default for DescriptorMappingSourceConstantOffsetEXT {
42440    #[inline]
42441    fn default() -> Self {
42442        unsafe { core::mem::zeroed() }
42443    }
42444}
42445///[`VkDescriptorMappingSourcePushIndexEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourcePushIndexEXT.html)
42446/**
42447Provided by **VK_EXT_descriptor_heap**.*/
42448#[repr(C)]
42449#[derive(Copy, Clone, Debug)]
42450#[doc(alias = "VkDescriptorMappingSourcePushIndexEXT")]
42451pub struct DescriptorMappingSourcePushIndexEXT {
42452    pub heap_offset: u32,
42453    pub push_offset: u32,
42454    pub heap_index_stride: u32,
42455    pub heap_array_stride: u32,
42456    ///Optional, may be null.
42457    pub p_embedded_sampler: *const SamplerCreateInfo,
42458    pub use_combined_image_sampler_index: u32,
42459    pub sampler_heap_offset: u32,
42460    pub sampler_push_offset: u32,
42461    pub sampler_heap_index_stride: u32,
42462    pub sampler_heap_array_stride: u32,
42463}
42464impl Default for DescriptorMappingSourcePushIndexEXT {
42465    #[inline]
42466    fn default() -> Self {
42467        unsafe { core::mem::zeroed() }
42468    }
42469}
42470///[`VkDescriptorMappingSourceIndirectIndexEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceIndirectIndexEXT.html)
42471/**
42472Provided by **VK_EXT_descriptor_heap**.*/
42473#[repr(C)]
42474#[derive(Copy, Clone, Debug)]
42475#[doc(alias = "VkDescriptorMappingSourceIndirectIndexEXT")]
42476pub struct DescriptorMappingSourceIndirectIndexEXT {
42477    pub heap_offset: u32,
42478    pub push_offset: u32,
42479    pub address_offset: u32,
42480    pub heap_index_stride: u32,
42481    pub heap_array_stride: u32,
42482    ///Optional, may be null.
42483    pub p_embedded_sampler: *const SamplerCreateInfo,
42484    pub use_combined_image_sampler_index: u32,
42485    pub sampler_heap_offset: u32,
42486    pub sampler_push_offset: u32,
42487    pub sampler_address_offset: u32,
42488    pub sampler_heap_index_stride: u32,
42489    pub sampler_heap_array_stride: u32,
42490}
42491impl Default for DescriptorMappingSourceIndirectIndexEXT {
42492    #[inline]
42493    fn default() -> Self {
42494        unsafe { core::mem::zeroed() }
42495    }
42496}
42497///[`VkDescriptorMappingSourceIndirectIndexArrayEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceIndirectIndexArrayEXT.html)
42498/**
42499Provided by **VK_EXT_descriptor_heap**.*/
42500#[repr(C)]
42501#[derive(Copy, Clone, Debug)]
42502#[doc(alias = "VkDescriptorMappingSourceIndirectIndexArrayEXT")]
42503pub struct DescriptorMappingSourceIndirectIndexArrayEXT {
42504    pub heap_offset: u32,
42505    pub push_offset: u32,
42506    pub address_offset: u32,
42507    pub heap_index_stride: u32,
42508    ///Optional, may be null.
42509    pub p_embedded_sampler: *const SamplerCreateInfo,
42510    pub use_combined_image_sampler_index: u32,
42511    pub sampler_heap_offset: u32,
42512    pub sampler_push_offset: u32,
42513    pub sampler_address_offset: u32,
42514    pub sampler_heap_index_stride: u32,
42515}
42516impl Default for DescriptorMappingSourceIndirectIndexArrayEXT {
42517    #[inline]
42518    fn default() -> Self {
42519        unsafe { core::mem::zeroed() }
42520    }
42521}
42522///[`VkDescriptorMappingSourceHeapDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceHeapDataEXT.html)
42523/**
42524Provided by **VK_EXT_descriptor_heap**.*/
42525#[repr(C)]
42526#[derive(Copy, Clone, Debug)]
42527#[doc(alias = "VkDescriptorMappingSourceHeapDataEXT")]
42528pub struct DescriptorMappingSourceHeapDataEXT {
42529    pub heap_offset: u32,
42530    pub push_offset: u32,
42531}
42532impl Default for DescriptorMappingSourceHeapDataEXT {
42533    #[inline]
42534    fn default() -> Self {
42535        unsafe { core::mem::zeroed() }
42536    }
42537}
42538///[`VkDescriptorMappingSourceShaderRecordIndexEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceShaderRecordIndexEXT.html)
42539/**
42540Provided by **VK_EXT_descriptor_heap**.*/
42541#[repr(C)]
42542#[derive(Copy, Clone, Debug)]
42543#[doc(alias = "VkDescriptorMappingSourceShaderRecordIndexEXT")]
42544pub struct DescriptorMappingSourceShaderRecordIndexEXT {
42545    pub heap_offset: u32,
42546    pub shader_record_offset: u32,
42547    pub heap_index_stride: u32,
42548    pub heap_array_stride: u32,
42549    ///Optional, may be null.
42550    pub p_embedded_sampler: *const SamplerCreateInfo,
42551    pub use_combined_image_sampler_index: u32,
42552    pub sampler_heap_offset: u32,
42553    pub sampler_shader_record_offset: u32,
42554    pub sampler_heap_index_stride: u32,
42555    pub sampler_heap_array_stride: u32,
42556}
42557impl Default for DescriptorMappingSourceShaderRecordIndexEXT {
42558    #[inline]
42559    fn default() -> Self {
42560        unsafe { core::mem::zeroed() }
42561    }
42562}
42563///[`VkDescriptorMappingSourceIndirectAddressEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceIndirectAddressEXT.html)
42564/**
42565Provided by **VK_EXT_descriptor_heap**.*/
42566#[repr(C)]
42567#[derive(Copy, Clone, Debug)]
42568#[doc(alias = "VkDescriptorMappingSourceIndirectAddressEXT")]
42569pub struct DescriptorMappingSourceIndirectAddressEXT {
42570    pub push_offset: u32,
42571    pub address_offset: u32,
42572}
42573impl Default for DescriptorMappingSourceIndirectAddressEXT {
42574    #[inline]
42575    fn default() -> Self {
42576        unsafe { core::mem::zeroed() }
42577    }
42578}
42579///[`VkDescriptorMappingSourceDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorMappingSourceDataEXT.html)
42580/**
42581Provided by **VK_EXT_descriptor_heap**.*/
42582#[repr(C)]
42583#[derive(Copy, Clone)]
42584#[doc(alias = "VkDescriptorMappingSourceDataEXT")]
42585pub union DescriptorMappingSourceDataEXT {
42586    pub constant_offset: DescriptorMappingSourceConstantOffsetEXT,
42587    pub push_index: DescriptorMappingSourcePushIndexEXT,
42588    pub indirect_index: DescriptorMappingSourceIndirectIndexEXT,
42589    pub indirect_index_array: DescriptorMappingSourceIndirectIndexArrayEXT,
42590    pub heap_data: DescriptorMappingSourceHeapDataEXT,
42591    pub push_data_offset: u32,
42592    pub push_address_offset: u32,
42593    pub indirect_address: DescriptorMappingSourceIndirectAddressEXT,
42594    pub shader_record_index: DescriptorMappingSourceShaderRecordIndexEXT,
42595    pub shader_record_data_offset: u32,
42596    pub shader_record_address_offset: u32,
42597}
42598impl Default for DescriptorMappingSourceDataEXT {
42599    #[inline]
42600    fn default() -> Self {
42601        unsafe { core::mem::zeroed() }
42602    }
42603}
42604impl core::fmt::Debug for DescriptorMappingSourceDataEXT {
42605    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
42606        f.write_str(stringify!(DescriptorMappingSourceDataEXT))
42607    }
42608}
42609///[`VkDescriptorSetAndBindingMappingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorSetAndBindingMappingEXT.html)
42610/**
42611Provided by **VK_EXT_descriptor_heap**.*/
42612///
42613///# Extended By
42614///- [`PushConstantBankInfoNV`]
42615#[repr(C)]
42616#[derive(Copy, Clone, Debug)]
42617#[doc(alias = "VkDescriptorSetAndBindingMappingEXT")]
42618pub struct DescriptorSetAndBindingMappingEXT {
42619    ///Must be `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT`.
42620    pub s_type: StructureType,
42621    ///Optional, may be null.
42622    pub p_next: *const core::ffi::c_void,
42623    pub descriptor_set: u32,
42624    pub first_binding: u32,
42625    pub binding_count: u32,
42626    pub resource_mask: SpirvResourceTypeFlagsEXT,
42627    pub source: DescriptorMappingSourceEXT,
42628    pub source_data: DescriptorMappingSourceDataEXT,
42629}
42630impl Default for DescriptorSetAndBindingMappingEXT {
42631    #[inline]
42632    fn default() -> Self {
42633        Self {
42634            s_type: StructureType::from_raw(1000135005i32),
42635            p_next: core::ptr::null(),
42636            descriptor_set: Default::default(),
42637            first_binding: Default::default(),
42638            binding_count: Default::default(),
42639            resource_mask: Default::default(),
42640            source: Default::default(),
42641            source_data: Default::default(),
42642        }
42643    }
42644}
42645///[`VkShaderDescriptorSetAndBindingMappingInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderDescriptorSetAndBindingMappingInfoEXT.html)
42646/**
42647Provided by **VK_EXT_descriptor_heap**.*/
42648///
42649///# Extends
42650///- [`PipelineShaderStageCreateInfo`]
42651///- [`ShaderCreateInfoEXT`]
42652#[repr(C)]
42653#[derive(Copy, Clone, Debug)]
42654#[doc(alias = "VkShaderDescriptorSetAndBindingMappingInfoEXT")]
42655pub struct ShaderDescriptorSetAndBindingMappingInfoEXT {
42656    ///Must be `VK_STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT`.
42657    pub s_type: StructureType,
42658    ///Optional, may be null.
42659    pub p_next: *const core::ffi::c_void,
42660    ///Length of `p_mappings`.
42661    pub mapping_count: u32,
42662    pub p_mappings: *const DescriptorSetAndBindingMappingEXT,
42663}
42664impl Default for ShaderDescriptorSetAndBindingMappingInfoEXT {
42665    #[inline]
42666    fn default() -> Self {
42667        Self {
42668            s_type: StructureType::from_raw(1000135006i32),
42669            p_next: core::ptr::null(),
42670            mapping_count: Default::default(),
42671            p_mappings: core::ptr::null(),
42672        }
42673    }
42674}
42675///[`VkSamplerCustomBorderColorIndexCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCustomBorderColorIndexCreateInfoEXT.html)
42676/**
42677Provided by **VK_EXT_descriptor_heap**.*/
42678///
42679///# Extends
42680///- [`SamplerCreateInfo`]
42681#[repr(C)]
42682#[derive(Copy, Clone, Debug)]
42683#[doc(alias = "VkSamplerCustomBorderColorIndexCreateInfoEXT")]
42684pub struct SamplerCustomBorderColorIndexCreateInfoEXT {
42685    ///Must be `VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT`.
42686    pub s_type: StructureType,
42687    ///Optional, may be null.
42688    pub p_next: *const core::ffi::c_void,
42689    pub index: u32,
42690}
42691impl Default for SamplerCustomBorderColorIndexCreateInfoEXT {
42692    #[inline]
42693    fn default() -> Self {
42694        Self {
42695            s_type: StructureType::from_raw(1000135011i32),
42696            p_next: core::ptr::null(),
42697            index: Default::default(),
42698        }
42699    }
42700}
42701///[`VkOpaqueCaptureDataCreateInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpaqueCaptureDataCreateInfoEXT.html)
42702/**
42703Provided by **VK_EXT_descriptor_heap**.*/
42704///
42705///# Extends
42706///- [`ImageCreateInfo`]
42707///- [`TensorCreateInfoARM`]
42708#[repr(C)]
42709#[derive(Copy, Clone, Debug)]
42710#[doc(alias = "VkOpaqueCaptureDataCreateInfoEXT")]
42711pub struct OpaqueCaptureDataCreateInfoEXT {
42712    ///Must be `VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT`.
42713    pub s_type: StructureType,
42714    ///Optional, may be null.
42715    pub p_next: *const core::ffi::c_void,
42716    ///Optional, may be null.
42717    pub p_data: *const HostAddressRangeConstEXT,
42718}
42719impl Default for OpaqueCaptureDataCreateInfoEXT {
42720    #[inline]
42721    fn default() -> Self {
42722        Self {
42723            s_type: StructureType::from_raw(1000135007i32),
42724            p_next: core::ptr::null(),
42725            p_data: core::ptr::null(),
42726        }
42727    }
42728}
42729///[`VkIndirectCommandsLayoutPushDataTokenNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutPushDataTokenNV.html)
42730/**
42731Provided by **VK_EXT_descriptor_heap**.*/
42732///
42733///# Extends
42734///- [`IndirectCommandsLayoutTokenNV`]
42735#[repr(C)]
42736#[derive(Copy, Clone, Debug)]
42737#[doc(alias = "VkIndirectCommandsLayoutPushDataTokenNV")]
42738pub struct IndirectCommandsLayoutPushDataTokenNV {
42739    ///Must be `VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV`.
42740    pub s_type: StructureType,
42741    ///Optional, may be null.
42742    pub p_next: *const core::ffi::c_void,
42743    pub push_data_offset: u32,
42744    pub push_data_size: u32,
42745}
42746impl Default for IndirectCommandsLayoutPushDataTokenNV {
42747    #[inline]
42748    fn default() -> Self {
42749        Self {
42750            s_type: StructureType::from_raw(1000135012i32),
42751            p_next: core::ptr::null(),
42752            push_data_offset: Default::default(),
42753            push_data_size: Default::default(),
42754        }
42755    }
42756}
42757///[`VkSubsampledImageFormatPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubsampledImageFormatPropertiesEXT.html)
42758/**
42759Provided by **VK_EXT_descriptor_heap**.*/
42760///
42761///# Extends
42762///- [`ImageFormatProperties2`]
42763#[repr(C)]
42764#[derive(Copy, Clone, Debug)]
42765#[doc(alias = "VkSubsampledImageFormatPropertiesEXT")]
42766pub struct SubsampledImageFormatPropertiesEXT {
42767    ///Must be `VK_STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT`.
42768    pub s_type: StructureType,
42769    ///Optional, may be null.
42770    pub p_next: *const core::ffi::c_void,
42771    pub subsampled_image_descriptor_count: u32,
42772}
42773impl Default for SubsampledImageFormatPropertiesEXT {
42774    #[inline]
42775    fn default() -> Self {
42776        Self {
42777            s_type: StructureType::from_raw(1000135013i32),
42778            p_next: core::ptr::null(),
42779            subsampled_image_descriptor_count: Default::default(),
42780        }
42781    }
42782}
42783///[`VkPhysicalDeviceDescriptorHeapFeaturesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorHeapFeaturesEXT.html)
42784/**
42785Provided by **VK_EXT_descriptor_heap**.*/
42786///
42787///# Extends
42788///- [`PhysicalDeviceFeatures2`]
42789///- [`DeviceCreateInfo`]
42790#[repr(C)]
42791#[derive(Copy, Clone, Debug)]
42792#[doc(alias = "VkPhysicalDeviceDescriptorHeapFeaturesEXT")]
42793pub struct PhysicalDeviceDescriptorHeapFeaturesEXT {
42794    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT`.
42795    pub s_type: StructureType,
42796    ///Optional, may be null.
42797    pub p_next: *mut core::ffi::c_void,
42798    pub descriptor_heap: u32,
42799    pub descriptor_heap_capture_replay: u32,
42800}
42801impl Default for PhysicalDeviceDescriptorHeapFeaturesEXT {
42802    #[inline]
42803    fn default() -> Self {
42804        Self {
42805            s_type: StructureType::from_raw(1000135009i32),
42806            p_next: core::ptr::null_mut(),
42807            descriptor_heap: Default::default(),
42808            descriptor_heap_capture_replay: Default::default(),
42809        }
42810    }
42811}
42812///[`VkPhysicalDeviceDescriptorHeapPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorHeapPropertiesEXT.html)
42813/**
42814Provided by **VK_EXT_descriptor_heap**.*/
42815/**
42816**Returned only**, filled by Vulkan, not constructed by the application.*/
42817///
42818///# Extends
42819///- [`PhysicalDeviceProperties2`]
42820#[repr(C)]
42821#[derive(Copy, Clone, Debug)]
42822#[doc(alias = "VkPhysicalDeviceDescriptorHeapPropertiesEXT")]
42823pub struct PhysicalDeviceDescriptorHeapPropertiesEXT {
42824    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT`.
42825    pub s_type: StructureType,
42826    ///Optional, may be null.
42827    pub p_next: *mut core::ffi::c_void,
42828    pub sampler_heap_alignment: u64,
42829    pub resource_heap_alignment: u64,
42830    pub max_sampler_heap_size: u64,
42831    pub max_resource_heap_size: u64,
42832    pub min_sampler_heap_reserved_range: u64,
42833    pub min_sampler_heap_reserved_range_with_embedded: u64,
42834    pub min_resource_heap_reserved_range: u64,
42835    pub sampler_descriptor_size: u64,
42836    pub image_descriptor_size: u64,
42837    pub buffer_descriptor_size: u64,
42838    pub sampler_descriptor_alignment: u64,
42839    pub image_descriptor_alignment: u64,
42840    pub buffer_descriptor_alignment: u64,
42841    pub max_push_data_size: u64,
42842    pub image_capture_replay_opaque_data_size: usize,
42843    pub max_descriptor_heap_embedded_samplers: u32,
42844    pub sampler_ycbcr_conversion_count: u32,
42845    pub sparse_descriptor_heaps: u32,
42846    pub protected_descriptor_heaps: u32,
42847}
42848impl Default for PhysicalDeviceDescriptorHeapPropertiesEXT {
42849    #[inline]
42850    fn default() -> Self {
42851        Self {
42852            s_type: StructureType::from_raw(1000135008i32),
42853            p_next: core::ptr::null_mut(),
42854            sampler_heap_alignment: Default::default(),
42855            resource_heap_alignment: Default::default(),
42856            max_sampler_heap_size: Default::default(),
42857            max_resource_heap_size: Default::default(),
42858            min_sampler_heap_reserved_range: Default::default(),
42859            min_sampler_heap_reserved_range_with_embedded: Default::default(),
42860            min_resource_heap_reserved_range: Default::default(),
42861            sampler_descriptor_size: Default::default(),
42862            image_descriptor_size: Default::default(),
42863            buffer_descriptor_size: Default::default(),
42864            sampler_descriptor_alignment: Default::default(),
42865            image_descriptor_alignment: Default::default(),
42866            buffer_descriptor_alignment: Default::default(),
42867            max_push_data_size: Default::default(),
42868            image_capture_replay_opaque_data_size: Default::default(),
42869            max_descriptor_heap_embedded_samplers: Default::default(),
42870            sampler_ycbcr_conversion_count: Default::default(),
42871            sparse_descriptor_heaps: Default::default(),
42872            protected_descriptor_heaps: Default::default(),
42873        }
42874    }
42875}
42876///[`VkCommandBufferInheritanceDescriptorHeapInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCommandBufferInheritanceDescriptorHeapInfoEXT.html)
42877/**
42878Provided by **VK_EXT_descriptor_heap**.*/
42879///
42880///# Extends
42881///- [`CommandBufferInheritanceInfo`]
42882#[repr(C)]
42883#[derive(Copy, Clone, Debug)]
42884#[doc(alias = "VkCommandBufferInheritanceDescriptorHeapInfoEXT")]
42885pub struct CommandBufferInheritanceDescriptorHeapInfoEXT {
42886    ///Must be `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT`.
42887    pub s_type: StructureType,
42888    ///Optional, may be null.
42889    pub p_next: *const core::ffi::c_void,
42890    ///Optional, may be null.
42891    pub p_sampler_heap_bind_info: *const BindHeapInfoEXT,
42892    ///Optional, may be null.
42893    pub p_resource_heap_bind_info: *const BindHeapInfoEXT,
42894}
42895impl Default for CommandBufferInheritanceDescriptorHeapInfoEXT {
42896    #[inline]
42897    fn default() -> Self {
42898        Self {
42899            s_type: StructureType::from_raw(1000135010i32),
42900            p_next: core::ptr::null(),
42901            p_sampler_heap_bind_info: core::ptr::null(),
42902            p_resource_heap_bind_info: core::ptr::null(),
42903        }
42904    }
42905}
42906///[`VkPhysicalDeviceDescriptorHeapTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorHeapTensorPropertiesARM.html)
42907/**
42908Provided by **VK_EXT_descriptor_heap**.*/
42909/**
42910**Returned only**, filled by Vulkan, not constructed by the application.*/
42911///
42912///# Extends
42913///- [`PhysicalDeviceProperties2`]
42914#[repr(C)]
42915#[derive(Copy, Clone, Debug)]
42916#[doc(alias = "VkPhysicalDeviceDescriptorHeapTensorPropertiesARM")]
42917pub struct PhysicalDeviceDescriptorHeapTensorPropertiesARM {
42918    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM`.
42919    pub s_type: StructureType,
42920    ///Optional, may be null.
42921    pub p_next: *mut core::ffi::c_void,
42922    pub tensor_descriptor_size: u64,
42923    pub tensor_descriptor_alignment: u64,
42924    pub tensor_capture_replay_opaque_data_size: usize,
42925}
42926impl Default for PhysicalDeviceDescriptorHeapTensorPropertiesARM {
42927    #[inline]
42928    fn default() -> Self {
42929        Self {
42930            s_type: StructureType::from_raw(1000135014i32),
42931            p_next: core::ptr::null_mut(),
42932            tensor_descriptor_size: Default::default(),
42933            tensor_descriptor_alignment: Default::default(),
42934            tensor_capture_replay_opaque_data_size: Default::default(),
42935        }
42936    }
42937}
42938///[`VkPhysicalDeviceShaderInstrumentationFeaturesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderInstrumentationFeaturesARM.html)
42939/**
42940Provided by **VK_ARM_shader_instrumentation**.*/
42941///
42942///# Extends
42943///- [`PhysicalDeviceFeatures2`]
42944///- [`DeviceCreateInfo`]
42945#[repr(C)]
42946#[derive(Copy, Clone, Debug)]
42947#[doc(alias = "VkPhysicalDeviceShaderInstrumentationFeaturesARM")]
42948pub struct PhysicalDeviceShaderInstrumentationFeaturesARM {
42949    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM`.
42950    pub s_type: StructureType,
42951    ///Optional, may be null.
42952    pub p_next: *mut core::ffi::c_void,
42953    pub shader_instrumentation: u32,
42954}
42955impl Default for PhysicalDeviceShaderInstrumentationFeaturesARM {
42956    #[inline]
42957    fn default() -> Self {
42958        Self {
42959            s_type: StructureType::from_raw(1000607000i32),
42960            p_next: core::ptr::null_mut(),
42961            shader_instrumentation: Default::default(),
42962        }
42963    }
42964}
42965///[`VkPhysicalDeviceShaderInstrumentationPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderInstrumentationPropertiesARM.html)
42966/**
42967Provided by **VK_ARM_shader_instrumentation**.*/
42968/**
42969**Returned only**, filled by Vulkan, not constructed by the application.*/
42970///
42971///# Extends
42972///- [`PhysicalDeviceProperties2`]
42973#[repr(C)]
42974#[derive(Copy, Clone, Debug)]
42975#[doc(alias = "VkPhysicalDeviceShaderInstrumentationPropertiesARM")]
42976pub struct PhysicalDeviceShaderInstrumentationPropertiesARM {
42977    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM`.
42978    pub s_type: StructureType,
42979    ///Optional, may be null.
42980    pub p_next: *mut core::ffi::c_void,
42981    pub num_metrics: u32,
42982    pub per_basic_block_granularity: u32,
42983}
42984impl Default for PhysicalDeviceShaderInstrumentationPropertiesARM {
42985    #[inline]
42986    fn default() -> Self {
42987        Self {
42988            s_type: StructureType::from_raw(1000607001i32),
42989            p_next: core::ptr::null_mut(),
42990            num_metrics: Default::default(),
42991            per_basic_block_granularity: Default::default(),
42992        }
42993    }
42994}
42995///[`VkShaderInstrumentationCreateInfoARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderInstrumentationCreateInfoARM.html)
42996/**
42997Provided by **VK_ARM_shader_instrumentation**.*/
42998#[repr(C)]
42999#[derive(Copy, Clone, Debug)]
43000#[doc(alias = "VkShaderInstrumentationCreateInfoARM")]
43001pub struct ShaderInstrumentationCreateInfoARM {
43002    ///Must be `VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_CREATE_INFO_ARM`.
43003    pub s_type: StructureType,
43004    ///Optional, may be null.
43005    pub p_next: *mut core::ffi::c_void,
43006}
43007impl Default for ShaderInstrumentationCreateInfoARM {
43008    #[inline]
43009    fn default() -> Self {
43010        Self {
43011            s_type: StructureType::from_raw(1000607002i32),
43012            p_next: core::ptr::null_mut(),
43013        }
43014    }
43015}
43016///[`VkShaderInstrumentationMetricDescriptionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderInstrumentationMetricDescriptionARM.html)
43017/**
43018Provided by **VK_ARM_shader_instrumentation**.*/
43019#[repr(C)]
43020#[derive(Copy, Clone, Debug)]
43021#[doc(alias = "VkShaderInstrumentationMetricDescriptionARM")]
43022pub struct ShaderInstrumentationMetricDescriptionARM {
43023    ///Must be `VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM`.
43024    pub s_type: StructureType,
43025    ///Optional, may be null.
43026    pub p_next: *mut core::ffi::c_void,
43027    pub name: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
43028    pub description: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
43029}
43030impl Default for ShaderInstrumentationMetricDescriptionARM {
43031    #[inline]
43032    fn default() -> Self {
43033        Self {
43034            s_type: StructureType::from_raw(1000607003i32),
43035            p_next: core::ptr::null_mut(),
43036            name: unsafe { core::mem::zeroed() },
43037            description: unsafe { core::mem::zeroed() },
43038        }
43039    }
43040}
43041///[`VkShaderInstrumentationMetricDataHeaderARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderInstrumentationMetricDataHeaderARM.html)
43042/**
43043Provided by **VK_ARM_shader_instrumentation**.*/
43044#[repr(C)]
43045#[derive(Copy, Clone, Debug)]
43046#[doc(alias = "VkShaderInstrumentationMetricDataHeaderARM")]
43047pub struct ShaderInstrumentationMetricDataHeaderARM {
43048    pub result_index: u32,
43049    pub result_sub_index: u32,
43050    pub stages: ShaderStageFlags,
43051    pub basic_block_index: u32,
43052}
43053impl Default for ShaderInstrumentationMetricDataHeaderARM {
43054    #[inline]
43055    fn default() -> Self {
43056        unsafe { core::mem::zeroed() }
43057    }
43058}
43059///[`VkDeviceAddressRangeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceAddressRangeKHR.html)
43060/**
43061Provided by **VK_KHR_device_address_commands**.*/
43062#[repr(C)]
43063#[derive(Copy, Clone, Debug)]
43064#[doc(alias = "VkDeviceAddressRangeKHR")]
43065pub struct DeviceAddressRangeKHR {
43066    pub address: u64,
43067    pub size: u64,
43068}
43069impl Default for DeviceAddressRangeKHR {
43070    #[inline]
43071    fn default() -> Self {
43072        unsafe { core::mem::zeroed() }
43073    }
43074}
43075///[`VkDeviceMemoryCopyKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryCopyKHR.html)
43076/**
43077Provided by **VK_KHR_device_address_commands**.*/
43078#[repr(C)]
43079#[derive(Copy, Clone, Debug)]
43080#[doc(alias = "VkDeviceMemoryCopyKHR")]
43081pub struct DeviceMemoryCopyKHR {
43082    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_COPY_KHR`.
43083    pub s_type: StructureType,
43084    ///Optional, may be null.
43085    pub p_next: *const core::ffi::c_void,
43086    pub src_range: DeviceAddressRangeKHR,
43087    pub src_flags: AddressCommandFlagsKHR,
43088    pub dst_range: DeviceAddressRangeKHR,
43089    pub dst_flags: AddressCommandFlagsKHR,
43090}
43091impl Default for DeviceMemoryCopyKHR {
43092    #[inline]
43093    fn default() -> Self {
43094        Self {
43095            s_type: StructureType::from_raw(1000318000i32),
43096            p_next: core::ptr::null(),
43097            src_range: Default::default(),
43098            src_flags: Default::default(),
43099            dst_range: Default::default(),
43100            dst_flags: Default::default(),
43101        }
43102    }
43103}
43104///[`VkCopyDeviceMemoryInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyDeviceMemoryInfoKHR.html)
43105/**
43106Provided by **VK_KHR_device_address_commands**.*/
43107#[repr(C)]
43108#[derive(Copy, Clone, Debug)]
43109#[doc(alias = "VkCopyDeviceMemoryInfoKHR")]
43110pub struct CopyDeviceMemoryInfoKHR {
43111    ///Must be `VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_INFO_KHR`.
43112    pub s_type: StructureType,
43113    ///Optional, may be null.
43114    pub p_next: *const core::ffi::c_void,
43115    ///Length of `p_regions`.
43116    pub region_count: u32,
43117    pub p_regions: *const DeviceMemoryCopyKHR,
43118}
43119impl Default for CopyDeviceMemoryInfoKHR {
43120    #[inline]
43121    fn default() -> Self {
43122        Self {
43123            s_type: StructureType::from_raw(1000318001i32),
43124            p_next: core::ptr::null(),
43125            region_count: Default::default(),
43126            p_regions: core::ptr::null(),
43127        }
43128    }
43129}
43130///[`VkDeviceMemoryImageCopyKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceMemoryImageCopyKHR.html)
43131/**
43132Provided by **VK_KHR_device_address_commands**.*/
43133///
43134///# Extended By
43135///- [`CopyCommandTransformInfoQCOM`]
43136#[repr(C)]
43137#[derive(Copy, Clone, Debug)]
43138#[doc(alias = "VkDeviceMemoryImageCopyKHR")]
43139pub struct DeviceMemoryImageCopyKHR {
43140    ///Must be `VK_STRUCTURE_TYPE_DEVICE_MEMORY_IMAGE_COPY_KHR`.
43141    pub s_type: StructureType,
43142    ///Optional, may be null.
43143    pub p_next: *const core::ffi::c_void,
43144    pub address_range: DeviceAddressRangeKHR,
43145    pub address_flags: AddressCommandFlagsKHR,
43146    pub address_row_length: u32,
43147    pub address_image_height: u32,
43148    pub image_subresource: ImageSubresourceLayers,
43149    pub image_layout: ImageLayout,
43150    pub image_offset: Offset3D,
43151    pub image_extent: Extent3D,
43152}
43153impl Default for DeviceMemoryImageCopyKHR {
43154    #[inline]
43155    fn default() -> Self {
43156        Self {
43157            s_type: StructureType::from_raw(1000318002i32),
43158            p_next: core::ptr::null(),
43159            address_range: Default::default(),
43160            address_flags: Default::default(),
43161            address_row_length: Default::default(),
43162            address_image_height: Default::default(),
43163            image_subresource: Default::default(),
43164            image_layout: Default::default(),
43165            image_offset: Default::default(),
43166            image_extent: Default::default(),
43167        }
43168    }
43169}
43170///[`VkCopyDeviceMemoryImageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyDeviceMemoryImageInfoKHR.html)
43171/**
43172Provided by **VK_KHR_device_address_commands**.*/
43173#[repr(C)]
43174#[derive(Copy, Clone, Debug)]
43175#[doc(alias = "VkCopyDeviceMemoryImageInfoKHR")]
43176pub struct CopyDeviceMemoryImageInfoKHR {
43177    ///Must be `VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_IMAGE_INFO_KHR`.
43178    pub s_type: StructureType,
43179    ///Optional, may be null.
43180    pub p_next: *const core::ffi::c_void,
43181    pub image: Image,
43182    ///Length of `p_regions`.
43183    pub region_count: u32,
43184    pub p_regions: *const DeviceMemoryImageCopyKHR,
43185}
43186impl Default for CopyDeviceMemoryImageInfoKHR {
43187    #[inline]
43188    fn default() -> Self {
43189        Self {
43190            s_type: StructureType::from_raw(1000318003i32),
43191            p_next: core::ptr::null(),
43192            image: Default::default(),
43193            region_count: Default::default(),
43194            p_regions: core::ptr::null(),
43195        }
43196    }
43197}
43198///[`VkMemoryRangeBarriersInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryRangeBarriersInfoKHR.html)
43199/**
43200Provided by **VK_KHR_device_address_commands**.*/
43201///
43202///# Extends
43203///- [`DependencyInfo`]
43204#[repr(C)]
43205#[derive(Copy, Clone, Debug)]
43206#[doc(alias = "VkMemoryRangeBarriersInfoKHR")]
43207pub struct MemoryRangeBarriersInfoKHR {
43208    ///Must be `VK_STRUCTURE_TYPE_MEMORY_RANGE_BARRIERS_INFO_KHR`.
43209    pub s_type: StructureType,
43210    ///Optional, may be null.
43211    pub p_next: *const core::ffi::c_void,
43212    ///Length of `p_memory_range_barriers`.
43213    pub memory_range_barrier_count: u32,
43214    pub p_memory_range_barriers: *const MemoryRangeBarrierKHR,
43215}
43216impl Default for MemoryRangeBarriersInfoKHR {
43217    #[inline]
43218    fn default() -> Self {
43219        Self {
43220            s_type: StructureType::from_raw(1000318004i32),
43221            p_next: core::ptr::null(),
43222            memory_range_barrier_count: Default::default(),
43223            p_memory_range_barriers: core::ptr::null(),
43224        }
43225    }
43226}
43227///[`VkMemoryRangeBarrierKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryRangeBarrierKHR.html)
43228/**
43229Provided by **VK_KHR_device_address_commands**.*/
43230#[repr(C)]
43231#[derive(Copy, Clone, Debug)]
43232#[doc(alias = "VkMemoryRangeBarrierKHR")]
43233pub struct MemoryRangeBarrierKHR {
43234    ///Must be `VK_STRUCTURE_TYPE_MEMORY_RANGE_BARRIER_KHR`.
43235    pub s_type: StructureType,
43236    ///Optional, may be null.
43237    pub p_next: *const core::ffi::c_void,
43238    pub src_stage_mask: PipelineStageFlags2,
43239    pub src_access_mask: AccessFlags2,
43240    pub dst_stage_mask: PipelineStageFlags2,
43241    pub dst_access_mask: AccessFlags2,
43242    pub src_queue_family_index: u32,
43243    pub dst_queue_family_index: u32,
43244    pub address_range: DeviceAddressRangeKHR,
43245    pub address_flags: AddressCommandFlagsKHR,
43246}
43247impl Default for MemoryRangeBarrierKHR {
43248    #[inline]
43249    fn default() -> Self {
43250        Self {
43251            s_type: StructureType::from_raw(1000318005i32),
43252            p_next: core::ptr::null(),
43253            src_stage_mask: Default::default(),
43254            src_access_mask: Default::default(),
43255            dst_stage_mask: Default::default(),
43256            dst_access_mask: Default::default(),
43257            src_queue_family_index: Default::default(),
43258            dst_queue_family_index: Default::default(),
43259            address_range: Default::default(),
43260            address_flags: Default::default(),
43261        }
43262    }
43263}
43264///[`VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR.html)
43265/**
43266Provided by **VK_KHR_device_address_commands**.*/
43267///
43268///# Extends
43269///- [`PhysicalDeviceFeatures2`]
43270///- [`DeviceCreateInfo`]
43271#[repr(C)]
43272#[derive(Copy, Clone, Debug)]
43273#[doc(alias = "VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR")]
43274pub struct PhysicalDeviceDeviceAddressCommandsFeaturesKHR {
43275    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR`.
43276    pub s_type: StructureType,
43277    ///Optional, may be null.
43278    pub p_next: *mut core::ffi::c_void,
43279    pub device_address_commands: u32,
43280}
43281impl Default for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {
43282    #[inline]
43283    fn default() -> Self {
43284        Self {
43285            s_type: StructureType::from_raw(1000318006i32),
43286            p_next: core::ptr::null_mut(),
43287            device_address_commands: Default::default(),
43288        }
43289    }
43290}
43291///[`VkConditionalRenderingBeginInfo2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkConditionalRenderingBeginInfo2EXT.html)
43292/**
43293Provided by **VK_KHR_device_address_commands**.*/
43294#[repr(C)]
43295#[derive(Copy, Clone, Debug)]
43296#[doc(alias = "VkConditionalRenderingBeginInfo2EXT")]
43297pub struct ConditionalRenderingBeginInfo2EXT {
43298    ///Must be `VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT`.
43299    pub s_type: StructureType,
43300    ///Optional, may be null.
43301    pub p_next: *const core::ffi::c_void,
43302    pub address_range: DeviceAddressRangeKHR,
43303    pub address_flags: AddressCommandFlagsKHR,
43304    pub flags: ConditionalRenderingFlagsEXT,
43305}
43306impl Default for ConditionalRenderingBeginInfo2EXT {
43307    #[inline]
43308    fn default() -> Self {
43309        Self {
43310            s_type: StructureType::from_raw(1000318012i32),
43311            p_next: core::ptr::null(),
43312            address_range: Default::default(),
43313            address_flags: Default::default(),
43314            flags: Default::default(),
43315        }
43316    }
43317}
43318///[`VkAccelerationStructureCreateInfo2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureCreateInfo2KHR.html)
43319/**
43320Provided by **VK_KHR_device_address_commands**.*/
43321///
43322///# Extended By
43323///- [`OpaqueCaptureDescriptorDataCreateInfoEXT`]
43324#[repr(C)]
43325#[derive(Copy, Clone, Debug)]
43326#[doc(alias = "VkAccelerationStructureCreateInfo2KHR")]
43327pub struct AccelerationStructureCreateInfo2KHR {
43328    ///Must be `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR`.
43329    pub s_type: StructureType,
43330    ///Optional, may be null.
43331    pub p_next: *const core::ffi::c_void,
43332    pub create_flags: AccelerationStructureCreateFlagsKHR,
43333    pub address_range: DeviceAddressRangeKHR,
43334    pub address_flags: AddressCommandFlagsKHR,
43335    pub r#type: AccelerationStructureTypeKHR,
43336}
43337impl Default for AccelerationStructureCreateInfo2KHR {
43338    #[inline]
43339    fn default() -> Self {
43340        Self {
43341            s_type: StructureType::from_raw(1000318015i32),
43342            p_next: core::ptr::null(),
43343            create_flags: Default::default(),
43344            address_range: Default::default(),
43345            address_flags: Default::default(),
43346            r#type: Default::default(),
43347        }
43348    }
43349}
43350///[`VkBindIndexBuffer3InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindIndexBuffer3InfoKHR.html)
43351/**
43352Provided by **VK_KHR_device_address_commands**.*/
43353#[repr(C)]
43354#[derive(Copy, Clone, Debug)]
43355#[doc(alias = "VkBindIndexBuffer3InfoKHR")]
43356pub struct BindIndexBuffer3InfoKHR {
43357    ///Must be `VK_STRUCTURE_TYPE_BIND_INDEX_BUFFER_3_INFO_KHR`.
43358    pub s_type: StructureType,
43359    ///Optional, may be null.
43360    pub p_next: *const core::ffi::c_void,
43361    pub address_range: DeviceAddressRangeKHR,
43362    pub address_flags: AddressCommandFlagsKHR,
43363    pub index_type: IndexType,
43364}
43365impl Default for BindIndexBuffer3InfoKHR {
43366    #[inline]
43367    fn default() -> Self {
43368        Self {
43369            s_type: StructureType::from_raw(1000318007i32),
43370            p_next: core::ptr::null(),
43371            address_range: Default::default(),
43372            address_flags: Default::default(),
43373            index_type: Default::default(),
43374        }
43375    }
43376}
43377///[`VkBindVertexBuffer3InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVertexBuffer3InfoKHR.html)
43378/**
43379Provided by **VK_KHR_device_address_commands**.*/
43380#[repr(C)]
43381#[derive(Copy, Clone, Debug)]
43382#[doc(alias = "VkBindVertexBuffer3InfoKHR")]
43383pub struct BindVertexBuffer3InfoKHR {
43384    ///Must be `VK_STRUCTURE_TYPE_BIND_VERTEX_BUFFER_3_INFO_KHR`.
43385    pub s_type: StructureType,
43386    ///Optional, may be null.
43387    pub p_next: *const core::ffi::c_void,
43388    pub set_stride: u32,
43389    pub address_range: StridedDeviceAddressRangeKHR,
43390    pub address_flags: AddressCommandFlagsKHR,
43391}
43392impl Default for BindVertexBuffer3InfoKHR {
43393    #[inline]
43394    fn default() -> Self {
43395        Self {
43396            s_type: StructureType::from_raw(1000318008i32),
43397            p_next: core::ptr::null(),
43398            set_stride: Default::default(),
43399            address_range: Default::default(),
43400            address_flags: Default::default(),
43401        }
43402    }
43403}
43404///[`VkDrawIndirect2InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndirect2InfoKHR.html)
43405/**
43406Provided by **VK_KHR_device_address_commands**.*/
43407#[repr(C)]
43408#[derive(Copy, Clone, Debug)]
43409#[doc(alias = "VkDrawIndirect2InfoKHR")]
43410pub struct DrawIndirect2InfoKHR {
43411    ///Must be `VK_STRUCTURE_TYPE_DRAW_INDIRECT_2_INFO_KHR`.
43412    pub s_type: StructureType,
43413    ///Optional, may be null.
43414    pub p_next: *const core::ffi::c_void,
43415    pub address_range: StridedDeviceAddressRangeKHR,
43416    pub address_flags: AddressCommandFlagsKHR,
43417    pub draw_count: u32,
43418}
43419impl Default for DrawIndirect2InfoKHR {
43420    #[inline]
43421    fn default() -> Self {
43422        Self {
43423            s_type: StructureType::from_raw(1000318009i32),
43424            p_next: core::ptr::null(),
43425            address_range: Default::default(),
43426            address_flags: Default::default(),
43427            draw_count: Default::default(),
43428        }
43429    }
43430}
43431///[`VkDrawIndirectCount2InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDrawIndirectCount2InfoKHR.html)
43432/**
43433Provided by **VK_KHR_device_address_commands**.*/
43434#[repr(C)]
43435#[derive(Copy, Clone, Debug)]
43436#[doc(alias = "VkDrawIndirectCount2InfoKHR")]
43437pub struct DrawIndirectCount2InfoKHR {
43438    ///Must be `VK_STRUCTURE_TYPE_DRAW_INDIRECT_COUNT_2_INFO_KHR`.
43439    pub s_type: StructureType,
43440    ///Optional, may be null.
43441    pub p_next: *const core::ffi::c_void,
43442    pub address_range: StridedDeviceAddressRangeKHR,
43443    pub address_flags: AddressCommandFlagsKHR,
43444    pub count_address_range: DeviceAddressRangeKHR,
43445    pub count_address_flags: AddressCommandFlagsKHR,
43446    pub max_draw_count: u32,
43447}
43448impl Default for DrawIndirectCount2InfoKHR {
43449    #[inline]
43450    fn default() -> Self {
43451        Self {
43452            s_type: StructureType::from_raw(1000318010i32),
43453            p_next: core::ptr::null(),
43454            address_range: Default::default(),
43455            address_flags: Default::default(),
43456            count_address_range: Default::default(),
43457            count_address_flags: Default::default(),
43458            max_draw_count: Default::default(),
43459        }
43460    }
43461}
43462///[`VkDispatchIndirect2InfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDispatchIndirect2InfoKHR.html)
43463/**
43464Provided by **VK_KHR_device_address_commands**.*/
43465#[repr(C)]
43466#[derive(Copy, Clone, Debug)]
43467#[doc(alias = "VkDispatchIndirect2InfoKHR")]
43468pub struct DispatchIndirect2InfoKHR {
43469    ///Must be `VK_STRUCTURE_TYPE_DISPATCH_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: DeviceAddressRangeKHR,
43474    pub address_flags: AddressCommandFlagsKHR,
43475}
43476impl Default for DispatchIndirect2InfoKHR {
43477    #[inline]
43478    fn default() -> Self {
43479        Self {
43480            s_type: StructureType::from_raw(1000318011i32),
43481            p_next: core::ptr::null(),
43482            address_range: Default::default(),
43483            address_flags: Default::default(),
43484        }
43485    }
43486}
43487///[`VkBindTransformFeedbackBuffer2InfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindTransformFeedbackBuffer2InfoEXT.html)
43488/**
43489Provided by **VK_KHR_device_address_commands**.*/
43490#[repr(C)]
43491#[derive(Copy, Clone, Debug)]
43492#[doc(alias = "VkBindTransformFeedbackBuffer2InfoEXT")]
43493pub struct BindTransformFeedbackBuffer2InfoEXT {
43494    ///Must be `VK_STRUCTURE_TYPE_BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT`.
43495    pub s_type: StructureType,
43496    ///Optional, may be null.
43497    pub p_next: *const core::ffi::c_void,
43498    pub address_range: DeviceAddressRangeKHR,
43499    pub address_flags: AddressCommandFlagsKHR,
43500}
43501impl Default for BindTransformFeedbackBuffer2InfoEXT {
43502    #[inline]
43503    fn default() -> Self {
43504        Self {
43505            s_type: StructureType::from_raw(1000318013i32),
43506            p_next: core::ptr::null(),
43507            address_range: Default::default(),
43508            address_flags: Default::default(),
43509        }
43510    }
43511}
43512///[`VkMemoryMarkerInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryMarkerInfoAMD.html)
43513/**
43514Provided by **VK_KHR_device_address_commands**.*/
43515#[repr(C)]
43516#[derive(Copy, Clone, Debug)]
43517#[doc(alias = "VkMemoryMarkerInfoAMD")]
43518pub struct MemoryMarkerInfoAMD {
43519    ///Must be `VK_STRUCTURE_TYPE_MEMORY_MARKER_INFO_AMD`.
43520    pub s_type: StructureType,
43521    ///Optional, may be null.
43522    pub p_next: *const core::ffi::c_void,
43523    pub stage: PipelineStageFlags2KHR,
43524    pub dst_range: DeviceAddressRangeKHR,
43525    pub dst_flags: AddressCommandFlagsKHR,
43526    pub marker: u32,
43527}
43528impl Default for MemoryMarkerInfoAMD {
43529    #[inline]
43530    fn default() -> Self {
43531        Self {
43532            s_type: StructureType::from_raw(1000318014i32),
43533            p_next: core::ptr::null(),
43534            stage: Default::default(),
43535            dst_range: Default::default(),
43536            dst_flags: Default::default(),
43537            marker: Default::default(),
43538        }
43539    }
43540}
43541///[`VkPhysicalDeviceShaderConstantDataFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderConstantDataFeaturesKHR.html)
43542/**
43543Provided by **VK_KHR_shader_constant_data**.*/
43544///
43545///# Extends
43546///- [`PhysicalDeviceFeatures2`]
43547///- [`DeviceCreateInfo`]
43548#[repr(C)]
43549#[derive(Copy, Clone, Debug)]
43550#[doc(alias = "VkPhysicalDeviceShaderConstantDataFeaturesKHR")]
43551pub struct PhysicalDeviceShaderConstantDataFeaturesKHR {
43552    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR`.
43553    pub s_type: StructureType,
43554    ///Optional, may be null.
43555    pub p_next: *mut core::ffi::c_void,
43556    pub shader_constant_data: u32,
43557}
43558impl Default for PhysicalDeviceShaderConstantDataFeaturesKHR {
43559    #[inline]
43560    fn default() -> Self {
43561        Self {
43562            s_type: StructureType::from_raw(1000231000i32),
43563            p_next: core::ptr::null_mut(),
43564            shader_constant_data: Default::default(),
43565        }
43566    }
43567}
43568///[`VkPhysicalDeviceShaderAbortFeaturesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAbortFeaturesKHR.html)
43569/**
43570Provided by **VK_KHR_shader_abort**.*/
43571///
43572///# Extends
43573///- [`PhysicalDeviceFeatures2`]
43574///- [`DeviceCreateInfo`]
43575#[repr(C)]
43576#[derive(Copy, Clone, Debug)]
43577#[doc(alias = "VkPhysicalDeviceShaderAbortFeaturesKHR")]
43578pub struct PhysicalDeviceShaderAbortFeaturesKHR {
43579    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR`.
43580    pub s_type: StructureType,
43581    ///Optional, may be null.
43582    pub p_next: *mut core::ffi::c_void,
43583    pub shader_abort: u32,
43584}
43585impl Default for PhysicalDeviceShaderAbortFeaturesKHR {
43586    #[inline]
43587    fn default() -> Self {
43588        Self {
43589            s_type: StructureType::from_raw(1000233000i32),
43590            p_next: core::ptr::null_mut(),
43591            shader_abort: Default::default(),
43592        }
43593    }
43594}
43595///[`VkPhysicalDeviceShaderAbortPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderAbortPropertiesKHR.html)
43596/**
43597Provided by **VK_KHR_shader_abort**.*/
43598///
43599///# Extends
43600///- [`PhysicalDeviceProperties2`]
43601#[repr(C)]
43602#[derive(Copy, Clone, Debug)]
43603#[doc(alias = "VkPhysicalDeviceShaderAbortPropertiesKHR")]
43604pub struct PhysicalDeviceShaderAbortPropertiesKHR {
43605    ///Must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR`.
43606    pub s_type: StructureType,
43607    ///Optional, may be null.
43608    pub p_next: *mut core::ffi::c_void,
43609    pub max_shader_abort_message_size: u64,
43610}
43611impl Default for PhysicalDeviceShaderAbortPropertiesKHR {
43612    #[inline]
43613    fn default() -> Self {
43614        Self {
43615            s_type: StructureType::from_raw(1000233002i32),
43616            p_next: core::ptr::null_mut(),
43617            max_shader_abort_message_size: Default::default(),
43618        }
43619    }
43620}
43621///[`VkDeviceFaultShaderAbortMessageInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceFaultShaderAbortMessageInfoKHR.html)
43622/**
43623Provided by **VK_KHR_shader_abort**.*/
43624/**
43625**Returned only**, filled by Vulkan, not constructed by the application.*/
43626///
43627///# Extends
43628///- [`DeviceFaultDebugInfoKHR`]
43629#[repr(C)]
43630#[derive(Copy, Clone, Debug)]
43631#[doc(alias = "VkDeviceFaultShaderAbortMessageInfoKHR")]
43632pub struct DeviceFaultShaderAbortMessageInfoKHR {
43633    ///Must be `VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR`.
43634    pub s_type: StructureType,
43635    ///Optional, may be null.
43636    pub p_next: *mut core::ffi::c_void,
43637    pub message_data_size: u64,
43638    ///Optional, may be null.
43639    pub p_message_data: *mut core::ffi::c_void,
43640}
43641impl Default for DeviceFaultShaderAbortMessageInfoKHR {
43642    #[inline]
43643    fn default() -> Self {
43644        Self {
43645            s_type: StructureType::from_raw(1000233001i32),
43646            p_next: core::ptr::null_mut(),
43647            message_data_size: Default::default(),
43648            p_message_data: core::ptr::null_mut(),
43649        }
43650    }
43651}
43652/// Marker trait for structs that can appear in the pNext chain of
43653#[doc = concat!("[`", "AccelerationStructureBuildGeometryInfoKHR", "`].")]
43654///
43655/// # Safety
43656/// Implementors must be valid pNext chain members for the target struct.
43657pub unsafe trait ExtendsAccelerationStructureBuildGeometryInfoKHR {}
43658/// Marker trait for structs that can appear in the pNext chain of
43659#[doc = concat!("[`", "AccelerationStructureCaptureDescriptorDataInfoEXT", "`].")]
43660///
43661/// # Safety
43662/// Implementors must be valid pNext chain members for the target struct.
43663pub unsafe trait ExtendsAccelerationStructureCaptureDescriptorDataInfoEXT {}
43664/// Marker trait for structs that can appear in the pNext chain of
43665#[doc = concat!("[`", "AccelerationStructureCreateInfo2KHR", "`].")]
43666///
43667/// # Safety
43668/// Implementors must be valid pNext chain members for the target struct.
43669pub unsafe trait ExtendsAccelerationStructureCreateInfo2KHR {}
43670/// Marker trait for structs that can appear in the pNext chain of
43671#[doc = concat!("[`", "AccelerationStructureCreateInfoKHR", "`].")]
43672///
43673/// # Safety
43674/// Implementors must be valid pNext chain members for the target struct.
43675pub unsafe trait ExtendsAccelerationStructureCreateInfoKHR {}
43676/// Marker trait for structs that can appear in the pNext chain of
43677#[doc = concat!("[`", "AccelerationStructureCreateInfoNV", "`].")]
43678///
43679/// # Safety
43680/// Implementors must be valid pNext chain members for the target struct.
43681pub unsafe trait ExtendsAccelerationStructureCreateInfoNV {}
43682/// Marker trait for structs that can appear in the pNext chain of
43683#[doc = concat!(
43684    "[`", "AccelerationStructureDenseGeometryFormatTrianglesDataAMDX", "`]."
43685)]
43686///
43687/// # Safety
43688/// Implementors must be valid pNext chain members for the target struct.
43689pub unsafe trait ExtendsAccelerationStructureDenseGeometryFormatTrianglesDataAMDX {}
43690/// Marker trait for structs that can appear in the pNext chain of
43691#[doc = concat!("[`", "AccelerationStructureDeviceAddressInfoKHR", "`].")]
43692///
43693/// # Safety
43694/// Implementors must be valid pNext chain members for the target struct.
43695pub unsafe trait ExtendsAccelerationStructureDeviceAddressInfoKHR {}
43696/// Marker trait for structs that can appear in the pNext chain of
43697#[doc = concat!("[`", "AccelerationStructureGeometryAabbsDataKHR", "`].")]
43698///
43699/// # Safety
43700/// Implementors must be valid pNext chain members for the target struct.
43701pub unsafe trait ExtendsAccelerationStructureGeometryAabbsDataKHR {}
43702/// Marker trait for structs that can appear in the pNext chain of
43703#[doc = concat!("[`", "AccelerationStructureGeometryInstancesDataKHR", "`].")]
43704///
43705/// # Safety
43706/// Implementors must be valid pNext chain members for the target struct.
43707pub unsafe trait ExtendsAccelerationStructureGeometryInstancesDataKHR {}
43708/// Marker trait for structs that can appear in the pNext chain of
43709#[doc = concat!("[`", "AccelerationStructureGeometryKHR", "`].")]
43710///
43711/// # Safety
43712/// Implementors must be valid pNext chain members for the target struct.
43713pub unsafe trait ExtendsAccelerationStructureGeometryKHR {}
43714/// Marker trait for structs that can appear in the pNext chain of
43715#[doc = concat!("[`", "AccelerationStructureGeometryLinearSweptSpheresDataNV", "`].")]
43716///
43717/// # Safety
43718/// Implementors must be valid pNext chain members for the target struct.
43719pub unsafe trait ExtendsAccelerationStructureGeometryLinearSweptSpheresDataNV {}
43720/// Marker trait for structs that can appear in the pNext chain of
43721#[doc = concat!("[`", "AccelerationStructureGeometryMotionTrianglesDataNV", "`].")]
43722///
43723/// # Safety
43724/// Implementors must be valid pNext chain members for the target struct.
43725pub unsafe trait ExtendsAccelerationStructureGeometryMotionTrianglesDataNV {}
43726/// Marker trait for structs that can appear in the pNext chain of
43727#[doc = concat!("[`", "AccelerationStructureGeometrySpheresDataNV", "`].")]
43728///
43729/// # Safety
43730/// Implementors must be valid pNext chain members for the target struct.
43731pub unsafe trait ExtendsAccelerationStructureGeometrySpheresDataNV {}
43732/// Marker trait for structs that can appear in the pNext chain of
43733#[doc = concat!("[`", "AccelerationStructureGeometryTrianglesDataKHR", "`].")]
43734///
43735/// # Safety
43736/// Implementors must be valid pNext chain members for the target struct.
43737pub unsafe trait ExtendsAccelerationStructureGeometryTrianglesDataKHR {}
43738/// Marker trait for structs that can appear in the pNext chain of
43739#[doc = concat!("[`", "AccelerationStructureInfoNV", "`].")]
43740///
43741/// # Safety
43742/// Implementors must be valid pNext chain members for the target struct.
43743pub unsafe trait ExtendsAccelerationStructureInfoNV {}
43744/// Marker trait for structs that can appear in the pNext chain of
43745#[doc = concat!("[`", "AccelerationStructureMemoryRequirementsInfoNV", "`].")]
43746///
43747/// # Safety
43748/// Implementors must be valid pNext chain members for the target struct.
43749pub unsafe trait ExtendsAccelerationStructureMemoryRequirementsInfoNV {}
43750/// Marker trait for structs that can appear in the pNext chain of
43751#[doc = concat!("[`", "AccelerationStructureMotionInfoNV", "`].")]
43752///
43753/// # Safety
43754/// Implementors must be valid pNext chain members for the target struct.
43755pub unsafe trait ExtendsAccelerationStructureMotionInfoNV {}
43756/// Marker trait for structs that can appear in the pNext chain of
43757#[doc = concat!("[`", "AccelerationStructureTrianglesDisplacementMicromapNV", "`].")]
43758///
43759/// # Safety
43760/// Implementors must be valid pNext chain members for the target struct.
43761pub unsafe trait ExtendsAccelerationStructureTrianglesDisplacementMicromapNV {}
43762/// Marker trait for structs that can appear in the pNext chain of
43763#[doc = concat!("[`", "AccelerationStructureTrianglesOpacityMicromapEXT", "`].")]
43764///
43765/// # Safety
43766/// Implementors must be valid pNext chain members for the target struct.
43767pub unsafe trait ExtendsAccelerationStructureTrianglesOpacityMicromapEXT {}
43768/// Marker trait for structs that can appear in the pNext chain of
43769#[doc = concat!("[`", "AccelerationStructureVersionInfoKHR", "`].")]
43770///
43771/// # Safety
43772/// Implementors must be valid pNext chain members for the target struct.
43773pub unsafe trait ExtendsAccelerationStructureVersionInfoKHR {}
43774/// Marker trait for structs that can appear in the pNext chain of
43775#[doc = concat!("[`", "AcquireNextImageInfoKHR", "`].")]
43776///
43777/// # Safety
43778/// Implementors must be valid pNext chain members for the target struct.
43779pub unsafe trait ExtendsAcquireNextImageInfoKHR {}
43780/// Marker trait for structs that can appear in the pNext chain of
43781#[doc = concat!("[`", "AcquireProfilingLockInfoKHR", "`].")]
43782///
43783/// # Safety
43784/// Implementors must be valid pNext chain members for the target struct.
43785pub unsafe trait ExtendsAcquireProfilingLockInfoKHR {}
43786/// Marker trait for structs that can appear in the pNext chain of
43787#[doc = concat!("[`", "AmigoProfilingSubmitInfoSEC", "`].")]
43788///
43789/// # Safety
43790/// Implementors must be valid pNext chain members for the target struct.
43791pub unsafe trait ExtendsAmigoProfilingSubmitInfoSEC {}
43792/// Marker trait for structs that can appear in the pNext chain of
43793#[doc = concat!("[`", "AndroidHardwareBufferPropertiesANDROID", "`].")]
43794///
43795/// # Safety
43796/// Implementors must be valid pNext chain members for the target struct.
43797pub unsafe trait ExtendsAndroidHardwareBufferPropertiesANDROID {}
43798/// Marker trait for structs that can appear in the pNext chain of
43799#[doc = concat!("[`", "AndroidSurfaceCreateInfoKHR", "`].")]
43800///
43801/// # Safety
43802/// Implementors must be valid pNext chain members for the target struct.
43803pub unsafe trait ExtendsAndroidSurfaceCreateInfoKHR {}
43804/// Marker trait for structs that can appear in the pNext chain of
43805#[doc = concat!("[`", "AntiLagDataAMD", "`].")]
43806///
43807/// # Safety
43808/// Implementors must be valid pNext chain members for the target struct.
43809pub unsafe trait ExtendsAntiLagDataAMD {}
43810/// Marker trait for structs that can appear in the pNext chain of
43811#[doc = concat!("[`", "AntiLagPresentationInfoAMD", "`].")]
43812///
43813/// # Safety
43814/// Implementors must be valid pNext chain members for the target struct.
43815pub unsafe trait ExtendsAntiLagPresentationInfoAMD {}
43816/// Marker trait for structs that can appear in the pNext chain of
43817#[doc = concat!("[`", "ApplicationInfo", "`].")]
43818///
43819/// # Safety
43820/// Implementors must be valid pNext chain members for the target struct.
43821pub unsafe trait ExtendsApplicationInfo {}
43822/// Marker trait for structs that can appear in the pNext chain of
43823#[doc = concat!("[`", "ApplicationParametersEXT", "`].")]
43824///
43825/// # Safety
43826/// Implementors must be valid pNext chain members for the target struct.
43827pub unsafe trait ExtendsApplicationParametersEXT {}
43828/// Marker trait for structs that can appear in the pNext chain of
43829#[doc = concat!("[`", "AttachmentDescription2", "`].")]
43830///
43831/// # Safety
43832/// Implementors must be valid pNext chain members for the target struct.
43833pub unsafe trait ExtendsAttachmentDescription2 {}
43834/// Marker trait for structs that can appear in the pNext chain of
43835#[doc = concat!("[`", "AttachmentDescriptionStencilLayout", "`].")]
43836///
43837/// # Safety
43838/// Implementors must be valid pNext chain members for the target struct.
43839pub unsafe trait ExtendsAttachmentDescriptionStencilLayout {}
43840/// Marker trait for structs that can appear in the pNext chain of
43841#[doc = concat!("[`", "AttachmentFeedbackLoopInfoEXT", "`].")]
43842///
43843/// # Safety
43844/// Implementors must be valid pNext chain members for the target struct.
43845pub unsafe trait ExtendsAttachmentFeedbackLoopInfoEXT {}
43846/// Marker trait for structs that can appear in the pNext chain of
43847#[doc = concat!("[`", "AttachmentReference2", "`].")]
43848///
43849/// # Safety
43850/// Implementors must be valid pNext chain members for the target struct.
43851pub unsafe trait ExtendsAttachmentReference2 {}
43852/// Marker trait for structs that can appear in the pNext chain of
43853#[doc = concat!("[`", "AttachmentReferenceStencilLayout", "`].")]
43854///
43855/// # Safety
43856/// Implementors must be valid pNext chain members for the target struct.
43857pub unsafe trait ExtendsAttachmentReferenceStencilLayout {}
43858/// Marker trait for structs that can appear in the pNext chain of
43859#[doc = concat!("[`", "AttachmentSampleCountInfoAMD", "`].")]
43860///
43861/// # Safety
43862/// Implementors must be valid pNext chain members for the target struct.
43863pub unsafe trait ExtendsAttachmentSampleCountInfoAMD {}
43864/// Marker trait for structs that can appear in the pNext chain of
43865#[doc = concat!("[`", "BaseInStructure", "`].")]
43866///
43867/// # Safety
43868/// Implementors must be valid pNext chain members for the target struct.
43869pub unsafe trait ExtendsBaseInStructure {}
43870/// Marker trait for structs that can appear in the pNext chain of
43871#[doc = concat!("[`", "BaseOutStructure", "`].")]
43872///
43873/// # Safety
43874/// Implementors must be valid pNext chain members for the target struct.
43875pub unsafe trait ExtendsBaseOutStructure {}
43876/// Marker trait for structs that can appear in the pNext chain of
43877#[doc = concat!("[`", "BeginCustomResolveInfoEXT", "`].")]
43878///
43879/// # Safety
43880/// Implementors must be valid pNext chain members for the target struct.
43881pub unsafe trait ExtendsBeginCustomResolveInfoEXT {}
43882/// Marker trait for structs that can appear in the pNext chain of
43883#[doc = concat!("[`", "BindAccelerationStructureMemoryInfoNV", "`].")]
43884///
43885/// # Safety
43886/// Implementors must be valid pNext chain members for the target struct.
43887pub unsafe trait ExtendsBindAccelerationStructureMemoryInfoNV {}
43888/// Marker trait for structs that can appear in the pNext chain of
43889#[doc = concat!("[`", "BindBufferMemoryDeviceGroupInfo", "`].")]
43890///
43891/// # Safety
43892/// Implementors must be valid pNext chain members for the target struct.
43893pub unsafe trait ExtendsBindBufferMemoryDeviceGroupInfo {}
43894/// Marker trait for structs that can appear in the pNext chain of
43895#[doc = concat!("[`", "BindBufferMemoryInfo", "`].")]
43896///
43897/// # Safety
43898/// Implementors must be valid pNext chain members for the target struct.
43899pub unsafe trait ExtendsBindBufferMemoryInfo {}
43900/// Marker trait for structs that can appear in the pNext chain of
43901#[doc = concat!("[`", "BindDataGraphPipelineSessionMemoryInfoARM", "`].")]
43902///
43903/// # Safety
43904/// Implementors must be valid pNext chain members for the target struct.
43905pub unsafe trait ExtendsBindDataGraphPipelineSessionMemoryInfoARM {}
43906/// Marker trait for structs that can appear in the pNext chain of
43907#[doc = concat!("[`", "BindDescriptorBufferEmbeddedSamplersInfoEXT", "`].")]
43908///
43909/// # Safety
43910/// Implementors must be valid pNext chain members for the target struct.
43911pub unsafe trait ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT {}
43912/// Marker trait for structs that can appear in the pNext chain of
43913#[doc = concat!("[`", "BindDescriptorSetsInfo", "`].")]
43914///
43915/// # Safety
43916/// Implementors must be valid pNext chain members for the target struct.
43917pub unsafe trait ExtendsBindDescriptorSetsInfo {}
43918/// Marker trait for structs that can appear in the pNext chain of
43919#[doc = concat!("[`", "BindHeapInfoEXT", "`].")]
43920///
43921/// # Safety
43922/// Implementors must be valid pNext chain members for the target struct.
43923pub unsafe trait ExtendsBindHeapInfoEXT {}
43924/// Marker trait for structs that can appear in the pNext chain of
43925#[doc = concat!("[`", "BindImageMemoryDeviceGroupInfo", "`].")]
43926///
43927/// # Safety
43928/// Implementors must be valid pNext chain members for the target struct.
43929pub unsafe trait ExtendsBindImageMemoryDeviceGroupInfo {}
43930/// Marker trait for structs that can appear in the pNext chain of
43931#[doc = concat!("[`", "BindImageMemoryInfo", "`].")]
43932///
43933/// # Safety
43934/// Implementors must be valid pNext chain members for the target struct.
43935pub unsafe trait ExtendsBindImageMemoryInfo {}
43936/// Marker trait for structs that can appear in the pNext chain of
43937#[doc = concat!("[`", "BindImageMemorySwapchainInfoKHR", "`].")]
43938///
43939/// # Safety
43940/// Implementors must be valid pNext chain members for the target struct.
43941pub unsafe trait ExtendsBindImageMemorySwapchainInfoKHR {}
43942/// Marker trait for structs that can appear in the pNext chain of
43943#[doc = concat!("[`", "BindImagePlaneMemoryInfo", "`].")]
43944///
43945/// # Safety
43946/// Implementors must be valid pNext chain members for the target struct.
43947pub unsafe trait ExtendsBindImagePlaneMemoryInfo {}
43948/// Marker trait for structs that can appear in the pNext chain of
43949#[doc = concat!("[`", "BindIndexBuffer3InfoKHR", "`].")]
43950///
43951/// # Safety
43952/// Implementors must be valid pNext chain members for the target struct.
43953pub unsafe trait ExtendsBindIndexBuffer3InfoKHR {}
43954/// Marker trait for structs that can appear in the pNext chain of
43955#[doc = concat!("[`", "BindMemoryStatus", "`].")]
43956///
43957/// # Safety
43958/// Implementors must be valid pNext chain members for the target struct.
43959pub unsafe trait ExtendsBindMemoryStatus {}
43960/// Marker trait for structs that can appear in the pNext chain of
43961#[doc = concat!("[`", "BindSparseInfo", "`].")]
43962///
43963/// # Safety
43964/// Implementors must be valid pNext chain members for the target struct.
43965pub unsafe trait ExtendsBindSparseInfo {}
43966/// Marker trait for structs that can appear in the pNext chain of
43967#[doc = concat!("[`", "BindTensorMemoryInfoARM", "`].")]
43968///
43969/// # Safety
43970/// Implementors must be valid pNext chain members for the target struct.
43971pub unsafe trait ExtendsBindTensorMemoryInfoARM {}
43972/// Marker trait for structs that can appear in the pNext chain of
43973#[doc = concat!("[`", "BindTransformFeedbackBuffer2InfoEXT", "`].")]
43974///
43975/// # Safety
43976/// Implementors must be valid pNext chain members for the target struct.
43977pub unsafe trait ExtendsBindTransformFeedbackBuffer2InfoEXT {}
43978/// Marker trait for structs that can appear in the pNext chain of
43979#[doc = concat!("[`", "BindVertexBuffer3InfoKHR", "`].")]
43980///
43981/// # Safety
43982/// Implementors must be valid pNext chain members for the target struct.
43983pub unsafe trait ExtendsBindVertexBuffer3InfoKHR {}
43984/// Marker trait for structs that can appear in the pNext chain of
43985#[doc = concat!("[`", "BindVideoSessionMemoryInfoKHR", "`].")]
43986///
43987/// # Safety
43988/// Implementors must be valid pNext chain members for the target struct.
43989pub unsafe trait ExtendsBindVideoSessionMemoryInfoKHR {}
43990/// Marker trait for structs that can appear in the pNext chain of
43991#[doc = concat!("[`", "BlitImageCubicWeightsInfoQCOM", "`].")]
43992///
43993/// # Safety
43994/// Implementors must be valid pNext chain members for the target struct.
43995pub unsafe trait ExtendsBlitImageCubicWeightsInfoQCOM {}
43996/// Marker trait for structs that can appear in the pNext chain of
43997#[doc = concat!("[`", "BlitImageInfo2", "`].")]
43998///
43999/// # Safety
44000/// Implementors must be valid pNext chain members for the target struct.
44001pub unsafe trait ExtendsBlitImageInfo2 {}
44002/// Marker trait for structs that can appear in the pNext chain of
44003#[doc = concat!("[`", "BufferCaptureDescriptorDataInfoEXT", "`].")]
44004///
44005/// # Safety
44006/// Implementors must be valid pNext chain members for the target struct.
44007pub unsafe trait ExtendsBufferCaptureDescriptorDataInfoEXT {}
44008/// Marker trait for structs that can appear in the pNext chain of
44009#[doc = concat!("[`", "BufferCollectionBufferCreateInfoFUCHSIA", "`].")]
44010///
44011/// # Safety
44012/// Implementors must be valid pNext chain members for the target struct.
44013pub unsafe trait ExtendsBufferCollectionBufferCreateInfoFUCHSIA {}
44014/// Marker trait for structs that can appear in the pNext chain of
44015#[doc = concat!("[`", "BufferCollectionConstraintsInfoFUCHSIA", "`].")]
44016///
44017/// # Safety
44018/// Implementors must be valid pNext chain members for the target struct.
44019pub unsafe trait ExtendsBufferCollectionConstraintsInfoFUCHSIA {}
44020/// Marker trait for structs that can appear in the pNext chain of
44021#[doc = concat!("[`", "BufferCollectionCreateInfoFUCHSIA", "`].")]
44022///
44023/// # Safety
44024/// Implementors must be valid pNext chain members for the target struct.
44025pub unsafe trait ExtendsBufferCollectionCreateInfoFUCHSIA {}
44026/// Marker trait for structs that can appear in the pNext chain of
44027#[doc = concat!("[`", "BufferCollectionImageCreateInfoFUCHSIA", "`].")]
44028///
44029/// # Safety
44030/// Implementors must be valid pNext chain members for the target struct.
44031pub unsafe trait ExtendsBufferCollectionImageCreateInfoFUCHSIA {}
44032/// Marker trait for structs that can appear in the pNext chain of
44033#[doc = concat!("[`", "BufferConstraintsInfoFUCHSIA", "`].")]
44034///
44035/// # Safety
44036/// Implementors must be valid pNext chain members for the target struct.
44037pub unsafe trait ExtendsBufferConstraintsInfoFUCHSIA {}
44038/// Marker trait for structs that can appear in the pNext chain of
44039#[doc = concat!("[`", "BufferCopy2", "`].")]
44040///
44041/// # Safety
44042/// Implementors must be valid pNext chain members for the target struct.
44043pub unsafe trait ExtendsBufferCopy2 {}
44044/// Marker trait for structs that can appear in the pNext chain of
44045#[doc = concat!("[`", "BufferCreateInfo", "`].")]
44046///
44047/// # Safety
44048/// Implementors must be valid pNext chain members for the target struct.
44049pub unsafe trait ExtendsBufferCreateInfo {}
44050/// Marker trait for structs that can appear in the pNext chain of
44051#[doc = concat!("[`", "BufferDeviceAddressCreateInfoEXT", "`].")]
44052///
44053/// # Safety
44054/// Implementors must be valid pNext chain members for the target struct.
44055pub unsafe trait ExtendsBufferDeviceAddressCreateInfoEXT {}
44056/// Marker trait for structs that can appear in the pNext chain of
44057#[doc = concat!("[`", "BufferDeviceAddressInfo", "`].")]
44058///
44059/// # Safety
44060/// Implementors must be valid pNext chain members for the target struct.
44061pub unsafe trait ExtendsBufferDeviceAddressInfo {}
44062/// Marker trait for structs that can appear in the pNext chain of
44063#[doc = concat!("[`", "BufferImageCopy2", "`].")]
44064///
44065/// # Safety
44066/// Implementors must be valid pNext chain members for the target struct.
44067pub unsafe trait ExtendsBufferImageCopy2 {}
44068/// Marker trait for structs that can appear in the pNext chain of
44069#[doc = concat!("[`", "BufferMemoryBarrier", "`].")]
44070///
44071/// # Safety
44072/// Implementors must be valid pNext chain members for the target struct.
44073pub unsafe trait ExtendsBufferMemoryBarrier {}
44074/// Marker trait for structs that can appear in the pNext chain of
44075#[doc = concat!("[`", "BufferMemoryBarrier2", "`].")]
44076///
44077/// # Safety
44078/// Implementors must be valid pNext chain members for the target struct.
44079pub unsafe trait ExtendsBufferMemoryBarrier2 {}
44080/// Marker trait for structs that can appear in the pNext chain of
44081#[doc = concat!("[`", "BufferMemoryRequirementsInfo2", "`].")]
44082///
44083/// # Safety
44084/// Implementors must be valid pNext chain members for the target struct.
44085pub unsafe trait ExtendsBufferMemoryRequirementsInfo2 {}
44086/// Marker trait for structs that can appear in the pNext chain of
44087#[doc = concat!("[`", "BufferOpaqueCaptureAddressCreateInfo", "`].")]
44088///
44089/// # Safety
44090/// Implementors must be valid pNext chain members for the target struct.
44091pub unsafe trait ExtendsBufferOpaqueCaptureAddressCreateInfo {}
44092/// Marker trait for structs that can appear in the pNext chain of
44093#[doc = concat!("[`", "BufferUsageFlags2CreateInfo", "`].")]
44094///
44095/// # Safety
44096/// Implementors must be valid pNext chain members for the target struct.
44097pub unsafe trait ExtendsBufferUsageFlags2CreateInfo {}
44098/// Marker trait for structs that can appear in the pNext chain of
44099#[doc = concat!("[`", "BufferViewCreateInfo", "`].")]
44100///
44101/// # Safety
44102/// Implementors must be valid pNext chain members for the target struct.
44103pub unsafe trait ExtendsBufferViewCreateInfo {}
44104/// Marker trait for structs that can appear in the pNext chain of
44105#[doc = concat!("[`", "BuildPartitionedAccelerationStructureInfoNV", "`].")]
44106///
44107/// # Safety
44108/// Implementors must be valid pNext chain members for the target struct.
44109pub unsafe trait ExtendsBuildPartitionedAccelerationStructureInfoNV {}
44110/// Marker trait for structs that can appear in the pNext chain of
44111#[doc = concat!("[`", "CalibratedTimestampInfoKHR", "`].")]
44112///
44113/// # Safety
44114/// Implementors must be valid pNext chain members for the target struct.
44115pub unsafe trait ExtendsCalibratedTimestampInfoKHR {}
44116/// Marker trait for structs that can appear in the pNext chain of
44117#[doc = concat!("[`", "ClusterAccelerationStructureClustersBottomLevelInputNV", "`].")]
44118///
44119/// # Safety
44120/// Implementors must be valid pNext chain members for the target struct.
44121pub unsafe trait ExtendsClusterAccelerationStructureClustersBottomLevelInputNV {}
44122/// Marker trait for structs that can appear in the pNext chain of
44123#[doc = concat!("[`", "ClusterAccelerationStructureCommandsInfoNV", "`].")]
44124///
44125/// # Safety
44126/// Implementors must be valid pNext chain members for the target struct.
44127pub unsafe trait ExtendsClusterAccelerationStructureCommandsInfoNV {}
44128/// Marker trait for structs that can appear in the pNext chain of
44129#[doc = concat!("[`", "ClusterAccelerationStructureInputInfoNV", "`].")]
44130///
44131/// # Safety
44132/// Implementors must be valid pNext chain members for the target struct.
44133pub unsafe trait ExtendsClusterAccelerationStructureInputInfoNV {}
44134/// Marker trait for structs that can appear in the pNext chain of
44135#[doc = concat!("[`", "ClusterAccelerationStructureMoveObjectsInputNV", "`].")]
44136///
44137/// # Safety
44138/// Implementors must be valid pNext chain members for the target struct.
44139pub unsafe trait ExtendsClusterAccelerationStructureMoveObjectsInputNV {}
44140/// Marker trait for structs that can appear in the pNext chain of
44141#[doc = concat!("[`", "ClusterAccelerationStructureTriangleClusterInputNV", "`].")]
44142///
44143/// # Safety
44144/// Implementors must be valid pNext chain members for the target struct.
44145pub unsafe trait ExtendsClusterAccelerationStructureTriangleClusterInputNV {}
44146/// Marker trait for structs that can appear in the pNext chain of
44147#[doc = concat!("[`", "CommandBufferAllocateInfo", "`].")]
44148///
44149/// # Safety
44150/// Implementors must be valid pNext chain members for the target struct.
44151pub unsafe trait ExtendsCommandBufferAllocateInfo {}
44152/// Marker trait for structs that can appear in the pNext chain of
44153#[doc = concat!("[`", "CommandBufferBeginInfo", "`].")]
44154///
44155/// # Safety
44156/// Implementors must be valid pNext chain members for the target struct.
44157pub unsafe trait ExtendsCommandBufferBeginInfo {}
44158/// Marker trait for structs that can appear in the pNext chain of
44159#[doc = concat!("[`", "CommandBufferInheritanceConditionalRenderingInfoEXT", "`].")]
44160///
44161/// # Safety
44162/// Implementors must be valid pNext chain members for the target struct.
44163pub unsafe trait ExtendsCommandBufferInheritanceConditionalRenderingInfoEXT {}
44164/// Marker trait for structs that can appear in the pNext chain of
44165#[doc = concat!("[`", "CommandBufferInheritanceDescriptorHeapInfoEXT", "`].")]
44166///
44167/// # Safety
44168/// Implementors must be valid pNext chain members for the target struct.
44169pub unsafe trait ExtendsCommandBufferInheritanceDescriptorHeapInfoEXT {}
44170/// Marker trait for structs that can appear in the pNext chain of
44171#[doc = concat!("[`", "CommandBufferInheritanceInfo", "`].")]
44172///
44173/// # Safety
44174/// Implementors must be valid pNext chain members for the target struct.
44175pub unsafe trait ExtendsCommandBufferInheritanceInfo {}
44176/// Marker trait for structs that can appear in the pNext chain of
44177#[doc = concat!("[`", "CommandBufferInheritanceRenderPassTransformInfoQCOM", "`].")]
44178///
44179/// # Safety
44180/// Implementors must be valid pNext chain members for the target struct.
44181pub unsafe trait ExtendsCommandBufferInheritanceRenderPassTransformInfoQCOM {}
44182/// Marker trait for structs that can appear in the pNext chain of
44183#[doc = concat!("[`", "CommandBufferInheritanceRenderingInfo", "`].")]
44184///
44185/// # Safety
44186/// Implementors must be valid pNext chain members for the target struct.
44187pub unsafe trait ExtendsCommandBufferInheritanceRenderingInfo {}
44188/// Marker trait for structs that can appear in the pNext chain of
44189#[doc = concat!("[`", "CommandBufferInheritanceViewportScissorInfoNV", "`].")]
44190///
44191/// # Safety
44192/// Implementors must be valid pNext chain members for the target struct.
44193pub unsafe trait ExtendsCommandBufferInheritanceViewportScissorInfoNV {}
44194/// Marker trait for structs that can appear in the pNext chain of
44195#[doc = concat!("[`", "CommandBufferSubmitInfo", "`].")]
44196///
44197/// # Safety
44198/// Implementors must be valid pNext chain members for the target struct.
44199pub unsafe trait ExtendsCommandBufferSubmitInfo {}
44200/// Marker trait for structs that can appear in the pNext chain of
44201#[doc = concat!("[`", "CommandPoolCreateInfo", "`].")]
44202///
44203/// # Safety
44204/// Implementors must be valid pNext chain members for the target struct.
44205pub unsafe trait ExtendsCommandPoolCreateInfo {}
44206/// Marker trait for structs that can appear in the pNext chain of
44207#[doc = concat!("[`", "CommandPoolMemoryReservationCreateInfo", "`].")]
44208///
44209/// # Safety
44210/// Implementors must be valid pNext chain members for the target struct.
44211pub unsafe trait ExtendsCommandPoolMemoryReservationCreateInfo {}
44212/// Marker trait for structs that can appear in the pNext chain of
44213#[doc = concat!("[`", "ComputeOccupancyPriorityParametersNV", "`].")]
44214///
44215/// # Safety
44216/// Implementors must be valid pNext chain members for the target struct.
44217pub unsafe trait ExtendsComputeOccupancyPriorityParametersNV {}
44218/// Marker trait for structs that can appear in the pNext chain of
44219#[doc = concat!("[`", "ComputePipelineCreateInfo", "`].")]
44220///
44221/// # Safety
44222/// Implementors must be valid pNext chain members for the target struct.
44223pub unsafe trait ExtendsComputePipelineCreateInfo {}
44224/// Marker trait for structs that can appear in the pNext chain of
44225#[doc = concat!("[`", "ComputePipelineIndirectBufferInfoNV", "`].")]
44226///
44227/// # Safety
44228/// Implementors must be valid pNext chain members for the target struct.
44229pub unsafe trait ExtendsComputePipelineIndirectBufferInfoNV {}
44230/// Marker trait for structs that can appear in the pNext chain of
44231#[doc = concat!("[`", "ConditionalRenderingBeginInfo2EXT", "`].")]
44232///
44233/// # Safety
44234/// Implementors must be valid pNext chain members for the target struct.
44235pub unsafe trait ExtendsConditionalRenderingBeginInfo2EXT {}
44236/// Marker trait for structs that can appear in the pNext chain of
44237#[doc = concat!("[`", "ConditionalRenderingBeginInfoEXT", "`].")]
44238///
44239/// # Safety
44240/// Implementors must be valid pNext chain members for the target struct.
44241pub unsafe trait ExtendsConditionalRenderingBeginInfoEXT {}
44242/// Marker trait for structs that can appear in the pNext chain of
44243#[doc = concat!("[`", "ConvertCooperativeVectorMatrixInfoNV", "`].")]
44244///
44245/// # Safety
44246/// Implementors must be valid pNext chain members for the target struct.
44247pub unsafe trait ExtendsConvertCooperativeVectorMatrixInfoNV {}
44248/// Marker trait for structs that can appear in the pNext chain of
44249#[doc = concat!("[`", "CooperativeVectorPropertiesNV", "`].")]
44250///
44251/// # Safety
44252/// Implementors must be valid pNext chain members for the target struct.
44253pub unsafe trait ExtendsCooperativeVectorPropertiesNV {}
44254/// Marker trait for structs that can appear in the pNext chain of
44255#[doc = concat!("[`", "CopyAccelerationStructureInfoKHR", "`].")]
44256///
44257/// # Safety
44258/// Implementors must be valid pNext chain members for the target struct.
44259pub unsafe trait ExtendsCopyAccelerationStructureInfoKHR {}
44260/// Marker trait for structs that can appear in the pNext chain of
44261#[doc = concat!("[`", "CopyAccelerationStructureToMemoryInfoKHR", "`].")]
44262///
44263/// # Safety
44264/// Implementors must be valid pNext chain members for the target struct.
44265pub unsafe trait ExtendsCopyAccelerationStructureToMemoryInfoKHR {}
44266/// Marker trait for structs that can appear in the pNext chain of
44267#[doc = concat!("[`", "CopyBufferInfo2", "`].")]
44268///
44269/// # Safety
44270/// Implementors must be valid pNext chain members for the target struct.
44271pub unsafe trait ExtendsCopyBufferInfo2 {}
44272/// Marker trait for structs that can appear in the pNext chain of
44273#[doc = concat!("[`", "CopyBufferToImageInfo2", "`].")]
44274///
44275/// # Safety
44276/// Implementors must be valid pNext chain members for the target struct.
44277pub unsafe trait ExtendsCopyBufferToImageInfo2 {}
44278/// Marker trait for structs that can appear in the pNext chain of
44279#[doc = concat!("[`", "CopyCommandTransformInfoQCOM", "`].")]
44280///
44281/// # Safety
44282/// Implementors must be valid pNext chain members for the target struct.
44283pub unsafe trait ExtendsCopyCommandTransformInfoQCOM {}
44284/// Marker trait for structs that can appear in the pNext chain of
44285#[doc = concat!("[`", "CopyDescriptorSet", "`].")]
44286///
44287/// # Safety
44288/// Implementors must be valid pNext chain members for the target struct.
44289pub unsafe trait ExtendsCopyDescriptorSet {}
44290/// Marker trait for structs that can appear in the pNext chain of
44291#[doc = concat!("[`", "CopyDeviceMemoryImageInfoKHR", "`].")]
44292///
44293/// # Safety
44294/// Implementors must be valid pNext chain members for the target struct.
44295pub unsafe trait ExtendsCopyDeviceMemoryImageInfoKHR {}
44296/// Marker trait for structs that can appear in the pNext chain of
44297#[doc = concat!("[`", "CopyDeviceMemoryInfoKHR", "`].")]
44298///
44299/// # Safety
44300/// Implementors must be valid pNext chain members for the target struct.
44301pub unsafe trait ExtendsCopyDeviceMemoryInfoKHR {}
44302/// Marker trait for structs that can appear in the pNext chain of
44303#[doc = concat!("[`", "CopyImageInfo2", "`].")]
44304///
44305/// # Safety
44306/// Implementors must be valid pNext chain members for the target struct.
44307pub unsafe trait ExtendsCopyImageInfo2 {}
44308/// Marker trait for structs that can appear in the pNext chain of
44309#[doc = concat!("[`", "CopyImageToBufferInfo2", "`].")]
44310///
44311/// # Safety
44312/// Implementors must be valid pNext chain members for the target struct.
44313pub unsafe trait ExtendsCopyImageToBufferInfo2 {}
44314/// Marker trait for structs that can appear in the pNext chain of
44315#[doc = concat!("[`", "CopyImageToImageInfo", "`].")]
44316///
44317/// # Safety
44318/// Implementors must be valid pNext chain members for the target struct.
44319pub unsafe trait ExtendsCopyImageToImageInfo {}
44320/// Marker trait for structs that can appear in the pNext chain of
44321#[doc = concat!("[`", "CopyImageToMemoryInfo", "`].")]
44322///
44323/// # Safety
44324/// Implementors must be valid pNext chain members for the target struct.
44325pub unsafe trait ExtendsCopyImageToMemoryInfo {}
44326/// Marker trait for structs that can appear in the pNext chain of
44327#[doc = concat!("[`", "CopyMemoryIndirectInfoKHR", "`].")]
44328///
44329/// # Safety
44330/// Implementors must be valid pNext chain members for the target struct.
44331pub unsafe trait ExtendsCopyMemoryIndirectInfoKHR {}
44332/// Marker trait for structs that can appear in the pNext chain of
44333#[doc = concat!("[`", "CopyMemoryToAccelerationStructureInfoKHR", "`].")]
44334///
44335/// # Safety
44336/// Implementors must be valid pNext chain members for the target struct.
44337pub unsafe trait ExtendsCopyMemoryToAccelerationStructureInfoKHR {}
44338/// Marker trait for structs that can appear in the pNext chain of
44339#[doc = concat!("[`", "CopyMemoryToImageIndirectInfoKHR", "`].")]
44340///
44341/// # Safety
44342/// Implementors must be valid pNext chain members for the target struct.
44343pub unsafe trait ExtendsCopyMemoryToImageIndirectInfoKHR {}
44344/// Marker trait for structs that can appear in the pNext chain of
44345#[doc = concat!("[`", "CopyMemoryToImageInfo", "`].")]
44346///
44347/// # Safety
44348/// Implementors must be valid pNext chain members for the target struct.
44349pub unsafe trait ExtendsCopyMemoryToImageInfo {}
44350/// Marker trait for structs that can appear in the pNext chain of
44351#[doc = concat!("[`", "CopyMemoryToMicromapInfoEXT", "`].")]
44352///
44353/// # Safety
44354/// Implementors must be valid pNext chain members for the target struct.
44355pub unsafe trait ExtendsCopyMemoryToMicromapInfoEXT {}
44356/// Marker trait for structs that can appear in the pNext chain of
44357#[doc = concat!("[`", "CopyMicromapInfoEXT", "`].")]
44358///
44359/// # Safety
44360/// Implementors must be valid pNext chain members for the target struct.
44361pub unsafe trait ExtendsCopyMicromapInfoEXT {}
44362/// Marker trait for structs that can appear in the pNext chain of
44363#[doc = concat!("[`", "CopyMicromapToMemoryInfoEXT", "`].")]
44364///
44365/// # Safety
44366/// Implementors must be valid pNext chain members for the target struct.
44367pub unsafe trait ExtendsCopyMicromapToMemoryInfoEXT {}
44368/// Marker trait for structs that can appear in the pNext chain of
44369#[doc = concat!("[`", "CopyTensorInfoARM", "`].")]
44370///
44371/// # Safety
44372/// Implementors must be valid pNext chain members for the target struct.
44373pub unsafe trait ExtendsCopyTensorInfoARM {}
44374/// Marker trait for structs that can appear in the pNext chain of
44375#[doc = concat!("[`", "CuFunctionCreateInfoNVX", "`].")]
44376///
44377/// # Safety
44378/// Implementors must be valid pNext chain members for the target struct.
44379pub unsafe trait ExtendsCuFunctionCreateInfoNVX {}
44380/// Marker trait for structs that can appear in the pNext chain of
44381#[doc = concat!("[`", "CuLaunchInfoNVX", "`].")]
44382///
44383/// # Safety
44384/// Implementors must be valid pNext chain members for the target struct.
44385pub unsafe trait ExtendsCuLaunchInfoNVX {}
44386/// Marker trait for structs that can appear in the pNext chain of
44387#[doc = concat!("[`", "CuModuleCreateInfoNVX", "`].")]
44388///
44389/// # Safety
44390/// Implementors must be valid pNext chain members for the target struct.
44391pub unsafe trait ExtendsCuModuleCreateInfoNVX {}
44392/// Marker trait for structs that can appear in the pNext chain of
44393#[doc = concat!("[`", "CuModuleTexturingModeCreateInfoNVX", "`].")]
44394///
44395/// # Safety
44396/// Implementors must be valid pNext chain members for the target struct.
44397pub unsafe trait ExtendsCuModuleTexturingModeCreateInfoNVX {}
44398/// Marker trait for structs that can appear in the pNext chain of
44399#[doc = concat!("[`", "CudaFunctionCreateInfoNV", "`].")]
44400///
44401/// # Safety
44402/// Implementors must be valid pNext chain members for the target struct.
44403pub unsafe trait ExtendsCudaFunctionCreateInfoNV {}
44404/// Marker trait for structs that can appear in the pNext chain of
44405#[doc = concat!("[`", "CudaLaunchInfoNV", "`].")]
44406///
44407/// # Safety
44408/// Implementors must be valid pNext chain members for the target struct.
44409pub unsafe trait ExtendsCudaLaunchInfoNV {}
44410/// Marker trait for structs that can appear in the pNext chain of
44411#[doc = concat!("[`", "CudaModuleCreateInfoNV", "`].")]
44412///
44413/// # Safety
44414/// Implementors must be valid pNext chain members for the target struct.
44415pub unsafe trait ExtendsCudaModuleCreateInfoNV {}
44416/// Marker trait for structs that can appear in the pNext chain of
44417#[doc = concat!("[`", "CustomResolveCreateInfoEXT", "`].")]
44418///
44419/// # Safety
44420/// Implementors must be valid pNext chain members for the target struct.
44421pub unsafe trait ExtendsCustomResolveCreateInfoEXT {}
44422/// Marker trait for structs that can appear in the pNext chain of
44423#[doc = concat!("[`", "D3D12FenceSubmitInfoKHR", "`].")]
44424///
44425/// # Safety
44426/// Implementors must be valid pNext chain members for the target struct.
44427pub unsafe trait ExtendsD3D12FenceSubmitInfoKHR {}
44428/// Marker trait for structs that can appear in the pNext chain of
44429#[doc = concat!("[`", "DataGraphPipelineBuiltinModelCreateInfoQCOM", "`].")]
44430///
44431/// # Safety
44432/// Implementors must be valid pNext chain members for the target struct.
44433pub unsafe trait ExtendsDataGraphPipelineBuiltinModelCreateInfoQCOM {}
44434/// Marker trait for structs that can appear in the pNext chain of
44435#[doc = concat!("[`", "DataGraphPipelineCompilerControlCreateInfoARM", "`].")]
44436///
44437/// # Safety
44438/// Implementors must be valid pNext chain members for the target struct.
44439pub unsafe trait ExtendsDataGraphPipelineCompilerControlCreateInfoARM {}
44440/// Marker trait for structs that can appear in the pNext chain of
44441#[doc = concat!("[`", "DataGraphPipelineConstantARM", "`].")]
44442///
44443/// # Safety
44444/// Implementors must be valid pNext chain members for the target struct.
44445pub unsafe trait ExtendsDataGraphPipelineConstantARM {}
44446/// Marker trait for structs that can appear in the pNext chain of
44447#[doc = concat!(
44448    "[`", "DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM", "`]."
44449)]
44450///
44451/// # Safety
44452/// Implementors must be valid pNext chain members for the target struct.
44453pub unsafe trait ExtendsDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {}
44454/// Marker trait for structs that can appear in the pNext chain of
44455#[doc = concat!("[`", "DataGraphPipelineCreateInfoARM", "`].")]
44456///
44457/// # Safety
44458/// Implementors must be valid pNext chain members for the target struct.
44459pub unsafe trait ExtendsDataGraphPipelineCreateInfoARM {}
44460/// Marker trait for structs that can appear in the pNext chain of
44461#[doc = concat!("[`", "DataGraphPipelineDispatchInfoARM", "`].")]
44462///
44463/// # Safety
44464/// Implementors must be valid pNext chain members for the target struct.
44465pub unsafe trait ExtendsDataGraphPipelineDispatchInfoARM {}
44466/// Marker trait for structs that can appear in the pNext chain of
44467#[doc = concat!("[`", "DataGraphPipelineIdentifierCreateInfoARM", "`].")]
44468///
44469/// # Safety
44470/// Implementors must be valid pNext chain members for the target struct.
44471pub unsafe trait ExtendsDataGraphPipelineIdentifierCreateInfoARM {}
44472/// Marker trait for structs that can appear in the pNext chain of
44473#[doc = concat!("[`", "DataGraphPipelineInfoARM", "`].")]
44474///
44475/// # Safety
44476/// Implementors must be valid pNext chain members for the target struct.
44477pub unsafe trait ExtendsDataGraphPipelineInfoARM {}
44478/// Marker trait for structs that can appear in the pNext chain of
44479#[doc = concat!("[`", "DataGraphPipelinePropertyQueryResultARM", "`].")]
44480///
44481/// # Safety
44482/// Implementors must be valid pNext chain members for the target struct.
44483pub unsafe trait ExtendsDataGraphPipelinePropertyQueryResultARM {}
44484/// Marker trait for structs that can appear in the pNext chain of
44485#[doc = concat!("[`", "DataGraphPipelineResourceInfoARM", "`].")]
44486///
44487/// # Safety
44488/// Implementors must be valid pNext chain members for the target struct.
44489pub unsafe trait ExtendsDataGraphPipelineResourceInfoARM {}
44490/// Marker trait for structs that can appear in the pNext chain of
44491#[doc = concat!("[`", "DataGraphPipelineSessionBindPointRequirementsInfoARM", "`].")]
44492///
44493/// # Safety
44494/// Implementors must be valid pNext chain members for the target struct.
44495pub unsafe trait ExtendsDataGraphPipelineSessionBindPointRequirementsInfoARM {}
44496/// Marker trait for structs that can appear in the pNext chain of
44497#[doc = concat!("[`", "DataGraphPipelineSessionCreateInfoARM", "`].")]
44498///
44499/// # Safety
44500/// Implementors must be valid pNext chain members for the target struct.
44501pub unsafe trait ExtendsDataGraphPipelineSessionCreateInfoARM {}
44502/// Marker trait for structs that can appear in the pNext chain of
44503#[doc = concat!("[`", "DataGraphPipelineSessionMemoryRequirementsInfoARM", "`].")]
44504///
44505/// # Safety
44506/// Implementors must be valid pNext chain members for the target struct.
44507pub unsafe trait ExtendsDataGraphPipelineSessionMemoryRequirementsInfoARM {}
44508/// Marker trait for structs that can appear in the pNext chain of
44509#[doc = concat!("[`", "DataGraphPipelineShaderModuleCreateInfoARM", "`].")]
44510///
44511/// # Safety
44512/// Implementors must be valid pNext chain members for the target struct.
44513pub unsafe trait ExtendsDataGraphPipelineShaderModuleCreateInfoARM {}
44514/// Marker trait for structs that can appear in the pNext chain of
44515#[doc = concat!("[`", "DataGraphProcessingEngineCreateInfoARM", "`].")]
44516///
44517/// # Safety
44518/// Implementors must be valid pNext chain members for the target struct.
44519pub unsafe trait ExtendsDataGraphProcessingEngineCreateInfoARM {}
44520/// Marker trait for structs that can appear in the pNext chain of
44521#[doc = concat!("[`", "DebugMarkerMarkerInfoEXT", "`].")]
44522///
44523/// # Safety
44524/// Implementors must be valid pNext chain members for the target struct.
44525pub unsafe trait ExtendsDebugMarkerMarkerInfoEXT {}
44526/// Marker trait for structs that can appear in the pNext chain of
44527#[doc = concat!("[`", "DebugMarkerObjectNameInfoEXT", "`].")]
44528///
44529/// # Safety
44530/// Implementors must be valid pNext chain members for the target struct.
44531pub unsafe trait ExtendsDebugMarkerObjectNameInfoEXT {}
44532/// Marker trait for structs that can appear in the pNext chain of
44533#[doc = concat!("[`", "DebugMarkerObjectTagInfoEXT", "`].")]
44534///
44535/// # Safety
44536/// Implementors must be valid pNext chain members for the target struct.
44537pub unsafe trait ExtendsDebugMarkerObjectTagInfoEXT {}
44538/// Marker trait for structs that can appear in the pNext chain of
44539#[doc = concat!("[`", "DebugReportCallbackCreateInfoEXT", "`].")]
44540///
44541/// # Safety
44542/// Implementors must be valid pNext chain members for the target struct.
44543pub unsafe trait ExtendsDebugReportCallbackCreateInfoEXT {}
44544/// Marker trait for structs that can appear in the pNext chain of
44545#[doc = concat!("[`", "DebugUtilsLabelEXT", "`].")]
44546///
44547/// # Safety
44548/// Implementors must be valid pNext chain members for the target struct.
44549pub unsafe trait ExtendsDebugUtilsLabelEXT {}
44550/// Marker trait for structs that can appear in the pNext chain of
44551#[doc = concat!("[`", "DebugUtilsMessengerCallbackDataEXT", "`].")]
44552///
44553/// # Safety
44554/// Implementors must be valid pNext chain members for the target struct.
44555pub unsafe trait ExtendsDebugUtilsMessengerCallbackDataEXT {}
44556/// Marker trait for structs that can appear in the pNext chain of
44557#[doc = concat!("[`", "DebugUtilsMessengerCreateInfoEXT", "`].")]
44558///
44559/// # Safety
44560/// Implementors must be valid pNext chain members for the target struct.
44561pub unsafe trait ExtendsDebugUtilsMessengerCreateInfoEXT {}
44562/// Marker trait for structs that can appear in the pNext chain of
44563#[doc = concat!("[`", "DebugUtilsObjectNameInfoEXT", "`].")]
44564///
44565/// # Safety
44566/// Implementors must be valid pNext chain members for the target struct.
44567pub unsafe trait ExtendsDebugUtilsObjectNameInfoEXT {}
44568/// Marker trait for structs that can appear in the pNext chain of
44569#[doc = concat!("[`", "DebugUtilsObjectTagInfoEXT", "`].")]
44570///
44571/// # Safety
44572/// Implementors must be valid pNext chain members for the target struct.
44573pub unsafe trait ExtendsDebugUtilsObjectTagInfoEXT {}
44574/// Marker trait for structs that can appear in the pNext chain of
44575#[doc = concat!("[`", "DecompressMemoryInfoEXT", "`].")]
44576///
44577/// # Safety
44578/// Implementors must be valid pNext chain members for the target struct.
44579pub unsafe trait ExtendsDecompressMemoryInfoEXT {}
44580/// Marker trait for structs that can appear in the pNext chain of
44581#[doc = concat!("[`", "DedicatedAllocationBufferCreateInfoNV", "`].")]
44582///
44583/// # Safety
44584/// Implementors must be valid pNext chain members for the target struct.
44585pub unsafe trait ExtendsDedicatedAllocationBufferCreateInfoNV {}
44586/// Marker trait for structs that can appear in the pNext chain of
44587#[doc = concat!("[`", "DedicatedAllocationImageCreateInfoNV", "`].")]
44588///
44589/// # Safety
44590/// Implementors must be valid pNext chain members for the target struct.
44591pub unsafe trait ExtendsDedicatedAllocationImageCreateInfoNV {}
44592/// Marker trait for structs that can appear in the pNext chain of
44593#[doc = concat!("[`", "DedicatedAllocationMemoryAllocateInfoNV", "`].")]
44594///
44595/// # Safety
44596/// Implementors must be valid pNext chain members for the target struct.
44597pub unsafe trait ExtendsDedicatedAllocationMemoryAllocateInfoNV {}
44598/// Marker trait for structs that can appear in the pNext chain of
44599#[doc = concat!("[`", "DependencyInfo", "`].")]
44600///
44601/// # Safety
44602/// Implementors must be valid pNext chain members for the target struct.
44603pub unsafe trait ExtendsDependencyInfo {}
44604/// Marker trait for structs that can appear in the pNext chain of
44605#[doc = concat!("[`", "DepthBiasInfoEXT", "`].")]
44606///
44607/// # Safety
44608/// Implementors must be valid pNext chain members for the target struct.
44609pub unsafe trait ExtendsDepthBiasInfoEXT {}
44610/// Marker trait for structs that can appear in the pNext chain of
44611#[doc = concat!("[`", "DepthBiasRepresentationInfoEXT", "`].")]
44612///
44613/// # Safety
44614/// Implementors must be valid pNext chain members for the target struct.
44615pub unsafe trait ExtendsDepthBiasRepresentationInfoEXT {}
44616/// Marker trait for structs that can appear in the pNext chain of
44617#[doc = concat!("[`", "DescriptorAddressInfoEXT", "`].")]
44618///
44619/// # Safety
44620/// Implementors must be valid pNext chain members for the target struct.
44621pub unsafe trait ExtendsDescriptorAddressInfoEXT {}
44622/// Marker trait for structs that can appear in the pNext chain of
44623#[doc = concat!("[`", "DescriptorBufferBindingInfoEXT", "`].")]
44624///
44625/// # Safety
44626/// Implementors must be valid pNext chain members for the target struct.
44627pub unsafe trait ExtendsDescriptorBufferBindingInfoEXT {}
44628/// Marker trait for structs that can appear in the pNext chain of
44629#[doc = concat!("[`", "DescriptorBufferBindingPushDescriptorBufferHandleEXT", "`].")]
44630///
44631/// # Safety
44632/// Implementors must be valid pNext chain members for the target struct.
44633pub unsafe trait ExtendsDescriptorBufferBindingPushDescriptorBufferHandleEXT {}
44634/// Marker trait for structs that can appear in the pNext chain of
44635#[doc = concat!("[`", "DescriptorGetInfoEXT", "`].")]
44636///
44637/// # Safety
44638/// Implementors must be valid pNext chain members for the target struct.
44639pub unsafe trait ExtendsDescriptorGetInfoEXT {}
44640/// Marker trait for structs that can appear in the pNext chain of
44641#[doc = concat!("[`", "DescriptorGetTensorInfoARM", "`].")]
44642///
44643/// # Safety
44644/// Implementors must be valid pNext chain members for the target struct.
44645pub unsafe trait ExtendsDescriptorGetTensorInfoARM {}
44646/// Marker trait for structs that can appear in the pNext chain of
44647#[doc = concat!("[`", "DescriptorPoolCreateInfo", "`].")]
44648///
44649/// # Safety
44650/// Implementors must be valid pNext chain members for the target struct.
44651pub unsafe trait ExtendsDescriptorPoolCreateInfo {}
44652/// Marker trait for structs that can appear in the pNext chain of
44653#[doc = concat!("[`", "DescriptorPoolInlineUniformBlockCreateInfo", "`].")]
44654///
44655/// # Safety
44656/// Implementors must be valid pNext chain members for the target struct.
44657pub unsafe trait ExtendsDescriptorPoolInlineUniformBlockCreateInfo {}
44658/// Marker trait for structs that can appear in the pNext chain of
44659#[doc = concat!("[`", "DescriptorSetAllocateInfo", "`].")]
44660///
44661/// # Safety
44662/// Implementors must be valid pNext chain members for the target struct.
44663pub unsafe trait ExtendsDescriptorSetAllocateInfo {}
44664/// Marker trait for structs that can appear in the pNext chain of
44665#[doc = concat!("[`", "DescriptorSetAndBindingMappingEXT", "`].")]
44666///
44667/// # Safety
44668/// Implementors must be valid pNext chain members for the target struct.
44669pub unsafe trait ExtendsDescriptorSetAndBindingMappingEXT {}
44670/// Marker trait for structs that can appear in the pNext chain of
44671#[doc = concat!("[`", "DescriptorSetBindingReferenceVALVE", "`].")]
44672///
44673/// # Safety
44674/// Implementors must be valid pNext chain members for the target struct.
44675pub unsafe trait ExtendsDescriptorSetBindingReferenceVALVE {}
44676/// Marker trait for structs that can appear in the pNext chain of
44677#[doc = concat!("[`", "DescriptorSetLayoutBindingFlagsCreateInfo", "`].")]
44678///
44679/// # Safety
44680/// Implementors must be valid pNext chain members for the target struct.
44681pub unsafe trait ExtendsDescriptorSetLayoutBindingFlagsCreateInfo {}
44682/// Marker trait for structs that can appear in the pNext chain of
44683#[doc = concat!("[`", "DescriptorSetLayoutCreateInfo", "`].")]
44684///
44685/// # Safety
44686/// Implementors must be valid pNext chain members for the target struct.
44687pub unsafe trait ExtendsDescriptorSetLayoutCreateInfo {}
44688/// Marker trait for structs that can appear in the pNext chain of
44689#[doc = concat!("[`", "DescriptorSetLayoutHostMappingInfoVALVE", "`].")]
44690///
44691/// # Safety
44692/// Implementors must be valid pNext chain members for the target struct.
44693pub unsafe trait ExtendsDescriptorSetLayoutHostMappingInfoVALVE {}
44694/// Marker trait for structs that can appear in the pNext chain of
44695#[doc = concat!("[`", "DescriptorSetLayoutSupport", "`].")]
44696///
44697/// # Safety
44698/// Implementors must be valid pNext chain members for the target struct.
44699pub unsafe trait ExtendsDescriptorSetLayoutSupport {}
44700/// Marker trait for structs that can appear in the pNext chain of
44701#[doc = concat!("[`", "DescriptorSetVariableDescriptorCountAllocateInfo", "`].")]
44702///
44703/// # Safety
44704/// Implementors must be valid pNext chain members for the target struct.
44705pub unsafe trait ExtendsDescriptorSetVariableDescriptorCountAllocateInfo {}
44706/// Marker trait for structs that can appear in the pNext chain of
44707#[doc = concat!("[`", "DescriptorUpdateTemplateCreateInfo", "`].")]
44708///
44709/// # Safety
44710/// Implementors must be valid pNext chain members for the target struct.
44711pub unsafe trait ExtendsDescriptorUpdateTemplateCreateInfo {}
44712/// Marker trait for structs that can appear in the pNext chain of
44713#[doc = concat!("[`", "DeviceAddressBindingCallbackDataEXT", "`].")]
44714///
44715/// # Safety
44716/// Implementors must be valid pNext chain members for the target struct.
44717pub unsafe trait ExtendsDeviceAddressBindingCallbackDataEXT {}
44718/// Marker trait for structs that can appear in the pNext chain of
44719#[doc = concat!("[`", "DeviceBufferMemoryRequirements", "`].")]
44720///
44721/// # Safety
44722/// Implementors must be valid pNext chain members for the target struct.
44723pub unsafe trait ExtendsDeviceBufferMemoryRequirements {}
44724/// Marker trait for structs that can appear in the pNext chain of
44725#[doc = concat!("[`", "DeviceCreateInfo", "`].")]
44726///
44727/// # Safety
44728/// Implementors must be valid pNext chain members for the target struct.
44729pub unsafe trait ExtendsDeviceCreateInfo {}
44730/// Marker trait for structs that can appear in the pNext chain of
44731#[doc = concat!("[`", "DeviceDeviceMemoryReportCreateInfoEXT", "`].")]
44732///
44733/// # Safety
44734/// Implementors must be valid pNext chain members for the target struct.
44735pub unsafe trait ExtendsDeviceDeviceMemoryReportCreateInfoEXT {}
44736/// Marker trait for structs that can appear in the pNext chain of
44737#[doc = concat!("[`", "DeviceDiagnosticsConfigCreateInfoNV", "`].")]
44738///
44739/// # Safety
44740/// Implementors must be valid pNext chain members for the target struct.
44741pub unsafe trait ExtendsDeviceDiagnosticsConfigCreateInfoNV {}
44742/// Marker trait for structs that can appear in the pNext chain of
44743#[doc = concat!("[`", "DeviceEventInfoEXT", "`].")]
44744///
44745/// # Safety
44746/// Implementors must be valid pNext chain members for the target struct.
44747pub unsafe trait ExtendsDeviceEventInfoEXT {}
44748/// Marker trait for structs that can appear in the pNext chain of
44749#[doc = concat!("[`", "DeviceFaultCountsEXT", "`].")]
44750///
44751/// # Safety
44752/// Implementors must be valid pNext chain members for the target struct.
44753pub unsafe trait ExtendsDeviceFaultCountsEXT {}
44754/// Marker trait for structs that can appear in the pNext chain of
44755#[doc = concat!("[`", "DeviceFaultDebugInfoKHR", "`].")]
44756///
44757/// # Safety
44758/// Implementors must be valid pNext chain members for the target struct.
44759pub unsafe trait ExtendsDeviceFaultDebugInfoKHR {}
44760/// Marker trait for structs that can appear in the pNext chain of
44761#[doc = concat!("[`", "DeviceGroupBindSparseInfo", "`].")]
44762///
44763/// # Safety
44764/// Implementors must be valid pNext chain members for the target struct.
44765pub unsafe trait ExtendsDeviceGroupBindSparseInfo {}
44766/// Marker trait for structs that can appear in the pNext chain of
44767#[doc = concat!("[`", "DeviceGroupCommandBufferBeginInfo", "`].")]
44768///
44769/// # Safety
44770/// Implementors must be valid pNext chain members for the target struct.
44771pub unsafe trait ExtendsDeviceGroupCommandBufferBeginInfo {}
44772/// Marker trait for structs that can appear in the pNext chain of
44773#[doc = concat!("[`", "DeviceGroupDeviceCreateInfo", "`].")]
44774///
44775/// # Safety
44776/// Implementors must be valid pNext chain members for the target struct.
44777pub unsafe trait ExtendsDeviceGroupDeviceCreateInfo {}
44778/// Marker trait for structs that can appear in the pNext chain of
44779#[doc = concat!("[`", "DeviceGroupPresentInfoKHR", "`].")]
44780///
44781/// # Safety
44782/// Implementors must be valid pNext chain members for the target struct.
44783pub unsafe trait ExtendsDeviceGroupPresentInfoKHR {}
44784/// Marker trait for structs that can appear in the pNext chain of
44785#[doc = concat!("[`", "DeviceGroupRenderPassBeginInfo", "`].")]
44786///
44787/// # Safety
44788/// Implementors must be valid pNext chain members for the target struct.
44789pub unsafe trait ExtendsDeviceGroupRenderPassBeginInfo {}
44790/// Marker trait for structs that can appear in the pNext chain of
44791#[doc = concat!("[`", "DeviceGroupSubmitInfo", "`].")]
44792///
44793/// # Safety
44794/// Implementors must be valid pNext chain members for the target struct.
44795pub unsafe trait ExtendsDeviceGroupSubmitInfo {}
44796/// Marker trait for structs that can appear in the pNext chain of
44797#[doc = concat!("[`", "DeviceGroupSwapchainCreateInfoKHR", "`].")]
44798///
44799/// # Safety
44800/// Implementors must be valid pNext chain members for the target struct.
44801pub unsafe trait ExtendsDeviceGroupSwapchainCreateInfoKHR {}
44802/// Marker trait for structs that can appear in the pNext chain of
44803#[doc = concat!("[`", "DeviceImageMemoryRequirements", "`].")]
44804///
44805/// # Safety
44806/// Implementors must be valid pNext chain members for the target struct.
44807pub unsafe trait ExtendsDeviceImageMemoryRequirements {}
44808/// Marker trait for structs that can appear in the pNext chain of
44809#[doc = concat!("[`", "DeviceImageSubresourceInfo", "`].")]
44810///
44811/// # Safety
44812/// Implementors must be valid pNext chain members for the target struct.
44813pub unsafe trait ExtendsDeviceImageSubresourceInfo {}
44814/// Marker trait for structs that can appear in the pNext chain of
44815#[doc = concat!("[`", "DeviceMemoryCopyKHR", "`].")]
44816///
44817/// # Safety
44818/// Implementors must be valid pNext chain members for the target struct.
44819pub unsafe trait ExtendsDeviceMemoryCopyKHR {}
44820/// Marker trait for structs that can appear in the pNext chain of
44821#[doc = concat!("[`", "DeviceMemoryImageCopyKHR", "`].")]
44822///
44823/// # Safety
44824/// Implementors must be valid pNext chain members for the target struct.
44825pub unsafe trait ExtendsDeviceMemoryImageCopyKHR {}
44826/// Marker trait for structs that can appear in the pNext chain of
44827#[doc = concat!("[`", "DeviceMemoryOpaqueCaptureAddressInfo", "`].")]
44828///
44829/// # Safety
44830/// Implementors must be valid pNext chain members for the target struct.
44831pub unsafe trait ExtendsDeviceMemoryOpaqueCaptureAddressInfo {}
44832/// Marker trait for structs that can appear in the pNext chain of
44833#[doc = concat!("[`", "DeviceMemoryOverallocationCreateInfoAMD", "`].")]
44834///
44835/// # Safety
44836/// Implementors must be valid pNext chain members for the target struct.
44837pub unsafe trait ExtendsDeviceMemoryOverallocationCreateInfoAMD {}
44838/// Marker trait for structs that can appear in the pNext chain of
44839#[doc = concat!("[`", "DeviceObjectReservationCreateInfo", "`].")]
44840///
44841/// # Safety
44842/// Implementors must be valid pNext chain members for the target struct.
44843pub unsafe trait ExtendsDeviceObjectReservationCreateInfo {}
44844/// Marker trait for structs that can appear in the pNext chain of
44845#[doc = concat!("[`", "DevicePipelineBinaryInternalCacheControlKHR", "`].")]
44846///
44847/// # Safety
44848/// Implementors must be valid pNext chain members for the target struct.
44849pub unsafe trait ExtendsDevicePipelineBinaryInternalCacheControlKHR {}
44850/// Marker trait for structs that can appear in the pNext chain of
44851#[doc = concat!("[`", "DevicePrivateDataCreateInfo", "`].")]
44852///
44853/// # Safety
44854/// Implementors must be valid pNext chain members for the target struct.
44855pub unsafe trait ExtendsDevicePrivateDataCreateInfo {}
44856/// Marker trait for structs that can appear in the pNext chain of
44857#[doc = concat!("[`", "DeviceQueueCreateInfo", "`].")]
44858///
44859/// # Safety
44860/// Implementors must be valid pNext chain members for the target struct.
44861pub unsafe trait ExtendsDeviceQueueCreateInfo {}
44862/// Marker trait for structs that can appear in the pNext chain of
44863#[doc = concat!("[`", "DeviceQueueGlobalPriorityCreateInfo", "`].")]
44864///
44865/// # Safety
44866/// Implementors must be valid pNext chain members for the target struct.
44867pub unsafe trait ExtendsDeviceQueueGlobalPriorityCreateInfo {}
44868/// Marker trait for structs that can appear in the pNext chain of
44869#[doc = concat!("[`", "DeviceQueueInfo2", "`].")]
44870///
44871/// # Safety
44872/// Implementors must be valid pNext chain members for the target struct.
44873pub unsafe trait ExtendsDeviceQueueInfo2 {}
44874/// Marker trait for structs that can appear in the pNext chain of
44875#[doc = concat!("[`", "DeviceQueueShaderCoreControlCreateInfoARM", "`].")]
44876///
44877/// # Safety
44878/// Implementors must be valid pNext chain members for the target struct.
44879pub unsafe trait ExtendsDeviceQueueShaderCoreControlCreateInfoARM {}
44880/// Marker trait for structs that can appear in the pNext chain of
44881#[doc = concat!("[`", "DeviceSemaphoreSciSyncPoolReservationCreateInfoNV", "`].")]
44882///
44883/// # Safety
44884/// Implementors must be valid pNext chain members for the target struct.
44885pub unsafe trait ExtendsDeviceSemaphoreSciSyncPoolReservationCreateInfoNV {}
44886/// Marker trait for structs that can appear in the pNext chain of
44887#[doc = concat!("[`", "DeviceTensorMemoryRequirementsARM", "`].")]
44888///
44889/// # Safety
44890/// Implementors must be valid pNext chain members for the target struct.
44891pub unsafe trait ExtendsDeviceTensorMemoryRequirementsARM {}
44892/// Marker trait for structs that can appear in the pNext chain of
44893#[doc = concat!("[`", "DirectDriverLoadingInfoLUNARG", "`].")]
44894///
44895/// # Safety
44896/// Implementors must be valid pNext chain members for the target struct.
44897pub unsafe trait ExtendsDirectDriverLoadingInfoLUNARG {}
44898/// Marker trait for structs that can appear in the pNext chain of
44899#[doc = concat!("[`", "DirectDriverLoadingListLUNARG", "`].")]
44900///
44901/// # Safety
44902/// Implementors must be valid pNext chain members for the target struct.
44903pub unsafe trait ExtendsDirectDriverLoadingListLUNARG {}
44904/// Marker trait for structs that can appear in the pNext chain of
44905#[doc = concat!("[`", "DirectFBSurfaceCreateInfoEXT", "`].")]
44906///
44907/// # Safety
44908/// Implementors must be valid pNext chain members for the target struct.
44909pub unsafe trait ExtendsDirectFBSurfaceCreateInfoEXT {}
44910/// Marker trait for structs that can appear in the pNext chain of
44911#[doc = concat!("[`", "DispatchIndirect2InfoKHR", "`].")]
44912///
44913/// # Safety
44914/// Implementors must be valid pNext chain members for the target struct.
44915pub unsafe trait ExtendsDispatchIndirect2InfoKHR {}
44916/// Marker trait for structs that can appear in the pNext chain of
44917#[doc = concat!("[`", "DispatchTileInfoQCOM", "`].")]
44918///
44919/// # Safety
44920/// Implementors must be valid pNext chain members for the target struct.
44921pub unsafe trait ExtendsDispatchTileInfoQCOM {}
44922/// Marker trait for structs that can appear in the pNext chain of
44923#[doc = concat!("[`", "DisplayEventInfoEXT", "`].")]
44924///
44925/// # Safety
44926/// Implementors must be valid pNext chain members for the target struct.
44927pub unsafe trait ExtendsDisplayEventInfoEXT {}
44928/// Marker trait for structs that can appear in the pNext chain of
44929#[doc = concat!("[`", "DisplayModeCreateInfoKHR", "`].")]
44930///
44931/// # Safety
44932/// Implementors must be valid pNext chain members for the target struct.
44933pub unsafe trait ExtendsDisplayModeCreateInfoKHR {}
44934/// Marker trait for structs that can appear in the pNext chain of
44935#[doc = concat!("[`", "DisplayModeProperties2KHR", "`].")]
44936///
44937/// # Safety
44938/// Implementors must be valid pNext chain members for the target struct.
44939pub unsafe trait ExtendsDisplayModeProperties2KHR {}
44940/// Marker trait for structs that can appear in the pNext chain of
44941#[doc = concat!("[`", "DisplayPlaneInfo2KHR", "`].")]
44942///
44943/// # Safety
44944/// Implementors must be valid pNext chain members for the target struct.
44945pub unsafe trait ExtendsDisplayPlaneInfo2KHR {}
44946/// Marker trait for structs that can appear in the pNext chain of
44947#[doc = concat!("[`", "DisplayPowerInfoEXT", "`].")]
44948///
44949/// # Safety
44950/// Implementors must be valid pNext chain members for the target struct.
44951pub unsafe trait ExtendsDisplayPowerInfoEXT {}
44952/// Marker trait for structs that can appear in the pNext chain of
44953#[doc = concat!("[`", "DisplayPresentInfoKHR", "`].")]
44954///
44955/// # Safety
44956/// Implementors must be valid pNext chain members for the target struct.
44957pub unsafe trait ExtendsDisplayPresentInfoKHR {}
44958/// Marker trait for structs that can appear in the pNext chain of
44959#[doc = concat!("[`", "DisplaySurfaceCreateInfoKHR", "`].")]
44960///
44961/// # Safety
44962/// Implementors must be valid pNext chain members for the target struct.
44963pub unsafe trait ExtendsDisplaySurfaceCreateInfoKHR {}
44964/// Marker trait for structs that can appear in the pNext chain of
44965#[doc = concat!("[`", "DisplaySurfaceStereoCreateInfoNV", "`].")]
44966///
44967/// # Safety
44968/// Implementors must be valid pNext chain members for the target struct.
44969pub unsafe trait ExtendsDisplaySurfaceStereoCreateInfoNV {}
44970/// Marker trait for structs that can appear in the pNext chain of
44971#[doc = concat!("[`", "DrawIndirect2InfoKHR", "`].")]
44972///
44973/// # Safety
44974/// Implementors must be valid pNext chain members for the target struct.
44975pub unsafe trait ExtendsDrawIndirect2InfoKHR {}
44976/// Marker trait for structs that can appear in the pNext chain of
44977#[doc = concat!("[`", "DrawIndirectCount2InfoKHR", "`].")]
44978///
44979/// # Safety
44980/// Implementors must be valid pNext chain members for the target struct.
44981pub unsafe trait ExtendsDrawIndirectCount2InfoKHR {}
44982/// Marker trait for structs that can appear in the pNext chain of
44983#[doc = concat!("[`", "EventCreateInfo", "`].")]
44984///
44985/// # Safety
44986/// Implementors must be valid pNext chain members for the target struct.
44987pub unsafe trait ExtendsEventCreateInfo {}
44988/// Marker trait for structs that can appear in the pNext chain of
44989#[doc = concat!("[`", "ExecutionGraphPipelineCreateInfoAMDX", "`].")]
44990///
44991/// # Safety
44992/// Implementors must be valid pNext chain members for the target struct.
44993pub unsafe trait ExtendsExecutionGraphPipelineCreateInfoAMDX {}
44994/// Marker trait for structs that can appear in the pNext chain of
44995#[doc = concat!("[`", "ExecutionGraphPipelineScratchSizeAMDX", "`].")]
44996///
44997/// # Safety
44998/// Implementors must be valid pNext chain members for the target struct.
44999pub unsafe trait ExtendsExecutionGraphPipelineScratchSizeAMDX {}
45000/// Marker trait for structs that can appear in the pNext chain of
45001#[doc = concat!("[`", "ExportFenceCreateInfo", "`].")]
45002///
45003/// # Safety
45004/// Implementors must be valid pNext chain members for the target struct.
45005pub unsafe trait ExtendsExportFenceCreateInfo {}
45006/// Marker trait for structs that can appear in the pNext chain of
45007#[doc = concat!("[`", "ExportFenceSciSyncInfoNV", "`].")]
45008///
45009/// # Safety
45010/// Implementors must be valid pNext chain members for the target struct.
45011pub unsafe trait ExtendsExportFenceSciSyncInfoNV {}
45012/// Marker trait for structs that can appear in the pNext chain of
45013#[doc = concat!("[`", "ExportFenceWin32HandleInfoKHR", "`].")]
45014///
45015/// # Safety
45016/// Implementors must be valid pNext chain members for the target struct.
45017pub unsafe trait ExtendsExportFenceWin32HandleInfoKHR {}
45018/// Marker trait for structs that can appear in the pNext chain of
45019#[doc = concat!("[`", "ExportMemoryAllocateInfo", "`].")]
45020///
45021/// # Safety
45022/// Implementors must be valid pNext chain members for the target struct.
45023pub unsafe trait ExtendsExportMemoryAllocateInfo {}
45024/// Marker trait for structs that can appear in the pNext chain of
45025#[doc = concat!("[`", "ExportMemoryAllocateInfoNV", "`].")]
45026///
45027/// # Safety
45028/// Implementors must be valid pNext chain members for the target struct.
45029pub unsafe trait ExtendsExportMemoryAllocateInfoNV {}
45030/// Marker trait for structs that can appear in the pNext chain of
45031#[doc = concat!("[`", "ExportMemorySciBufInfoNV", "`].")]
45032///
45033/// # Safety
45034/// Implementors must be valid pNext chain members for the target struct.
45035pub unsafe trait ExtendsExportMemorySciBufInfoNV {}
45036/// Marker trait for structs that can appear in the pNext chain of
45037#[doc = concat!("[`", "ExportMemoryWin32HandleInfoKHR", "`].")]
45038///
45039/// # Safety
45040/// Implementors must be valid pNext chain members for the target struct.
45041pub unsafe trait ExtendsExportMemoryWin32HandleInfoKHR {}
45042/// Marker trait for structs that can appear in the pNext chain of
45043#[doc = concat!("[`", "ExportMemoryWin32HandleInfoNV", "`].")]
45044///
45045/// # Safety
45046/// Implementors must be valid pNext chain members for the target struct.
45047pub unsafe trait ExtendsExportMemoryWin32HandleInfoNV {}
45048/// Marker trait for structs that can appear in the pNext chain of
45049#[doc = concat!("[`", "ExportMetalBufferInfoEXT", "`].")]
45050///
45051/// # Safety
45052/// Implementors must be valid pNext chain members for the target struct.
45053pub unsafe trait ExtendsExportMetalBufferInfoEXT {}
45054/// Marker trait for structs that can appear in the pNext chain of
45055#[doc = concat!("[`", "ExportMetalCommandQueueInfoEXT", "`].")]
45056///
45057/// # Safety
45058/// Implementors must be valid pNext chain members for the target struct.
45059pub unsafe trait ExtendsExportMetalCommandQueueInfoEXT {}
45060/// Marker trait for structs that can appear in the pNext chain of
45061#[doc = concat!("[`", "ExportMetalDeviceInfoEXT", "`].")]
45062///
45063/// # Safety
45064/// Implementors must be valid pNext chain members for the target struct.
45065pub unsafe trait ExtendsExportMetalDeviceInfoEXT {}
45066/// Marker trait for structs that can appear in the pNext chain of
45067#[doc = concat!("[`", "ExportMetalIOSurfaceInfoEXT", "`].")]
45068///
45069/// # Safety
45070/// Implementors must be valid pNext chain members for the target struct.
45071pub unsafe trait ExtendsExportMetalIOSurfaceInfoEXT {}
45072/// Marker trait for structs that can appear in the pNext chain of
45073#[doc = concat!("[`", "ExportMetalObjectCreateInfoEXT", "`].")]
45074///
45075/// # Safety
45076/// Implementors must be valid pNext chain members for the target struct.
45077pub unsafe trait ExtendsExportMetalObjectCreateInfoEXT {}
45078/// Marker trait for structs that can appear in the pNext chain of
45079#[doc = concat!("[`", "ExportMetalObjectsInfoEXT", "`].")]
45080///
45081/// # Safety
45082/// Implementors must be valid pNext chain members for the target struct.
45083pub unsafe trait ExtendsExportMetalObjectsInfoEXT {}
45084/// Marker trait for structs that can appear in the pNext chain of
45085#[doc = concat!("[`", "ExportMetalSharedEventInfoEXT", "`].")]
45086///
45087/// # Safety
45088/// Implementors must be valid pNext chain members for the target struct.
45089pub unsafe trait ExtendsExportMetalSharedEventInfoEXT {}
45090/// Marker trait for structs that can appear in the pNext chain of
45091#[doc = concat!("[`", "ExportMetalTextureInfoEXT", "`].")]
45092///
45093/// # Safety
45094/// Implementors must be valid pNext chain members for the target struct.
45095pub unsafe trait ExtendsExportMetalTextureInfoEXT {}
45096/// Marker trait for structs that can appear in the pNext chain of
45097#[doc = concat!("[`", "ExportSemaphoreCreateInfo", "`].")]
45098///
45099/// # Safety
45100/// Implementors must be valid pNext chain members for the target struct.
45101pub unsafe trait ExtendsExportSemaphoreCreateInfo {}
45102/// Marker trait for structs that can appear in the pNext chain of
45103#[doc = concat!("[`", "ExportSemaphoreSciSyncInfoNV", "`].")]
45104///
45105/// # Safety
45106/// Implementors must be valid pNext chain members for the target struct.
45107pub unsafe trait ExtendsExportSemaphoreSciSyncInfoNV {}
45108/// Marker trait for structs that can appear in the pNext chain of
45109#[doc = concat!("[`", "ExportSemaphoreWin32HandleInfoKHR", "`].")]
45110///
45111/// # Safety
45112/// Implementors must be valid pNext chain members for the target struct.
45113pub unsafe trait ExtendsExportSemaphoreWin32HandleInfoKHR {}
45114/// Marker trait for structs that can appear in the pNext chain of
45115#[doc = concat!("[`", "ExternalComputeQueueCreateInfoNV", "`].")]
45116///
45117/// # Safety
45118/// Implementors must be valid pNext chain members for the target struct.
45119pub unsafe trait ExtendsExternalComputeQueueCreateInfoNV {}
45120/// Marker trait for structs that can appear in the pNext chain of
45121#[doc = concat!("[`", "ExternalComputeQueueDataParamsNV", "`].")]
45122///
45123/// # Safety
45124/// Implementors must be valid pNext chain members for the target struct.
45125pub unsafe trait ExtendsExternalComputeQueueDataParamsNV {}
45126/// Marker trait for structs that can appear in the pNext chain of
45127#[doc = concat!("[`", "ExternalComputeQueueDeviceCreateInfoNV", "`].")]
45128///
45129/// # Safety
45130/// Implementors must be valid pNext chain members for the target struct.
45131pub unsafe trait ExtendsExternalComputeQueueDeviceCreateInfoNV {}
45132/// Marker trait for structs that can appear in the pNext chain of
45133#[doc = concat!("[`", "ExternalFormatANDROID", "`].")]
45134///
45135/// # Safety
45136/// Implementors must be valid pNext chain members for the target struct.
45137pub unsafe trait ExtendsExternalFormatANDROID {}
45138/// Marker trait for structs that can appear in the pNext chain of
45139#[doc = concat!("[`", "ExternalFormatOHOS", "`].")]
45140///
45141/// # Safety
45142/// Implementors must be valid pNext chain members for the target struct.
45143pub unsafe trait ExtendsExternalFormatOHOS {}
45144/// Marker trait for structs that can appear in the pNext chain of
45145#[doc = concat!("[`", "ExternalFormatQNX", "`].")]
45146///
45147/// # Safety
45148/// Implementors must be valid pNext chain members for the target struct.
45149pub unsafe trait ExtendsExternalFormatQNX {}
45150/// Marker trait for structs that can appear in the pNext chain of
45151#[doc = concat!("[`", "ExternalMemoryAcquireUnmodifiedEXT", "`].")]
45152///
45153/// # Safety
45154/// Implementors must be valid pNext chain members for the target struct.
45155pub unsafe trait ExtendsExternalMemoryAcquireUnmodifiedEXT {}
45156/// Marker trait for structs that can appear in the pNext chain of
45157#[doc = concat!("[`", "ExternalMemoryBufferCreateInfo", "`].")]
45158///
45159/// # Safety
45160/// Implementors must be valid pNext chain members for the target struct.
45161pub unsafe trait ExtendsExternalMemoryBufferCreateInfo {}
45162/// Marker trait for structs that can appear in the pNext chain of
45163#[doc = concat!("[`", "ExternalMemoryImageCreateInfo", "`].")]
45164///
45165/// # Safety
45166/// Implementors must be valid pNext chain members for the target struct.
45167pub unsafe trait ExtendsExternalMemoryImageCreateInfo {}
45168/// Marker trait for structs that can appear in the pNext chain of
45169#[doc = concat!("[`", "ExternalMemoryImageCreateInfoNV", "`].")]
45170///
45171/// # Safety
45172/// Implementors must be valid pNext chain members for the target struct.
45173pub unsafe trait ExtendsExternalMemoryImageCreateInfoNV {}
45174/// Marker trait for structs that can appear in the pNext chain of
45175#[doc = concat!("[`", "ExternalMemoryTensorCreateInfoARM", "`].")]
45176///
45177/// # Safety
45178/// Implementors must be valid pNext chain members for the target struct.
45179pub unsafe trait ExtendsExternalMemoryTensorCreateInfoARM {}
45180/// Marker trait for structs that can appear in the pNext chain of
45181#[doc = concat!("[`", "ExternalTensorPropertiesARM", "`].")]
45182///
45183/// # Safety
45184/// Implementors must be valid pNext chain members for the target struct.
45185pub unsafe trait ExtendsExternalTensorPropertiesARM {}
45186/// Marker trait for structs that can appear in the pNext chain of
45187#[doc = concat!("[`", "FaultCallbackInfo", "`].")]
45188///
45189/// # Safety
45190/// Implementors must be valid pNext chain members for the target struct.
45191pub unsafe trait ExtendsFaultCallbackInfo {}
45192/// Marker trait for structs that can appear in the pNext chain of
45193#[doc = concat!("[`", "FenceCreateInfo", "`].")]
45194///
45195/// # Safety
45196/// Implementors must be valid pNext chain members for the target struct.
45197pub unsafe trait ExtendsFenceCreateInfo {}
45198/// Marker trait for structs that can appear in the pNext chain of
45199#[doc = concat!("[`", "FenceGetFdInfoKHR", "`].")]
45200///
45201/// # Safety
45202/// Implementors must be valid pNext chain members for the target struct.
45203pub unsafe trait ExtendsFenceGetFdInfoKHR {}
45204/// Marker trait for structs that can appear in the pNext chain of
45205#[doc = concat!("[`", "FenceGetSciSyncInfoNV", "`].")]
45206///
45207/// # Safety
45208/// Implementors must be valid pNext chain members for the target struct.
45209pub unsafe trait ExtendsFenceGetSciSyncInfoNV {}
45210/// Marker trait for structs that can appear in the pNext chain of
45211#[doc = concat!("[`", "FenceGetWin32HandleInfoKHR", "`].")]
45212///
45213/// # Safety
45214/// Implementors must be valid pNext chain members for the target struct.
45215pub unsafe trait ExtendsFenceGetWin32HandleInfoKHR {}
45216/// Marker trait for structs that can appear in the pNext chain of
45217#[doc = concat!("[`", "FormatProperties2", "`].")]
45218///
45219/// # Safety
45220/// Implementors must be valid pNext chain members for the target struct.
45221pub unsafe trait ExtendsFormatProperties2 {}
45222/// Marker trait for structs that can appear in the pNext chain of
45223#[doc = concat!("[`", "FragmentShadingRateAttachmentInfoKHR", "`].")]
45224///
45225/// # Safety
45226/// Implementors must be valid pNext chain members for the target struct.
45227pub unsafe trait ExtendsFragmentShadingRateAttachmentInfoKHR {}
45228/// Marker trait for structs that can appear in the pNext chain of
45229#[doc = concat!("[`", "FrameBoundaryEXT", "`].")]
45230///
45231/// # Safety
45232/// Implementors must be valid pNext chain members for the target struct.
45233pub unsafe trait ExtendsFrameBoundaryEXT {}
45234/// Marker trait for structs that can appear in the pNext chain of
45235#[doc = concat!("[`", "FrameBoundaryTensorsARM", "`].")]
45236///
45237/// # Safety
45238/// Implementors must be valid pNext chain members for the target struct.
45239pub unsafe trait ExtendsFrameBoundaryTensorsARM {}
45240/// Marker trait for structs that can appear in the pNext chain of
45241#[doc = concat!("[`", "FramebufferAttachmentImageInfo", "`].")]
45242///
45243/// # Safety
45244/// Implementors must be valid pNext chain members for the target struct.
45245pub unsafe trait ExtendsFramebufferAttachmentImageInfo {}
45246/// Marker trait for structs that can appear in the pNext chain of
45247#[doc = concat!("[`", "FramebufferAttachmentsCreateInfo", "`].")]
45248///
45249/// # Safety
45250/// Implementors must be valid pNext chain members for the target struct.
45251pub unsafe trait ExtendsFramebufferAttachmentsCreateInfo {}
45252/// Marker trait for structs that can appear in the pNext chain of
45253#[doc = concat!("[`", "FramebufferCreateInfo", "`].")]
45254///
45255/// # Safety
45256/// Implementors must be valid pNext chain members for the target struct.
45257pub unsafe trait ExtendsFramebufferCreateInfo {}
45258/// Marker trait for structs that can appear in the pNext chain of
45259#[doc = concat!("[`", "GeneratedCommandsInfoEXT", "`].")]
45260///
45261/// # Safety
45262/// Implementors must be valid pNext chain members for the target struct.
45263pub unsafe trait ExtendsGeneratedCommandsInfoEXT {}
45264/// Marker trait for structs that can appear in the pNext chain of
45265#[doc = concat!("[`", "GeneratedCommandsInfoNV", "`].")]
45266///
45267/// # Safety
45268/// Implementors must be valid pNext chain members for the target struct.
45269pub unsafe trait ExtendsGeneratedCommandsInfoNV {}
45270/// Marker trait for structs that can appear in the pNext chain of
45271#[doc = concat!("[`", "GeneratedCommandsMemoryRequirementsInfoEXT", "`].")]
45272///
45273/// # Safety
45274/// Implementors must be valid pNext chain members for the target struct.
45275pub unsafe trait ExtendsGeneratedCommandsMemoryRequirementsInfoEXT {}
45276/// Marker trait for structs that can appear in the pNext chain of
45277#[doc = concat!("[`", "GeneratedCommandsMemoryRequirementsInfoNV", "`].")]
45278///
45279/// # Safety
45280/// Implementors must be valid pNext chain members for the target struct.
45281pub unsafe trait ExtendsGeneratedCommandsMemoryRequirementsInfoNV {}
45282/// Marker trait for structs that can appear in the pNext chain of
45283#[doc = concat!("[`", "GeneratedCommandsPipelineInfoEXT", "`].")]
45284///
45285/// # Safety
45286/// Implementors must be valid pNext chain members for the target struct.
45287pub unsafe trait ExtendsGeneratedCommandsPipelineInfoEXT {}
45288/// Marker trait for structs that can appear in the pNext chain of
45289#[doc = concat!("[`", "GeneratedCommandsShaderInfoEXT", "`].")]
45290///
45291/// # Safety
45292/// Implementors must be valid pNext chain members for the target struct.
45293pub unsafe trait ExtendsGeneratedCommandsShaderInfoEXT {}
45294/// Marker trait for structs that can appear in the pNext chain of
45295#[doc = concat!("[`", "GeometryAABBNV", "`].")]
45296///
45297/// # Safety
45298/// Implementors must be valid pNext chain members for the target struct.
45299pub unsafe trait ExtendsGeometryAABBNV {}
45300/// Marker trait for structs that can appear in the pNext chain of
45301#[doc = concat!("[`", "GeometryNV", "`].")]
45302///
45303/// # Safety
45304/// Implementors must be valid pNext chain members for the target struct.
45305pub unsafe trait ExtendsGeometryNV {}
45306/// Marker trait for structs that can appear in the pNext chain of
45307#[doc = concat!("[`", "GeometryTrianglesNV", "`].")]
45308///
45309/// # Safety
45310/// Implementors must be valid pNext chain members for the target struct.
45311pub unsafe trait ExtendsGeometryTrianglesNV {}
45312/// Marker trait for structs that can appear in the pNext chain of
45313#[doc = concat!("[`", "GetLatencyMarkerInfoNV", "`].")]
45314///
45315/// # Safety
45316/// Implementors must be valid pNext chain members for the target struct.
45317pub unsafe trait ExtendsGetLatencyMarkerInfoNV {}
45318/// Marker trait for structs that can appear in the pNext chain of
45319#[doc = concat!("[`", "GraphicsPipelineCreateInfo", "`].")]
45320///
45321/// # Safety
45322/// Implementors must be valid pNext chain members for the target struct.
45323pub unsafe trait ExtendsGraphicsPipelineCreateInfo {}
45324/// Marker trait for structs that can appear in the pNext chain of
45325#[doc = concat!("[`", "GraphicsPipelineLibraryCreateInfoEXT", "`].")]
45326///
45327/// # Safety
45328/// Implementors must be valid pNext chain members for the target struct.
45329pub unsafe trait ExtendsGraphicsPipelineLibraryCreateInfoEXT {}
45330/// Marker trait for structs that can appear in the pNext chain of
45331#[doc = concat!("[`", "GraphicsPipelineShaderGroupsCreateInfoNV", "`].")]
45332///
45333/// # Safety
45334/// Implementors must be valid pNext chain members for the target struct.
45335pub unsafe trait ExtendsGraphicsPipelineShaderGroupsCreateInfoNV {}
45336/// Marker trait for structs that can appear in the pNext chain of
45337#[doc = concat!("[`", "GraphicsShaderGroupCreateInfoNV", "`].")]
45338///
45339/// # Safety
45340/// Implementors must be valid pNext chain members for the target struct.
45341pub unsafe trait ExtendsGraphicsShaderGroupCreateInfoNV {}
45342/// Marker trait for structs that can appear in the pNext chain of
45343#[doc = concat!("[`", "HdrMetadataEXT", "`].")]
45344///
45345/// # Safety
45346/// Implementors must be valid pNext chain members for the target struct.
45347pub unsafe trait ExtendsHdrMetadataEXT {}
45348/// Marker trait for structs that can appear in the pNext chain of
45349#[doc = concat!("[`", "HdrVividDynamicMetadataHUAWEI", "`].")]
45350///
45351/// # Safety
45352/// Implementors must be valid pNext chain members for the target struct.
45353pub unsafe trait ExtendsHdrVividDynamicMetadataHUAWEI {}
45354/// Marker trait for structs that can appear in the pNext chain of
45355#[doc = concat!("[`", "HeadlessSurfaceCreateInfoEXT", "`].")]
45356///
45357/// # Safety
45358/// Implementors must be valid pNext chain members for the target struct.
45359pub unsafe trait ExtendsHeadlessSurfaceCreateInfoEXT {}
45360/// Marker trait for structs that can appear in the pNext chain of
45361#[doc = concat!("[`", "HostImageLayoutTransitionInfo", "`].")]
45362///
45363/// # Safety
45364/// Implementors must be valid pNext chain members for the target struct.
45365pub unsafe trait ExtendsHostImageLayoutTransitionInfo {}
45366/// Marker trait for structs that can appear in the pNext chain of
45367#[doc = concat!("[`", "IOSSurfaceCreateInfoMVK", "`].")]
45368///
45369/// # Safety
45370/// Implementors must be valid pNext chain members for the target struct.
45371pub unsafe trait ExtendsIOSSurfaceCreateInfoMVK {}
45372/// Marker trait for structs that can appear in the pNext chain of
45373#[doc = concat!("[`", "ImageAlignmentControlCreateInfoMESA", "`].")]
45374///
45375/// # Safety
45376/// Implementors must be valid pNext chain members for the target struct.
45377pub unsafe trait ExtendsImageAlignmentControlCreateInfoMESA {}
45378/// Marker trait for structs that can appear in the pNext chain of
45379#[doc = concat!("[`", "ImageBlit2", "`].")]
45380///
45381/// # Safety
45382/// Implementors must be valid pNext chain members for the target struct.
45383pub unsafe trait ExtendsImageBlit2 {}
45384/// Marker trait for structs that can appear in the pNext chain of
45385#[doc = concat!("[`", "ImageCaptureDescriptorDataInfoEXT", "`].")]
45386///
45387/// # Safety
45388/// Implementors must be valid pNext chain members for the target struct.
45389pub unsafe trait ExtendsImageCaptureDescriptorDataInfoEXT {}
45390/// Marker trait for structs that can appear in the pNext chain of
45391#[doc = concat!("[`", "ImageCompressionControlEXT", "`].")]
45392///
45393/// # Safety
45394/// Implementors must be valid pNext chain members for the target struct.
45395pub unsafe trait ExtendsImageCompressionControlEXT {}
45396/// Marker trait for structs that can appear in the pNext chain of
45397#[doc = concat!("[`", "ImageConstraintsInfoFUCHSIA", "`].")]
45398///
45399/// # Safety
45400/// Implementors must be valid pNext chain members for the target struct.
45401pub unsafe trait ExtendsImageConstraintsInfoFUCHSIA {}
45402/// Marker trait for structs that can appear in the pNext chain of
45403#[doc = concat!("[`", "ImageCopy2", "`].")]
45404///
45405/// # Safety
45406/// Implementors must be valid pNext chain members for the target struct.
45407pub unsafe trait ExtendsImageCopy2 {}
45408/// Marker trait for structs that can appear in the pNext chain of
45409#[doc = concat!("[`", "ImageCreateInfo", "`].")]
45410///
45411/// # Safety
45412/// Implementors must be valid pNext chain members for the target struct.
45413pub unsafe trait ExtendsImageCreateInfo {}
45414/// Marker trait for structs that can appear in the pNext chain of
45415#[doc = concat!("[`", "ImageDescriptorInfoEXT", "`].")]
45416///
45417/// # Safety
45418/// Implementors must be valid pNext chain members for the target struct.
45419pub unsafe trait ExtendsImageDescriptorInfoEXT {}
45420/// Marker trait for structs that can appear in the pNext chain of
45421#[doc = concat!("[`", "ImageDrmFormatModifierExplicitCreateInfoEXT", "`].")]
45422///
45423/// # Safety
45424/// Implementors must be valid pNext chain members for the target struct.
45425pub unsafe trait ExtendsImageDrmFormatModifierExplicitCreateInfoEXT {}
45426/// Marker trait for structs that can appear in the pNext chain of
45427#[doc = concat!("[`", "ImageDrmFormatModifierListCreateInfoEXT", "`].")]
45428///
45429/// # Safety
45430/// Implementors must be valid pNext chain members for the target struct.
45431pub unsafe trait ExtendsImageDrmFormatModifierListCreateInfoEXT {}
45432/// Marker trait for structs that can appear in the pNext chain of
45433#[doc = concat!("[`", "ImageFormatConstraintsInfoFUCHSIA", "`].")]
45434///
45435/// # Safety
45436/// Implementors must be valid pNext chain members for the target struct.
45437pub unsafe trait ExtendsImageFormatConstraintsInfoFUCHSIA {}
45438/// Marker trait for structs that can appear in the pNext chain of
45439#[doc = concat!("[`", "ImageFormatListCreateInfo", "`].")]
45440///
45441/// # Safety
45442/// Implementors must be valid pNext chain members for the target struct.
45443pub unsafe trait ExtendsImageFormatListCreateInfo {}
45444/// Marker trait for structs that can appear in the pNext chain of
45445#[doc = concat!("[`", "ImageFormatProperties2", "`].")]
45446///
45447/// # Safety
45448/// Implementors must be valid pNext chain members for the target struct.
45449pub unsafe trait ExtendsImageFormatProperties2 {}
45450/// Marker trait for structs that can appear in the pNext chain of
45451#[doc = concat!("[`", "ImageMemoryBarrier", "`].")]
45452///
45453/// # Safety
45454/// Implementors must be valid pNext chain members for the target struct.
45455pub unsafe trait ExtendsImageMemoryBarrier {}
45456/// Marker trait for structs that can appear in the pNext chain of
45457#[doc = concat!("[`", "ImageMemoryBarrier2", "`].")]
45458///
45459/// # Safety
45460/// Implementors must be valid pNext chain members for the target struct.
45461pub unsafe trait ExtendsImageMemoryBarrier2 {}
45462/// Marker trait for structs that can appear in the pNext chain of
45463#[doc = concat!("[`", "ImageMemoryRequirementsInfo2", "`].")]
45464///
45465/// # Safety
45466/// Implementors must be valid pNext chain members for the target struct.
45467pub unsafe trait ExtendsImageMemoryRequirementsInfo2 {}
45468/// Marker trait for structs that can appear in the pNext chain of
45469#[doc = concat!("[`", "ImagePipeSurfaceCreateInfoFUCHSIA", "`].")]
45470///
45471/// # Safety
45472/// Implementors must be valid pNext chain members for the target struct.
45473pub unsafe trait ExtendsImagePipeSurfaceCreateInfoFUCHSIA {}
45474/// Marker trait for structs that can appear in the pNext chain of
45475#[doc = concat!("[`", "ImagePlaneMemoryRequirementsInfo", "`].")]
45476///
45477/// # Safety
45478/// Implementors must be valid pNext chain members for the target struct.
45479pub unsafe trait ExtendsImagePlaneMemoryRequirementsInfo {}
45480/// Marker trait for structs that can appear in the pNext chain of
45481#[doc = concat!("[`", "ImageResolve2", "`].")]
45482///
45483/// # Safety
45484/// Implementors must be valid pNext chain members for the target struct.
45485pub unsafe trait ExtendsImageResolve2 {}
45486/// Marker trait for structs that can appear in the pNext chain of
45487#[doc = concat!("[`", "ImageSparseMemoryRequirementsInfo2", "`].")]
45488///
45489/// # Safety
45490/// Implementors must be valid pNext chain members for the target struct.
45491pub unsafe trait ExtendsImageSparseMemoryRequirementsInfo2 {}
45492/// Marker trait for structs that can appear in the pNext chain of
45493#[doc = concat!("[`", "ImageStencilUsageCreateInfo", "`].")]
45494///
45495/// # Safety
45496/// Implementors must be valid pNext chain members for the target struct.
45497pub unsafe trait ExtendsImageStencilUsageCreateInfo {}
45498/// Marker trait for structs that can appear in the pNext chain of
45499#[doc = concat!("[`", "ImageSubresource2", "`].")]
45500///
45501/// # Safety
45502/// Implementors must be valid pNext chain members for the target struct.
45503pub unsafe trait ExtendsImageSubresource2 {}
45504/// Marker trait for structs that can appear in the pNext chain of
45505#[doc = concat!("[`", "ImageSwapchainCreateInfoKHR", "`].")]
45506///
45507/// # Safety
45508/// Implementors must be valid pNext chain members for the target struct.
45509pub unsafe trait ExtendsImageSwapchainCreateInfoKHR {}
45510/// Marker trait for structs that can appear in the pNext chain of
45511#[doc = concat!("[`", "ImageToMemoryCopy", "`].")]
45512///
45513/// # Safety
45514/// Implementors must be valid pNext chain members for the target struct.
45515pub unsafe trait ExtendsImageToMemoryCopy {}
45516/// Marker trait for structs that can appear in the pNext chain of
45517#[doc = concat!("[`", "ImageViewASTCDecodeModeEXT", "`].")]
45518///
45519/// # Safety
45520/// Implementors must be valid pNext chain members for the target struct.
45521pub unsafe trait ExtendsImageViewASTCDecodeModeEXT {}
45522/// Marker trait for structs that can appear in the pNext chain of
45523#[doc = concat!("[`", "ImageViewCaptureDescriptorDataInfoEXT", "`].")]
45524///
45525/// # Safety
45526/// Implementors must be valid pNext chain members for the target struct.
45527pub unsafe trait ExtendsImageViewCaptureDescriptorDataInfoEXT {}
45528/// Marker trait for structs that can appear in the pNext chain of
45529#[doc = concat!("[`", "ImageViewCreateInfo", "`].")]
45530///
45531/// # Safety
45532/// Implementors must be valid pNext chain members for the target struct.
45533pub unsafe trait ExtendsImageViewCreateInfo {}
45534/// Marker trait for structs that can appear in the pNext chain of
45535#[doc = concat!("[`", "ImageViewHandleInfoNVX", "`].")]
45536///
45537/// # Safety
45538/// Implementors must be valid pNext chain members for the target struct.
45539pub unsafe trait ExtendsImageViewHandleInfoNVX {}
45540/// Marker trait for structs that can appear in the pNext chain of
45541#[doc = concat!("[`", "ImageViewMinLodCreateInfoEXT", "`].")]
45542///
45543/// # Safety
45544/// Implementors must be valid pNext chain members for the target struct.
45545pub unsafe trait ExtendsImageViewMinLodCreateInfoEXT {}
45546/// Marker trait for structs that can appear in the pNext chain of
45547#[doc = concat!("[`", "ImageViewSampleWeightCreateInfoQCOM", "`].")]
45548///
45549/// # Safety
45550/// Implementors must be valid pNext chain members for the target struct.
45551pub unsafe trait ExtendsImageViewSampleWeightCreateInfoQCOM {}
45552/// Marker trait for structs that can appear in the pNext chain of
45553#[doc = concat!("[`", "ImageViewSlicedCreateInfoEXT", "`].")]
45554///
45555/// # Safety
45556/// Implementors must be valid pNext chain members for the target struct.
45557pub unsafe trait ExtendsImageViewSlicedCreateInfoEXT {}
45558/// Marker trait for structs that can appear in the pNext chain of
45559#[doc = concat!("[`", "ImageViewUsageCreateInfo", "`].")]
45560///
45561/// # Safety
45562/// Implementors must be valid pNext chain members for the target struct.
45563pub unsafe trait ExtendsImageViewUsageCreateInfo {}
45564/// Marker trait for structs that can appear in the pNext chain of
45565#[doc = concat!("[`", "ImportAndroidHardwareBufferInfoANDROID", "`].")]
45566///
45567/// # Safety
45568/// Implementors must be valid pNext chain members for the target struct.
45569pub unsafe trait ExtendsImportAndroidHardwareBufferInfoANDROID {}
45570/// Marker trait for structs that can appear in the pNext chain of
45571#[doc = concat!("[`", "ImportFenceFdInfoKHR", "`].")]
45572///
45573/// # Safety
45574/// Implementors must be valid pNext chain members for the target struct.
45575pub unsafe trait ExtendsImportFenceFdInfoKHR {}
45576/// Marker trait for structs that can appear in the pNext chain of
45577#[doc = concat!("[`", "ImportFenceSciSyncInfoNV", "`].")]
45578///
45579/// # Safety
45580/// Implementors must be valid pNext chain members for the target struct.
45581pub unsafe trait ExtendsImportFenceSciSyncInfoNV {}
45582/// Marker trait for structs that can appear in the pNext chain of
45583#[doc = concat!("[`", "ImportFenceWin32HandleInfoKHR", "`].")]
45584///
45585/// # Safety
45586/// Implementors must be valid pNext chain members for the target struct.
45587pub unsafe trait ExtendsImportFenceWin32HandleInfoKHR {}
45588/// Marker trait for structs that can appear in the pNext chain of
45589#[doc = concat!("[`", "ImportMemoryBufferCollectionFUCHSIA", "`].")]
45590///
45591/// # Safety
45592/// Implementors must be valid pNext chain members for the target struct.
45593pub unsafe trait ExtendsImportMemoryBufferCollectionFUCHSIA {}
45594/// Marker trait for structs that can appear in the pNext chain of
45595#[doc = concat!("[`", "ImportMemoryFdInfoKHR", "`].")]
45596///
45597/// # Safety
45598/// Implementors must be valid pNext chain members for the target struct.
45599pub unsafe trait ExtendsImportMemoryFdInfoKHR {}
45600/// Marker trait for structs that can appear in the pNext chain of
45601#[doc = concat!("[`", "ImportMemoryHostPointerInfoEXT", "`].")]
45602///
45603/// # Safety
45604/// Implementors must be valid pNext chain members for the target struct.
45605pub unsafe trait ExtendsImportMemoryHostPointerInfoEXT {}
45606/// Marker trait for structs that can appear in the pNext chain of
45607#[doc = concat!("[`", "ImportMemoryMetalHandleInfoEXT", "`].")]
45608///
45609/// # Safety
45610/// Implementors must be valid pNext chain members for the target struct.
45611pub unsafe trait ExtendsImportMemoryMetalHandleInfoEXT {}
45612/// Marker trait for structs that can appear in the pNext chain of
45613#[doc = concat!("[`", "ImportMemorySciBufInfoNV", "`].")]
45614///
45615/// # Safety
45616/// Implementors must be valid pNext chain members for the target struct.
45617pub unsafe trait ExtendsImportMemorySciBufInfoNV {}
45618/// Marker trait for structs that can appear in the pNext chain of
45619#[doc = concat!("[`", "ImportMemoryWin32HandleInfoKHR", "`].")]
45620///
45621/// # Safety
45622/// Implementors must be valid pNext chain members for the target struct.
45623pub unsafe trait ExtendsImportMemoryWin32HandleInfoKHR {}
45624/// Marker trait for structs that can appear in the pNext chain of
45625#[doc = concat!("[`", "ImportMemoryWin32HandleInfoNV", "`].")]
45626///
45627/// # Safety
45628/// Implementors must be valid pNext chain members for the target struct.
45629pub unsafe trait ExtendsImportMemoryWin32HandleInfoNV {}
45630/// Marker trait for structs that can appear in the pNext chain of
45631#[doc = concat!("[`", "ImportMemoryZirconHandleInfoFUCHSIA", "`].")]
45632///
45633/// # Safety
45634/// Implementors must be valid pNext chain members for the target struct.
45635pub unsafe trait ExtendsImportMemoryZirconHandleInfoFUCHSIA {}
45636/// Marker trait for structs that can appear in the pNext chain of
45637#[doc = concat!("[`", "ImportMetalBufferInfoEXT", "`].")]
45638///
45639/// # Safety
45640/// Implementors must be valid pNext chain members for the target struct.
45641pub unsafe trait ExtendsImportMetalBufferInfoEXT {}
45642/// Marker trait for structs that can appear in the pNext chain of
45643#[doc = concat!("[`", "ImportMetalIOSurfaceInfoEXT", "`].")]
45644///
45645/// # Safety
45646/// Implementors must be valid pNext chain members for the target struct.
45647pub unsafe trait ExtendsImportMetalIOSurfaceInfoEXT {}
45648/// Marker trait for structs that can appear in the pNext chain of
45649#[doc = concat!("[`", "ImportMetalSharedEventInfoEXT", "`].")]
45650///
45651/// # Safety
45652/// Implementors must be valid pNext chain members for the target struct.
45653pub unsafe trait ExtendsImportMetalSharedEventInfoEXT {}
45654/// Marker trait for structs that can appear in the pNext chain of
45655#[doc = concat!("[`", "ImportMetalTextureInfoEXT", "`].")]
45656///
45657/// # Safety
45658/// Implementors must be valid pNext chain members for the target struct.
45659pub unsafe trait ExtendsImportMetalTextureInfoEXT {}
45660/// Marker trait for structs that can appear in the pNext chain of
45661#[doc = concat!("[`", "ImportNativeBufferInfoOHOS", "`].")]
45662///
45663/// # Safety
45664/// Implementors must be valid pNext chain members for the target struct.
45665pub unsafe trait ExtendsImportNativeBufferInfoOHOS {}
45666/// Marker trait for structs that can appear in the pNext chain of
45667#[doc = concat!("[`", "ImportScreenBufferInfoQNX", "`].")]
45668///
45669/// # Safety
45670/// Implementors must be valid pNext chain members for the target struct.
45671pub unsafe trait ExtendsImportScreenBufferInfoQNX {}
45672/// Marker trait for structs that can appear in the pNext chain of
45673#[doc = concat!("[`", "ImportSemaphoreFdInfoKHR", "`].")]
45674///
45675/// # Safety
45676/// Implementors must be valid pNext chain members for the target struct.
45677pub unsafe trait ExtendsImportSemaphoreFdInfoKHR {}
45678/// Marker trait for structs that can appear in the pNext chain of
45679#[doc = concat!("[`", "ImportSemaphoreSciSyncInfoNV", "`].")]
45680///
45681/// # Safety
45682/// Implementors must be valid pNext chain members for the target struct.
45683pub unsafe trait ExtendsImportSemaphoreSciSyncInfoNV {}
45684/// Marker trait for structs that can appear in the pNext chain of
45685#[doc = concat!("[`", "ImportSemaphoreWin32HandleInfoKHR", "`].")]
45686///
45687/// # Safety
45688/// Implementors must be valid pNext chain members for the target struct.
45689pub unsafe trait ExtendsImportSemaphoreWin32HandleInfoKHR {}
45690/// Marker trait for structs that can appear in the pNext chain of
45691#[doc = concat!("[`", "ImportSemaphoreZirconHandleInfoFUCHSIA", "`].")]
45692///
45693/// # Safety
45694/// Implementors must be valid pNext chain members for the target struct.
45695pub unsafe trait ExtendsImportSemaphoreZirconHandleInfoFUCHSIA {}
45696/// Marker trait for structs that can appear in the pNext chain of
45697#[doc = concat!("[`", "IndirectCommandsLayoutCreateInfoEXT", "`].")]
45698///
45699/// # Safety
45700/// Implementors must be valid pNext chain members for the target struct.
45701pub unsafe trait ExtendsIndirectCommandsLayoutCreateInfoEXT {}
45702/// Marker trait for structs that can appear in the pNext chain of
45703#[doc = concat!("[`", "IndirectCommandsLayoutCreateInfoNV", "`].")]
45704///
45705/// # Safety
45706/// Implementors must be valid pNext chain members for the target struct.
45707pub unsafe trait ExtendsIndirectCommandsLayoutCreateInfoNV {}
45708/// Marker trait for structs that can appear in the pNext chain of
45709#[doc = concat!("[`", "IndirectCommandsLayoutPushDataTokenNV", "`].")]
45710///
45711/// # Safety
45712/// Implementors must be valid pNext chain members for the target struct.
45713pub unsafe trait ExtendsIndirectCommandsLayoutPushDataTokenNV {}
45714/// Marker trait for structs that can appear in the pNext chain of
45715#[doc = concat!("[`", "IndirectCommandsLayoutTokenEXT", "`].")]
45716///
45717/// # Safety
45718/// Implementors must be valid pNext chain members for the target struct.
45719pub unsafe trait ExtendsIndirectCommandsLayoutTokenEXT {}
45720/// Marker trait for structs that can appear in the pNext chain of
45721#[doc = concat!("[`", "IndirectCommandsLayoutTokenNV", "`].")]
45722///
45723/// # Safety
45724/// Implementors must be valid pNext chain members for the target struct.
45725pub unsafe trait ExtendsIndirectCommandsLayoutTokenNV {}
45726/// Marker trait for structs that can appear in the pNext chain of
45727#[doc = concat!("[`", "IndirectExecutionSetCreateInfoEXT", "`].")]
45728///
45729/// # Safety
45730/// Implementors must be valid pNext chain members for the target struct.
45731pub unsafe trait ExtendsIndirectExecutionSetCreateInfoEXT {}
45732/// Marker trait for structs that can appear in the pNext chain of
45733#[doc = concat!("[`", "IndirectExecutionSetPipelineInfoEXT", "`].")]
45734///
45735/// # Safety
45736/// Implementors must be valid pNext chain members for the target struct.
45737pub unsafe trait ExtendsIndirectExecutionSetPipelineInfoEXT {}
45738/// Marker trait for structs that can appear in the pNext chain of
45739#[doc = concat!("[`", "IndirectExecutionSetShaderInfoEXT", "`].")]
45740///
45741/// # Safety
45742/// Implementors must be valid pNext chain members for the target struct.
45743pub unsafe trait ExtendsIndirectExecutionSetShaderInfoEXT {}
45744/// Marker trait for structs that can appear in the pNext chain of
45745#[doc = concat!("[`", "IndirectExecutionSetShaderLayoutInfoEXT", "`].")]
45746///
45747/// # Safety
45748/// Implementors must be valid pNext chain members for the target struct.
45749pub unsafe trait ExtendsIndirectExecutionSetShaderLayoutInfoEXT {}
45750/// Marker trait for structs that can appear in the pNext chain of
45751#[doc = concat!("[`", "InitializePerformanceApiInfoINTEL", "`].")]
45752///
45753/// # Safety
45754/// Implementors must be valid pNext chain members for the target struct.
45755pub unsafe trait ExtendsInitializePerformanceApiInfoINTEL {}
45756/// Marker trait for structs that can appear in the pNext chain of
45757#[doc = concat!("[`", "InstanceCreateInfo", "`].")]
45758///
45759/// # Safety
45760/// Implementors must be valid pNext chain members for the target struct.
45761pub unsafe trait ExtendsInstanceCreateInfo {}
45762/// Marker trait for structs that can appear in the pNext chain of
45763#[doc = concat!("[`", "LatencySleepInfoNV", "`].")]
45764///
45765/// # Safety
45766/// Implementors must be valid pNext chain members for the target struct.
45767pub unsafe trait ExtendsLatencySleepInfoNV {}
45768/// Marker trait for structs that can appear in the pNext chain of
45769#[doc = concat!("[`", "LatencySleepModeInfoNV", "`].")]
45770///
45771/// # Safety
45772/// Implementors must be valid pNext chain members for the target struct.
45773pub unsafe trait ExtendsLatencySleepModeInfoNV {}
45774/// Marker trait for structs that can appear in the pNext chain of
45775#[doc = concat!("[`", "LatencySubmissionPresentIdNV", "`].")]
45776///
45777/// # Safety
45778/// Implementors must be valid pNext chain members for the target struct.
45779pub unsafe trait ExtendsLatencySubmissionPresentIdNV {}
45780/// Marker trait for structs that can appear in the pNext chain of
45781#[doc = concat!("[`", "LatencySurfaceCapabilitiesNV", "`].")]
45782///
45783/// # Safety
45784/// Implementors must be valid pNext chain members for the target struct.
45785pub unsafe trait ExtendsLatencySurfaceCapabilitiesNV {}
45786/// Marker trait for structs that can appear in the pNext chain of
45787#[doc = concat!("[`", "LayerSettingsCreateInfoEXT", "`].")]
45788///
45789/// # Safety
45790/// Implementors must be valid pNext chain members for the target struct.
45791pub unsafe trait ExtendsLayerSettingsCreateInfoEXT {}
45792/// Marker trait for structs that can appear in the pNext chain of
45793#[doc = concat!("[`", "MacOSSurfaceCreateInfoMVK", "`].")]
45794///
45795/// # Safety
45796/// Implementors must be valid pNext chain members for the target struct.
45797pub unsafe trait ExtendsMacOSSurfaceCreateInfoMVK {}
45798/// Marker trait for structs that can appear in the pNext chain of
45799#[doc = concat!("[`", "MappedMemoryRange", "`].")]
45800///
45801/// # Safety
45802/// Implementors must be valid pNext chain members for the target struct.
45803pub unsafe trait ExtendsMappedMemoryRange {}
45804/// Marker trait for structs that can appear in the pNext chain of
45805#[doc = concat!("[`", "MemoryAllocateFlagsInfo", "`].")]
45806///
45807/// # Safety
45808/// Implementors must be valid pNext chain members for the target struct.
45809pub unsafe trait ExtendsMemoryAllocateFlagsInfo {}
45810/// Marker trait for structs that can appear in the pNext chain of
45811#[doc = concat!("[`", "MemoryAllocateInfo", "`].")]
45812///
45813/// # Safety
45814/// Implementors must be valid pNext chain members for the target struct.
45815pub unsafe trait ExtendsMemoryAllocateInfo {}
45816/// Marker trait for structs that can appear in the pNext chain of
45817#[doc = concat!("[`", "MemoryBarrier", "`].")]
45818///
45819/// # Safety
45820/// Implementors must be valid pNext chain members for the target struct.
45821pub unsafe trait ExtendsMemoryBarrier {}
45822/// Marker trait for structs that can appear in the pNext chain of
45823#[doc = concat!("[`", "MemoryBarrier2", "`].")]
45824///
45825/// # Safety
45826/// Implementors must be valid pNext chain members for the target struct.
45827pub unsafe trait ExtendsMemoryBarrier2 {}
45828/// Marker trait for structs that can appear in the pNext chain of
45829#[doc = concat!("[`", "MemoryBarrierAccessFlags3KHR", "`].")]
45830///
45831/// # Safety
45832/// Implementors must be valid pNext chain members for the target struct.
45833pub unsafe trait ExtendsMemoryBarrierAccessFlags3KHR {}
45834/// Marker trait for structs that can appear in the pNext chain of
45835#[doc = concat!("[`", "MemoryDedicatedAllocateInfo", "`].")]
45836///
45837/// # Safety
45838/// Implementors must be valid pNext chain members for the target struct.
45839pub unsafe trait ExtendsMemoryDedicatedAllocateInfo {}
45840/// Marker trait for structs that can appear in the pNext chain of
45841#[doc = concat!("[`", "MemoryDedicatedAllocateInfoTensorARM", "`].")]
45842///
45843/// # Safety
45844/// Implementors must be valid pNext chain members for the target struct.
45845pub unsafe trait ExtendsMemoryDedicatedAllocateInfoTensorARM {}
45846/// Marker trait for structs that can appear in the pNext chain of
45847#[doc = concat!("[`", "MemoryGetAndroidHardwareBufferInfoANDROID", "`].")]
45848///
45849/// # Safety
45850/// Implementors must be valid pNext chain members for the target struct.
45851pub unsafe trait ExtendsMemoryGetAndroidHardwareBufferInfoANDROID {}
45852/// Marker trait for structs that can appear in the pNext chain of
45853#[doc = concat!("[`", "MemoryGetFdInfoKHR", "`].")]
45854///
45855/// # Safety
45856/// Implementors must be valid pNext chain members for the target struct.
45857pub unsafe trait ExtendsMemoryGetFdInfoKHR {}
45858/// Marker trait for structs that can appear in the pNext chain of
45859#[doc = concat!("[`", "MemoryGetMetalHandleInfoEXT", "`].")]
45860///
45861/// # Safety
45862/// Implementors must be valid pNext chain members for the target struct.
45863pub unsafe trait ExtendsMemoryGetMetalHandleInfoEXT {}
45864/// Marker trait for structs that can appear in the pNext chain of
45865#[doc = concat!("[`", "MemoryGetNativeBufferInfoOHOS", "`].")]
45866///
45867/// # Safety
45868/// Implementors must be valid pNext chain members for the target struct.
45869pub unsafe trait ExtendsMemoryGetNativeBufferInfoOHOS {}
45870/// Marker trait for structs that can appear in the pNext chain of
45871#[doc = concat!("[`", "MemoryGetRemoteAddressInfoNV", "`].")]
45872///
45873/// # Safety
45874/// Implementors must be valid pNext chain members for the target struct.
45875pub unsafe trait ExtendsMemoryGetRemoteAddressInfoNV {}
45876/// Marker trait for structs that can appear in the pNext chain of
45877#[doc = concat!("[`", "MemoryGetSciBufInfoNV", "`].")]
45878///
45879/// # Safety
45880/// Implementors must be valid pNext chain members for the target struct.
45881pub unsafe trait ExtendsMemoryGetSciBufInfoNV {}
45882/// Marker trait for structs that can appear in the pNext chain of
45883#[doc = concat!("[`", "MemoryGetWin32HandleInfoKHR", "`].")]
45884///
45885/// # Safety
45886/// Implementors must be valid pNext chain members for the target struct.
45887pub unsafe trait ExtendsMemoryGetWin32HandleInfoKHR {}
45888/// Marker trait for structs that can appear in the pNext chain of
45889#[doc = concat!("[`", "MemoryGetZirconHandleInfoFUCHSIA", "`].")]
45890///
45891/// # Safety
45892/// Implementors must be valid pNext chain members for the target struct.
45893pub unsafe trait ExtendsMemoryGetZirconHandleInfoFUCHSIA {}
45894/// Marker trait for structs that can appear in the pNext chain of
45895#[doc = concat!("[`", "MemoryMapInfo", "`].")]
45896///
45897/// # Safety
45898/// Implementors must be valid pNext chain members for the target struct.
45899pub unsafe trait ExtendsMemoryMapInfo {}
45900/// Marker trait for structs that can appear in the pNext chain of
45901#[doc = concat!("[`", "MemoryMapPlacedInfoEXT", "`].")]
45902///
45903/// # Safety
45904/// Implementors must be valid pNext chain members for the target struct.
45905pub unsafe trait ExtendsMemoryMapPlacedInfoEXT {}
45906/// Marker trait for structs that can appear in the pNext chain of
45907#[doc = concat!("[`", "MemoryMarkerInfoAMD", "`].")]
45908///
45909/// # Safety
45910/// Implementors must be valid pNext chain members for the target struct.
45911pub unsafe trait ExtendsMemoryMarkerInfoAMD {}
45912/// Marker trait for structs that can appear in the pNext chain of
45913#[doc = concat!("[`", "MemoryOpaqueCaptureAddressAllocateInfo", "`].")]
45914///
45915/// # Safety
45916/// Implementors must be valid pNext chain members for the target struct.
45917pub unsafe trait ExtendsMemoryOpaqueCaptureAddressAllocateInfo {}
45918/// Marker trait for structs that can appear in the pNext chain of
45919#[doc = concat!("[`", "MemoryPriorityAllocateInfoEXT", "`].")]
45920///
45921/// # Safety
45922/// Implementors must be valid pNext chain members for the target struct.
45923pub unsafe trait ExtendsMemoryPriorityAllocateInfoEXT {}
45924/// Marker trait for structs that can appear in the pNext chain of
45925#[doc = concat!("[`", "MemoryRangeBarrierKHR", "`].")]
45926///
45927/// # Safety
45928/// Implementors must be valid pNext chain members for the target struct.
45929pub unsafe trait ExtendsMemoryRangeBarrierKHR {}
45930/// Marker trait for structs that can appear in the pNext chain of
45931#[doc = concat!("[`", "MemoryRangeBarriersInfoKHR", "`].")]
45932///
45933/// # Safety
45934/// Implementors must be valid pNext chain members for the target struct.
45935pub unsafe trait ExtendsMemoryRangeBarriersInfoKHR {}
45936/// Marker trait for structs that can appear in the pNext chain of
45937#[doc = concat!("[`", "MemoryRequirements2", "`].")]
45938///
45939/// # Safety
45940/// Implementors must be valid pNext chain members for the target struct.
45941pub unsafe trait ExtendsMemoryRequirements2 {}
45942/// Marker trait for structs that can appear in the pNext chain of
45943#[doc = concat!("[`", "MemorySciBufPropertiesNV", "`].")]
45944///
45945/// # Safety
45946/// Implementors must be valid pNext chain members for the target struct.
45947pub unsafe trait ExtendsMemorySciBufPropertiesNV {}
45948/// Marker trait for structs that can appear in the pNext chain of
45949#[doc = concat!("[`", "MemoryToImageCopy", "`].")]
45950///
45951/// # Safety
45952/// Implementors must be valid pNext chain members for the target struct.
45953pub unsafe trait ExtendsMemoryToImageCopy {}
45954/// Marker trait for structs that can appear in the pNext chain of
45955#[doc = concat!("[`", "MemoryUnmapInfo", "`].")]
45956///
45957/// # Safety
45958/// Implementors must be valid pNext chain members for the target struct.
45959pub unsafe trait ExtendsMemoryUnmapInfo {}
45960/// Marker trait for structs that can appear in the pNext chain of
45961#[doc = concat!("[`", "MetalSurfaceCreateInfoEXT", "`].")]
45962///
45963/// # Safety
45964/// Implementors must be valid pNext chain members for the target struct.
45965pub unsafe trait ExtendsMetalSurfaceCreateInfoEXT {}
45966/// Marker trait for structs that can appear in the pNext chain of
45967#[doc = concat!("[`", "MicromapBuildInfoEXT", "`].")]
45968///
45969/// # Safety
45970/// Implementors must be valid pNext chain members for the target struct.
45971pub unsafe trait ExtendsMicromapBuildInfoEXT {}
45972/// Marker trait for structs that can appear in the pNext chain of
45973#[doc = concat!("[`", "MicromapBuildSizesInfoEXT", "`].")]
45974///
45975/// # Safety
45976/// Implementors must be valid pNext chain members for the target struct.
45977pub unsafe trait ExtendsMicromapBuildSizesInfoEXT {}
45978/// Marker trait for structs that can appear in the pNext chain of
45979#[doc = concat!("[`", "MicromapCreateInfoEXT", "`].")]
45980///
45981/// # Safety
45982/// Implementors must be valid pNext chain members for the target struct.
45983pub unsafe trait ExtendsMicromapCreateInfoEXT {}
45984/// Marker trait for structs that can appear in the pNext chain of
45985#[doc = concat!("[`", "MicromapVersionInfoEXT", "`].")]
45986///
45987/// # Safety
45988/// Implementors must be valid pNext chain members for the target struct.
45989pub unsafe trait ExtendsMicromapVersionInfoEXT {}
45990/// Marker trait for structs that can appear in the pNext chain of
45991#[doc = concat!("[`", "MultisampledRenderToSingleSampledInfoEXT", "`].")]
45992///
45993/// # Safety
45994/// Implementors must be valid pNext chain members for the target struct.
45995pub unsafe trait ExtendsMultisampledRenderToSingleSampledInfoEXT {}
45996/// Marker trait for structs that can appear in the pNext chain of
45997#[doc = concat!("[`", "MultiviewPerViewAttributesInfoNVX", "`].")]
45998///
45999/// # Safety
46000/// Implementors must be valid pNext chain members for the target struct.
46001pub unsafe trait ExtendsMultiviewPerViewAttributesInfoNVX {}
46002/// Marker trait for structs that can appear in the pNext chain of
46003#[doc = concat!("[`", "MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM", "`].")]
46004///
46005/// # Safety
46006/// Implementors must be valid pNext chain members for the target struct.
46007pub unsafe trait ExtendsMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {}
46008/// Marker trait for structs that can appear in the pNext chain of
46009#[doc = concat!("[`", "MutableDescriptorTypeCreateInfoEXT", "`].")]
46010///
46011/// # Safety
46012/// Implementors must be valid pNext chain members for the target struct.
46013pub unsafe trait ExtendsMutableDescriptorTypeCreateInfoEXT {}
46014/// Marker trait for structs that can appear in the pNext chain of
46015#[doc = concat!("[`", "NativeBufferANDROID", "`].")]
46016///
46017/// # Safety
46018/// Implementors must be valid pNext chain members for the target struct.
46019pub unsafe trait ExtendsNativeBufferANDROID {}
46020/// Marker trait for structs that can appear in the pNext chain of
46021#[doc = concat!("[`", "NativeBufferOHOS", "`].")]
46022///
46023/// # Safety
46024/// Implementors must be valid pNext chain members for the target struct.
46025pub unsafe trait ExtendsNativeBufferOHOS {}
46026/// Marker trait for structs that can appear in the pNext chain of
46027#[doc = concat!("[`", "NativeBufferPropertiesOHOS", "`].")]
46028///
46029/// # Safety
46030/// Implementors must be valid pNext chain members for the target struct.
46031pub unsafe trait ExtendsNativeBufferPropertiesOHOS {}
46032/// Marker trait for structs that can appear in the pNext chain of
46033#[doc = concat!("[`", "OpaqueCaptureDataCreateInfoEXT", "`].")]
46034///
46035/// # Safety
46036/// Implementors must be valid pNext chain members for the target struct.
46037pub unsafe trait ExtendsOpaqueCaptureDataCreateInfoEXT {}
46038/// Marker trait for structs that can appear in the pNext chain of
46039#[doc = concat!("[`", "OpaqueCaptureDescriptorDataCreateInfoEXT", "`].")]
46040///
46041/// # Safety
46042/// Implementors must be valid pNext chain members for the target struct.
46043pub unsafe trait ExtendsOpaqueCaptureDescriptorDataCreateInfoEXT {}
46044/// Marker trait for structs that can appear in the pNext chain of
46045#[doc = concat!("[`", "OpticalFlowExecuteInfoNV", "`].")]
46046///
46047/// # Safety
46048/// Implementors must be valid pNext chain members for the target struct.
46049pub unsafe trait ExtendsOpticalFlowExecuteInfoNV {}
46050/// Marker trait for structs that can appear in the pNext chain of
46051#[doc = concat!("[`", "OpticalFlowImageFormatInfoNV", "`].")]
46052///
46053/// # Safety
46054/// Implementors must be valid pNext chain members for the target struct.
46055pub unsafe trait ExtendsOpticalFlowImageFormatInfoNV {}
46056/// Marker trait for structs that can appear in the pNext chain of
46057#[doc = concat!("[`", "OpticalFlowSessionCreateInfoNV", "`].")]
46058///
46059/// # Safety
46060/// Implementors must be valid pNext chain members for the target struct.
46061pub unsafe trait ExtendsOpticalFlowSessionCreateInfoNV {}
46062/// Marker trait for structs that can appear in the pNext chain of
46063#[doc = concat!("[`", "OpticalFlowSessionCreatePrivateDataInfoNV", "`].")]
46064///
46065/// # Safety
46066/// Implementors must be valid pNext chain members for the target struct.
46067pub unsafe trait ExtendsOpticalFlowSessionCreatePrivateDataInfoNV {}
46068/// Marker trait for structs that can appear in the pNext chain of
46069#[doc = concat!("[`", "OutOfBandQueueTypeInfoNV", "`].")]
46070///
46071/// # Safety
46072/// Implementors must be valid pNext chain members for the target struct.
46073pub unsafe trait ExtendsOutOfBandQueueTypeInfoNV {}
46074/// Marker trait for structs that can appear in the pNext chain of
46075#[doc = concat!("[`", "PartitionedAccelerationStructureFlagsNV", "`].")]
46076///
46077/// # Safety
46078/// Implementors must be valid pNext chain members for the target struct.
46079pub unsafe trait ExtendsPartitionedAccelerationStructureFlagsNV {}
46080/// Marker trait for structs that can appear in the pNext chain of
46081#[doc = concat!("[`", "PartitionedAccelerationStructureInstancesInputNV", "`].")]
46082///
46083/// # Safety
46084/// Implementors must be valid pNext chain members for the target struct.
46085pub unsafe trait ExtendsPartitionedAccelerationStructureInstancesInputNV {}
46086/// Marker trait for structs that can appear in the pNext chain of
46087#[doc = concat!("[`", "PastPresentationTimingInfoEXT", "`].")]
46088///
46089/// # Safety
46090/// Implementors must be valid pNext chain members for the target struct.
46091pub unsafe trait ExtendsPastPresentationTimingInfoEXT {}
46092/// Marker trait for structs that can appear in the pNext chain of
46093#[doc = concat!("[`", "PerTileBeginInfoQCOM", "`].")]
46094///
46095/// # Safety
46096/// Implementors must be valid pNext chain members for the target struct.
46097pub unsafe trait ExtendsPerTileBeginInfoQCOM {}
46098/// Marker trait for structs that can appear in the pNext chain of
46099#[doc = concat!("[`", "PerTileEndInfoQCOM", "`].")]
46100///
46101/// # Safety
46102/// Implementors must be valid pNext chain members for the target struct.
46103pub unsafe trait ExtendsPerTileEndInfoQCOM {}
46104/// Marker trait for structs that can appear in the pNext chain of
46105#[doc = concat!("[`", "PerformanceConfigurationAcquireInfoINTEL", "`].")]
46106///
46107/// # Safety
46108/// Implementors must be valid pNext chain members for the target struct.
46109pub unsafe trait ExtendsPerformanceConfigurationAcquireInfoINTEL {}
46110/// Marker trait for structs that can appear in the pNext chain of
46111#[doc = concat!("[`", "PerformanceMarkerInfoINTEL", "`].")]
46112///
46113/// # Safety
46114/// Implementors must be valid pNext chain members for the target struct.
46115pub unsafe trait ExtendsPerformanceMarkerInfoINTEL {}
46116/// Marker trait for structs that can appear in the pNext chain of
46117#[doc = concat!("[`", "PerformanceOverrideInfoINTEL", "`].")]
46118///
46119/// # Safety
46120/// Implementors must be valid pNext chain members for the target struct.
46121pub unsafe trait ExtendsPerformanceOverrideInfoINTEL {}
46122/// Marker trait for structs that can appear in the pNext chain of
46123#[doc = concat!("[`", "PerformanceQueryReservationInfoKHR", "`].")]
46124///
46125/// # Safety
46126/// Implementors must be valid pNext chain members for the target struct.
46127pub unsafe trait ExtendsPerformanceQueryReservationInfoKHR {}
46128/// Marker trait for structs that can appear in the pNext chain of
46129#[doc = concat!("[`", "PerformanceQuerySubmitInfoKHR", "`].")]
46130///
46131/// # Safety
46132/// Implementors must be valid pNext chain members for the target struct.
46133pub unsafe trait ExtendsPerformanceQuerySubmitInfoKHR {}
46134/// Marker trait for structs that can appear in the pNext chain of
46135#[doc = concat!("[`", "PerformanceStreamMarkerInfoINTEL", "`].")]
46136///
46137/// # Safety
46138/// Implementors must be valid pNext chain members for the target struct.
46139pub unsafe trait ExtendsPerformanceStreamMarkerInfoINTEL {}
46140/// Marker trait for structs that can appear in the pNext chain of
46141#[doc = concat!("[`", "PhysicalDevice16BitStorageFeatures", "`].")]
46142///
46143/// # Safety
46144/// Implementors must be valid pNext chain members for the target struct.
46145pub unsafe trait ExtendsPhysicalDevice16BitStorageFeatures {}
46146/// Marker trait for structs that can appear in the pNext chain of
46147#[doc = concat!("[`", "PhysicalDevice4444FormatsFeaturesEXT", "`].")]
46148///
46149/// # Safety
46150/// Implementors must be valid pNext chain members for the target struct.
46151pub unsafe trait ExtendsPhysicalDevice4444FormatsFeaturesEXT {}
46152/// Marker trait for structs that can appear in the pNext chain of
46153#[doc = concat!("[`", "PhysicalDevice8BitStorageFeatures", "`].")]
46154///
46155/// # Safety
46156/// Implementors must be valid pNext chain members for the target struct.
46157pub unsafe trait ExtendsPhysicalDevice8BitStorageFeatures {}
46158/// Marker trait for structs that can appear in the pNext chain of
46159#[doc = concat!("[`", "PhysicalDeviceASTCDecodeFeaturesEXT", "`].")]
46160///
46161/// # Safety
46162/// Implementors must be valid pNext chain members for the target struct.
46163pub unsafe trait ExtendsPhysicalDeviceASTCDecodeFeaturesEXT {}
46164/// Marker trait for structs that can appear in the pNext chain of
46165#[doc = concat!("[`", "PhysicalDeviceAccelerationStructureFeaturesKHR", "`].")]
46166///
46167/// # Safety
46168/// Implementors must be valid pNext chain members for the target struct.
46169pub unsafe trait ExtendsPhysicalDeviceAccelerationStructureFeaturesKHR {}
46170/// Marker trait for structs that can appear in the pNext chain of
46171#[doc = concat!("[`", "PhysicalDeviceAddressBindingReportFeaturesEXT", "`].")]
46172///
46173/// # Safety
46174/// Implementors must be valid pNext chain members for the target struct.
46175pub unsafe trait ExtendsPhysicalDeviceAddressBindingReportFeaturesEXT {}
46176/// Marker trait for structs that can appear in the pNext chain of
46177#[doc = concat!("[`", "PhysicalDeviceAmigoProfilingFeaturesSEC", "`].")]
46178///
46179/// # Safety
46180/// Implementors must be valid pNext chain members for the target struct.
46181pub unsafe trait ExtendsPhysicalDeviceAmigoProfilingFeaturesSEC {}
46182/// Marker trait for structs that can appear in the pNext chain of
46183#[doc = concat!("[`", "PhysicalDeviceAntiLagFeaturesAMD", "`].")]
46184///
46185/// # Safety
46186/// Implementors must be valid pNext chain members for the target struct.
46187pub unsafe trait ExtendsPhysicalDeviceAntiLagFeaturesAMD {}
46188/// Marker trait for structs that can appear in the pNext chain of
46189#[doc = concat!(
46190    "[`", "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", "`]."
46191)]
46192///
46193/// # Safety
46194/// Implementors must be valid pNext chain members for the target struct.
46195pub unsafe trait ExtendsPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {}
46196/// Marker trait for structs that can appear in the pNext chain of
46197#[doc = concat!("[`", "PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT", "`].")]
46198///
46199/// # Safety
46200/// Implementors must be valid pNext chain members for the target struct.
46201pub unsafe trait ExtendsPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {}
46202/// Marker trait for structs that can appear in the pNext chain of
46203#[doc = concat!("[`", "PhysicalDeviceBlendOperationAdvancedFeaturesEXT", "`].")]
46204///
46205/// # Safety
46206/// Implementors must be valid pNext chain members for the target struct.
46207pub unsafe trait ExtendsPhysicalDeviceBlendOperationAdvancedFeaturesEXT {}
46208/// Marker trait for structs that can appear in the pNext chain of
46209#[doc = concat!("[`", "PhysicalDeviceBorderColorSwizzleFeaturesEXT", "`].")]
46210///
46211/// # Safety
46212/// Implementors must be valid pNext chain members for the target struct.
46213pub unsafe trait ExtendsPhysicalDeviceBorderColorSwizzleFeaturesEXT {}
46214/// Marker trait for structs that can appear in the pNext chain of
46215#[doc = concat!("[`", "PhysicalDeviceBufferDeviceAddressFeatures", "`].")]
46216///
46217/// # Safety
46218/// Implementors must be valid pNext chain members for the target struct.
46219pub unsafe trait ExtendsPhysicalDeviceBufferDeviceAddressFeatures {}
46220/// Marker trait for structs that can appear in the pNext chain of
46221#[doc = concat!("[`", "PhysicalDeviceBufferDeviceAddressFeaturesEXT", "`].")]
46222///
46223/// # Safety
46224/// Implementors must be valid pNext chain members for the target struct.
46225pub unsafe trait ExtendsPhysicalDeviceBufferDeviceAddressFeaturesEXT {}
46226/// Marker trait for structs that can appear in the pNext chain of
46227#[doc = concat!("[`", "PhysicalDeviceClusterAccelerationStructureFeaturesNV", "`].")]
46228///
46229/// # Safety
46230/// Implementors must be valid pNext chain members for the target struct.
46231pub unsafe trait ExtendsPhysicalDeviceClusterAccelerationStructureFeaturesNV {}
46232/// Marker trait for structs that can appear in the pNext chain of
46233#[doc = concat!("[`", "PhysicalDeviceClusterCullingShaderFeaturesHUAWEI", "`].")]
46234///
46235/// # Safety
46236/// Implementors must be valid pNext chain members for the target struct.
46237pub unsafe trait ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {}
46238/// Marker trait for structs that can appear in the pNext chain of
46239#[doc = concat!("[`", "PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI", "`].")]
46240///
46241/// # Safety
46242/// Implementors must be valid pNext chain members for the target struct.
46243pub unsafe trait ExtendsPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {}
46244/// Marker trait for structs that can appear in the pNext chain of
46245#[doc = concat!("[`", "PhysicalDeviceCoherentMemoryFeaturesAMD", "`].")]
46246///
46247/// # Safety
46248/// Implementors must be valid pNext chain members for the target struct.
46249pub unsafe trait ExtendsPhysicalDeviceCoherentMemoryFeaturesAMD {}
46250/// Marker trait for structs that can appear in the pNext chain of
46251#[doc = concat!("[`", "PhysicalDeviceColorWriteEnableFeaturesEXT", "`].")]
46252///
46253/// # Safety
46254/// Implementors must be valid pNext chain members for the target struct.
46255pub unsafe trait ExtendsPhysicalDeviceColorWriteEnableFeaturesEXT {}
46256/// Marker trait for structs that can appear in the pNext chain of
46257#[doc = concat!("[`", "PhysicalDeviceCommandBufferInheritanceFeaturesNV", "`].")]
46258///
46259/// # Safety
46260/// Implementors must be valid pNext chain members for the target struct.
46261pub unsafe trait ExtendsPhysicalDeviceCommandBufferInheritanceFeaturesNV {}
46262/// Marker trait for structs that can appear in the pNext chain of
46263#[doc = concat!("[`", "PhysicalDeviceComputeOccupancyPriorityFeaturesNV", "`].")]
46264///
46265/// # Safety
46266/// Implementors must be valid pNext chain members for the target struct.
46267pub unsafe trait ExtendsPhysicalDeviceComputeOccupancyPriorityFeaturesNV {}
46268/// Marker trait for structs that can appear in the pNext chain of
46269#[doc = concat!("[`", "PhysicalDeviceComputeShaderDerivativesFeaturesKHR", "`].")]
46270///
46271/// # Safety
46272/// Implementors must be valid pNext chain members for the target struct.
46273pub unsafe trait ExtendsPhysicalDeviceComputeShaderDerivativesFeaturesKHR {}
46274/// Marker trait for structs that can appear in the pNext chain of
46275#[doc = concat!("[`", "PhysicalDeviceConditionalRenderingFeaturesEXT", "`].")]
46276///
46277/// # Safety
46278/// Implementors must be valid pNext chain members for the target struct.
46279pub unsafe trait ExtendsPhysicalDeviceConditionalRenderingFeaturesEXT {}
46280/// Marker trait for structs that can appear in the pNext chain of
46281#[doc = concat!("[`", "PhysicalDeviceCooperativeMatrix2FeaturesNV", "`].")]
46282///
46283/// # Safety
46284/// Implementors must be valid pNext chain members for the target struct.
46285pub unsafe trait ExtendsPhysicalDeviceCooperativeMatrix2FeaturesNV {}
46286/// Marker trait for structs that can appear in the pNext chain of
46287#[doc = concat!("[`", "PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM", "`].")]
46288///
46289/// # Safety
46290/// Implementors must be valid pNext chain members for the target struct.
46291pub unsafe trait ExtendsPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {}
46292/// Marker trait for structs that can appear in the pNext chain of
46293#[doc = concat!("[`", "PhysicalDeviceCooperativeMatrixFeaturesKHR", "`].")]
46294///
46295/// # Safety
46296/// Implementors must be valid pNext chain members for the target struct.
46297pub unsafe trait ExtendsPhysicalDeviceCooperativeMatrixFeaturesKHR {}
46298/// Marker trait for structs that can appear in the pNext chain of
46299#[doc = concat!("[`", "PhysicalDeviceCooperativeMatrixFeaturesNV", "`].")]
46300///
46301/// # Safety
46302/// Implementors must be valid pNext chain members for the target struct.
46303pub unsafe trait ExtendsPhysicalDeviceCooperativeMatrixFeaturesNV {}
46304/// Marker trait for structs that can appear in the pNext chain of
46305#[doc = concat!("[`", "PhysicalDeviceCooperativeVectorFeaturesNV", "`].")]
46306///
46307/// # Safety
46308/// Implementors must be valid pNext chain members for the target struct.
46309pub unsafe trait ExtendsPhysicalDeviceCooperativeVectorFeaturesNV {}
46310/// Marker trait for structs that can appear in the pNext chain of
46311#[doc = concat!("[`", "PhysicalDeviceCopyMemoryIndirectFeaturesKHR", "`].")]
46312///
46313/// # Safety
46314/// Implementors must be valid pNext chain members for the target struct.
46315pub unsafe trait ExtendsPhysicalDeviceCopyMemoryIndirectFeaturesKHR {}
46316/// Marker trait for structs that can appear in the pNext chain of
46317#[doc = concat!("[`", "PhysicalDeviceCopyMemoryIndirectFeaturesNV", "`].")]
46318///
46319/// # Safety
46320/// Implementors must be valid pNext chain members for the target struct.
46321pub unsafe trait ExtendsPhysicalDeviceCopyMemoryIndirectFeaturesNV {}
46322/// Marker trait for structs that can appear in the pNext chain of
46323#[doc = concat!("[`", "PhysicalDeviceCornerSampledImageFeaturesNV", "`].")]
46324///
46325/// # Safety
46326/// Implementors must be valid pNext chain members for the target struct.
46327pub unsafe trait ExtendsPhysicalDeviceCornerSampledImageFeaturesNV {}
46328/// Marker trait for structs that can appear in the pNext chain of
46329#[doc = concat!("[`", "PhysicalDeviceCoverageReductionModeFeaturesNV", "`].")]
46330///
46331/// # Safety
46332/// Implementors must be valid pNext chain members for the target struct.
46333pub unsafe trait ExtendsPhysicalDeviceCoverageReductionModeFeaturesNV {}
46334/// Marker trait for structs that can appear in the pNext chain of
46335#[doc = concat!("[`", "PhysicalDeviceCubicClampFeaturesQCOM", "`].")]
46336///
46337/// # Safety
46338/// Implementors must be valid pNext chain members for the target struct.
46339pub unsafe trait ExtendsPhysicalDeviceCubicClampFeaturesQCOM {}
46340/// Marker trait for structs that can appear in the pNext chain of
46341#[doc = concat!("[`", "PhysicalDeviceCubicWeightsFeaturesQCOM", "`].")]
46342///
46343/// # Safety
46344/// Implementors must be valid pNext chain members for the target struct.
46345pub unsafe trait ExtendsPhysicalDeviceCubicWeightsFeaturesQCOM {}
46346/// Marker trait for structs that can appear in the pNext chain of
46347#[doc = concat!("[`", "PhysicalDeviceCudaKernelLaunchFeaturesNV", "`].")]
46348///
46349/// # Safety
46350/// Implementors must be valid pNext chain members for the target struct.
46351pub unsafe trait ExtendsPhysicalDeviceCudaKernelLaunchFeaturesNV {}
46352/// Marker trait for structs that can appear in the pNext chain of
46353#[doc = concat!("[`", "PhysicalDeviceCustomBorderColorFeaturesEXT", "`].")]
46354///
46355/// # Safety
46356/// Implementors must be valid pNext chain members for the target struct.
46357pub unsafe trait ExtendsPhysicalDeviceCustomBorderColorFeaturesEXT {}
46358/// Marker trait for structs that can appear in the pNext chain of
46359#[doc = concat!("[`", "PhysicalDeviceCustomResolveFeaturesEXT", "`].")]
46360///
46361/// # Safety
46362/// Implementors must be valid pNext chain members for the target struct.
46363pub unsafe trait ExtendsPhysicalDeviceCustomResolveFeaturesEXT {}
46364/// Marker trait for structs that can appear in the pNext chain of
46365#[doc = concat!("[`", "PhysicalDeviceDataGraphFeaturesARM", "`].")]
46366///
46367/// # Safety
46368/// Implementors must be valid pNext chain members for the target struct.
46369pub unsafe trait ExtendsPhysicalDeviceDataGraphFeaturesARM {}
46370/// Marker trait for structs that can appear in the pNext chain of
46371#[doc = concat!("[`", "PhysicalDeviceDataGraphModelFeaturesQCOM", "`].")]
46372///
46373/// # Safety
46374/// Implementors must be valid pNext chain members for the target struct.
46375pub unsafe trait ExtendsPhysicalDeviceDataGraphModelFeaturesQCOM {}
46376/// Marker trait for structs that can appear in the pNext chain of
46377#[doc = concat!("[`", "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV", "`].")]
46378///
46379/// # Safety
46380/// Implementors must be valid pNext chain members for the target struct.
46381pub unsafe trait ExtendsPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {}
46382/// Marker trait for structs that can appear in the pNext chain of
46383#[doc = concat!("[`", "PhysicalDeviceDenseGeometryFormatFeaturesAMDX", "`].")]
46384///
46385/// # Safety
46386/// Implementors must be valid pNext chain members for the target struct.
46387pub unsafe trait ExtendsPhysicalDeviceDenseGeometryFormatFeaturesAMDX {}
46388/// Marker trait for structs that can appear in the pNext chain of
46389#[doc = concat!("[`", "PhysicalDeviceDepthBiasControlFeaturesEXT", "`].")]
46390///
46391/// # Safety
46392/// Implementors must be valid pNext chain members for the target struct.
46393pub unsafe trait ExtendsPhysicalDeviceDepthBiasControlFeaturesEXT {}
46394/// Marker trait for structs that can appear in the pNext chain of
46395#[doc = concat!("[`", "PhysicalDeviceDepthClampControlFeaturesEXT", "`].")]
46396///
46397/// # Safety
46398/// Implementors must be valid pNext chain members for the target struct.
46399pub unsafe trait ExtendsPhysicalDeviceDepthClampControlFeaturesEXT {}
46400/// Marker trait for structs that can appear in the pNext chain of
46401#[doc = concat!("[`", "PhysicalDeviceDepthClampZeroOneFeaturesKHR", "`].")]
46402///
46403/// # Safety
46404/// Implementors must be valid pNext chain members for the target struct.
46405pub unsafe trait ExtendsPhysicalDeviceDepthClampZeroOneFeaturesKHR {}
46406/// Marker trait for structs that can appear in the pNext chain of
46407#[doc = concat!("[`", "PhysicalDeviceDepthClipControlFeaturesEXT", "`].")]
46408///
46409/// # Safety
46410/// Implementors must be valid pNext chain members for the target struct.
46411pub unsafe trait ExtendsPhysicalDeviceDepthClipControlFeaturesEXT {}
46412/// Marker trait for structs that can appear in the pNext chain of
46413#[doc = concat!("[`", "PhysicalDeviceDepthClipEnableFeaturesEXT", "`].")]
46414///
46415/// # Safety
46416/// Implementors must be valid pNext chain members for the target struct.
46417pub unsafe trait ExtendsPhysicalDeviceDepthClipEnableFeaturesEXT {}
46418/// Marker trait for structs that can appear in the pNext chain of
46419#[doc = concat!("[`", "PhysicalDeviceDescriptorBufferFeaturesEXT", "`].")]
46420///
46421/// # Safety
46422/// Implementors must be valid pNext chain members for the target struct.
46423pub unsafe trait ExtendsPhysicalDeviceDescriptorBufferFeaturesEXT {}
46424/// Marker trait for structs that can appear in the pNext chain of
46425#[doc = concat!("[`", "PhysicalDeviceDescriptorBufferTensorFeaturesARM", "`].")]
46426///
46427/// # Safety
46428/// Implementors must be valid pNext chain members for the target struct.
46429pub unsafe trait ExtendsPhysicalDeviceDescriptorBufferTensorFeaturesARM {}
46430/// Marker trait for structs that can appear in the pNext chain of
46431#[doc = concat!("[`", "PhysicalDeviceDescriptorBufferTensorPropertiesARM", "`].")]
46432///
46433/// # Safety
46434/// Implementors must be valid pNext chain members for the target struct.
46435pub unsafe trait ExtendsPhysicalDeviceDescriptorBufferTensorPropertiesARM {}
46436/// Marker trait for structs that can appear in the pNext chain of
46437#[doc = concat!("[`", "PhysicalDeviceDescriptorHeapFeaturesEXT", "`].")]
46438///
46439/// # Safety
46440/// Implementors must be valid pNext chain members for the target struct.
46441pub unsafe trait ExtendsPhysicalDeviceDescriptorHeapFeaturesEXT {}
46442/// Marker trait for structs that can appear in the pNext chain of
46443#[doc = concat!("[`", "PhysicalDeviceDescriptorIndexingFeatures", "`].")]
46444///
46445/// # Safety
46446/// Implementors must be valid pNext chain members for the target struct.
46447pub unsafe trait ExtendsPhysicalDeviceDescriptorIndexingFeatures {}
46448/// Marker trait for structs that can appear in the pNext chain of
46449#[doc = concat!("[`", "PhysicalDeviceDescriptorPoolOverallocationFeaturesNV", "`].")]
46450///
46451/// # Safety
46452/// Implementors must be valid pNext chain members for the target struct.
46453pub unsafe trait ExtendsPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {}
46454/// Marker trait for structs that can appear in the pNext chain of
46455#[doc = concat!("[`", "PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE", "`].")]
46456///
46457/// # Safety
46458/// Implementors must be valid pNext chain members for the target struct.
46459pub unsafe trait ExtendsPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {}
46460/// Marker trait for structs that can appear in the pNext chain of
46461#[doc = concat!("[`", "PhysicalDeviceDeviceAddressCommandsFeaturesKHR", "`].")]
46462///
46463/// # Safety
46464/// Implementors must be valid pNext chain members for the target struct.
46465pub unsafe trait ExtendsPhysicalDeviceDeviceAddressCommandsFeaturesKHR {}
46466/// Marker trait for structs that can appear in the pNext chain of
46467#[doc = concat!("[`", "PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "`].")]
46468///
46469/// # Safety
46470/// Implementors must be valid pNext chain members for the target struct.
46471pub unsafe trait ExtendsPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {}
46472/// Marker trait for structs that can appear in the pNext chain of
46473#[doc = concat!("[`", "PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT", "`].")]
46474///
46475/// # Safety
46476/// Implementors must be valid pNext chain members for the target struct.
46477pub unsafe trait ExtendsPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {}
46478/// Marker trait for structs that can appear in the pNext chain of
46479#[doc = concat!("[`", "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV", "`].")]
46480///
46481/// # Safety
46482/// Implementors must be valid pNext chain members for the target struct.
46483pub unsafe trait ExtendsPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {}
46484/// Marker trait for structs that can appear in the pNext chain of
46485#[doc = concat!("[`", "PhysicalDeviceDeviceMemoryReportFeaturesEXT", "`].")]
46486///
46487/// # Safety
46488/// Implementors must be valid pNext chain members for the target struct.
46489pub unsafe trait ExtendsPhysicalDeviceDeviceMemoryReportFeaturesEXT {}
46490/// Marker trait for structs that can appear in the pNext chain of
46491#[doc = concat!("[`", "PhysicalDeviceDiagnosticsConfigFeaturesNV", "`].")]
46492///
46493/// # Safety
46494/// Implementors must be valid pNext chain members for the target struct.
46495pub unsafe trait ExtendsPhysicalDeviceDiagnosticsConfigFeaturesNV {}
46496/// Marker trait for structs that can appear in the pNext chain of
46497#[doc = concat!("[`", "PhysicalDeviceDisplacementMicromapFeaturesNV", "`].")]
46498///
46499/// # Safety
46500/// Implementors must be valid pNext chain members for the target struct.
46501pub unsafe trait ExtendsPhysicalDeviceDisplacementMicromapFeaturesNV {}
46502/// Marker trait for structs that can appear in the pNext chain of
46503#[doc = concat!("[`", "PhysicalDeviceDynamicRenderingFeatures", "`].")]
46504///
46505/// # Safety
46506/// Implementors must be valid pNext chain members for the target struct.
46507pub unsafe trait ExtendsPhysicalDeviceDynamicRenderingFeatures {}
46508/// Marker trait for structs that can appear in the pNext chain of
46509#[doc = concat!("[`", "PhysicalDeviceDynamicRenderingLocalReadFeatures", "`].")]
46510///
46511/// # Safety
46512/// Implementors must be valid pNext chain members for the target struct.
46513pub unsafe trait ExtendsPhysicalDeviceDynamicRenderingLocalReadFeatures {}
46514/// Marker trait for structs that can appear in the pNext chain of
46515#[doc = concat!(
46516    "[`", "PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT", "`]."
46517)]
46518///
46519/// # Safety
46520/// Implementors must be valid pNext chain members for the target struct.
46521pub unsafe trait ExtendsPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {}
46522/// Marker trait for structs that can appear in the pNext chain of
46523#[doc = concat!("[`", "PhysicalDeviceExclusiveScissorFeaturesNV", "`].")]
46524///
46525/// # Safety
46526/// Implementors must be valid pNext chain members for the target struct.
46527pub unsafe trait ExtendsPhysicalDeviceExclusiveScissorFeaturesNV {}
46528/// Marker trait for structs that can appear in the pNext chain of
46529#[doc = concat!("[`", "PhysicalDeviceExtendedDynamicState2FeaturesEXT", "`].")]
46530///
46531/// # Safety
46532/// Implementors must be valid pNext chain members for the target struct.
46533pub unsafe trait ExtendsPhysicalDeviceExtendedDynamicState2FeaturesEXT {}
46534/// Marker trait for structs that can appear in the pNext chain of
46535#[doc = concat!("[`", "PhysicalDeviceExtendedDynamicState3FeaturesEXT", "`].")]
46536///
46537/// # Safety
46538/// Implementors must be valid pNext chain members for the target struct.
46539pub unsafe trait ExtendsPhysicalDeviceExtendedDynamicState3FeaturesEXT {}
46540/// Marker trait for structs that can appear in the pNext chain of
46541#[doc = concat!("[`", "PhysicalDeviceExtendedDynamicStateFeaturesEXT", "`].")]
46542///
46543/// # Safety
46544/// Implementors must be valid pNext chain members for the target struct.
46545pub unsafe trait ExtendsPhysicalDeviceExtendedDynamicStateFeaturesEXT {}
46546/// Marker trait for structs that can appear in the pNext chain of
46547#[doc = concat!("[`", "PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV", "`].")]
46548///
46549/// # Safety
46550/// Implementors must be valid pNext chain members for the target struct.
46551pub unsafe trait ExtendsPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {}
46552/// Marker trait for structs that can appear in the pNext chain of
46553#[doc = concat!("[`", "PhysicalDeviceExternalBufferInfo", "`].")]
46554///
46555/// # Safety
46556/// Implementors must be valid pNext chain members for the target struct.
46557pub unsafe trait ExtendsPhysicalDeviceExternalBufferInfo {}
46558/// Marker trait for structs that can appear in the pNext chain of
46559#[doc = concat!("[`", "PhysicalDeviceExternalFenceInfo", "`].")]
46560///
46561/// # Safety
46562/// Implementors must be valid pNext chain members for the target struct.
46563pub unsafe trait ExtendsPhysicalDeviceExternalFenceInfo {}
46564/// Marker trait for structs that can appear in the pNext chain of
46565#[doc = concat!("[`", "PhysicalDeviceExternalFormatResolveFeaturesANDROID", "`].")]
46566///
46567/// # Safety
46568/// Implementors must be valid pNext chain members for the target struct.
46569pub unsafe trait ExtendsPhysicalDeviceExternalFormatResolveFeaturesANDROID {}
46570/// Marker trait for structs that can appear in the pNext chain of
46571#[doc = concat!("[`", "PhysicalDeviceExternalImageFormatInfo", "`].")]
46572///
46573/// # Safety
46574/// Implementors must be valid pNext chain members for the target struct.
46575pub unsafe trait ExtendsPhysicalDeviceExternalImageFormatInfo {}
46576/// Marker trait for structs that can appear in the pNext chain of
46577#[doc = concat!("[`", "PhysicalDeviceExternalMemoryRDMAFeaturesNV", "`].")]
46578///
46579/// # Safety
46580/// Implementors must be valid pNext chain members for the target struct.
46581pub unsafe trait ExtendsPhysicalDeviceExternalMemoryRDMAFeaturesNV {}
46582/// Marker trait for structs that can appear in the pNext chain of
46583#[doc = concat!("[`", "PhysicalDeviceExternalMemorySciBufFeaturesNV", "`].")]
46584///
46585/// # Safety
46586/// Implementors must be valid pNext chain members for the target struct.
46587pub unsafe trait ExtendsPhysicalDeviceExternalMemorySciBufFeaturesNV {}
46588/// Marker trait for structs that can appear in the pNext chain of
46589#[doc = concat!("[`", "PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX", "`].")]
46590///
46591/// # Safety
46592/// Implementors must be valid pNext chain members for the target struct.
46593pub unsafe trait ExtendsPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {}
46594/// Marker trait for structs that can appear in the pNext chain of
46595#[doc = concat!("[`", "PhysicalDeviceExternalSciSync2FeaturesNV", "`].")]
46596///
46597/// # Safety
46598/// Implementors must be valid pNext chain members for the target struct.
46599pub unsafe trait ExtendsPhysicalDeviceExternalSciSync2FeaturesNV {}
46600/// Marker trait for structs that can appear in the pNext chain of
46601#[doc = concat!("[`", "PhysicalDeviceExternalSciSyncFeaturesNV", "`].")]
46602///
46603/// # Safety
46604/// Implementors must be valid pNext chain members for the target struct.
46605pub unsafe trait ExtendsPhysicalDeviceExternalSciSyncFeaturesNV {}
46606/// Marker trait for structs that can appear in the pNext chain of
46607#[doc = concat!("[`", "PhysicalDeviceExternalSemaphoreInfo", "`].")]
46608///
46609/// # Safety
46610/// Implementors must be valid pNext chain members for the target struct.
46611pub unsafe trait ExtendsPhysicalDeviceExternalSemaphoreInfo {}
46612/// Marker trait for structs that can appear in the pNext chain of
46613#[doc = concat!("[`", "PhysicalDeviceExternalTensorInfoARM", "`].")]
46614///
46615/// # Safety
46616/// Implementors must be valid pNext chain members for the target struct.
46617pub unsafe trait ExtendsPhysicalDeviceExternalTensorInfoARM {}
46618/// Marker trait for structs that can appear in the pNext chain of
46619#[doc = concat!("[`", "PhysicalDeviceFaultFeaturesEXT", "`].")]
46620///
46621/// # Safety
46622/// Implementors must be valid pNext chain members for the target struct.
46623pub unsafe trait ExtendsPhysicalDeviceFaultFeaturesEXT {}
46624/// Marker trait for structs that can appear in the pNext chain of
46625#[doc = concat!("[`", "PhysicalDeviceFaultFeaturesKHR", "`].")]
46626///
46627/// # Safety
46628/// Implementors must be valid pNext chain members for the target struct.
46629pub unsafe trait ExtendsPhysicalDeviceFaultFeaturesKHR {}
46630/// Marker trait for structs that can appear in the pNext chain of
46631#[doc = concat!("[`", "PhysicalDeviceFeatures2", "`].")]
46632///
46633/// # Safety
46634/// Implementors must be valid pNext chain members for the target struct.
46635pub unsafe trait ExtendsPhysicalDeviceFeatures2 {}
46636/// Marker trait for structs that can appear in the pNext chain of
46637#[doc = concat!("[`", "PhysicalDeviceFormatPackFeaturesARM", "`].")]
46638///
46639/// # Safety
46640/// Implementors must be valid pNext chain members for the target struct.
46641pub unsafe trait ExtendsPhysicalDeviceFormatPackFeaturesARM {}
46642/// Marker trait for structs that can appear in the pNext chain of
46643#[doc = concat!("[`", "PhysicalDeviceFragmentDensityMap2FeaturesEXT", "`].")]
46644///
46645/// # Safety
46646/// Implementors must be valid pNext chain members for the target struct.
46647pub unsafe trait ExtendsPhysicalDeviceFragmentDensityMap2FeaturesEXT {}
46648/// Marker trait for structs that can appear in the pNext chain of
46649#[doc = concat!("[`", "PhysicalDeviceFragmentDensityMapFeaturesEXT", "`].")]
46650///
46651/// # Safety
46652/// Implementors must be valid pNext chain members for the target struct.
46653pub unsafe trait ExtendsPhysicalDeviceFragmentDensityMapFeaturesEXT {}
46654/// Marker trait for structs that can appear in the pNext chain of
46655#[doc = concat!("[`", "PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE", "`].")]
46656///
46657/// # Safety
46658/// Implementors must be valid pNext chain members for the target struct.
46659pub unsafe trait ExtendsPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {}
46660/// Marker trait for structs that can appear in the pNext chain of
46661#[doc = concat!("[`", "PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT", "`].")]
46662///
46663/// # Safety
46664/// Implementors must be valid pNext chain members for the target struct.
46665pub unsafe trait ExtendsPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {}
46666/// Marker trait for structs that can appear in the pNext chain of
46667#[doc = concat!("[`", "PhysicalDeviceFragmentShaderBarycentricFeaturesKHR", "`].")]
46668///
46669/// # Safety
46670/// Implementors must be valid pNext chain members for the target struct.
46671pub unsafe trait ExtendsPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {}
46672/// Marker trait for structs that can appear in the pNext chain of
46673#[doc = concat!("[`", "PhysicalDeviceFragmentShaderInterlockFeaturesEXT", "`].")]
46674///
46675/// # Safety
46676/// Implementors must be valid pNext chain members for the target struct.
46677pub unsafe trait ExtendsPhysicalDeviceFragmentShaderInterlockFeaturesEXT {}
46678/// Marker trait for structs that can appear in the pNext chain of
46679#[doc = concat!("[`", "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV", "`].")]
46680///
46681/// # Safety
46682/// Implementors must be valid pNext chain members for the target struct.
46683pub unsafe trait ExtendsPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {}
46684/// Marker trait for structs that can appear in the pNext chain of
46685#[doc = concat!("[`", "PhysicalDeviceFragmentShadingRateFeaturesKHR", "`].")]
46686///
46687/// # Safety
46688/// Implementors must be valid pNext chain members for the target struct.
46689pub unsafe trait ExtendsPhysicalDeviceFragmentShadingRateFeaturesKHR {}
46690/// Marker trait for structs that can appear in the pNext chain of
46691#[doc = concat!("[`", "PhysicalDeviceFrameBoundaryFeaturesEXT", "`].")]
46692///
46693/// # Safety
46694/// Implementors must be valid pNext chain members for the target struct.
46695pub unsafe trait ExtendsPhysicalDeviceFrameBoundaryFeaturesEXT {}
46696/// Marker trait for structs that can appear in the pNext chain of
46697#[doc = concat!("[`", "PhysicalDeviceGlobalPriorityQueryFeatures", "`].")]
46698///
46699/// # Safety
46700/// Implementors must be valid pNext chain members for the target struct.
46701pub unsafe trait ExtendsPhysicalDeviceGlobalPriorityQueryFeatures {}
46702/// Marker trait for structs that can appear in the pNext chain of
46703#[doc = concat!("[`", "PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", "`].")]
46704///
46705/// # Safety
46706/// Implementors must be valid pNext chain members for the target struct.
46707pub unsafe trait ExtendsPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {}
46708/// Marker trait for structs that can appear in the pNext chain of
46709#[doc = concat!("[`", "PhysicalDeviceHdrVividFeaturesHUAWEI", "`].")]
46710///
46711/// # Safety
46712/// Implementors must be valid pNext chain members for the target struct.
46713pub unsafe trait ExtendsPhysicalDeviceHdrVividFeaturesHUAWEI {}
46714/// Marker trait for structs that can appear in the pNext chain of
46715#[doc = concat!("[`", "PhysicalDeviceHostImageCopyFeatures", "`].")]
46716///
46717/// # Safety
46718/// Implementors must be valid pNext chain members for the target struct.
46719pub unsafe trait ExtendsPhysicalDeviceHostImageCopyFeatures {}
46720/// Marker trait for structs that can appear in the pNext chain of
46721#[doc = concat!("[`", "PhysicalDeviceHostImageCopyProperties", "`].")]
46722///
46723/// # Safety
46724/// Implementors must be valid pNext chain members for the target struct.
46725pub unsafe trait ExtendsPhysicalDeviceHostImageCopyProperties {}
46726/// Marker trait for structs that can appear in the pNext chain of
46727#[doc = concat!("[`", "PhysicalDeviceHostQueryResetFeatures", "`].")]
46728///
46729/// # Safety
46730/// Implementors must be valid pNext chain members for the target struct.
46731pub unsafe trait ExtendsPhysicalDeviceHostQueryResetFeatures {}
46732/// Marker trait for structs that can appear in the pNext chain of
46733#[doc = concat!("[`", "PhysicalDeviceImage2DViewOf3DFeaturesEXT", "`].")]
46734///
46735/// # Safety
46736/// Implementors must be valid pNext chain members for the target struct.
46737pub unsafe trait ExtendsPhysicalDeviceImage2DViewOf3DFeaturesEXT {}
46738/// Marker trait for structs that can appear in the pNext chain of
46739#[doc = concat!("[`", "PhysicalDeviceImageAlignmentControlFeaturesMESA", "`].")]
46740///
46741/// # Safety
46742/// Implementors must be valid pNext chain members for the target struct.
46743pub unsafe trait ExtendsPhysicalDeviceImageAlignmentControlFeaturesMESA {}
46744/// Marker trait for structs that can appear in the pNext chain of
46745#[doc = concat!("[`", "PhysicalDeviceImageCompressionControlFeaturesEXT", "`].")]
46746///
46747/// # Safety
46748/// Implementors must be valid pNext chain members for the target struct.
46749pub unsafe trait ExtendsPhysicalDeviceImageCompressionControlFeaturesEXT {}
46750/// Marker trait for structs that can appear in the pNext chain of
46751#[doc = concat!(
46752    "[`", "PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", "`]."
46753)]
46754///
46755/// # Safety
46756/// Implementors must be valid pNext chain members for the target struct.
46757pub unsafe trait ExtendsPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {}
46758/// Marker trait for structs that can appear in the pNext chain of
46759#[doc = concat!("[`", "PhysicalDeviceImageDrmFormatModifierInfoEXT", "`].")]
46760///
46761/// # Safety
46762/// Implementors must be valid pNext chain members for the target struct.
46763pub unsafe trait ExtendsPhysicalDeviceImageDrmFormatModifierInfoEXT {}
46764/// Marker trait for structs that can appear in the pNext chain of
46765#[doc = concat!("[`", "PhysicalDeviceImageFormatInfo2", "`].")]
46766///
46767/// # Safety
46768/// Implementors must be valid pNext chain members for the target struct.
46769pub unsafe trait ExtendsPhysicalDeviceImageFormatInfo2 {}
46770/// Marker trait for structs that can appear in the pNext chain of
46771#[doc = concat!("[`", "PhysicalDeviceImageProcessing2FeaturesQCOM", "`].")]
46772///
46773/// # Safety
46774/// Implementors must be valid pNext chain members for the target struct.
46775pub unsafe trait ExtendsPhysicalDeviceImageProcessing2FeaturesQCOM {}
46776/// Marker trait for structs that can appear in the pNext chain of
46777#[doc = concat!("[`", "PhysicalDeviceImageProcessingFeaturesQCOM", "`].")]
46778///
46779/// # Safety
46780/// Implementors must be valid pNext chain members for the target struct.
46781pub unsafe trait ExtendsPhysicalDeviceImageProcessingFeaturesQCOM {}
46782/// Marker trait for structs that can appear in the pNext chain of
46783#[doc = concat!("[`", "PhysicalDeviceImageRobustnessFeatures", "`].")]
46784///
46785/// # Safety
46786/// Implementors must be valid pNext chain members for the target struct.
46787pub unsafe trait ExtendsPhysicalDeviceImageRobustnessFeatures {}
46788/// Marker trait for structs that can appear in the pNext chain of
46789#[doc = concat!("[`", "PhysicalDeviceImageSlicedViewOf3DFeaturesEXT", "`].")]
46790///
46791/// # Safety
46792/// Implementors must be valid pNext chain members for the target struct.
46793pub unsafe trait ExtendsPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {}
46794/// Marker trait for structs that can appear in the pNext chain of
46795#[doc = concat!("[`", "PhysicalDeviceImageViewImageFormatInfoEXT", "`].")]
46796///
46797/// # Safety
46798/// Implementors must be valid pNext chain members for the target struct.
46799pub unsafe trait ExtendsPhysicalDeviceImageViewImageFormatInfoEXT {}
46800/// Marker trait for structs that can appear in the pNext chain of
46801#[doc = concat!("[`", "PhysicalDeviceImageViewMinLodFeaturesEXT", "`].")]
46802///
46803/// # Safety
46804/// Implementors must be valid pNext chain members for the target struct.
46805pub unsafe trait ExtendsPhysicalDeviceImageViewMinLodFeaturesEXT {}
46806/// Marker trait for structs that can appear in the pNext chain of
46807#[doc = concat!("[`", "PhysicalDeviceImagelessFramebufferFeatures", "`].")]
46808///
46809/// # Safety
46810/// Implementors must be valid pNext chain members for the target struct.
46811pub unsafe trait ExtendsPhysicalDeviceImagelessFramebufferFeatures {}
46812/// Marker trait for structs that can appear in the pNext chain of
46813#[doc = concat!("[`", "PhysicalDeviceIndexTypeUint8Features", "`].")]
46814///
46815/// # Safety
46816/// Implementors must be valid pNext chain members for the target struct.
46817pub unsafe trait ExtendsPhysicalDeviceIndexTypeUint8Features {}
46818/// Marker trait for structs that can appear in the pNext chain of
46819#[doc = concat!("[`", "PhysicalDeviceInheritedViewportScissorFeaturesNV", "`].")]
46820///
46821/// # Safety
46822/// Implementors must be valid pNext chain members for the target struct.
46823pub unsafe trait ExtendsPhysicalDeviceInheritedViewportScissorFeaturesNV {}
46824/// Marker trait for structs that can appear in the pNext chain of
46825#[doc = concat!("[`", "PhysicalDeviceInlineUniformBlockFeatures", "`].")]
46826///
46827/// # Safety
46828/// Implementors must be valid pNext chain members for the target struct.
46829pub unsafe trait ExtendsPhysicalDeviceInlineUniformBlockFeatures {}
46830/// Marker trait for structs that can appear in the pNext chain of
46831#[doc = concat!("[`", "PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR", "`].")]
46832///
46833/// # Safety
46834/// Implementors must be valid pNext chain members for the target struct.
46835pub unsafe trait ExtendsPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {}
46836/// Marker trait for structs that can appear in the pNext chain of
46837#[doc = concat!("[`", "PhysicalDeviceInvocationMaskFeaturesHUAWEI", "`].")]
46838///
46839/// # Safety
46840/// Implementors must be valid pNext chain members for the target struct.
46841pub unsafe trait ExtendsPhysicalDeviceInvocationMaskFeaturesHUAWEI {}
46842/// Marker trait for structs that can appear in the pNext chain of
46843#[doc = concat!("[`", "PhysicalDeviceLayeredApiPropertiesKHR", "`].")]
46844///
46845/// # Safety
46846/// Implementors must be valid pNext chain members for the target struct.
46847pub unsafe trait ExtendsPhysicalDeviceLayeredApiPropertiesKHR {}
46848/// Marker trait for structs that can appear in the pNext chain of
46849#[doc = concat!("[`", "PhysicalDeviceLayeredApiPropertiesListKHR", "`].")]
46850///
46851/// # Safety
46852/// Implementors must be valid pNext chain members for the target struct.
46853pub unsafe trait ExtendsPhysicalDeviceLayeredApiPropertiesListKHR {}
46854/// Marker trait for structs that can appear in the pNext chain of
46855#[doc = concat!("[`", "PhysicalDeviceLegacyDitheringFeaturesEXT", "`].")]
46856///
46857/// # Safety
46858/// Implementors must be valid pNext chain members for the target struct.
46859pub unsafe trait ExtendsPhysicalDeviceLegacyDitheringFeaturesEXT {}
46860/// Marker trait for structs that can appear in the pNext chain of
46861#[doc = concat!("[`", "PhysicalDeviceLegacyVertexAttributesFeaturesEXT", "`].")]
46862///
46863/// # Safety
46864/// Implementors must be valid pNext chain members for the target struct.
46865pub unsafe trait ExtendsPhysicalDeviceLegacyVertexAttributesFeaturesEXT {}
46866/// Marker trait for structs that can appear in the pNext chain of
46867#[doc = concat!("[`", "PhysicalDeviceLineRasterizationFeatures", "`].")]
46868///
46869/// # Safety
46870/// Implementors must be valid pNext chain members for the target struct.
46871pub unsafe trait ExtendsPhysicalDeviceLineRasterizationFeatures {}
46872/// Marker trait for structs that can appear in the pNext chain of
46873#[doc = concat!("[`", "PhysicalDeviceLinearColorAttachmentFeaturesNV", "`].")]
46874///
46875/// # Safety
46876/// Implementors must be valid pNext chain members for the target struct.
46877pub unsafe trait ExtendsPhysicalDeviceLinearColorAttachmentFeaturesNV {}
46878/// Marker trait for structs that can appear in the pNext chain of
46879#[doc = concat!("[`", "PhysicalDeviceMaintenance10FeaturesKHR", "`].")]
46880///
46881/// # Safety
46882/// Implementors must be valid pNext chain members for the target struct.
46883pub unsafe trait ExtendsPhysicalDeviceMaintenance10FeaturesKHR {}
46884/// Marker trait for structs that can appear in the pNext chain of
46885#[doc = concat!("[`", "PhysicalDeviceMaintenance4Features", "`].")]
46886///
46887/// # Safety
46888/// Implementors must be valid pNext chain members for the target struct.
46889pub unsafe trait ExtendsPhysicalDeviceMaintenance4Features {}
46890/// Marker trait for structs that can appear in the pNext chain of
46891#[doc = concat!("[`", "PhysicalDeviceMaintenance5Features", "`].")]
46892///
46893/// # Safety
46894/// Implementors must be valid pNext chain members for the target struct.
46895pub unsafe trait ExtendsPhysicalDeviceMaintenance5Features {}
46896/// Marker trait for structs that can appear in the pNext chain of
46897#[doc = concat!("[`", "PhysicalDeviceMaintenance6Features", "`].")]
46898///
46899/// # Safety
46900/// Implementors must be valid pNext chain members for the target struct.
46901pub unsafe trait ExtendsPhysicalDeviceMaintenance6Features {}
46902/// Marker trait for structs that can appear in the pNext chain of
46903#[doc = concat!("[`", "PhysicalDeviceMaintenance7FeaturesKHR", "`].")]
46904///
46905/// # Safety
46906/// Implementors must be valid pNext chain members for the target struct.
46907pub unsafe trait ExtendsPhysicalDeviceMaintenance7FeaturesKHR {}
46908/// Marker trait for structs that can appear in the pNext chain of
46909#[doc = concat!("[`", "PhysicalDeviceMaintenance8FeaturesKHR", "`].")]
46910///
46911/// # Safety
46912/// Implementors must be valid pNext chain members for the target struct.
46913pub unsafe trait ExtendsPhysicalDeviceMaintenance8FeaturesKHR {}
46914/// Marker trait for structs that can appear in the pNext chain of
46915#[doc = concat!("[`", "PhysicalDeviceMaintenance9FeaturesKHR", "`].")]
46916///
46917/// # Safety
46918/// Implementors must be valid pNext chain members for the target struct.
46919pub unsafe trait ExtendsPhysicalDeviceMaintenance9FeaturesKHR {}
46920/// Marker trait for structs that can appear in the pNext chain of
46921#[doc = concat!("[`", "PhysicalDeviceMapMemoryPlacedFeaturesEXT", "`].")]
46922///
46923/// # Safety
46924/// Implementors must be valid pNext chain members for the target struct.
46925pub unsafe trait ExtendsPhysicalDeviceMapMemoryPlacedFeaturesEXT {}
46926/// Marker trait for structs that can appear in the pNext chain of
46927#[doc = concat!("[`", "PhysicalDeviceMemoryDecompressionFeaturesEXT", "`].")]
46928///
46929/// # Safety
46930/// Implementors must be valid pNext chain members for the target struct.
46931pub unsafe trait ExtendsPhysicalDeviceMemoryDecompressionFeaturesEXT {}
46932/// Marker trait for structs that can appear in the pNext chain of
46933#[doc = concat!("[`", "PhysicalDeviceMemoryPriorityFeaturesEXT", "`].")]
46934///
46935/// # Safety
46936/// Implementors must be valid pNext chain members for the target struct.
46937pub unsafe trait ExtendsPhysicalDeviceMemoryPriorityFeaturesEXT {}
46938/// Marker trait for structs that can appear in the pNext chain of
46939#[doc = concat!("[`", "PhysicalDeviceMemoryProperties2", "`].")]
46940///
46941/// # Safety
46942/// Implementors must be valid pNext chain members for the target struct.
46943pub unsafe trait ExtendsPhysicalDeviceMemoryProperties2 {}
46944/// Marker trait for structs that can appear in the pNext chain of
46945#[doc = concat!("[`", "PhysicalDeviceMeshShaderFeaturesEXT", "`].")]
46946///
46947/// # Safety
46948/// Implementors must be valid pNext chain members for the target struct.
46949pub unsafe trait ExtendsPhysicalDeviceMeshShaderFeaturesEXT {}
46950/// Marker trait for structs that can appear in the pNext chain of
46951#[doc = concat!("[`", "PhysicalDeviceMeshShaderFeaturesNV", "`].")]
46952///
46953/// # Safety
46954/// Implementors must be valid pNext chain members for the target struct.
46955pub unsafe trait ExtendsPhysicalDeviceMeshShaderFeaturesNV {}
46956/// Marker trait for structs that can appear in the pNext chain of
46957#[doc = concat!("[`", "PhysicalDeviceMultiDrawFeaturesEXT", "`].")]
46958///
46959/// # Safety
46960/// Implementors must be valid pNext chain members for the target struct.
46961pub unsafe trait ExtendsPhysicalDeviceMultiDrawFeaturesEXT {}
46962/// Marker trait for structs that can appear in the pNext chain of
46963#[doc = concat!(
46964    "[`", "PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", "`]."
46965)]
46966///
46967/// # Safety
46968/// Implementors must be valid pNext chain members for the target struct.
46969pub unsafe trait ExtendsPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {}
46970/// Marker trait for structs that can appear in the pNext chain of
46971#[doc = concat!("[`", "PhysicalDeviceMultiviewFeatures", "`].")]
46972///
46973/// # Safety
46974/// Implementors must be valid pNext chain members for the target struct.
46975pub unsafe trait ExtendsPhysicalDeviceMultiviewFeatures {}
46976/// Marker trait for structs that can appear in the pNext chain of
46977#[doc = concat!("[`", "PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM", "`].")]
46978///
46979/// # Safety
46980/// Implementors must be valid pNext chain members for the target struct.
46981pub unsafe trait ExtendsPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {}
46982/// Marker trait for structs that can appear in the pNext chain of
46983#[doc = concat!("[`", "PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM", "`].")]
46984///
46985/// # Safety
46986/// Implementors must be valid pNext chain members for the target struct.
46987pub unsafe trait ExtendsPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {}
46988/// Marker trait for structs that can appear in the pNext chain of
46989#[doc = concat!("[`", "PhysicalDeviceMutableDescriptorTypeFeaturesEXT", "`].")]
46990///
46991/// # Safety
46992/// Implementors must be valid pNext chain members for the target struct.
46993pub unsafe trait ExtendsPhysicalDeviceMutableDescriptorTypeFeaturesEXT {}
46994/// Marker trait for structs that can appear in the pNext chain of
46995#[doc = concat!("[`", "PhysicalDeviceNestedCommandBufferFeaturesEXT", "`].")]
46996///
46997/// # Safety
46998/// Implementors must be valid pNext chain members for the target struct.
46999pub unsafe trait ExtendsPhysicalDeviceNestedCommandBufferFeaturesEXT {}
47000/// Marker trait for structs that can appear in the pNext chain of
47001#[doc = concat!("[`", "PhysicalDeviceNonSeamlessCubeMapFeaturesEXT", "`].")]
47002///
47003/// # Safety
47004/// Implementors must be valid pNext chain members for the target struct.
47005pub unsafe trait ExtendsPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {}
47006/// Marker trait for structs that can appear in the pNext chain of
47007#[doc = concat!("[`", "PhysicalDeviceOpacityMicromapFeaturesEXT", "`].")]
47008///
47009/// # Safety
47010/// Implementors must be valid pNext chain members for the target struct.
47011pub unsafe trait ExtendsPhysicalDeviceOpacityMicromapFeaturesEXT {}
47012/// Marker trait for structs that can appear in the pNext chain of
47013#[doc = concat!("[`", "PhysicalDeviceOpticalFlowFeaturesNV", "`].")]
47014///
47015/// # Safety
47016/// Implementors must be valid pNext chain members for the target struct.
47017pub unsafe trait ExtendsPhysicalDeviceOpticalFlowFeaturesNV {}
47018/// Marker trait for structs that can appear in the pNext chain of
47019#[doc = concat!("[`", "PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", "`].")]
47020///
47021/// # Safety
47022/// Implementors must be valid pNext chain members for the target struct.
47023pub unsafe trait ExtendsPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {}
47024/// Marker trait for structs that can appear in the pNext chain of
47025#[doc = concat!("[`", "PhysicalDevicePartitionedAccelerationStructureFeaturesNV", "`].")]
47026///
47027/// # Safety
47028/// Implementors must be valid pNext chain members for the target struct.
47029pub unsafe trait ExtendsPhysicalDevicePartitionedAccelerationStructureFeaturesNV {}
47030/// Marker trait for structs that can appear in the pNext chain of
47031#[doc = concat!("[`", "PhysicalDevicePerStageDescriptorSetFeaturesNV", "`].")]
47032///
47033/// # Safety
47034/// Implementors must be valid pNext chain members for the target struct.
47035pub unsafe trait ExtendsPhysicalDevicePerStageDescriptorSetFeaturesNV {}
47036/// Marker trait for structs that can appear in the pNext chain of
47037#[doc = concat!("[`", "PhysicalDevicePerformanceCountersByRegionFeaturesARM", "`].")]
47038///
47039/// # Safety
47040/// Implementors must be valid pNext chain members for the target struct.
47041pub unsafe trait ExtendsPhysicalDevicePerformanceCountersByRegionFeaturesARM {}
47042/// Marker trait for structs that can appear in the pNext chain of
47043#[doc = concat!("[`", "PhysicalDevicePerformanceQueryFeaturesKHR", "`].")]
47044///
47045/// # Safety
47046/// Implementors must be valid pNext chain members for the target struct.
47047pub unsafe trait ExtendsPhysicalDevicePerformanceQueryFeaturesKHR {}
47048/// Marker trait for structs that can appear in the pNext chain of
47049#[doc = concat!("[`", "PhysicalDevicePipelineBinaryFeaturesKHR", "`].")]
47050///
47051/// # Safety
47052/// Implementors must be valid pNext chain members for the target struct.
47053pub unsafe trait ExtendsPhysicalDevicePipelineBinaryFeaturesKHR {}
47054/// Marker trait for structs that can appear in the pNext chain of
47055#[doc = concat!("[`", "PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC", "`].")]
47056///
47057/// # Safety
47058/// Implementors must be valid pNext chain members for the target struct.
47059pub unsafe trait ExtendsPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {}
47060/// Marker trait for structs that can appear in the pNext chain of
47061#[doc = concat!("[`", "PhysicalDevicePipelineCreationCacheControlFeatures", "`].")]
47062///
47063/// # Safety
47064/// Implementors must be valid pNext chain members for the target struct.
47065pub unsafe trait ExtendsPhysicalDevicePipelineCreationCacheControlFeatures {}
47066/// Marker trait for structs that can appear in the pNext chain of
47067#[doc = concat!("[`", "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR", "`].")]
47068///
47069/// # Safety
47070/// Implementors must be valid pNext chain members for the target struct.
47071pub unsafe trait ExtendsPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {}
47072/// Marker trait for structs that can appear in the pNext chain of
47073#[doc = concat!("[`", "PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT", "`].")]
47074///
47075/// # Safety
47076/// Implementors must be valid pNext chain members for the target struct.
47077pub unsafe trait ExtendsPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {}
47078/// Marker trait for structs that can appear in the pNext chain of
47079#[doc = concat!("[`", "PhysicalDevicePipelineOpacityMicromapFeaturesARM", "`].")]
47080///
47081/// # Safety
47082/// Implementors must be valid pNext chain members for the target struct.
47083pub unsafe trait ExtendsPhysicalDevicePipelineOpacityMicromapFeaturesARM {}
47084/// Marker trait for structs that can appear in the pNext chain of
47085#[doc = concat!("[`", "PhysicalDevicePipelinePropertiesFeaturesEXT", "`].")]
47086///
47087/// # Safety
47088/// Implementors must be valid pNext chain members for the target struct.
47089pub unsafe trait ExtendsPhysicalDevicePipelinePropertiesFeaturesEXT {}
47090/// Marker trait for structs that can appear in the pNext chain of
47091#[doc = concat!("[`", "PhysicalDevicePipelineProtectedAccessFeatures", "`].")]
47092///
47093/// # Safety
47094/// Implementors must be valid pNext chain members for the target struct.
47095pub unsafe trait ExtendsPhysicalDevicePipelineProtectedAccessFeatures {}
47096/// Marker trait for structs that can appear in the pNext chain of
47097#[doc = concat!("[`", "PhysicalDevicePipelineRobustnessFeatures", "`].")]
47098///
47099/// # Safety
47100/// Implementors must be valid pNext chain members for the target struct.
47101pub unsafe trait ExtendsPhysicalDevicePipelineRobustnessFeatures {}
47102/// Marker trait for structs that can appear in the pNext chain of
47103#[doc = concat!("[`", "PhysicalDevicePortabilitySubsetFeaturesKHR", "`].")]
47104///
47105/// # Safety
47106/// Implementors must be valid pNext chain members for the target struct.
47107pub unsafe trait ExtendsPhysicalDevicePortabilitySubsetFeaturesKHR {}
47108/// Marker trait for structs that can appear in the pNext chain of
47109#[doc = concat!("[`", "PhysicalDevicePresentBarrierFeaturesNV", "`].")]
47110///
47111/// # Safety
47112/// Implementors must be valid pNext chain members for the target struct.
47113pub unsafe trait ExtendsPhysicalDevicePresentBarrierFeaturesNV {}
47114/// Marker trait for structs that can appear in the pNext chain of
47115#[doc = concat!("[`", "PhysicalDevicePresentId2FeaturesKHR", "`].")]
47116///
47117/// # Safety
47118/// Implementors must be valid pNext chain members for the target struct.
47119pub unsafe trait ExtendsPhysicalDevicePresentId2FeaturesKHR {}
47120/// Marker trait for structs that can appear in the pNext chain of
47121#[doc = concat!("[`", "PhysicalDevicePresentIdFeaturesKHR", "`].")]
47122///
47123/// # Safety
47124/// Implementors must be valid pNext chain members for the target struct.
47125pub unsafe trait ExtendsPhysicalDevicePresentIdFeaturesKHR {}
47126/// Marker trait for structs that can appear in the pNext chain of
47127#[doc = concat!("[`", "PhysicalDevicePresentMeteringFeaturesNV", "`].")]
47128///
47129/// # Safety
47130/// Implementors must be valid pNext chain members for the target struct.
47131pub unsafe trait ExtendsPhysicalDevicePresentMeteringFeaturesNV {}
47132/// Marker trait for structs that can appear in the pNext chain of
47133#[doc = concat!("[`", "PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR", "`].")]
47134///
47135/// # Safety
47136/// Implementors must be valid pNext chain members for the target struct.
47137pub unsafe trait ExtendsPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {}
47138/// Marker trait for structs that can appear in the pNext chain of
47139#[doc = concat!("[`", "PhysicalDevicePresentTimingFeaturesEXT", "`].")]
47140///
47141/// # Safety
47142/// Implementors must be valid pNext chain members for the target struct.
47143pub unsafe trait ExtendsPhysicalDevicePresentTimingFeaturesEXT {}
47144/// Marker trait for structs that can appear in the pNext chain of
47145#[doc = concat!("[`", "PhysicalDevicePresentWait2FeaturesKHR", "`].")]
47146///
47147/// # Safety
47148/// Implementors must be valid pNext chain members for the target struct.
47149pub unsafe trait ExtendsPhysicalDevicePresentWait2FeaturesKHR {}
47150/// Marker trait for structs that can appear in the pNext chain of
47151#[doc = concat!("[`", "PhysicalDevicePresentWaitFeaturesKHR", "`].")]
47152///
47153/// # Safety
47154/// Implementors must be valid pNext chain members for the target struct.
47155pub unsafe trait ExtendsPhysicalDevicePresentWaitFeaturesKHR {}
47156/// Marker trait for structs that can appear in the pNext chain of
47157#[doc = concat!("[`", "PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", "`].")]
47158///
47159/// # Safety
47160/// Implementors must be valid pNext chain members for the target struct.
47161pub unsafe trait ExtendsPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {}
47162/// Marker trait for structs that can appear in the pNext chain of
47163#[doc = concat!("[`", "PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", "`].")]
47164///
47165/// # Safety
47166/// Implementors must be valid pNext chain members for the target struct.
47167pub unsafe trait ExtendsPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {}
47168/// Marker trait for structs that can appear in the pNext chain of
47169#[doc = concat!("[`", "PhysicalDevicePrivateDataFeatures", "`].")]
47170///
47171/// # Safety
47172/// Implementors must be valid pNext chain members for the target struct.
47173pub unsafe trait ExtendsPhysicalDevicePrivateDataFeatures {}
47174/// Marker trait for structs that can appear in the pNext chain of
47175#[doc = concat!("[`", "PhysicalDeviceProperties2", "`].")]
47176///
47177/// # Safety
47178/// Implementors must be valid pNext chain members for the target struct.
47179pub unsafe trait ExtendsPhysicalDeviceProperties2 {}
47180/// Marker trait for structs that can appear in the pNext chain of
47181#[doc = concat!("[`", "PhysicalDeviceProtectedMemoryFeatures", "`].")]
47182///
47183/// # Safety
47184/// Implementors must be valid pNext chain members for the target struct.
47185pub unsafe trait ExtendsPhysicalDeviceProtectedMemoryFeatures {}
47186/// Marker trait for structs that can appear in the pNext chain of
47187#[doc = concat!("[`", "PhysicalDeviceProvokingVertexFeaturesEXT", "`].")]
47188///
47189/// # Safety
47190/// Implementors must be valid pNext chain members for the target struct.
47191pub unsafe trait ExtendsPhysicalDeviceProvokingVertexFeaturesEXT {}
47192/// Marker trait for structs that can appear in the pNext chain of
47193#[doc = concat!("[`", "PhysicalDevicePushConstantBankFeaturesNV", "`].")]
47194///
47195/// # Safety
47196/// Implementors must be valid pNext chain members for the target struct.
47197pub unsafe trait ExtendsPhysicalDevicePushConstantBankFeaturesNV {}
47198/// Marker trait for structs that can appear in the pNext chain of
47199#[doc = concat!(
47200    "[`", "PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM", "`]."
47201)]
47202///
47203/// # Safety
47204/// Implementors must be valid pNext chain members for the target struct.
47205pub unsafe trait ExtendsPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {}
47206/// Marker trait for structs that can appear in the pNext chain of
47207#[doc = concat!("[`", "PhysicalDeviceRGBA10X6FormatsFeaturesEXT", "`].")]
47208///
47209/// # Safety
47210/// Implementors must be valid pNext chain members for the target struct.
47211pub unsafe trait ExtendsPhysicalDeviceRGBA10X6FormatsFeaturesEXT {}
47212/// Marker trait for structs that can appear in the pNext chain of
47213#[doc = concat!(
47214    "[`", "PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT", "`]."
47215)]
47216///
47217/// # Safety
47218/// Implementors must be valid pNext chain members for the target struct.
47219pub unsafe trait ExtendsPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {}
47220/// Marker trait for structs that can appear in the pNext chain of
47221#[doc = concat!("[`", "PhysicalDeviceRawAccessChainsFeaturesNV", "`].")]
47222///
47223/// # Safety
47224/// Implementors must be valid pNext chain members for the target struct.
47225pub unsafe trait ExtendsPhysicalDeviceRawAccessChainsFeaturesNV {}
47226/// Marker trait for structs that can appear in the pNext chain of
47227#[doc = concat!("[`", "PhysicalDeviceRayQueryFeaturesKHR", "`].")]
47228///
47229/// # Safety
47230/// Implementors must be valid pNext chain members for the target struct.
47231pub unsafe trait ExtendsPhysicalDeviceRayQueryFeaturesKHR {}
47232/// Marker trait for structs that can appear in the pNext chain of
47233#[doc = concat!("[`", "PhysicalDeviceRayTracingInvocationReorderFeaturesEXT", "`].")]
47234///
47235/// # Safety
47236/// Implementors must be valid pNext chain members for the target struct.
47237pub unsafe trait ExtendsPhysicalDeviceRayTracingInvocationReorderFeaturesEXT {}
47238/// Marker trait for structs that can appear in the pNext chain of
47239#[doc = concat!("[`", "PhysicalDeviceRayTracingInvocationReorderFeaturesNV", "`].")]
47240///
47241/// # Safety
47242/// Implementors must be valid pNext chain members for the target struct.
47243pub unsafe trait ExtendsPhysicalDeviceRayTracingInvocationReorderFeaturesNV {}
47244/// Marker trait for structs that can appear in the pNext chain of
47245#[doc = concat!("[`", "PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV", "`].")]
47246///
47247/// # Safety
47248/// Implementors must be valid pNext chain members for the target struct.
47249pub unsafe trait ExtendsPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {}
47250/// Marker trait for structs that can appear in the pNext chain of
47251#[doc = concat!("[`", "PhysicalDeviceRayTracingMaintenance1FeaturesKHR", "`].")]
47252///
47253/// # Safety
47254/// Implementors must be valid pNext chain members for the target struct.
47255pub unsafe trait ExtendsPhysicalDeviceRayTracingMaintenance1FeaturesKHR {}
47256/// Marker trait for structs that can appear in the pNext chain of
47257#[doc = concat!("[`", "PhysicalDeviceRayTracingMotionBlurFeaturesNV", "`].")]
47258///
47259/// # Safety
47260/// Implementors must be valid pNext chain members for the target struct.
47261pub unsafe trait ExtendsPhysicalDeviceRayTracingMotionBlurFeaturesNV {}
47262/// Marker trait for structs that can appear in the pNext chain of
47263#[doc = concat!("[`", "PhysicalDeviceRayTracingPipelineFeaturesKHR", "`].")]
47264///
47265/// # Safety
47266/// Implementors must be valid pNext chain members for the target struct.
47267pub unsafe trait ExtendsPhysicalDeviceRayTracingPipelineFeaturesKHR {}
47268/// Marker trait for structs that can appear in the pNext chain of
47269#[doc = concat!("[`", "PhysicalDeviceRayTracingPositionFetchFeaturesKHR", "`].")]
47270///
47271/// # Safety
47272/// Implementors must be valid pNext chain members for the target struct.
47273pub unsafe trait ExtendsPhysicalDeviceRayTracingPositionFetchFeaturesKHR {}
47274/// Marker trait for structs that can appear in the pNext chain of
47275#[doc = concat!("[`", "PhysicalDeviceRayTracingValidationFeaturesNV", "`].")]
47276///
47277/// # Safety
47278/// Implementors must be valid pNext chain members for the target struct.
47279pub unsafe trait ExtendsPhysicalDeviceRayTracingValidationFeaturesNV {}
47280/// Marker trait for structs that can appear in the pNext chain of
47281#[doc = concat!("[`", "PhysicalDeviceRelaxedLineRasterizationFeaturesIMG", "`].")]
47282///
47283/// # Safety
47284/// Implementors must be valid pNext chain members for the target struct.
47285pub unsafe trait ExtendsPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {}
47286/// Marker trait for structs that can appear in the pNext chain of
47287#[doc = concat!("[`", "PhysicalDeviceRenderPassStripedFeaturesARM", "`].")]
47288///
47289/// # Safety
47290/// Implementors must be valid pNext chain members for the target struct.
47291pub unsafe trait ExtendsPhysicalDeviceRenderPassStripedFeaturesARM {}
47292/// Marker trait for structs that can appear in the pNext chain of
47293#[doc = concat!("[`", "PhysicalDeviceRepresentativeFragmentTestFeaturesNV", "`].")]
47294///
47295/// # Safety
47296/// Implementors must be valid pNext chain members for the target struct.
47297pub unsafe trait ExtendsPhysicalDeviceRepresentativeFragmentTestFeaturesNV {}
47298/// Marker trait for structs that can appear in the pNext chain of
47299#[doc = concat!("[`", "PhysicalDeviceRobustness2FeaturesKHR", "`].")]
47300///
47301/// # Safety
47302/// Implementors must be valid pNext chain members for the target struct.
47303pub unsafe trait ExtendsPhysicalDeviceRobustness2FeaturesKHR {}
47304/// Marker trait for structs that can appear in the pNext chain of
47305#[doc = concat!("[`", "PhysicalDeviceSamplerYcbcrConversionFeatures", "`].")]
47306///
47307/// # Safety
47308/// Implementors must be valid pNext chain members for the target struct.
47309pub unsafe trait ExtendsPhysicalDeviceSamplerYcbcrConversionFeatures {}
47310/// Marker trait for structs that can appear in the pNext chain of
47311#[doc = concat!("[`", "PhysicalDeviceScalarBlockLayoutFeatures", "`].")]
47312///
47313/// # Safety
47314/// Implementors must be valid pNext chain members for the target struct.
47315pub unsafe trait ExtendsPhysicalDeviceScalarBlockLayoutFeatures {}
47316/// Marker trait for structs that can appear in the pNext chain of
47317#[doc = concat!("[`", "PhysicalDeviceSchedulingControlsFeaturesARM", "`].")]
47318///
47319/// # Safety
47320/// Implementors must be valid pNext chain members for the target struct.
47321pub unsafe trait ExtendsPhysicalDeviceSchedulingControlsFeaturesARM {}
47322/// Marker trait for structs that can appear in the pNext chain of
47323#[doc = concat!("[`", "PhysicalDeviceSeparateDepthStencilLayoutsFeatures", "`].")]
47324///
47325/// # Safety
47326/// Implementors must be valid pNext chain members for the target struct.
47327pub unsafe trait ExtendsPhysicalDeviceSeparateDepthStencilLayoutsFeatures {}
47328/// Marker trait for structs that can appear in the pNext chain of
47329#[doc = concat!("[`", "PhysicalDeviceShader64BitIndexingFeaturesEXT", "`].")]
47330///
47331/// # Safety
47332/// Implementors must be valid pNext chain members for the target struct.
47333pub unsafe trait ExtendsPhysicalDeviceShader64BitIndexingFeaturesEXT {}
47334/// Marker trait for structs that can appear in the pNext chain of
47335#[doc = concat!("[`", "PhysicalDeviceShaderAbortFeaturesKHR", "`].")]
47336///
47337/// # Safety
47338/// Implementors must be valid pNext chain members for the target struct.
47339pub unsafe trait ExtendsPhysicalDeviceShaderAbortFeaturesKHR {}
47340/// Marker trait for structs that can appear in the pNext chain of
47341#[doc = concat!("[`", "PhysicalDeviceShaderAbortPropertiesKHR", "`].")]
47342///
47343/// # Safety
47344/// Implementors must be valid pNext chain members for the target struct.
47345pub unsafe trait ExtendsPhysicalDeviceShaderAbortPropertiesKHR {}
47346/// Marker trait for structs that can appear in the pNext chain of
47347#[doc = concat!("[`", "PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV", "`].")]
47348///
47349/// # Safety
47350/// Implementors must be valid pNext chain members for the target struct.
47351pub unsafe trait ExtendsPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {}
47352/// Marker trait for structs that can appear in the pNext chain of
47353#[doc = concat!("[`", "PhysicalDeviceShaderAtomicFloat2FeaturesEXT", "`].")]
47354///
47355/// # Safety
47356/// Implementors must be valid pNext chain members for the target struct.
47357pub unsafe trait ExtendsPhysicalDeviceShaderAtomicFloat2FeaturesEXT {}
47358/// Marker trait for structs that can appear in the pNext chain of
47359#[doc = concat!("[`", "PhysicalDeviceShaderAtomicFloatFeaturesEXT", "`].")]
47360///
47361/// # Safety
47362/// Implementors must be valid pNext chain members for the target struct.
47363pub unsafe trait ExtendsPhysicalDeviceShaderAtomicFloatFeaturesEXT {}
47364/// Marker trait for structs that can appear in the pNext chain of
47365#[doc = concat!("[`", "PhysicalDeviceShaderAtomicInt64Features", "`].")]
47366///
47367/// # Safety
47368/// Implementors must be valid pNext chain members for the target struct.
47369pub unsafe trait ExtendsPhysicalDeviceShaderAtomicInt64Features {}
47370/// Marker trait for structs that can appear in the pNext chain of
47371#[doc = concat!("[`", "PhysicalDeviceShaderBfloat16FeaturesKHR", "`].")]
47372///
47373/// # Safety
47374/// Implementors must be valid pNext chain members for the target struct.
47375pub unsafe trait ExtendsPhysicalDeviceShaderBfloat16FeaturesKHR {}
47376/// Marker trait for structs that can appear in the pNext chain of
47377#[doc = concat!("[`", "PhysicalDeviceShaderClockFeaturesKHR", "`].")]
47378///
47379/// # Safety
47380/// Implementors must be valid pNext chain members for the target struct.
47381pub unsafe trait ExtendsPhysicalDeviceShaderClockFeaturesKHR {}
47382/// Marker trait for structs that can appear in the pNext chain of
47383#[doc = concat!("[`", "PhysicalDeviceShaderConstantDataFeaturesKHR", "`].")]
47384///
47385/// # Safety
47386/// Implementors must be valid pNext chain members for the target struct.
47387pub unsafe trait ExtendsPhysicalDeviceShaderConstantDataFeaturesKHR {}
47388/// Marker trait for structs that can appear in the pNext chain of
47389#[doc = concat!("[`", "PhysicalDeviceShaderCoreBuiltinsFeaturesARM", "`].")]
47390///
47391/// # Safety
47392/// Implementors must be valid pNext chain members for the target struct.
47393pub unsafe trait ExtendsPhysicalDeviceShaderCoreBuiltinsFeaturesARM {}
47394/// Marker trait for structs that can appear in the pNext chain of
47395#[doc = concat!("[`", "PhysicalDeviceShaderDemoteToHelperInvocationFeatures", "`].")]
47396///
47397/// # Safety
47398/// Implementors must be valid pNext chain members for the target struct.
47399pub unsafe trait ExtendsPhysicalDeviceShaderDemoteToHelperInvocationFeatures {}
47400/// Marker trait for structs that can appear in the pNext chain of
47401#[doc = concat!("[`", "PhysicalDeviceShaderDrawParametersFeatures", "`].")]
47402///
47403/// # Safety
47404/// Implementors must be valid pNext chain members for the target struct.
47405pub unsafe trait ExtendsPhysicalDeviceShaderDrawParametersFeatures {}
47406/// Marker trait for structs that can appear in the pNext chain of
47407#[doc = concat!("[`", "PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD", "`].")]
47408///
47409/// # Safety
47410/// Implementors must be valid pNext chain members for the target struct.
47411pub unsafe trait ExtendsPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {}
47412/// Marker trait for structs that can appear in the pNext chain of
47413#[doc = concat!("[`", "PhysicalDeviceShaderEnqueueFeaturesAMDX", "`].")]
47414///
47415/// # Safety
47416/// Implementors must be valid pNext chain members for the target struct.
47417pub unsafe trait ExtendsPhysicalDeviceShaderEnqueueFeaturesAMDX {}
47418/// Marker trait for structs that can appear in the pNext chain of
47419#[doc = concat!("[`", "PhysicalDeviceShaderExpectAssumeFeatures", "`].")]
47420///
47421/// # Safety
47422/// Implementors must be valid pNext chain members for the target struct.
47423pub unsafe trait ExtendsPhysicalDeviceShaderExpectAssumeFeatures {}
47424/// Marker trait for structs that can appear in the pNext chain of
47425#[doc = concat!("[`", "PhysicalDeviceShaderFloat16Int8Features", "`].")]
47426///
47427/// # Safety
47428/// Implementors must be valid pNext chain members for the target struct.
47429pub unsafe trait ExtendsPhysicalDeviceShaderFloat16Int8Features {}
47430/// Marker trait for structs that can appear in the pNext chain of
47431#[doc = concat!("[`", "PhysicalDeviceShaderFloat8FeaturesEXT", "`].")]
47432///
47433/// # Safety
47434/// Implementors must be valid pNext chain members for the target struct.
47435pub unsafe trait ExtendsPhysicalDeviceShaderFloat8FeaturesEXT {}
47436/// Marker trait for structs that can appear in the pNext chain of
47437#[doc = concat!("[`", "PhysicalDeviceShaderFloatControls2Features", "`].")]
47438///
47439/// # Safety
47440/// Implementors must be valid pNext chain members for the target struct.
47441pub unsafe trait ExtendsPhysicalDeviceShaderFloatControls2Features {}
47442/// Marker trait for structs that can appear in the pNext chain of
47443#[doc = concat!("[`", "PhysicalDeviceShaderFmaFeaturesKHR", "`].")]
47444///
47445/// # Safety
47446/// Implementors must be valid pNext chain members for the target struct.
47447pub unsafe trait ExtendsPhysicalDeviceShaderFmaFeaturesKHR {}
47448/// Marker trait for structs that can appear in the pNext chain of
47449#[doc = concat!("[`", "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT", "`].")]
47450///
47451/// # Safety
47452/// Implementors must be valid pNext chain members for the target struct.
47453pub unsafe trait ExtendsPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {}
47454/// Marker trait for structs that can appear in the pNext chain of
47455#[doc = concat!("[`", "PhysicalDeviceShaderImageFootprintFeaturesNV", "`].")]
47456///
47457/// # Safety
47458/// Implementors must be valid pNext chain members for the target struct.
47459pub unsafe trait ExtendsPhysicalDeviceShaderImageFootprintFeaturesNV {}
47460/// Marker trait for structs that can appear in the pNext chain of
47461#[doc = concat!("[`", "PhysicalDeviceShaderInstrumentationFeaturesARM", "`].")]
47462///
47463/// # Safety
47464/// Implementors must be valid pNext chain members for the target struct.
47465pub unsafe trait ExtendsPhysicalDeviceShaderInstrumentationFeaturesARM {}
47466/// Marker trait for structs that can appear in the pNext chain of
47467#[doc = concat!("[`", "PhysicalDeviceShaderIntegerDotProductFeatures", "`].")]
47468///
47469/// # Safety
47470/// Implementors must be valid pNext chain members for the target struct.
47471pub unsafe trait ExtendsPhysicalDeviceShaderIntegerDotProductFeatures {}
47472/// Marker trait for structs that can appear in the pNext chain of
47473#[doc = concat!("[`", "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL", "`].")]
47474///
47475/// # Safety
47476/// Implementors must be valid pNext chain members for the target struct.
47477pub unsafe trait ExtendsPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {}
47478/// Marker trait for structs that can appear in the pNext chain of
47479#[doc = concat!("[`", "PhysicalDeviceShaderLongVectorFeaturesEXT", "`].")]
47480///
47481/// # Safety
47482/// Implementors must be valid pNext chain members for the target struct.
47483pub unsafe trait ExtendsPhysicalDeviceShaderLongVectorFeaturesEXT {}
47484/// Marker trait for structs that can appear in the pNext chain of
47485#[doc = concat!("[`", "PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR", "`].")]
47486///
47487/// # Safety
47488/// Implementors must be valid pNext chain members for the target struct.
47489pub unsafe trait ExtendsPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {}
47490/// Marker trait for structs that can appear in the pNext chain of
47491#[doc = concat!("[`", "PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE", "`].")]
47492///
47493/// # Safety
47494/// Implementors must be valid pNext chain members for the target struct.
47495pub unsafe trait ExtendsPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {}
47496/// Marker trait for structs that can appear in the pNext chain of
47497#[doc = concat!("[`", "PhysicalDeviceShaderModuleIdentifierFeaturesEXT", "`].")]
47498///
47499/// # Safety
47500/// Implementors must be valid pNext chain members for the target struct.
47501pub unsafe trait ExtendsPhysicalDeviceShaderModuleIdentifierFeaturesEXT {}
47502/// Marker trait for structs that can appear in the pNext chain of
47503#[doc = concat!("[`", "PhysicalDeviceShaderObjectFeaturesEXT", "`].")]
47504///
47505/// # Safety
47506/// Implementors must be valid pNext chain members for the target struct.
47507pub unsafe trait ExtendsPhysicalDeviceShaderObjectFeaturesEXT {}
47508/// Marker trait for structs that can appear in the pNext chain of
47509#[doc = concat!("[`", "PhysicalDeviceShaderQuadControlFeaturesKHR", "`].")]
47510///
47511/// # Safety
47512/// Implementors must be valid pNext chain members for the target struct.
47513pub unsafe trait ExtendsPhysicalDeviceShaderQuadControlFeaturesKHR {}
47514/// Marker trait for structs that can appear in the pNext chain of
47515#[doc = concat!(
47516    "[`", "PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", "`]."
47517)]
47518///
47519/// # Safety
47520/// Implementors must be valid pNext chain members for the target struct.
47521pub unsafe trait ExtendsPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {}
47522/// Marker trait for structs that can appear in the pNext chain of
47523#[doc = concat!("[`", "PhysicalDeviceShaderReplicatedCompositesFeaturesEXT", "`].")]
47524///
47525/// # Safety
47526/// Implementors must be valid pNext chain members for the target struct.
47527pub unsafe trait ExtendsPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {}
47528/// Marker trait for structs that can appear in the pNext chain of
47529#[doc = concat!("[`", "PhysicalDeviceShaderSMBuiltinsFeaturesNV", "`].")]
47530///
47531/// # Safety
47532/// Implementors must be valid pNext chain members for the target struct.
47533pub unsafe trait ExtendsPhysicalDeviceShaderSMBuiltinsFeaturesNV {}
47534/// Marker trait for structs that can appear in the pNext chain of
47535#[doc = concat!("[`", "PhysicalDeviceShaderSubgroupExtendedTypesFeatures", "`].")]
47536///
47537/// # Safety
47538/// Implementors must be valid pNext chain members for the target struct.
47539pub unsafe trait ExtendsPhysicalDeviceShaderSubgroupExtendedTypesFeatures {}
47540/// Marker trait for structs that can appear in the pNext chain of
47541#[doc = concat!("[`", "PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT", "`].")]
47542///
47543/// # Safety
47544/// Implementors must be valid pNext chain members for the target struct.
47545pub unsafe trait ExtendsPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {}
47546/// Marker trait for structs that can appear in the pNext chain of
47547#[doc = concat!("[`", "PhysicalDeviceShaderSubgroupRotateFeatures", "`].")]
47548///
47549/// # Safety
47550/// Implementors must be valid pNext chain members for the target struct.
47551pub unsafe trait ExtendsPhysicalDeviceShaderSubgroupRotateFeatures {}
47552/// Marker trait for structs that can appear in the pNext chain of
47553#[doc = concat!(
47554    "[`", "PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", "`]."
47555)]
47556///
47557/// # Safety
47558/// Implementors must be valid pNext chain members for the target struct.
47559pub unsafe trait ExtendsPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {}
47560/// Marker trait for structs that can appear in the pNext chain of
47561#[doc = concat!("[`", "PhysicalDeviceShaderTerminateInvocationFeatures", "`].")]
47562///
47563/// # Safety
47564/// Implementors must be valid pNext chain members for the target struct.
47565pub unsafe trait ExtendsPhysicalDeviceShaderTerminateInvocationFeatures {}
47566/// Marker trait for structs that can appear in the pNext chain of
47567#[doc = concat!("[`", "PhysicalDeviceShaderTileImageFeaturesEXT", "`].")]
47568///
47569/// # Safety
47570/// Implementors must be valid pNext chain members for the target struct.
47571pub unsafe trait ExtendsPhysicalDeviceShaderTileImageFeaturesEXT {}
47572/// Marker trait for structs that can appear in the pNext chain of
47573#[doc = concat!("[`", "PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT", "`].")]
47574///
47575/// # Safety
47576/// Implementors must be valid pNext chain members for the target struct.
47577pub unsafe trait ExtendsPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {}
47578/// Marker trait for structs that can appear in the pNext chain of
47579#[doc = concat!("[`", "PhysicalDeviceShaderUntypedPointersFeaturesKHR", "`].")]
47580///
47581/// # Safety
47582/// Implementors must be valid pNext chain members for the target struct.
47583pub unsafe trait ExtendsPhysicalDeviceShaderUntypedPointersFeaturesKHR {}
47584/// Marker trait for structs that can appear in the pNext chain of
47585#[doc = concat!("[`", "PhysicalDeviceShadingRateImageFeaturesNV", "`].")]
47586///
47587/// # Safety
47588/// Implementors must be valid pNext chain members for the target struct.
47589pub unsafe trait ExtendsPhysicalDeviceShadingRateImageFeaturesNV {}
47590/// Marker trait for structs that can appear in the pNext chain of
47591#[doc = concat!("[`", "PhysicalDeviceSparseImageFormatInfo2", "`].")]
47592///
47593/// # Safety
47594/// Implementors must be valid pNext chain members for the target struct.
47595pub unsafe trait ExtendsPhysicalDeviceSparseImageFormatInfo2 {}
47596/// Marker trait for structs that can appear in the pNext chain of
47597#[doc = concat!("[`", "PhysicalDeviceSubgroupSizeControlFeatures", "`].")]
47598///
47599/// # Safety
47600/// Implementors must be valid pNext chain members for the target struct.
47601pub unsafe trait ExtendsPhysicalDeviceSubgroupSizeControlFeatures {}
47602/// Marker trait for structs that can appear in the pNext chain of
47603#[doc = concat!("[`", "PhysicalDeviceSubpassMergeFeedbackFeaturesEXT", "`].")]
47604///
47605/// # Safety
47606/// Implementors must be valid pNext chain members for the target struct.
47607pub unsafe trait ExtendsPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {}
47608/// Marker trait for structs that can appear in the pNext chain of
47609#[doc = concat!("[`", "PhysicalDeviceSubpassShadingFeaturesHUAWEI", "`].")]
47610///
47611/// # Safety
47612/// Implementors must be valid pNext chain members for the target struct.
47613pub unsafe trait ExtendsPhysicalDeviceSubpassShadingFeaturesHUAWEI {}
47614/// Marker trait for structs that can appear in the pNext chain of
47615#[doc = concat!("[`", "PhysicalDeviceSurfaceInfo2KHR", "`].")]
47616///
47617/// # Safety
47618/// Implementors must be valid pNext chain members for the target struct.
47619pub unsafe trait ExtendsPhysicalDeviceSurfaceInfo2KHR {}
47620/// Marker trait for structs that can appear in the pNext chain of
47621#[doc = concat!("[`", "PhysicalDeviceSwapchainMaintenance1FeaturesKHR", "`].")]
47622///
47623/// # Safety
47624/// Implementors must be valid pNext chain members for the target struct.
47625pub unsafe trait ExtendsPhysicalDeviceSwapchainMaintenance1FeaturesKHR {}
47626/// Marker trait for structs that can appear in the pNext chain of
47627#[doc = concat!("[`", "PhysicalDeviceSynchronization2Features", "`].")]
47628///
47629/// # Safety
47630/// Implementors must be valid pNext chain members for the target struct.
47631pub unsafe trait ExtendsPhysicalDeviceSynchronization2Features {}
47632/// Marker trait for structs that can appear in the pNext chain of
47633#[doc = concat!("[`", "PhysicalDeviceTensorFeaturesARM", "`].")]
47634///
47635/// # Safety
47636/// Implementors must be valid pNext chain members for the target struct.
47637pub unsafe trait ExtendsPhysicalDeviceTensorFeaturesARM {}
47638/// Marker trait for structs that can appear in the pNext chain of
47639#[doc = concat!("[`", "PhysicalDeviceTexelBufferAlignmentFeaturesEXT", "`].")]
47640///
47641/// # Safety
47642/// Implementors must be valid pNext chain members for the target struct.
47643pub unsafe trait ExtendsPhysicalDeviceTexelBufferAlignmentFeaturesEXT {}
47644/// Marker trait for structs that can appear in the pNext chain of
47645#[doc = concat!("[`", "PhysicalDeviceTextureCompressionASTC3DFeaturesEXT", "`].")]
47646///
47647/// # Safety
47648/// Implementors must be valid pNext chain members for the target struct.
47649pub unsafe trait ExtendsPhysicalDeviceTextureCompressionASTC3DFeaturesEXT {}
47650/// Marker trait for structs that can appear in the pNext chain of
47651#[doc = concat!("[`", "PhysicalDeviceTextureCompressionASTCHDRFeatures", "`].")]
47652///
47653/// # Safety
47654/// Implementors must be valid pNext chain members for the target struct.
47655pub unsafe trait ExtendsPhysicalDeviceTextureCompressionASTCHDRFeatures {}
47656/// Marker trait for structs that can appear in the pNext chain of
47657#[doc = concat!("[`", "PhysicalDeviceTileMemoryHeapFeaturesQCOM", "`].")]
47658///
47659/// # Safety
47660/// Implementors must be valid pNext chain members for the target struct.
47661pub unsafe trait ExtendsPhysicalDeviceTileMemoryHeapFeaturesQCOM {}
47662/// Marker trait for structs that can appear in the pNext chain of
47663#[doc = concat!("[`", "PhysicalDeviceTileMemoryHeapPropertiesQCOM", "`].")]
47664///
47665/// # Safety
47666/// Implementors must be valid pNext chain members for the target struct.
47667pub unsafe trait ExtendsPhysicalDeviceTileMemoryHeapPropertiesQCOM {}
47668/// Marker trait for structs that can appear in the pNext chain of
47669#[doc = concat!("[`", "PhysicalDeviceTilePropertiesFeaturesQCOM", "`].")]
47670///
47671/// # Safety
47672/// Implementors must be valid pNext chain members for the target struct.
47673pub unsafe trait ExtendsPhysicalDeviceTilePropertiesFeaturesQCOM {}
47674/// Marker trait for structs that can appear in the pNext chain of
47675#[doc = concat!("[`", "PhysicalDeviceTileShadingFeaturesQCOM", "`].")]
47676///
47677/// # Safety
47678/// Implementors must be valid pNext chain members for the target struct.
47679pub unsafe trait ExtendsPhysicalDeviceTileShadingFeaturesQCOM {}
47680/// Marker trait for structs that can appear in the pNext chain of
47681#[doc = concat!("[`", "PhysicalDeviceTimelineSemaphoreFeatures", "`].")]
47682///
47683/// # Safety
47684/// Implementors must be valid pNext chain members for the target struct.
47685pub unsafe trait ExtendsPhysicalDeviceTimelineSemaphoreFeatures {}
47686/// Marker trait for structs that can appear in the pNext chain of
47687#[doc = concat!("[`", "PhysicalDeviceTransformFeedbackFeaturesEXT", "`].")]
47688///
47689/// # Safety
47690/// Implementors must be valid pNext chain members for the target struct.
47691pub unsafe trait ExtendsPhysicalDeviceTransformFeedbackFeaturesEXT {}
47692/// Marker trait for structs that can appear in the pNext chain of
47693#[doc = concat!("[`", "PhysicalDeviceUnifiedImageLayoutsFeaturesKHR", "`].")]
47694///
47695/// # Safety
47696/// Implementors must be valid pNext chain members for the target struct.
47697pub unsafe trait ExtendsPhysicalDeviceUnifiedImageLayoutsFeaturesKHR {}
47698/// Marker trait for structs that can appear in the pNext chain of
47699#[doc = concat!("[`", "PhysicalDeviceUniformBufferStandardLayoutFeatures", "`].")]
47700///
47701/// # Safety
47702/// Implementors must be valid pNext chain members for the target struct.
47703pub unsafe trait ExtendsPhysicalDeviceUniformBufferStandardLayoutFeatures {}
47704/// Marker trait for structs that can appear in the pNext chain of
47705#[doc = concat!("[`", "PhysicalDeviceVariablePointersFeatures", "`].")]
47706///
47707/// # Safety
47708/// Implementors must be valid pNext chain members for the target struct.
47709pub unsafe trait ExtendsPhysicalDeviceVariablePointersFeatures {}
47710/// Marker trait for structs that can appear in the pNext chain of
47711#[doc = concat!("[`", "PhysicalDeviceVertexAttributeDivisorFeatures", "`].")]
47712///
47713/// # Safety
47714/// Implementors must be valid pNext chain members for the target struct.
47715pub unsafe trait ExtendsPhysicalDeviceVertexAttributeDivisorFeatures {}
47716/// Marker trait for structs that can appear in the pNext chain of
47717#[doc = concat!("[`", "PhysicalDeviceVertexAttributeRobustnessFeaturesEXT", "`].")]
47718///
47719/// # Safety
47720/// Implementors must be valid pNext chain members for the target struct.
47721pub unsafe trait ExtendsPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {}
47722/// Marker trait for structs that can appear in the pNext chain of
47723#[doc = concat!("[`", "PhysicalDeviceVertexInputDynamicStateFeaturesEXT", "`].")]
47724///
47725/// # Safety
47726/// Implementors must be valid pNext chain members for the target struct.
47727pub unsafe trait ExtendsPhysicalDeviceVertexInputDynamicStateFeaturesEXT {}
47728/// Marker trait for structs that can appear in the pNext chain of
47729#[doc = concat!("[`", "PhysicalDeviceVideoDecodeVP9FeaturesKHR", "`].")]
47730///
47731/// # Safety
47732/// Implementors must be valid pNext chain members for the target struct.
47733pub unsafe trait ExtendsPhysicalDeviceVideoDecodeVP9FeaturesKHR {}
47734/// Marker trait for structs that can appear in the pNext chain of
47735#[doc = concat!("[`", "PhysicalDeviceVideoEncodeAV1FeaturesKHR", "`].")]
47736///
47737/// # Safety
47738/// Implementors must be valid pNext chain members for the target struct.
47739pub unsafe trait ExtendsPhysicalDeviceVideoEncodeAV1FeaturesKHR {}
47740/// Marker trait for structs that can appear in the pNext chain of
47741#[doc = concat!("[`", "PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR", "`].")]
47742///
47743/// # Safety
47744/// Implementors must be valid pNext chain members for the target struct.
47745pub unsafe trait ExtendsPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {}
47746/// Marker trait for structs that can appear in the pNext chain of
47747#[doc = concat!("[`", "PhysicalDeviceVideoEncodeQualityLevelInfoKHR", "`].")]
47748///
47749/// # Safety
47750/// Implementors must be valid pNext chain members for the target struct.
47751pub unsafe trait ExtendsPhysicalDeviceVideoEncodeQualityLevelInfoKHR {}
47752/// Marker trait for structs that can appear in the pNext chain of
47753#[doc = concat!("[`", "PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR", "`].")]
47754///
47755/// # Safety
47756/// Implementors must be valid pNext chain members for the target struct.
47757pub unsafe trait ExtendsPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {}
47758/// Marker trait for structs that can appear in the pNext chain of
47759#[doc = concat!("[`", "PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE", "`].")]
47760///
47761/// # Safety
47762/// Implementors must be valid pNext chain members for the target struct.
47763pub unsafe trait ExtendsPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {}
47764/// Marker trait for structs that can appear in the pNext chain of
47765#[doc = concat!("[`", "PhysicalDeviceVideoFormatInfoKHR", "`].")]
47766///
47767/// # Safety
47768/// Implementors must be valid pNext chain members for the target struct.
47769pub unsafe trait ExtendsPhysicalDeviceVideoFormatInfoKHR {}
47770/// Marker trait for structs that can appear in the pNext chain of
47771#[doc = concat!("[`", "PhysicalDeviceVideoMaintenance1FeaturesKHR", "`].")]
47772///
47773/// # Safety
47774/// Implementors must be valid pNext chain members for the target struct.
47775pub unsafe trait ExtendsPhysicalDeviceVideoMaintenance1FeaturesKHR {}
47776/// Marker trait for structs that can appear in the pNext chain of
47777#[doc = concat!("[`", "PhysicalDeviceVideoMaintenance2FeaturesKHR", "`].")]
47778///
47779/// # Safety
47780/// Implementors must be valid pNext chain members for the target struct.
47781pub unsafe trait ExtendsPhysicalDeviceVideoMaintenance2FeaturesKHR {}
47782/// Marker trait for structs that can appear in the pNext chain of
47783#[doc = concat!("[`", "PhysicalDeviceVulkan11Features", "`].")]
47784///
47785/// # Safety
47786/// Implementors must be valid pNext chain members for the target struct.
47787pub unsafe trait ExtendsPhysicalDeviceVulkan11Features {}
47788/// Marker trait for structs that can appear in the pNext chain of
47789#[doc = concat!("[`", "PhysicalDeviceVulkan12Features", "`].")]
47790///
47791/// # Safety
47792/// Implementors must be valid pNext chain members for the target struct.
47793pub unsafe trait ExtendsPhysicalDeviceVulkan12Features {}
47794/// Marker trait for structs that can appear in the pNext chain of
47795#[doc = concat!("[`", "PhysicalDeviceVulkan13Features", "`].")]
47796///
47797/// # Safety
47798/// Implementors must be valid pNext chain members for the target struct.
47799pub unsafe trait ExtendsPhysicalDeviceVulkan13Features {}
47800/// Marker trait for structs that can appear in the pNext chain of
47801#[doc = concat!("[`", "PhysicalDeviceVulkan14Features", "`].")]
47802///
47803/// # Safety
47804/// Implementors must be valid pNext chain members for the target struct.
47805pub unsafe trait ExtendsPhysicalDeviceVulkan14Features {}
47806/// Marker trait for structs that can appear in the pNext chain of
47807#[doc = concat!("[`", "PhysicalDeviceVulkanMemoryModelFeatures", "`].")]
47808///
47809/// # Safety
47810/// Implementors must be valid pNext chain members for the target struct.
47811pub unsafe trait ExtendsPhysicalDeviceVulkanMemoryModelFeatures {}
47812/// Marker trait for structs that can appear in the pNext chain of
47813#[doc = concat!("[`", "PhysicalDeviceVulkanSC10Features", "`].")]
47814///
47815/// # Safety
47816/// Implementors must be valid pNext chain members for the target struct.
47817pub unsafe trait ExtendsPhysicalDeviceVulkanSC10Features {}
47818/// Marker trait for structs that can appear in the pNext chain of
47819#[doc = concat!("[`", "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", "`].")]
47820///
47821/// # Safety
47822/// Implementors must be valid pNext chain members for the target struct.
47823pub unsafe trait ExtendsPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {}
47824/// Marker trait for structs that can appear in the pNext chain of
47825#[doc = concat!("[`", "PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", "`].")]
47826///
47827/// # Safety
47828/// Implementors must be valid pNext chain members for the target struct.
47829pub unsafe trait ExtendsPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {}
47830/// Marker trait for structs that can appear in the pNext chain of
47831#[doc = concat!("[`", "PhysicalDeviceYcbcrDegammaFeaturesQCOM", "`].")]
47832///
47833/// # Safety
47834/// Implementors must be valid pNext chain members for the target struct.
47835pub unsafe trait ExtendsPhysicalDeviceYcbcrDegammaFeaturesQCOM {}
47836/// Marker trait for structs that can appear in the pNext chain of
47837#[doc = concat!("[`", "PhysicalDeviceYcbcrImageArraysFeaturesEXT", "`].")]
47838///
47839/// # Safety
47840/// Implementors must be valid pNext chain members for the target struct.
47841pub unsafe trait ExtendsPhysicalDeviceYcbcrImageArraysFeaturesEXT {}
47842/// Marker trait for structs that can appear in the pNext chain of
47843#[doc = concat!("[`", "PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT", "`].")]
47844///
47845/// # Safety
47846/// Implementors must be valid pNext chain members for the target struct.
47847pub unsafe trait ExtendsPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {}
47848/// Marker trait for structs that can appear in the pNext chain of
47849#[doc = concat!("[`", "PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "`].")]
47850///
47851/// # Safety
47852/// Implementors must be valid pNext chain members for the target struct.
47853pub unsafe trait ExtendsPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {}
47854/// Marker trait for structs that can appear in the pNext chain of
47855#[doc = concat!("[`", "PipelineBinaryCreateInfoKHR", "`].")]
47856///
47857/// # Safety
47858/// Implementors must be valid pNext chain members for the target struct.
47859pub unsafe trait ExtendsPipelineBinaryCreateInfoKHR {}
47860/// Marker trait for structs that can appear in the pNext chain of
47861#[doc = concat!("[`", "PipelineBinaryDataInfoKHR", "`].")]
47862///
47863/// # Safety
47864/// Implementors must be valid pNext chain members for the target struct.
47865pub unsafe trait ExtendsPipelineBinaryDataInfoKHR {}
47866/// Marker trait for structs that can appear in the pNext chain of
47867#[doc = concat!("[`", "PipelineBinaryHandlesInfoKHR", "`].")]
47868///
47869/// # Safety
47870/// Implementors must be valid pNext chain members for the target struct.
47871pub unsafe trait ExtendsPipelineBinaryHandlesInfoKHR {}
47872/// Marker trait for structs that can appear in the pNext chain of
47873#[doc = concat!("[`", "PipelineBinaryInfoKHR", "`].")]
47874///
47875/// # Safety
47876/// Implementors must be valid pNext chain members for the target struct.
47877pub unsafe trait ExtendsPipelineBinaryInfoKHR {}
47878/// Marker trait for structs that can appear in the pNext chain of
47879#[doc = concat!("[`", "PipelineBinaryKeyKHR", "`].")]
47880///
47881/// # Safety
47882/// Implementors must be valid pNext chain members for the target struct.
47883pub unsafe trait ExtendsPipelineBinaryKeyKHR {}
47884/// Marker trait for structs that can appear in the pNext chain of
47885#[doc = concat!("[`", "PipelineCacheCreateInfo", "`].")]
47886///
47887/// # Safety
47888/// Implementors must be valid pNext chain members for the target struct.
47889pub unsafe trait ExtendsPipelineCacheCreateInfo {}
47890/// Marker trait for structs that can appear in the pNext chain of
47891#[doc = concat!("[`", "PipelineColorBlendAdvancedStateCreateInfoEXT", "`].")]
47892///
47893/// # Safety
47894/// Implementors must be valid pNext chain members for the target struct.
47895pub unsafe trait ExtendsPipelineColorBlendAdvancedStateCreateInfoEXT {}
47896/// Marker trait for structs that can appear in the pNext chain of
47897#[doc = concat!("[`", "PipelineColorBlendStateCreateInfo", "`].")]
47898///
47899/// # Safety
47900/// Implementors must be valid pNext chain members for the target struct.
47901pub unsafe trait ExtendsPipelineColorBlendStateCreateInfo {}
47902/// Marker trait for structs that can appear in the pNext chain of
47903#[doc = concat!("[`", "PipelineColorWriteCreateInfoEXT", "`].")]
47904///
47905/// # Safety
47906/// Implementors must be valid pNext chain members for the target struct.
47907pub unsafe trait ExtendsPipelineColorWriteCreateInfoEXT {}
47908/// Marker trait for structs that can appear in the pNext chain of
47909#[doc = concat!("[`", "PipelineCompilerControlCreateInfoAMD", "`].")]
47910///
47911/// # Safety
47912/// Implementors must be valid pNext chain members for the target struct.
47913pub unsafe trait ExtendsPipelineCompilerControlCreateInfoAMD {}
47914/// Marker trait for structs that can appear in the pNext chain of
47915#[doc = concat!("[`", "PipelineCoverageModulationStateCreateInfoNV", "`].")]
47916///
47917/// # Safety
47918/// Implementors must be valid pNext chain members for the target struct.
47919pub unsafe trait ExtendsPipelineCoverageModulationStateCreateInfoNV {}
47920/// Marker trait for structs that can appear in the pNext chain of
47921#[doc = concat!("[`", "PipelineCoverageReductionStateCreateInfoNV", "`].")]
47922///
47923/// # Safety
47924/// Implementors must be valid pNext chain members for the target struct.
47925pub unsafe trait ExtendsPipelineCoverageReductionStateCreateInfoNV {}
47926/// Marker trait for structs that can appear in the pNext chain of
47927#[doc = concat!("[`", "PipelineCoverageToColorStateCreateInfoNV", "`].")]
47928///
47929/// # Safety
47930/// Implementors must be valid pNext chain members for the target struct.
47931pub unsafe trait ExtendsPipelineCoverageToColorStateCreateInfoNV {}
47932/// Marker trait for structs that can appear in the pNext chain of
47933#[doc = concat!("[`", "PipelineCreateFlags2CreateInfo", "`].")]
47934///
47935/// # Safety
47936/// Implementors must be valid pNext chain members for the target struct.
47937pub unsafe trait ExtendsPipelineCreateFlags2CreateInfo {}
47938/// Marker trait for structs that can appear in the pNext chain of
47939#[doc = concat!("[`", "PipelineCreateInfoKHR", "`].")]
47940///
47941/// # Safety
47942/// Implementors must be valid pNext chain members for the target struct.
47943pub unsafe trait ExtendsPipelineCreateInfoKHR {}
47944/// Marker trait for structs that can appear in the pNext chain of
47945#[doc = concat!("[`", "PipelineCreationFeedbackCreateInfo", "`].")]
47946///
47947/// # Safety
47948/// Implementors must be valid pNext chain members for the target struct.
47949pub unsafe trait ExtendsPipelineCreationFeedbackCreateInfo {}
47950/// Marker trait for structs that can appear in the pNext chain of
47951#[doc = concat!("[`", "PipelineDepthStencilStateCreateInfo", "`].")]
47952///
47953/// # Safety
47954/// Implementors must be valid pNext chain members for the target struct.
47955pub unsafe trait ExtendsPipelineDepthStencilStateCreateInfo {}
47956/// Marker trait for structs that can appear in the pNext chain of
47957#[doc = concat!("[`", "PipelineDiscardRectangleStateCreateInfoEXT", "`].")]
47958///
47959/// # Safety
47960/// Implementors must be valid pNext chain members for the target struct.
47961pub unsafe trait ExtendsPipelineDiscardRectangleStateCreateInfoEXT {}
47962/// Marker trait for structs that can appear in the pNext chain of
47963#[doc = concat!("[`", "PipelineDynamicStateCreateInfo", "`].")]
47964///
47965/// # Safety
47966/// Implementors must be valid pNext chain members for the target struct.
47967pub unsafe trait ExtendsPipelineDynamicStateCreateInfo {}
47968/// Marker trait for structs that can appear in the pNext chain of
47969#[doc = concat!("[`", "PipelineExecutableInfoKHR", "`].")]
47970///
47971/// # Safety
47972/// Implementors must be valid pNext chain members for the target struct.
47973pub unsafe trait ExtendsPipelineExecutableInfoKHR {}
47974/// Marker trait for structs that can appear in the pNext chain of
47975#[doc = concat!("[`", "PipelineFragmentDensityMapLayeredCreateInfoVALVE", "`].")]
47976///
47977/// # Safety
47978/// Implementors must be valid pNext chain members for the target struct.
47979pub unsafe trait ExtendsPipelineFragmentDensityMapLayeredCreateInfoVALVE {}
47980/// Marker trait for structs that can appear in the pNext chain of
47981#[doc = concat!("[`", "PipelineFragmentShadingRateEnumStateCreateInfoNV", "`].")]
47982///
47983/// # Safety
47984/// Implementors must be valid pNext chain members for the target struct.
47985pub unsafe trait ExtendsPipelineFragmentShadingRateEnumStateCreateInfoNV {}
47986/// Marker trait for structs that can appear in the pNext chain of
47987#[doc = concat!("[`", "PipelineFragmentShadingRateStateCreateInfoKHR", "`].")]
47988///
47989/// # Safety
47990/// Implementors must be valid pNext chain members for the target struct.
47991pub unsafe trait ExtendsPipelineFragmentShadingRateStateCreateInfoKHR {}
47992/// Marker trait for structs that can appear in the pNext chain of
47993#[doc = concat!("[`", "PipelineIndirectDeviceAddressInfoNV", "`].")]
47994///
47995/// # Safety
47996/// Implementors must be valid pNext chain members for the target struct.
47997pub unsafe trait ExtendsPipelineIndirectDeviceAddressInfoNV {}
47998/// Marker trait for structs that can appear in the pNext chain of
47999#[doc = concat!("[`", "PipelineInfoKHR", "`].")]
48000///
48001/// # Safety
48002/// Implementors must be valid pNext chain members for the target struct.
48003pub unsafe trait ExtendsPipelineInfoKHR {}
48004/// Marker trait for structs that can appear in the pNext chain of
48005#[doc = concat!("[`", "PipelineInputAssemblyStateCreateInfo", "`].")]
48006///
48007/// # Safety
48008/// Implementors must be valid pNext chain members for the target struct.
48009pub unsafe trait ExtendsPipelineInputAssemblyStateCreateInfo {}
48010/// Marker trait for structs that can appear in the pNext chain of
48011#[doc = concat!("[`", "PipelineLayoutCreateInfo", "`].")]
48012///
48013/// # Safety
48014/// Implementors must be valid pNext chain members for the target struct.
48015pub unsafe trait ExtendsPipelineLayoutCreateInfo {}
48016/// Marker trait for structs that can appear in the pNext chain of
48017#[doc = concat!("[`", "PipelineLibraryCreateInfoKHR", "`].")]
48018///
48019/// # Safety
48020/// Implementors must be valid pNext chain members for the target struct.
48021pub unsafe trait ExtendsPipelineLibraryCreateInfoKHR {}
48022/// Marker trait for structs that can appear in the pNext chain of
48023#[doc = concat!("[`", "PipelineMultisampleStateCreateInfo", "`].")]
48024///
48025/// # Safety
48026/// Implementors must be valid pNext chain members for the target struct.
48027pub unsafe trait ExtendsPipelineMultisampleStateCreateInfo {}
48028/// Marker trait for structs that can appear in the pNext chain of
48029#[doc = concat!("[`", "PipelineOfflineCreateInfo", "`].")]
48030///
48031/// # Safety
48032/// Implementors must be valid pNext chain members for the target struct.
48033pub unsafe trait ExtendsPipelineOfflineCreateInfo {}
48034/// Marker trait for structs that can appear in the pNext chain of
48035#[doc = concat!("[`", "PipelinePoolSize", "`].")]
48036///
48037/// # Safety
48038/// Implementors must be valid pNext chain members for the target struct.
48039pub unsafe trait ExtendsPipelinePoolSize {}
48040/// Marker trait for structs that can appear in the pNext chain of
48041#[doc = concat!("[`", "PipelineRasterizationConservativeStateCreateInfoEXT", "`].")]
48042///
48043/// # Safety
48044/// Implementors must be valid pNext chain members for the target struct.
48045pub unsafe trait ExtendsPipelineRasterizationConservativeStateCreateInfoEXT {}
48046/// Marker trait for structs that can appear in the pNext chain of
48047#[doc = concat!("[`", "PipelineRasterizationDepthClipStateCreateInfoEXT", "`].")]
48048///
48049/// # Safety
48050/// Implementors must be valid pNext chain members for the target struct.
48051pub unsafe trait ExtendsPipelineRasterizationDepthClipStateCreateInfoEXT {}
48052/// Marker trait for structs that can appear in the pNext chain of
48053#[doc = concat!("[`", "PipelineRasterizationLineStateCreateInfo", "`].")]
48054///
48055/// # Safety
48056/// Implementors must be valid pNext chain members for the target struct.
48057pub unsafe trait ExtendsPipelineRasterizationLineStateCreateInfo {}
48058/// Marker trait for structs that can appear in the pNext chain of
48059#[doc = concat!("[`", "PipelineRasterizationProvokingVertexStateCreateInfoEXT", "`].")]
48060///
48061/// # Safety
48062/// Implementors must be valid pNext chain members for the target struct.
48063pub unsafe trait ExtendsPipelineRasterizationProvokingVertexStateCreateInfoEXT {}
48064/// Marker trait for structs that can appear in the pNext chain of
48065#[doc = concat!("[`", "PipelineRasterizationStateCreateInfo", "`].")]
48066///
48067/// # Safety
48068/// Implementors must be valid pNext chain members for the target struct.
48069pub unsafe trait ExtendsPipelineRasterizationStateCreateInfo {}
48070/// Marker trait for structs that can appear in the pNext chain of
48071#[doc = concat!("[`", "PipelineRasterizationStateRasterizationOrderAMD", "`].")]
48072///
48073/// # Safety
48074/// Implementors must be valid pNext chain members for the target struct.
48075pub unsafe trait ExtendsPipelineRasterizationStateRasterizationOrderAMD {}
48076/// Marker trait for structs that can appear in the pNext chain of
48077#[doc = concat!("[`", "PipelineRasterizationStateStreamCreateInfoEXT", "`].")]
48078///
48079/// # Safety
48080/// Implementors must be valid pNext chain members for the target struct.
48081pub unsafe trait ExtendsPipelineRasterizationStateStreamCreateInfoEXT {}
48082/// Marker trait for structs that can appear in the pNext chain of
48083#[doc = concat!("[`", "PipelineRenderingCreateInfo", "`].")]
48084///
48085/// # Safety
48086/// Implementors must be valid pNext chain members for the target struct.
48087pub unsafe trait ExtendsPipelineRenderingCreateInfo {}
48088/// Marker trait for structs that can appear in the pNext chain of
48089#[doc = concat!("[`", "PipelineRepresentativeFragmentTestStateCreateInfoNV", "`].")]
48090///
48091/// # Safety
48092/// Implementors must be valid pNext chain members for the target struct.
48093pub unsafe trait ExtendsPipelineRepresentativeFragmentTestStateCreateInfoNV {}
48094/// Marker trait for structs that can appear in the pNext chain of
48095#[doc = concat!("[`", "PipelineRobustnessCreateInfo", "`].")]
48096///
48097/// # Safety
48098/// Implementors must be valid pNext chain members for the target struct.
48099pub unsafe trait ExtendsPipelineRobustnessCreateInfo {}
48100/// Marker trait for structs that can appear in the pNext chain of
48101#[doc = concat!("[`", "PipelineSampleLocationsStateCreateInfoEXT", "`].")]
48102///
48103/// # Safety
48104/// Implementors must be valid pNext chain members for the target struct.
48105pub unsafe trait ExtendsPipelineSampleLocationsStateCreateInfoEXT {}
48106/// Marker trait for structs that can appear in the pNext chain of
48107#[doc = concat!("[`", "PipelineShaderStageCreateInfo", "`].")]
48108///
48109/// # Safety
48110/// Implementors must be valid pNext chain members for the target struct.
48111pub unsafe trait ExtendsPipelineShaderStageCreateInfo {}
48112/// Marker trait for structs that can appear in the pNext chain of
48113#[doc = concat!("[`", "PipelineShaderStageModuleIdentifierCreateInfoEXT", "`].")]
48114///
48115/// # Safety
48116/// Implementors must be valid pNext chain members for the target struct.
48117pub unsafe trait ExtendsPipelineShaderStageModuleIdentifierCreateInfoEXT {}
48118/// Marker trait for structs that can appear in the pNext chain of
48119#[doc = concat!("[`", "PipelineShaderStageNodeCreateInfoAMDX", "`].")]
48120///
48121/// # Safety
48122/// Implementors must be valid pNext chain members for the target struct.
48123pub unsafe trait ExtendsPipelineShaderStageNodeCreateInfoAMDX {}
48124/// Marker trait for structs that can appear in the pNext chain of
48125#[doc = concat!("[`", "PipelineShaderStageRequiredSubgroupSizeCreateInfo", "`].")]
48126///
48127/// # Safety
48128/// Implementors must be valid pNext chain members for the target struct.
48129pub unsafe trait ExtendsPipelineShaderStageRequiredSubgroupSizeCreateInfo {}
48130/// Marker trait for structs that can appear in the pNext chain of
48131#[doc = concat!("[`", "PipelineTessellationDomainOriginStateCreateInfo", "`].")]
48132///
48133/// # Safety
48134/// Implementors must be valid pNext chain members for the target struct.
48135pub unsafe trait ExtendsPipelineTessellationDomainOriginStateCreateInfo {}
48136/// Marker trait for structs that can appear in the pNext chain of
48137#[doc = concat!("[`", "PipelineTessellationStateCreateInfo", "`].")]
48138///
48139/// # Safety
48140/// Implementors must be valid pNext chain members for the target struct.
48141pub unsafe trait ExtendsPipelineTessellationStateCreateInfo {}
48142/// Marker trait for structs that can appear in the pNext chain of
48143#[doc = concat!("[`", "PipelineVertexInputDivisorStateCreateInfo", "`].")]
48144///
48145/// # Safety
48146/// Implementors must be valid pNext chain members for the target struct.
48147pub unsafe trait ExtendsPipelineVertexInputDivisorStateCreateInfo {}
48148/// Marker trait for structs that can appear in the pNext chain of
48149#[doc = concat!("[`", "PipelineVertexInputStateCreateInfo", "`].")]
48150///
48151/// # Safety
48152/// Implementors must be valid pNext chain members for the target struct.
48153pub unsafe trait ExtendsPipelineVertexInputStateCreateInfo {}
48154/// Marker trait for structs that can appear in the pNext chain of
48155#[doc = concat!("[`", "PipelineViewportCoarseSampleOrderStateCreateInfoNV", "`].")]
48156///
48157/// # Safety
48158/// Implementors must be valid pNext chain members for the target struct.
48159pub unsafe trait ExtendsPipelineViewportCoarseSampleOrderStateCreateInfoNV {}
48160/// Marker trait for structs that can appear in the pNext chain of
48161#[doc = concat!("[`", "PipelineViewportDepthClampControlCreateInfoEXT", "`].")]
48162///
48163/// # Safety
48164/// Implementors must be valid pNext chain members for the target struct.
48165pub unsafe trait ExtendsPipelineViewportDepthClampControlCreateInfoEXT {}
48166/// Marker trait for structs that can appear in the pNext chain of
48167#[doc = concat!("[`", "PipelineViewportDepthClipControlCreateInfoEXT", "`].")]
48168///
48169/// # Safety
48170/// Implementors must be valid pNext chain members for the target struct.
48171pub unsafe trait ExtendsPipelineViewportDepthClipControlCreateInfoEXT {}
48172/// Marker trait for structs that can appear in the pNext chain of
48173#[doc = concat!("[`", "PipelineViewportExclusiveScissorStateCreateInfoNV", "`].")]
48174///
48175/// # Safety
48176/// Implementors must be valid pNext chain members for the target struct.
48177pub unsafe trait ExtendsPipelineViewportExclusiveScissorStateCreateInfoNV {}
48178/// Marker trait for structs that can appear in the pNext chain of
48179#[doc = concat!("[`", "PipelineViewportShadingRateImageStateCreateInfoNV", "`].")]
48180///
48181/// # Safety
48182/// Implementors must be valid pNext chain members for the target struct.
48183pub unsafe trait ExtendsPipelineViewportShadingRateImageStateCreateInfoNV {}
48184/// Marker trait for structs that can appear in the pNext chain of
48185#[doc = concat!("[`", "PipelineViewportStateCreateInfo", "`].")]
48186///
48187/// # Safety
48188/// Implementors must be valid pNext chain members for the target struct.
48189pub unsafe trait ExtendsPipelineViewportStateCreateInfo {}
48190/// Marker trait for structs that can appear in the pNext chain of
48191#[doc = concat!("[`", "PipelineViewportSwizzleStateCreateInfoNV", "`].")]
48192///
48193/// # Safety
48194/// Implementors must be valid pNext chain members for the target struct.
48195pub unsafe trait ExtendsPipelineViewportSwizzleStateCreateInfoNV {}
48196/// Marker trait for structs that can appear in the pNext chain of
48197#[doc = concat!("[`", "PipelineViewportWScalingStateCreateInfoNV", "`].")]
48198///
48199/// # Safety
48200/// Implementors must be valid pNext chain members for the target struct.
48201pub unsafe trait ExtendsPipelineViewportWScalingStateCreateInfoNV {}
48202/// Marker trait for structs that can appear in the pNext chain of
48203#[doc = concat!("[`", "PresentFrameTokenGGP", "`].")]
48204///
48205/// # Safety
48206/// Implementors must be valid pNext chain members for the target struct.
48207pub unsafe trait ExtendsPresentFrameTokenGGP {}
48208/// Marker trait for structs that can appear in the pNext chain of
48209#[doc = concat!("[`", "PresentId2KHR", "`].")]
48210///
48211/// # Safety
48212/// Implementors must be valid pNext chain members for the target struct.
48213pub unsafe trait ExtendsPresentId2KHR {}
48214/// Marker trait for structs that can appear in the pNext chain of
48215#[doc = concat!("[`", "PresentIdKHR", "`].")]
48216///
48217/// # Safety
48218/// Implementors must be valid pNext chain members for the target struct.
48219pub unsafe trait ExtendsPresentIdKHR {}
48220/// Marker trait for structs that can appear in the pNext chain of
48221#[doc = concat!("[`", "PresentInfoKHR", "`].")]
48222///
48223/// # Safety
48224/// Implementors must be valid pNext chain members for the target struct.
48225pub unsafe trait ExtendsPresentInfoKHR {}
48226/// Marker trait for structs that can appear in the pNext chain of
48227#[doc = concat!("[`", "PresentRegionsKHR", "`].")]
48228///
48229/// # Safety
48230/// Implementors must be valid pNext chain members for the target struct.
48231pub unsafe trait ExtendsPresentRegionsKHR {}
48232/// Marker trait for structs that can appear in the pNext chain of
48233#[doc = concat!("[`", "PresentTimesInfoGOOGLE", "`].")]
48234///
48235/// # Safety
48236/// Implementors must be valid pNext chain members for the target struct.
48237pub unsafe trait ExtendsPresentTimesInfoGOOGLE {}
48238/// Marker trait for structs that can appear in the pNext chain of
48239#[doc = concat!("[`", "PresentTimingInfoEXT", "`].")]
48240///
48241/// # Safety
48242/// Implementors must be valid pNext chain members for the target struct.
48243pub unsafe trait ExtendsPresentTimingInfoEXT {}
48244/// Marker trait for structs that can appear in the pNext chain of
48245#[doc = concat!("[`", "PresentTimingsInfoEXT", "`].")]
48246///
48247/// # Safety
48248/// Implementors must be valid pNext chain members for the target struct.
48249pub unsafe trait ExtendsPresentTimingsInfoEXT {}
48250/// Marker trait for structs that can appear in the pNext chain of
48251#[doc = concat!("[`", "PresentWait2InfoKHR", "`].")]
48252///
48253/// # Safety
48254/// Implementors must be valid pNext chain members for the target struct.
48255pub unsafe trait ExtendsPresentWait2InfoKHR {}
48256/// Marker trait for structs that can appear in the pNext chain of
48257#[doc = concat!("[`", "PrivateDataSlotCreateInfo", "`].")]
48258///
48259/// # Safety
48260/// Implementors must be valid pNext chain members for the target struct.
48261pub unsafe trait ExtendsPrivateDataSlotCreateInfo {}
48262/// Marker trait for structs that can appear in the pNext chain of
48263#[doc = concat!("[`", "ProtectedSubmitInfo", "`].")]
48264///
48265/// # Safety
48266/// Implementors must be valid pNext chain members for the target struct.
48267pub unsafe trait ExtendsProtectedSubmitInfo {}
48268/// Marker trait for structs that can appear in the pNext chain of
48269#[doc = concat!("[`", "PushConstantBankInfoNV", "`].")]
48270///
48271/// # Safety
48272/// Implementors must be valid pNext chain members for the target struct.
48273pub unsafe trait ExtendsPushConstantBankInfoNV {}
48274/// Marker trait for structs that can appear in the pNext chain of
48275#[doc = concat!("[`", "PushConstantsInfo", "`].")]
48276///
48277/// # Safety
48278/// Implementors must be valid pNext chain members for the target struct.
48279pub unsafe trait ExtendsPushConstantsInfo {}
48280/// Marker trait for structs that can appear in the pNext chain of
48281#[doc = concat!("[`", "PushDataInfoEXT", "`].")]
48282///
48283/// # Safety
48284/// Implementors must be valid pNext chain members for the target struct.
48285pub unsafe trait ExtendsPushDataInfoEXT {}
48286/// Marker trait for structs that can appear in the pNext chain of
48287#[doc = concat!("[`", "PushDescriptorSetInfo", "`].")]
48288///
48289/// # Safety
48290/// Implementors must be valid pNext chain members for the target struct.
48291pub unsafe trait ExtendsPushDescriptorSetInfo {}
48292/// Marker trait for structs that can appear in the pNext chain of
48293#[doc = concat!("[`", "PushDescriptorSetWithTemplateInfo", "`].")]
48294///
48295/// # Safety
48296/// Implementors must be valid pNext chain members for the target struct.
48297pub unsafe trait ExtendsPushDescriptorSetWithTemplateInfo {}
48298/// Marker trait for structs that can appear in the pNext chain of
48299#[doc = concat!("[`", "QueryLowLatencySupportNV", "`].")]
48300///
48301/// # Safety
48302/// Implementors must be valid pNext chain members for the target struct.
48303pub unsafe trait ExtendsQueryLowLatencySupportNV {}
48304/// Marker trait for structs that can appear in the pNext chain of
48305#[doc = concat!("[`", "QueryPoolCreateInfo", "`].")]
48306///
48307/// # Safety
48308/// Implementors must be valid pNext chain members for the target struct.
48309pub unsafe trait ExtendsQueryPoolCreateInfo {}
48310/// Marker trait for structs that can appear in the pNext chain of
48311#[doc = concat!("[`", "QueryPoolPerformanceCreateInfoKHR", "`].")]
48312///
48313/// # Safety
48314/// Implementors must be valid pNext chain members for the target struct.
48315pub unsafe trait ExtendsQueryPoolPerformanceCreateInfoKHR {}
48316/// Marker trait for structs that can appear in the pNext chain of
48317#[doc = concat!("[`", "QueryPoolPerformanceQueryCreateInfoINTEL", "`].")]
48318///
48319/// # Safety
48320/// Implementors must be valid pNext chain members for the target struct.
48321pub unsafe trait ExtendsQueryPoolPerformanceQueryCreateInfoINTEL {}
48322/// Marker trait for structs that can appear in the pNext chain of
48323#[doc = concat!("[`", "QueryPoolVideoEncodeFeedbackCreateInfoKHR", "`].")]
48324///
48325/// # Safety
48326/// Implementors must be valid pNext chain members for the target struct.
48327pub unsafe trait ExtendsQueryPoolVideoEncodeFeedbackCreateInfoKHR {}
48328/// Marker trait for structs that can appear in the pNext chain of
48329#[doc = concat!("[`", "QueueFamilyProperties2", "`].")]
48330///
48331/// # Safety
48332/// Implementors must be valid pNext chain members for the target struct.
48333pub unsafe trait ExtendsQueueFamilyProperties2 {}
48334/// Marker trait for structs that can appear in the pNext chain of
48335#[doc = concat!(
48336    "[`", "RayTracingPipelineClusterAccelerationStructureCreateInfoNV", "`]."
48337)]
48338///
48339/// # Safety
48340/// Implementors must be valid pNext chain members for the target struct.
48341pub unsafe trait ExtendsRayTracingPipelineClusterAccelerationStructureCreateInfoNV {}
48342/// Marker trait for structs that can appear in the pNext chain of
48343#[doc = concat!("[`", "RayTracingPipelineCreateInfoKHR", "`].")]
48344///
48345/// # Safety
48346/// Implementors must be valid pNext chain members for the target struct.
48347pub unsafe trait ExtendsRayTracingPipelineCreateInfoKHR {}
48348/// Marker trait for structs that can appear in the pNext chain of
48349#[doc = concat!("[`", "RayTracingPipelineCreateInfoNV", "`].")]
48350///
48351/// # Safety
48352/// Implementors must be valid pNext chain members for the target struct.
48353pub unsafe trait ExtendsRayTracingPipelineCreateInfoNV {}
48354/// Marker trait for structs that can appear in the pNext chain of
48355#[doc = concat!("[`", "RayTracingPipelineInterfaceCreateInfoKHR", "`].")]
48356///
48357/// # Safety
48358/// Implementors must be valid pNext chain members for the target struct.
48359pub unsafe trait ExtendsRayTracingPipelineInterfaceCreateInfoKHR {}
48360/// Marker trait for structs that can appear in the pNext chain of
48361#[doc = concat!("[`", "RayTracingShaderGroupCreateInfoKHR", "`].")]
48362///
48363/// # Safety
48364/// Implementors must be valid pNext chain members for the target struct.
48365pub unsafe trait ExtendsRayTracingShaderGroupCreateInfoKHR {}
48366/// Marker trait for structs that can appear in the pNext chain of
48367#[doc = concat!("[`", "RayTracingShaderGroupCreateInfoNV", "`].")]
48368///
48369/// # Safety
48370/// Implementors must be valid pNext chain members for the target struct.
48371pub unsafe trait ExtendsRayTracingShaderGroupCreateInfoNV {}
48372/// Marker trait for structs that can appear in the pNext chain of
48373#[doc = concat!("[`", "RefreshObjectListKHR", "`].")]
48374///
48375/// # Safety
48376/// Implementors must be valid pNext chain members for the target struct.
48377pub unsafe trait ExtendsRefreshObjectListKHR {}
48378/// Marker trait for structs that can appear in the pNext chain of
48379#[doc = concat!("[`", "ReleaseCapturedPipelineDataInfoKHR", "`].")]
48380///
48381/// # Safety
48382/// Implementors must be valid pNext chain members for the target struct.
48383pub unsafe trait ExtendsReleaseCapturedPipelineDataInfoKHR {}
48384/// Marker trait for structs that can appear in the pNext chain of
48385#[doc = concat!("[`", "ReleaseSwapchainImagesInfoKHR", "`].")]
48386///
48387/// # Safety
48388/// Implementors must be valid pNext chain members for the target struct.
48389pub unsafe trait ExtendsReleaseSwapchainImagesInfoKHR {}
48390/// Marker trait for structs that can appear in the pNext chain of
48391#[doc = concat!("[`", "RenderPassAttachmentBeginInfo", "`].")]
48392///
48393/// # Safety
48394/// Implementors must be valid pNext chain members for the target struct.
48395pub unsafe trait ExtendsRenderPassAttachmentBeginInfo {}
48396/// Marker trait for structs that can appear in the pNext chain of
48397#[doc = concat!("[`", "RenderPassBeginInfo", "`].")]
48398///
48399/// # Safety
48400/// Implementors must be valid pNext chain members for the target struct.
48401pub unsafe trait ExtendsRenderPassBeginInfo {}
48402/// Marker trait for structs that can appear in the pNext chain of
48403#[doc = concat!("[`", "RenderPassCreateInfo", "`].")]
48404///
48405/// # Safety
48406/// Implementors must be valid pNext chain members for the target struct.
48407pub unsafe trait ExtendsRenderPassCreateInfo {}
48408/// Marker trait for structs that can appear in the pNext chain of
48409#[doc = concat!("[`", "RenderPassCreateInfo2", "`].")]
48410///
48411/// # Safety
48412/// Implementors must be valid pNext chain members for the target struct.
48413pub unsafe trait ExtendsRenderPassCreateInfo2 {}
48414/// Marker trait for structs that can appear in the pNext chain of
48415#[doc = concat!("[`", "RenderPassCreationControlEXT", "`].")]
48416///
48417/// # Safety
48418/// Implementors must be valid pNext chain members for the target struct.
48419pub unsafe trait ExtendsRenderPassCreationControlEXT {}
48420/// Marker trait for structs that can appear in the pNext chain of
48421#[doc = concat!("[`", "RenderPassCreationFeedbackCreateInfoEXT", "`].")]
48422///
48423/// # Safety
48424/// Implementors must be valid pNext chain members for the target struct.
48425pub unsafe trait ExtendsRenderPassCreationFeedbackCreateInfoEXT {}
48426/// Marker trait for structs that can appear in the pNext chain of
48427#[doc = concat!("[`", "RenderPassFragmentDensityMapCreateInfoEXT", "`].")]
48428///
48429/// # Safety
48430/// Implementors must be valid pNext chain members for the target struct.
48431pub unsafe trait ExtendsRenderPassFragmentDensityMapCreateInfoEXT {}
48432/// Marker trait for structs that can appear in the pNext chain of
48433#[doc = concat!("[`", "RenderPassFragmentDensityMapOffsetEndInfoEXT", "`].")]
48434///
48435/// # Safety
48436/// Implementors must be valid pNext chain members for the target struct.
48437pub unsafe trait ExtendsRenderPassFragmentDensityMapOffsetEndInfoEXT {}
48438/// Marker trait for structs that can appear in the pNext chain of
48439#[doc = concat!("[`", "RenderPassInputAttachmentAspectCreateInfo", "`].")]
48440///
48441/// # Safety
48442/// Implementors must be valid pNext chain members for the target struct.
48443pub unsafe trait ExtendsRenderPassInputAttachmentAspectCreateInfo {}
48444/// Marker trait for structs that can appear in the pNext chain of
48445#[doc = concat!("[`", "RenderPassMultiviewCreateInfo", "`].")]
48446///
48447/// # Safety
48448/// Implementors must be valid pNext chain members for the target struct.
48449pub unsafe trait ExtendsRenderPassMultiviewCreateInfo {}
48450/// Marker trait for structs that can appear in the pNext chain of
48451#[doc = concat!("[`", "RenderPassPerformanceCountersByRegionBeginInfoARM", "`].")]
48452///
48453/// # Safety
48454/// Implementors must be valid pNext chain members for the target struct.
48455pub unsafe trait ExtendsRenderPassPerformanceCountersByRegionBeginInfoARM {}
48456/// Marker trait for structs that can appear in the pNext chain of
48457#[doc = concat!("[`", "RenderPassSampleLocationsBeginInfoEXT", "`].")]
48458///
48459/// # Safety
48460/// Implementors must be valid pNext chain members for the target struct.
48461pub unsafe trait ExtendsRenderPassSampleLocationsBeginInfoEXT {}
48462/// Marker trait for structs that can appear in the pNext chain of
48463#[doc = concat!("[`", "RenderPassStripeBeginInfoARM", "`].")]
48464///
48465/// # Safety
48466/// Implementors must be valid pNext chain members for the target struct.
48467pub unsafe trait ExtendsRenderPassStripeBeginInfoARM {}
48468/// Marker trait for structs that can appear in the pNext chain of
48469#[doc = concat!("[`", "RenderPassStripeInfoARM", "`].")]
48470///
48471/// # Safety
48472/// Implementors must be valid pNext chain members for the target struct.
48473pub unsafe trait ExtendsRenderPassStripeInfoARM {}
48474/// Marker trait for structs that can appear in the pNext chain of
48475#[doc = concat!("[`", "RenderPassStripeSubmitInfoARM", "`].")]
48476///
48477/// # Safety
48478/// Implementors must be valid pNext chain members for the target struct.
48479pub unsafe trait ExtendsRenderPassStripeSubmitInfoARM {}
48480/// Marker trait for structs that can appear in the pNext chain of
48481#[doc = concat!("[`", "RenderPassSubpassFeedbackCreateInfoEXT", "`].")]
48482///
48483/// # Safety
48484/// Implementors must be valid pNext chain members for the target struct.
48485pub unsafe trait ExtendsRenderPassSubpassFeedbackCreateInfoEXT {}
48486/// Marker trait for structs that can appear in the pNext chain of
48487#[doc = concat!("[`", "RenderPassTileShadingCreateInfoQCOM", "`].")]
48488///
48489/// # Safety
48490/// Implementors must be valid pNext chain members for the target struct.
48491pub unsafe trait ExtendsRenderPassTileShadingCreateInfoQCOM {}
48492/// Marker trait for structs that can appear in the pNext chain of
48493#[doc = concat!("[`", "RenderPassTransformBeginInfoQCOM", "`].")]
48494///
48495/// # Safety
48496/// Implementors must be valid pNext chain members for the target struct.
48497pub unsafe trait ExtendsRenderPassTransformBeginInfoQCOM {}
48498/// Marker trait for structs that can appear in the pNext chain of
48499#[doc = concat!("[`", "RenderingAreaInfo", "`].")]
48500///
48501/// # Safety
48502/// Implementors must be valid pNext chain members for the target struct.
48503pub unsafe trait ExtendsRenderingAreaInfo {}
48504/// Marker trait for structs that can appear in the pNext chain of
48505#[doc = concat!("[`", "RenderingAttachmentFlagsInfoKHR", "`].")]
48506///
48507/// # Safety
48508/// Implementors must be valid pNext chain members for the target struct.
48509pub unsafe trait ExtendsRenderingAttachmentFlagsInfoKHR {}
48510/// Marker trait for structs that can appear in the pNext chain of
48511#[doc = concat!("[`", "RenderingAttachmentInfo", "`].")]
48512///
48513/// # Safety
48514/// Implementors must be valid pNext chain members for the target struct.
48515pub unsafe trait ExtendsRenderingAttachmentInfo {}
48516/// Marker trait for structs that can appear in the pNext chain of
48517#[doc = concat!("[`", "RenderingAttachmentLocationInfo", "`].")]
48518///
48519/// # Safety
48520/// Implementors must be valid pNext chain members for the target struct.
48521pub unsafe trait ExtendsRenderingAttachmentLocationInfo {}
48522/// Marker trait for structs that can appear in the pNext chain of
48523#[doc = concat!("[`", "RenderingEndInfoKHR", "`].")]
48524///
48525/// # Safety
48526/// Implementors must be valid pNext chain members for the target struct.
48527pub unsafe trait ExtendsRenderingEndInfoKHR {}
48528/// Marker trait for structs that can appear in the pNext chain of
48529#[doc = concat!("[`", "RenderingFragmentDensityMapAttachmentInfoEXT", "`].")]
48530///
48531/// # Safety
48532/// Implementors must be valid pNext chain members for the target struct.
48533pub unsafe trait ExtendsRenderingFragmentDensityMapAttachmentInfoEXT {}
48534/// Marker trait for structs that can appear in the pNext chain of
48535#[doc = concat!("[`", "RenderingFragmentShadingRateAttachmentInfoKHR", "`].")]
48536///
48537/// # Safety
48538/// Implementors must be valid pNext chain members for the target struct.
48539pub unsafe trait ExtendsRenderingFragmentShadingRateAttachmentInfoKHR {}
48540/// Marker trait for structs that can appear in the pNext chain of
48541#[doc = concat!("[`", "RenderingInfo", "`].")]
48542///
48543/// # Safety
48544/// Implementors must be valid pNext chain members for the target struct.
48545pub unsafe trait ExtendsRenderingInfo {}
48546/// Marker trait for structs that can appear in the pNext chain of
48547#[doc = concat!("[`", "RenderingInputAttachmentIndexInfo", "`].")]
48548///
48549/// # Safety
48550/// Implementors must be valid pNext chain members for the target struct.
48551pub unsafe trait ExtendsRenderingInputAttachmentIndexInfo {}
48552/// Marker trait for structs that can appear in the pNext chain of
48553#[doc = concat!("[`", "ResolveImageInfo2", "`].")]
48554///
48555/// # Safety
48556/// Implementors must be valid pNext chain members for the target struct.
48557pub unsafe trait ExtendsResolveImageInfo2 {}
48558/// Marker trait for structs that can appear in the pNext chain of
48559#[doc = concat!("[`", "ResolveImageModeInfoKHR", "`].")]
48560///
48561/// # Safety
48562/// Implementors must be valid pNext chain members for the target struct.
48563pub unsafe trait ExtendsResolveImageModeInfoKHR {}
48564/// Marker trait for structs that can appear in the pNext chain of
48565#[doc = concat!("[`", "ResourceDescriptorInfoEXT", "`].")]
48566///
48567/// # Safety
48568/// Implementors must be valid pNext chain members for the target struct.
48569pub unsafe trait ExtendsResourceDescriptorInfoEXT {}
48570/// Marker trait for structs that can appear in the pNext chain of
48571#[doc = concat!("[`", "SampleLocationsInfoEXT", "`].")]
48572///
48573/// # Safety
48574/// Implementors must be valid pNext chain members for the target struct.
48575pub unsafe trait ExtendsSampleLocationsInfoEXT {}
48576/// Marker trait for structs that can appear in the pNext chain of
48577#[doc = concat!("[`", "SamplerBlockMatchWindowCreateInfoQCOM", "`].")]
48578///
48579/// # Safety
48580/// Implementors must be valid pNext chain members for the target struct.
48581pub unsafe trait ExtendsSamplerBlockMatchWindowCreateInfoQCOM {}
48582/// Marker trait for structs that can appear in the pNext chain of
48583#[doc = concat!("[`", "SamplerBorderColorComponentMappingCreateInfoEXT", "`].")]
48584///
48585/// # Safety
48586/// Implementors must be valid pNext chain members for the target struct.
48587pub unsafe trait ExtendsSamplerBorderColorComponentMappingCreateInfoEXT {}
48588/// Marker trait for structs that can appear in the pNext chain of
48589#[doc = concat!("[`", "SamplerCaptureDescriptorDataInfoEXT", "`].")]
48590///
48591/// # Safety
48592/// Implementors must be valid pNext chain members for the target struct.
48593pub unsafe trait ExtendsSamplerCaptureDescriptorDataInfoEXT {}
48594/// Marker trait for structs that can appear in the pNext chain of
48595#[doc = concat!("[`", "SamplerCreateInfo", "`].")]
48596///
48597/// # Safety
48598/// Implementors must be valid pNext chain members for the target struct.
48599pub unsafe trait ExtendsSamplerCreateInfo {}
48600/// Marker trait for structs that can appear in the pNext chain of
48601#[doc = concat!("[`", "SamplerCubicWeightsCreateInfoQCOM", "`].")]
48602///
48603/// # Safety
48604/// Implementors must be valid pNext chain members for the target struct.
48605pub unsafe trait ExtendsSamplerCubicWeightsCreateInfoQCOM {}
48606/// Marker trait for structs that can appear in the pNext chain of
48607#[doc = concat!("[`", "SamplerCustomBorderColorCreateInfoEXT", "`].")]
48608///
48609/// # Safety
48610/// Implementors must be valid pNext chain members for the target struct.
48611pub unsafe trait ExtendsSamplerCustomBorderColorCreateInfoEXT {}
48612/// Marker trait for structs that can appear in the pNext chain of
48613#[doc = concat!("[`", "SamplerCustomBorderColorIndexCreateInfoEXT", "`].")]
48614///
48615/// # Safety
48616/// Implementors must be valid pNext chain members for the target struct.
48617pub unsafe trait ExtendsSamplerCustomBorderColorIndexCreateInfoEXT {}
48618/// Marker trait for structs that can appear in the pNext chain of
48619#[doc = concat!("[`", "SamplerReductionModeCreateInfo", "`].")]
48620///
48621/// # Safety
48622/// Implementors must be valid pNext chain members for the target struct.
48623pub unsafe trait ExtendsSamplerReductionModeCreateInfo {}
48624/// Marker trait for structs that can appear in the pNext chain of
48625#[doc = concat!("[`", "SamplerYcbcrConversionCreateInfo", "`].")]
48626///
48627/// # Safety
48628/// Implementors must be valid pNext chain members for the target struct.
48629pub unsafe trait ExtendsSamplerYcbcrConversionCreateInfo {}
48630/// Marker trait for structs that can appear in the pNext chain of
48631#[doc = concat!("[`", "SamplerYcbcrConversionInfo", "`].")]
48632///
48633/// # Safety
48634/// Implementors must be valid pNext chain members for the target struct.
48635pub unsafe trait ExtendsSamplerYcbcrConversionInfo {}
48636/// Marker trait for structs that can appear in the pNext chain of
48637#[doc = concat!("[`", "SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM", "`].")]
48638///
48639/// # Safety
48640/// Implementors must be valid pNext chain members for the target struct.
48641pub unsafe trait ExtendsSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {}
48642/// Marker trait for structs that can appear in the pNext chain of
48643#[doc = concat!("[`", "SciSyncAttributesInfoNV", "`].")]
48644///
48645/// # Safety
48646/// Implementors must be valid pNext chain members for the target struct.
48647pub unsafe trait ExtendsSciSyncAttributesInfoNV {}
48648/// Marker trait for structs that can appear in the pNext chain of
48649#[doc = concat!("[`", "ScreenBufferPropertiesQNX", "`].")]
48650///
48651/// # Safety
48652/// Implementors must be valid pNext chain members for the target struct.
48653pub unsafe trait ExtendsScreenBufferPropertiesQNX {}
48654/// Marker trait for structs that can appear in the pNext chain of
48655#[doc = concat!("[`", "ScreenSurfaceCreateInfoQNX", "`].")]
48656///
48657/// # Safety
48658/// Implementors must be valid pNext chain members for the target struct.
48659pub unsafe trait ExtendsScreenSurfaceCreateInfoQNX {}
48660/// Marker trait for structs that can appear in the pNext chain of
48661#[doc = concat!("[`", "SemaphoreCreateInfo", "`].")]
48662///
48663/// # Safety
48664/// Implementors must be valid pNext chain members for the target struct.
48665pub unsafe trait ExtendsSemaphoreCreateInfo {}
48666/// Marker trait for structs that can appear in the pNext chain of
48667#[doc = concat!("[`", "SemaphoreGetFdInfoKHR", "`].")]
48668///
48669/// # Safety
48670/// Implementors must be valid pNext chain members for the target struct.
48671pub unsafe trait ExtendsSemaphoreGetFdInfoKHR {}
48672/// Marker trait for structs that can appear in the pNext chain of
48673#[doc = concat!("[`", "SemaphoreGetSciSyncInfoNV", "`].")]
48674///
48675/// # Safety
48676/// Implementors must be valid pNext chain members for the target struct.
48677pub unsafe trait ExtendsSemaphoreGetSciSyncInfoNV {}
48678/// Marker trait for structs that can appear in the pNext chain of
48679#[doc = concat!("[`", "SemaphoreGetWin32HandleInfoKHR", "`].")]
48680///
48681/// # Safety
48682/// Implementors must be valid pNext chain members for the target struct.
48683pub unsafe trait ExtendsSemaphoreGetWin32HandleInfoKHR {}
48684/// Marker trait for structs that can appear in the pNext chain of
48685#[doc = concat!("[`", "SemaphoreGetZirconHandleInfoFUCHSIA", "`].")]
48686///
48687/// # Safety
48688/// Implementors must be valid pNext chain members for the target struct.
48689pub unsafe trait ExtendsSemaphoreGetZirconHandleInfoFUCHSIA {}
48690/// Marker trait for structs that can appear in the pNext chain of
48691#[doc = concat!("[`", "SemaphoreSciSyncCreateInfoNV", "`].")]
48692///
48693/// # Safety
48694/// Implementors must be valid pNext chain members for the target struct.
48695pub unsafe trait ExtendsSemaphoreSciSyncCreateInfoNV {}
48696/// Marker trait for structs that can appear in the pNext chain of
48697#[doc = concat!("[`", "SemaphoreSciSyncPoolCreateInfoNV", "`].")]
48698///
48699/// # Safety
48700/// Implementors must be valid pNext chain members for the target struct.
48701pub unsafe trait ExtendsSemaphoreSciSyncPoolCreateInfoNV {}
48702/// Marker trait for structs that can appear in the pNext chain of
48703#[doc = concat!("[`", "SemaphoreSignalInfo", "`].")]
48704///
48705/// # Safety
48706/// Implementors must be valid pNext chain members for the target struct.
48707pub unsafe trait ExtendsSemaphoreSignalInfo {}
48708/// Marker trait for structs that can appear in the pNext chain of
48709#[doc = concat!("[`", "SemaphoreSubmitInfo", "`].")]
48710///
48711/// # Safety
48712/// Implementors must be valid pNext chain members for the target struct.
48713pub unsafe trait ExtendsSemaphoreSubmitInfo {}
48714/// Marker trait for structs that can appear in the pNext chain of
48715#[doc = concat!("[`", "SemaphoreTypeCreateInfo", "`].")]
48716///
48717/// # Safety
48718/// Implementors must be valid pNext chain members for the target struct.
48719pub unsafe trait ExtendsSemaphoreTypeCreateInfo {}
48720/// Marker trait for structs that can appear in the pNext chain of
48721#[doc = concat!("[`", "SemaphoreWaitInfo", "`].")]
48722///
48723/// # Safety
48724/// Implementors must be valid pNext chain members for the target struct.
48725pub unsafe trait ExtendsSemaphoreWaitInfo {}
48726/// Marker trait for structs that can appear in the pNext chain of
48727#[doc = concat!("[`", "SetDescriptorBufferOffsetsInfoEXT", "`].")]
48728///
48729/// # Safety
48730/// Implementors must be valid pNext chain members for the target struct.
48731pub unsafe trait ExtendsSetDescriptorBufferOffsetsInfoEXT {}
48732/// Marker trait for structs that can appear in the pNext chain of
48733#[doc = concat!("[`", "SetLatencyMarkerInfoNV", "`].")]
48734///
48735/// # Safety
48736/// Implementors must be valid pNext chain members for the target struct.
48737pub unsafe trait ExtendsSetLatencyMarkerInfoNV {}
48738/// Marker trait for structs that can appear in the pNext chain of
48739#[doc = concat!("[`", "SetPresentConfigNV", "`].")]
48740///
48741/// # Safety
48742/// Implementors must be valid pNext chain members for the target struct.
48743pub unsafe trait ExtendsSetPresentConfigNV {}
48744/// Marker trait for structs that can appear in the pNext chain of
48745#[doc = concat!("[`", "ShaderCreateInfoEXT", "`].")]
48746///
48747/// # Safety
48748/// Implementors must be valid pNext chain members for the target struct.
48749pub unsafe trait ExtendsShaderCreateInfoEXT {}
48750/// Marker trait for structs that can appear in the pNext chain of
48751#[doc = concat!("[`", "ShaderDescriptorSetAndBindingMappingInfoEXT", "`].")]
48752///
48753/// # Safety
48754/// Implementors must be valid pNext chain members for the target struct.
48755pub unsafe trait ExtendsShaderDescriptorSetAndBindingMappingInfoEXT {}
48756/// Marker trait for structs that can appear in the pNext chain of
48757#[doc = concat!("[`", "ShaderInstrumentationCreateInfoARM", "`].")]
48758///
48759/// # Safety
48760/// Implementors must be valid pNext chain members for the target struct.
48761pub unsafe trait ExtendsShaderInstrumentationCreateInfoARM {}
48762/// Marker trait for structs that can appear in the pNext chain of
48763#[doc = concat!("[`", "ShaderInstrumentationMetricDescriptionARM", "`].")]
48764///
48765/// # Safety
48766/// Implementors must be valid pNext chain members for the target struct.
48767pub unsafe trait ExtendsShaderInstrumentationMetricDescriptionARM {}
48768/// Marker trait for structs that can appear in the pNext chain of
48769#[doc = concat!("[`", "ShaderModuleCreateInfo", "`].")]
48770///
48771/// # Safety
48772/// Implementors must be valid pNext chain members for the target struct.
48773pub unsafe trait ExtendsShaderModuleCreateInfo {}
48774/// Marker trait for structs that can appear in the pNext chain of
48775#[doc = concat!("[`", "ShaderModuleValidationCacheCreateInfoEXT", "`].")]
48776///
48777/// # Safety
48778/// Implementors must be valid pNext chain members for the target struct.
48779pub unsafe trait ExtendsShaderModuleValidationCacheCreateInfoEXT {}
48780/// Marker trait for structs that can appear in the pNext chain of
48781#[doc = concat!("[`", "StreamDescriptorSurfaceCreateInfoGGP", "`].")]
48782///
48783/// # Safety
48784/// Implementors must be valid pNext chain members for the target struct.
48785pub unsafe trait ExtendsStreamDescriptorSurfaceCreateInfoGGP {}
48786/// Marker trait for structs that can appear in the pNext chain of
48787#[doc = concat!("[`", "SubmitInfo", "`].")]
48788///
48789/// # Safety
48790/// Implementors must be valid pNext chain members for the target struct.
48791pub unsafe trait ExtendsSubmitInfo {}
48792/// Marker trait for structs that can appear in the pNext chain of
48793#[doc = concat!("[`", "SubmitInfo2", "`].")]
48794///
48795/// # Safety
48796/// Implementors must be valid pNext chain members for the target struct.
48797pub unsafe trait ExtendsSubmitInfo2 {}
48798/// Marker trait for structs that can appear in the pNext chain of
48799#[doc = concat!("[`", "SubpassBeginInfo", "`].")]
48800///
48801/// # Safety
48802/// Implementors must be valid pNext chain members for the target struct.
48803pub unsafe trait ExtendsSubpassBeginInfo {}
48804/// Marker trait for structs that can appear in the pNext chain of
48805#[doc = concat!("[`", "SubpassDependency2", "`].")]
48806///
48807/// # Safety
48808/// Implementors must be valid pNext chain members for the target struct.
48809pub unsafe trait ExtendsSubpassDependency2 {}
48810/// Marker trait for structs that can appear in the pNext chain of
48811#[doc = concat!("[`", "SubpassDescription2", "`].")]
48812///
48813/// # Safety
48814/// Implementors must be valid pNext chain members for the target struct.
48815pub unsafe trait ExtendsSubpassDescription2 {}
48816/// Marker trait for structs that can appear in the pNext chain of
48817#[doc = concat!("[`", "SubpassDescriptionDepthStencilResolve", "`].")]
48818///
48819/// # Safety
48820/// Implementors must be valid pNext chain members for the target struct.
48821pub unsafe trait ExtendsSubpassDescriptionDepthStencilResolve {}
48822/// Marker trait for structs that can appear in the pNext chain of
48823#[doc = concat!("[`", "SubpassEndInfo", "`].")]
48824///
48825/// # Safety
48826/// Implementors must be valid pNext chain members for the target struct.
48827pub unsafe trait ExtendsSubpassEndInfo {}
48828/// Marker trait for structs that can appear in the pNext chain of
48829#[doc = concat!("[`", "SubpassShadingPipelineCreateInfoHUAWEI", "`].")]
48830///
48831/// # Safety
48832/// Implementors must be valid pNext chain members for the target struct.
48833pub unsafe trait ExtendsSubpassShadingPipelineCreateInfoHUAWEI {}
48834/// Marker trait for structs that can appear in the pNext chain of
48835#[doc = concat!("[`", "SubresourceLayout2", "`].")]
48836///
48837/// # Safety
48838/// Implementors must be valid pNext chain members for the target struct.
48839pub unsafe trait ExtendsSubresourceLayout2 {}
48840/// Marker trait for structs that can appear in the pNext chain of
48841#[doc = concat!("[`", "SubsampledImageFormatPropertiesEXT", "`].")]
48842///
48843/// # Safety
48844/// Implementors must be valid pNext chain members for the target struct.
48845pub unsafe trait ExtendsSubsampledImageFormatPropertiesEXT {}
48846/// Marker trait for structs that can appear in the pNext chain of
48847#[doc = concat!("[`", "SurfaceCapabilities2KHR", "`].")]
48848///
48849/// # Safety
48850/// Implementors must be valid pNext chain members for the target struct.
48851pub unsafe trait ExtendsSurfaceCapabilities2KHR {}
48852/// Marker trait for structs that can appear in the pNext chain of
48853#[doc = concat!("[`", "SurfaceCapabilitiesPresentId2KHR", "`].")]
48854///
48855/// # Safety
48856/// Implementors must be valid pNext chain members for the target struct.
48857pub unsafe trait ExtendsSurfaceCapabilitiesPresentId2KHR {}
48858/// Marker trait for structs that can appear in the pNext chain of
48859#[doc = concat!("[`", "SurfaceCapabilitiesPresentWait2KHR", "`].")]
48860///
48861/// # Safety
48862/// Implementors must be valid pNext chain members for the target struct.
48863pub unsafe trait ExtendsSurfaceCapabilitiesPresentWait2KHR {}
48864/// Marker trait for structs that can appear in the pNext chain of
48865#[doc = concat!("[`", "SurfaceCreateInfoOHOS", "`].")]
48866///
48867/// # Safety
48868/// Implementors must be valid pNext chain members for the target struct.
48869pub unsafe trait ExtendsSurfaceCreateInfoOHOS {}
48870/// Marker trait for structs that can appear in the pNext chain of
48871#[doc = concat!("[`", "SurfaceFormat2KHR", "`].")]
48872///
48873/// # Safety
48874/// Implementors must be valid pNext chain members for the target struct.
48875pub unsafe trait ExtendsSurfaceFormat2KHR {}
48876/// Marker trait for structs that can appear in the pNext chain of
48877#[doc = concat!("[`", "SurfaceFullScreenExclusiveInfoEXT", "`].")]
48878///
48879/// # Safety
48880/// Implementors must be valid pNext chain members for the target struct.
48881pub unsafe trait ExtendsSurfaceFullScreenExclusiveInfoEXT {}
48882/// Marker trait for structs that can appear in the pNext chain of
48883#[doc = concat!("[`", "SurfaceFullScreenExclusiveWin32InfoEXT", "`].")]
48884///
48885/// # Safety
48886/// Implementors must be valid pNext chain members for the target struct.
48887pub unsafe trait ExtendsSurfaceFullScreenExclusiveWin32InfoEXT {}
48888/// Marker trait for structs that can appear in the pNext chain of
48889#[doc = concat!("[`", "SurfacePresentModeCompatibilityKHR", "`].")]
48890///
48891/// # Safety
48892/// Implementors must be valid pNext chain members for the target struct.
48893pub unsafe trait ExtendsSurfacePresentModeCompatibilityKHR {}
48894/// Marker trait for structs that can appear in the pNext chain of
48895#[doc = concat!("[`", "SurfacePresentModeKHR", "`].")]
48896///
48897/// # Safety
48898/// Implementors must be valid pNext chain members for the target struct.
48899pub unsafe trait ExtendsSurfacePresentModeKHR {}
48900/// Marker trait for structs that can appear in the pNext chain of
48901#[doc = concat!("[`", "SurfacePresentScalingCapabilitiesKHR", "`].")]
48902///
48903/// # Safety
48904/// Implementors must be valid pNext chain members for the target struct.
48905pub unsafe trait ExtendsSurfacePresentScalingCapabilitiesKHR {}
48906/// Marker trait for structs that can appear in the pNext chain of
48907#[doc = concat!("[`", "SwapchainCalibratedTimestampInfoEXT", "`].")]
48908///
48909/// # Safety
48910/// Implementors must be valid pNext chain members for the target struct.
48911pub unsafe trait ExtendsSwapchainCalibratedTimestampInfoEXT {}
48912/// Marker trait for structs that can appear in the pNext chain of
48913#[doc = concat!("[`", "SwapchainCounterCreateInfoEXT", "`].")]
48914///
48915/// # Safety
48916/// Implementors must be valid pNext chain members for the target struct.
48917pub unsafe trait ExtendsSwapchainCounterCreateInfoEXT {}
48918/// Marker trait for structs that can appear in the pNext chain of
48919#[doc = concat!("[`", "SwapchainCreateInfoKHR", "`].")]
48920///
48921/// # Safety
48922/// Implementors must be valid pNext chain members for the target struct.
48923pub unsafe trait ExtendsSwapchainCreateInfoKHR {}
48924/// Marker trait for structs that can appear in the pNext chain of
48925#[doc = concat!("[`", "SwapchainDisplayNativeHdrCreateInfoAMD", "`].")]
48926///
48927/// # Safety
48928/// Implementors must be valid pNext chain members for the target struct.
48929pub unsafe trait ExtendsSwapchainDisplayNativeHdrCreateInfoAMD {}
48930/// Marker trait for structs that can appear in the pNext chain of
48931#[doc = concat!("[`", "SwapchainImageCreateInfoANDROID", "`].")]
48932///
48933/// # Safety
48934/// Implementors must be valid pNext chain members for the target struct.
48935pub unsafe trait ExtendsSwapchainImageCreateInfoANDROID {}
48936/// Marker trait for structs that can appear in the pNext chain of
48937#[doc = concat!("[`", "SwapchainImageCreateInfoOHOS", "`].")]
48938///
48939/// # Safety
48940/// Implementors must be valid pNext chain members for the target struct.
48941pub unsafe trait ExtendsSwapchainImageCreateInfoOHOS {}
48942/// Marker trait for structs that can appear in the pNext chain of
48943#[doc = concat!("[`", "SwapchainLatencyCreateInfoNV", "`].")]
48944///
48945/// # Safety
48946/// Implementors must be valid pNext chain members for the target struct.
48947pub unsafe trait ExtendsSwapchainLatencyCreateInfoNV {}
48948/// Marker trait for structs that can appear in the pNext chain of
48949#[doc = concat!("[`", "SwapchainPresentBarrierCreateInfoNV", "`].")]
48950///
48951/// # Safety
48952/// Implementors must be valid pNext chain members for the target struct.
48953pub unsafe trait ExtendsSwapchainPresentBarrierCreateInfoNV {}
48954/// Marker trait for structs that can appear in the pNext chain of
48955#[doc = concat!("[`", "SwapchainPresentFenceInfoKHR", "`].")]
48956///
48957/// # Safety
48958/// Implementors must be valid pNext chain members for the target struct.
48959pub unsafe trait ExtendsSwapchainPresentFenceInfoKHR {}
48960/// Marker trait for structs that can appear in the pNext chain of
48961#[doc = concat!("[`", "SwapchainPresentModeInfoKHR", "`].")]
48962///
48963/// # Safety
48964/// Implementors must be valid pNext chain members for the target struct.
48965pub unsafe trait ExtendsSwapchainPresentModeInfoKHR {}
48966/// Marker trait for structs that can appear in the pNext chain of
48967#[doc = concat!("[`", "SwapchainPresentModesCreateInfoKHR", "`].")]
48968///
48969/// # Safety
48970/// Implementors must be valid pNext chain members for the target struct.
48971pub unsafe trait ExtendsSwapchainPresentModesCreateInfoKHR {}
48972/// Marker trait for structs that can appear in the pNext chain of
48973#[doc = concat!("[`", "SwapchainPresentScalingCreateInfoKHR", "`].")]
48974///
48975/// # Safety
48976/// Implementors must be valid pNext chain members for the target struct.
48977pub unsafe trait ExtendsSwapchainPresentScalingCreateInfoKHR {}
48978/// Marker trait for structs that can appear in the pNext chain of
48979#[doc = concat!("[`", "SysmemColorSpaceFUCHSIA", "`].")]
48980///
48981/// # Safety
48982/// Implementors must be valid pNext chain members for the target struct.
48983pub unsafe trait ExtendsSysmemColorSpaceFUCHSIA {}
48984/// Marker trait for structs that can appear in the pNext chain of
48985#[doc = concat!("[`", "TensorCaptureDescriptorDataInfoARM", "`].")]
48986///
48987/// # Safety
48988/// Implementors must be valid pNext chain members for the target struct.
48989pub unsafe trait ExtendsTensorCaptureDescriptorDataInfoARM {}
48990/// Marker trait for structs that can appear in the pNext chain of
48991#[doc = concat!("[`", "TensorCopyARM", "`].")]
48992///
48993/// # Safety
48994/// Implementors must be valid pNext chain members for the target struct.
48995pub unsafe trait ExtendsTensorCopyARM {}
48996/// Marker trait for structs that can appear in the pNext chain of
48997#[doc = concat!("[`", "TensorCreateInfoARM", "`].")]
48998///
48999/// # Safety
49000/// Implementors must be valid pNext chain members for the target struct.
49001pub unsafe trait ExtendsTensorCreateInfoARM {}
49002/// Marker trait for structs that can appear in the pNext chain of
49003#[doc = concat!("[`", "TensorDependencyInfoARM", "`].")]
49004///
49005/// # Safety
49006/// Implementors must be valid pNext chain members for the target struct.
49007pub unsafe trait ExtendsTensorDependencyInfoARM {}
49008/// Marker trait for structs that can appear in the pNext chain of
49009#[doc = concat!("[`", "TensorDescriptionARM", "`].")]
49010///
49011/// # Safety
49012/// Implementors must be valid pNext chain members for the target struct.
49013pub unsafe trait ExtendsTensorDescriptionARM {}
49014/// Marker trait for structs that can appear in the pNext chain of
49015#[doc = concat!("[`", "TensorMemoryBarrierARM", "`].")]
49016///
49017/// # Safety
49018/// Implementors must be valid pNext chain members for the target struct.
49019pub unsafe trait ExtendsTensorMemoryBarrierARM {}
49020/// Marker trait for structs that can appear in the pNext chain of
49021#[doc = concat!("[`", "TensorMemoryRequirementsInfoARM", "`].")]
49022///
49023/// # Safety
49024/// Implementors must be valid pNext chain members for the target struct.
49025pub unsafe trait ExtendsTensorMemoryRequirementsInfoARM {}
49026/// Marker trait for structs that can appear in the pNext chain of
49027#[doc = concat!("[`", "TensorViewCaptureDescriptorDataInfoARM", "`].")]
49028///
49029/// # Safety
49030/// Implementors must be valid pNext chain members for the target struct.
49031pub unsafe trait ExtendsTensorViewCaptureDescriptorDataInfoARM {}
49032/// Marker trait for structs that can appear in the pNext chain of
49033#[doc = concat!("[`", "TensorViewCreateInfoARM", "`].")]
49034///
49035/// # Safety
49036/// Implementors must be valid pNext chain members for the target struct.
49037pub unsafe trait ExtendsTensorViewCreateInfoARM {}
49038/// Marker trait for structs that can appear in the pNext chain of
49039#[doc = concat!("[`", "TexelBufferDescriptorInfoEXT", "`].")]
49040///
49041/// # Safety
49042/// Implementors must be valid pNext chain members for the target struct.
49043pub unsafe trait ExtendsTexelBufferDescriptorInfoEXT {}
49044/// Marker trait for structs that can appear in the pNext chain of
49045#[doc = concat!("[`", "TileMemoryBindInfoQCOM", "`].")]
49046///
49047/// # Safety
49048/// Implementors must be valid pNext chain members for the target struct.
49049pub unsafe trait ExtendsTileMemoryBindInfoQCOM {}
49050/// Marker trait for structs that can appear in the pNext chain of
49051#[doc = concat!("[`", "TileMemoryRequirementsQCOM", "`].")]
49052///
49053/// # Safety
49054/// Implementors must be valid pNext chain members for the target struct.
49055pub unsafe trait ExtendsTileMemoryRequirementsQCOM {}
49056/// Marker trait for structs that can appear in the pNext chain of
49057#[doc = concat!("[`", "TileMemorySizeInfoQCOM", "`].")]
49058///
49059/// # Safety
49060/// Implementors must be valid pNext chain members for the target struct.
49061pub unsafe trait ExtendsTileMemorySizeInfoQCOM {}
49062/// Marker trait for structs that can appear in the pNext chain of
49063#[doc = concat!("[`", "TilePropertiesQCOM", "`].")]
49064///
49065/// # Safety
49066/// Implementors must be valid pNext chain members for the target struct.
49067pub unsafe trait ExtendsTilePropertiesQCOM {}
49068/// Marker trait for structs that can appear in the pNext chain of
49069#[doc = concat!("[`", "TimelineSemaphoreSubmitInfo", "`].")]
49070///
49071/// # Safety
49072/// Implementors must be valid pNext chain members for the target struct.
49073pub unsafe trait ExtendsTimelineSemaphoreSubmitInfo {}
49074/// Marker trait for structs that can appear in the pNext chain of
49075#[doc = concat!("[`", "UbmSurfaceCreateInfoSEC", "`].")]
49076///
49077/// # Safety
49078/// Implementors must be valid pNext chain members for the target struct.
49079pub unsafe trait ExtendsUbmSurfaceCreateInfoSEC {}
49080/// Marker trait for structs that can appear in the pNext chain of
49081#[doc = concat!("[`", "ValidationCacheCreateInfoEXT", "`].")]
49082///
49083/// # Safety
49084/// Implementors must be valid pNext chain members for the target struct.
49085pub unsafe trait ExtendsValidationCacheCreateInfoEXT {}
49086/// Marker trait for structs that can appear in the pNext chain of
49087#[doc = concat!("[`", "ValidationFeaturesEXT", "`].")]
49088///
49089/// # Safety
49090/// Implementors must be valid pNext chain members for the target struct.
49091pub unsafe trait ExtendsValidationFeaturesEXT {}
49092/// Marker trait for structs that can appear in the pNext chain of
49093#[doc = concat!("[`", "ValidationFlagsEXT", "`].")]
49094///
49095/// # Safety
49096/// Implementors must be valid pNext chain members for the target struct.
49097pub unsafe trait ExtendsValidationFlagsEXT {}
49098/// Marker trait for structs that can appear in the pNext chain of
49099#[doc = concat!("[`", "VertexInputAttributeDescription2EXT", "`].")]
49100///
49101/// # Safety
49102/// Implementors must be valid pNext chain members for the target struct.
49103pub unsafe trait ExtendsVertexInputAttributeDescription2EXT {}
49104/// Marker trait for structs that can appear in the pNext chain of
49105#[doc = concat!("[`", "VertexInputBindingDescription2EXT", "`].")]
49106///
49107/// # Safety
49108/// Implementors must be valid pNext chain members for the target struct.
49109pub unsafe trait ExtendsVertexInputBindingDescription2EXT {}
49110/// Marker trait for structs that can appear in the pNext chain of
49111#[doc = concat!("[`", "ViSurfaceCreateInfoNN", "`].")]
49112///
49113/// # Safety
49114/// Implementors must be valid pNext chain members for the target struct.
49115pub unsafe trait ExtendsViSurfaceCreateInfoNN {}
49116/// Marker trait for structs that can appear in the pNext chain of
49117#[doc = concat!("[`", "VideoBeginCodingInfoKHR", "`].")]
49118///
49119/// # Safety
49120/// Implementors must be valid pNext chain members for the target struct.
49121pub unsafe trait ExtendsVideoBeginCodingInfoKHR {}
49122/// Marker trait for structs that can appear in the pNext chain of
49123#[doc = concat!("[`", "VideoCapabilitiesKHR", "`].")]
49124///
49125/// # Safety
49126/// Implementors must be valid pNext chain members for the target struct.
49127pub unsafe trait ExtendsVideoCapabilitiesKHR {}
49128/// Marker trait for structs that can appear in the pNext chain of
49129#[doc = concat!("[`", "VideoCodingControlInfoKHR", "`].")]
49130///
49131/// # Safety
49132/// Implementors must be valid pNext chain members for the target struct.
49133pub unsafe trait ExtendsVideoCodingControlInfoKHR {}
49134/// Marker trait for structs that can appear in the pNext chain of
49135#[doc = concat!("[`", "VideoDecodeAV1DpbSlotInfoKHR", "`].")]
49136///
49137/// # Safety
49138/// Implementors must be valid pNext chain members for the target struct.
49139pub unsafe trait ExtendsVideoDecodeAV1DpbSlotInfoKHR {}
49140/// Marker trait for structs that can appear in the pNext chain of
49141#[doc = concat!("[`", "VideoDecodeAV1InlineSessionParametersInfoKHR", "`].")]
49142///
49143/// # Safety
49144/// Implementors must be valid pNext chain members for the target struct.
49145pub unsafe trait ExtendsVideoDecodeAV1InlineSessionParametersInfoKHR {}
49146/// Marker trait for structs that can appear in the pNext chain of
49147#[doc = concat!("[`", "VideoDecodeAV1PictureInfoKHR", "`].")]
49148///
49149/// # Safety
49150/// Implementors must be valid pNext chain members for the target struct.
49151pub unsafe trait ExtendsVideoDecodeAV1PictureInfoKHR {}
49152/// Marker trait for structs that can appear in the pNext chain of
49153#[doc = concat!("[`", "VideoDecodeAV1ProfileInfoKHR", "`].")]
49154///
49155/// # Safety
49156/// Implementors must be valid pNext chain members for the target struct.
49157pub unsafe trait ExtendsVideoDecodeAV1ProfileInfoKHR {}
49158/// Marker trait for structs that can appear in the pNext chain of
49159#[doc = concat!("[`", "VideoDecodeAV1SessionParametersCreateInfoKHR", "`].")]
49160///
49161/// # Safety
49162/// Implementors must be valid pNext chain members for the target struct.
49163pub unsafe trait ExtendsVideoDecodeAV1SessionParametersCreateInfoKHR {}
49164/// Marker trait for structs that can appear in the pNext chain of
49165#[doc = concat!("[`", "VideoDecodeH264DpbSlotInfoKHR", "`].")]
49166///
49167/// # Safety
49168/// Implementors must be valid pNext chain members for the target struct.
49169pub unsafe trait ExtendsVideoDecodeH264DpbSlotInfoKHR {}
49170/// Marker trait for structs that can appear in the pNext chain of
49171#[doc = concat!("[`", "VideoDecodeH264InlineSessionParametersInfoKHR", "`].")]
49172///
49173/// # Safety
49174/// Implementors must be valid pNext chain members for the target struct.
49175pub unsafe trait ExtendsVideoDecodeH264InlineSessionParametersInfoKHR {}
49176/// Marker trait for structs that can appear in the pNext chain of
49177#[doc = concat!("[`", "VideoDecodeH264PictureInfoKHR", "`].")]
49178///
49179/// # Safety
49180/// Implementors must be valid pNext chain members for the target struct.
49181pub unsafe trait ExtendsVideoDecodeH264PictureInfoKHR {}
49182/// Marker trait for structs that can appear in the pNext chain of
49183#[doc = concat!("[`", "VideoDecodeH264ProfileInfoKHR", "`].")]
49184///
49185/// # Safety
49186/// Implementors must be valid pNext chain members for the target struct.
49187pub unsafe trait ExtendsVideoDecodeH264ProfileInfoKHR {}
49188/// Marker trait for structs that can appear in the pNext chain of
49189#[doc = concat!("[`", "VideoDecodeH264SessionParametersAddInfoKHR", "`].")]
49190///
49191/// # Safety
49192/// Implementors must be valid pNext chain members for the target struct.
49193pub unsafe trait ExtendsVideoDecodeH264SessionParametersAddInfoKHR {}
49194/// Marker trait for structs that can appear in the pNext chain of
49195#[doc = concat!("[`", "VideoDecodeH264SessionParametersCreateInfoKHR", "`].")]
49196///
49197/// # Safety
49198/// Implementors must be valid pNext chain members for the target struct.
49199pub unsafe trait ExtendsVideoDecodeH264SessionParametersCreateInfoKHR {}
49200/// Marker trait for structs that can appear in the pNext chain of
49201#[doc = concat!("[`", "VideoDecodeH265DpbSlotInfoKHR", "`].")]
49202///
49203/// # Safety
49204/// Implementors must be valid pNext chain members for the target struct.
49205pub unsafe trait ExtendsVideoDecodeH265DpbSlotInfoKHR {}
49206/// Marker trait for structs that can appear in the pNext chain of
49207#[doc = concat!("[`", "VideoDecodeH265InlineSessionParametersInfoKHR", "`].")]
49208///
49209/// # Safety
49210/// Implementors must be valid pNext chain members for the target struct.
49211pub unsafe trait ExtendsVideoDecodeH265InlineSessionParametersInfoKHR {}
49212/// Marker trait for structs that can appear in the pNext chain of
49213#[doc = concat!("[`", "VideoDecodeH265PictureInfoKHR", "`].")]
49214///
49215/// # Safety
49216/// Implementors must be valid pNext chain members for the target struct.
49217pub unsafe trait ExtendsVideoDecodeH265PictureInfoKHR {}
49218/// Marker trait for structs that can appear in the pNext chain of
49219#[doc = concat!("[`", "VideoDecodeH265ProfileInfoKHR", "`].")]
49220///
49221/// # Safety
49222/// Implementors must be valid pNext chain members for the target struct.
49223pub unsafe trait ExtendsVideoDecodeH265ProfileInfoKHR {}
49224/// Marker trait for structs that can appear in the pNext chain of
49225#[doc = concat!("[`", "VideoDecodeH265SessionParametersAddInfoKHR", "`].")]
49226///
49227/// # Safety
49228/// Implementors must be valid pNext chain members for the target struct.
49229pub unsafe trait ExtendsVideoDecodeH265SessionParametersAddInfoKHR {}
49230/// Marker trait for structs that can appear in the pNext chain of
49231#[doc = concat!("[`", "VideoDecodeH265SessionParametersCreateInfoKHR", "`].")]
49232///
49233/// # Safety
49234/// Implementors must be valid pNext chain members for the target struct.
49235pub unsafe trait ExtendsVideoDecodeH265SessionParametersCreateInfoKHR {}
49236/// Marker trait for structs that can appear in the pNext chain of
49237#[doc = concat!("[`", "VideoDecodeInfoKHR", "`].")]
49238///
49239/// # Safety
49240/// Implementors must be valid pNext chain members for the target struct.
49241pub unsafe trait ExtendsVideoDecodeInfoKHR {}
49242/// Marker trait for structs that can appear in the pNext chain of
49243#[doc = concat!("[`", "VideoDecodeUsageInfoKHR", "`].")]
49244///
49245/// # Safety
49246/// Implementors must be valid pNext chain members for the target struct.
49247pub unsafe trait ExtendsVideoDecodeUsageInfoKHR {}
49248/// Marker trait for structs that can appear in the pNext chain of
49249#[doc = concat!("[`", "VideoDecodeVP9PictureInfoKHR", "`].")]
49250///
49251/// # Safety
49252/// Implementors must be valid pNext chain members for the target struct.
49253pub unsafe trait ExtendsVideoDecodeVP9PictureInfoKHR {}
49254/// Marker trait for structs that can appear in the pNext chain of
49255#[doc = concat!("[`", "VideoDecodeVP9ProfileInfoKHR", "`].")]
49256///
49257/// # Safety
49258/// Implementors must be valid pNext chain members for the target struct.
49259pub unsafe trait ExtendsVideoDecodeVP9ProfileInfoKHR {}
49260/// Marker trait for structs that can appear in the pNext chain of
49261#[doc = concat!("[`", "VideoEncodeAV1DpbSlotInfoKHR", "`].")]
49262///
49263/// # Safety
49264/// Implementors must be valid pNext chain members for the target struct.
49265pub unsafe trait ExtendsVideoEncodeAV1DpbSlotInfoKHR {}
49266/// Marker trait for structs that can appear in the pNext chain of
49267#[doc = concat!("[`", "VideoEncodeAV1GopRemainingFrameInfoKHR", "`].")]
49268///
49269/// # Safety
49270/// Implementors must be valid pNext chain members for the target struct.
49271pub unsafe trait ExtendsVideoEncodeAV1GopRemainingFrameInfoKHR {}
49272/// Marker trait for structs that can appear in the pNext chain of
49273#[doc = concat!("[`", "VideoEncodeAV1PictureInfoKHR", "`].")]
49274///
49275/// # Safety
49276/// Implementors must be valid pNext chain members for the target struct.
49277pub unsafe trait ExtendsVideoEncodeAV1PictureInfoKHR {}
49278/// Marker trait for structs that can appear in the pNext chain of
49279#[doc = concat!("[`", "VideoEncodeAV1ProfileInfoKHR", "`].")]
49280///
49281/// # Safety
49282/// Implementors must be valid pNext chain members for the target struct.
49283pub unsafe trait ExtendsVideoEncodeAV1ProfileInfoKHR {}
49284/// Marker trait for structs that can appear in the pNext chain of
49285#[doc = concat!("[`", "VideoEncodeAV1RateControlInfoKHR", "`].")]
49286///
49287/// # Safety
49288/// Implementors must be valid pNext chain members for the target struct.
49289pub unsafe trait ExtendsVideoEncodeAV1RateControlInfoKHR {}
49290/// Marker trait for structs that can appear in the pNext chain of
49291#[doc = concat!("[`", "VideoEncodeAV1RateControlLayerInfoKHR", "`].")]
49292///
49293/// # Safety
49294/// Implementors must be valid pNext chain members for the target struct.
49295pub unsafe trait ExtendsVideoEncodeAV1RateControlLayerInfoKHR {}
49296/// Marker trait for structs that can appear in the pNext chain of
49297#[doc = concat!("[`", "VideoEncodeAV1SessionCreateInfoKHR", "`].")]
49298///
49299/// # Safety
49300/// Implementors must be valid pNext chain members for the target struct.
49301pub unsafe trait ExtendsVideoEncodeAV1SessionCreateInfoKHR {}
49302/// Marker trait for structs that can appear in the pNext chain of
49303#[doc = concat!("[`", "VideoEncodeAV1SessionParametersCreateInfoKHR", "`].")]
49304///
49305/// # Safety
49306/// Implementors must be valid pNext chain members for the target struct.
49307pub unsafe trait ExtendsVideoEncodeAV1SessionParametersCreateInfoKHR {}
49308/// Marker trait for structs that can appear in the pNext chain of
49309#[doc = concat!("[`", "VideoEncodeH264DpbSlotInfoKHR", "`].")]
49310///
49311/// # Safety
49312/// Implementors must be valid pNext chain members for the target struct.
49313pub unsafe trait ExtendsVideoEncodeH264DpbSlotInfoKHR {}
49314/// Marker trait for structs that can appear in the pNext chain of
49315#[doc = concat!("[`", "VideoEncodeH264GopRemainingFrameInfoKHR", "`].")]
49316///
49317/// # Safety
49318/// Implementors must be valid pNext chain members for the target struct.
49319pub unsafe trait ExtendsVideoEncodeH264GopRemainingFrameInfoKHR {}
49320/// Marker trait for structs that can appear in the pNext chain of
49321#[doc = concat!("[`", "VideoEncodeH264NaluSliceInfoKHR", "`].")]
49322///
49323/// # Safety
49324/// Implementors must be valid pNext chain members for the target struct.
49325pub unsafe trait ExtendsVideoEncodeH264NaluSliceInfoKHR {}
49326/// Marker trait for structs that can appear in the pNext chain of
49327#[doc = concat!("[`", "VideoEncodeH264PictureInfoKHR", "`].")]
49328///
49329/// # Safety
49330/// Implementors must be valid pNext chain members for the target struct.
49331pub unsafe trait ExtendsVideoEncodeH264PictureInfoKHR {}
49332/// Marker trait for structs that can appear in the pNext chain of
49333#[doc = concat!("[`", "VideoEncodeH264ProfileInfoKHR", "`].")]
49334///
49335/// # Safety
49336/// Implementors must be valid pNext chain members for the target struct.
49337pub unsafe trait ExtendsVideoEncodeH264ProfileInfoKHR {}
49338/// Marker trait for structs that can appear in the pNext chain of
49339#[doc = concat!("[`", "VideoEncodeH264RateControlInfoKHR", "`].")]
49340///
49341/// # Safety
49342/// Implementors must be valid pNext chain members for the target struct.
49343pub unsafe trait ExtendsVideoEncodeH264RateControlInfoKHR {}
49344/// Marker trait for structs that can appear in the pNext chain of
49345#[doc = concat!("[`", "VideoEncodeH264RateControlLayerInfoKHR", "`].")]
49346///
49347/// # Safety
49348/// Implementors must be valid pNext chain members for the target struct.
49349pub unsafe trait ExtendsVideoEncodeH264RateControlLayerInfoKHR {}
49350/// Marker trait for structs that can appear in the pNext chain of
49351#[doc = concat!("[`", "VideoEncodeH264SessionCreateInfoKHR", "`].")]
49352///
49353/// # Safety
49354/// Implementors must be valid pNext chain members for the target struct.
49355pub unsafe trait ExtendsVideoEncodeH264SessionCreateInfoKHR {}
49356/// Marker trait for structs that can appear in the pNext chain of
49357#[doc = concat!("[`", "VideoEncodeH264SessionParametersAddInfoKHR", "`].")]
49358///
49359/// # Safety
49360/// Implementors must be valid pNext chain members for the target struct.
49361pub unsafe trait ExtendsVideoEncodeH264SessionParametersAddInfoKHR {}
49362/// Marker trait for structs that can appear in the pNext chain of
49363#[doc = concat!("[`", "VideoEncodeH264SessionParametersCreateInfoKHR", "`].")]
49364///
49365/// # Safety
49366/// Implementors must be valid pNext chain members for the target struct.
49367pub unsafe trait ExtendsVideoEncodeH264SessionParametersCreateInfoKHR {}
49368/// Marker trait for structs that can appear in the pNext chain of
49369#[doc = concat!("[`", "VideoEncodeH264SessionParametersGetInfoKHR", "`].")]
49370///
49371/// # Safety
49372/// Implementors must be valid pNext chain members for the target struct.
49373pub unsafe trait ExtendsVideoEncodeH264SessionParametersGetInfoKHR {}
49374/// Marker trait for structs that can appear in the pNext chain of
49375#[doc = concat!("[`", "VideoEncodeH265DpbSlotInfoKHR", "`].")]
49376///
49377/// # Safety
49378/// Implementors must be valid pNext chain members for the target struct.
49379pub unsafe trait ExtendsVideoEncodeH265DpbSlotInfoKHR {}
49380/// Marker trait for structs that can appear in the pNext chain of
49381#[doc = concat!("[`", "VideoEncodeH265GopRemainingFrameInfoKHR", "`].")]
49382///
49383/// # Safety
49384/// Implementors must be valid pNext chain members for the target struct.
49385pub unsafe trait ExtendsVideoEncodeH265GopRemainingFrameInfoKHR {}
49386/// Marker trait for structs that can appear in the pNext chain of
49387#[doc = concat!("[`", "VideoEncodeH265NaluSliceSegmentInfoKHR", "`].")]
49388///
49389/// # Safety
49390/// Implementors must be valid pNext chain members for the target struct.
49391pub unsafe trait ExtendsVideoEncodeH265NaluSliceSegmentInfoKHR {}
49392/// Marker trait for structs that can appear in the pNext chain of
49393#[doc = concat!("[`", "VideoEncodeH265PictureInfoKHR", "`].")]
49394///
49395/// # Safety
49396/// Implementors must be valid pNext chain members for the target struct.
49397pub unsafe trait ExtendsVideoEncodeH265PictureInfoKHR {}
49398/// Marker trait for structs that can appear in the pNext chain of
49399#[doc = concat!("[`", "VideoEncodeH265ProfileInfoKHR", "`].")]
49400///
49401/// # Safety
49402/// Implementors must be valid pNext chain members for the target struct.
49403pub unsafe trait ExtendsVideoEncodeH265ProfileInfoKHR {}
49404/// Marker trait for structs that can appear in the pNext chain of
49405#[doc = concat!("[`", "VideoEncodeH265RateControlInfoKHR", "`].")]
49406///
49407/// # Safety
49408/// Implementors must be valid pNext chain members for the target struct.
49409pub unsafe trait ExtendsVideoEncodeH265RateControlInfoKHR {}
49410/// Marker trait for structs that can appear in the pNext chain of
49411#[doc = concat!("[`", "VideoEncodeH265RateControlLayerInfoKHR", "`].")]
49412///
49413/// # Safety
49414/// Implementors must be valid pNext chain members for the target struct.
49415pub unsafe trait ExtendsVideoEncodeH265RateControlLayerInfoKHR {}
49416/// Marker trait for structs that can appear in the pNext chain of
49417#[doc = concat!("[`", "VideoEncodeH265SessionCreateInfoKHR", "`].")]
49418///
49419/// # Safety
49420/// Implementors must be valid pNext chain members for the target struct.
49421pub unsafe trait ExtendsVideoEncodeH265SessionCreateInfoKHR {}
49422/// Marker trait for structs that can appear in the pNext chain of
49423#[doc = concat!("[`", "VideoEncodeH265SessionParametersAddInfoKHR", "`].")]
49424///
49425/// # Safety
49426/// Implementors must be valid pNext chain members for the target struct.
49427pub unsafe trait ExtendsVideoEncodeH265SessionParametersAddInfoKHR {}
49428/// Marker trait for structs that can appear in the pNext chain of
49429#[doc = concat!("[`", "VideoEncodeH265SessionParametersCreateInfoKHR", "`].")]
49430///
49431/// # Safety
49432/// Implementors must be valid pNext chain members for the target struct.
49433pub unsafe trait ExtendsVideoEncodeH265SessionParametersCreateInfoKHR {}
49434/// Marker trait for structs that can appear in the pNext chain of
49435#[doc = concat!("[`", "VideoEncodeH265SessionParametersGetInfoKHR", "`].")]
49436///
49437/// # Safety
49438/// Implementors must be valid pNext chain members for the target struct.
49439pub unsafe trait ExtendsVideoEncodeH265SessionParametersGetInfoKHR {}
49440/// Marker trait for structs that can appear in the pNext chain of
49441#[doc = concat!("[`", "VideoEncodeInfoKHR", "`].")]
49442///
49443/// # Safety
49444/// Implementors must be valid pNext chain members for the target struct.
49445pub unsafe trait ExtendsVideoEncodeInfoKHR {}
49446/// Marker trait for structs that can appear in the pNext chain of
49447#[doc = concat!("[`", "VideoEncodeIntraRefreshInfoKHR", "`].")]
49448///
49449/// # Safety
49450/// Implementors must be valid pNext chain members for the target struct.
49451pub unsafe trait ExtendsVideoEncodeIntraRefreshInfoKHR {}
49452/// Marker trait for structs that can appear in the pNext chain of
49453#[doc = concat!("[`", "VideoEncodeProfileRgbConversionInfoVALVE", "`].")]
49454///
49455/// # Safety
49456/// Implementors must be valid pNext chain members for the target struct.
49457pub unsafe trait ExtendsVideoEncodeProfileRgbConversionInfoVALVE {}
49458/// Marker trait for structs that can appear in the pNext chain of
49459#[doc = concat!("[`", "VideoEncodeQualityLevelInfoKHR", "`].")]
49460///
49461/// # Safety
49462/// Implementors must be valid pNext chain members for the target struct.
49463pub unsafe trait ExtendsVideoEncodeQualityLevelInfoKHR {}
49464/// Marker trait for structs that can appear in the pNext chain of
49465#[doc = concat!("[`", "VideoEncodeQualityLevelPropertiesKHR", "`].")]
49466///
49467/// # Safety
49468/// Implementors must be valid pNext chain members for the target struct.
49469pub unsafe trait ExtendsVideoEncodeQualityLevelPropertiesKHR {}
49470/// Marker trait for structs that can appear in the pNext chain of
49471#[doc = concat!("[`", "VideoEncodeQuantizationMapInfoKHR", "`].")]
49472///
49473/// # Safety
49474/// Implementors must be valid pNext chain members for the target struct.
49475pub unsafe trait ExtendsVideoEncodeQuantizationMapInfoKHR {}
49476/// Marker trait for structs that can appear in the pNext chain of
49477#[doc = concat!("[`", "VideoEncodeQuantizationMapSessionParametersCreateInfoKHR", "`].")]
49478///
49479/// # Safety
49480/// Implementors must be valid pNext chain members for the target struct.
49481pub unsafe trait ExtendsVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {}
49482/// Marker trait for structs that can appear in the pNext chain of
49483#[doc = concat!("[`", "VideoEncodeRateControlInfoKHR", "`].")]
49484///
49485/// # Safety
49486/// Implementors must be valid pNext chain members for the target struct.
49487pub unsafe trait ExtendsVideoEncodeRateControlInfoKHR {}
49488/// Marker trait for structs that can appear in the pNext chain of
49489#[doc = concat!("[`", "VideoEncodeRateControlLayerInfoKHR", "`].")]
49490///
49491/// # Safety
49492/// Implementors must be valid pNext chain members for the target struct.
49493pub unsafe trait ExtendsVideoEncodeRateControlLayerInfoKHR {}
49494/// Marker trait for structs that can appear in the pNext chain of
49495#[doc = concat!("[`", "VideoEncodeSessionIntraRefreshCreateInfoKHR", "`].")]
49496///
49497/// # Safety
49498/// Implementors must be valid pNext chain members for the target struct.
49499pub unsafe trait ExtendsVideoEncodeSessionIntraRefreshCreateInfoKHR {}
49500/// Marker trait for structs that can appear in the pNext chain of
49501#[doc = concat!("[`", "VideoEncodeSessionParametersFeedbackInfoKHR", "`].")]
49502///
49503/// # Safety
49504/// Implementors must be valid pNext chain members for the target struct.
49505pub unsafe trait ExtendsVideoEncodeSessionParametersFeedbackInfoKHR {}
49506/// Marker trait for structs that can appear in the pNext chain of
49507#[doc = concat!("[`", "VideoEncodeSessionParametersGetInfoKHR", "`].")]
49508///
49509/// # Safety
49510/// Implementors must be valid pNext chain members for the target struct.
49511pub unsafe trait ExtendsVideoEncodeSessionParametersGetInfoKHR {}
49512/// Marker trait for structs that can appear in the pNext chain of
49513#[doc = concat!("[`", "VideoEncodeSessionRgbConversionCreateInfoVALVE", "`].")]
49514///
49515/// # Safety
49516/// Implementors must be valid pNext chain members for the target struct.
49517pub unsafe trait ExtendsVideoEncodeSessionRgbConversionCreateInfoVALVE {}
49518/// Marker trait for structs that can appear in the pNext chain of
49519#[doc = concat!("[`", "VideoEncodeUsageInfoKHR", "`].")]
49520///
49521/// # Safety
49522/// Implementors must be valid pNext chain members for the target struct.
49523pub unsafe trait ExtendsVideoEncodeUsageInfoKHR {}
49524/// Marker trait for structs that can appear in the pNext chain of
49525#[doc = concat!("[`", "VideoEndCodingInfoKHR", "`].")]
49526///
49527/// # Safety
49528/// Implementors must be valid pNext chain members for the target struct.
49529pub unsafe trait ExtendsVideoEndCodingInfoKHR {}
49530/// Marker trait for structs that can appear in the pNext chain of
49531#[doc = concat!("[`", "VideoFormatPropertiesKHR", "`].")]
49532///
49533/// # Safety
49534/// Implementors must be valid pNext chain members for the target struct.
49535pub unsafe trait ExtendsVideoFormatPropertiesKHR {}
49536/// Marker trait for structs that can appear in the pNext chain of
49537#[doc = concat!("[`", "VideoInlineQueryInfoKHR", "`].")]
49538///
49539/// # Safety
49540/// Implementors must be valid pNext chain members for the target struct.
49541pub unsafe trait ExtendsVideoInlineQueryInfoKHR {}
49542/// Marker trait for structs that can appear in the pNext chain of
49543#[doc = concat!("[`", "VideoPictureResourceInfoKHR", "`].")]
49544///
49545/// # Safety
49546/// Implementors must be valid pNext chain members for the target struct.
49547pub unsafe trait ExtendsVideoPictureResourceInfoKHR {}
49548/// Marker trait for structs that can appear in the pNext chain of
49549#[doc = concat!("[`", "VideoProfileInfoKHR", "`].")]
49550///
49551/// # Safety
49552/// Implementors must be valid pNext chain members for the target struct.
49553pub unsafe trait ExtendsVideoProfileInfoKHR {}
49554/// Marker trait for structs that can appear in the pNext chain of
49555#[doc = concat!("[`", "VideoProfileListInfoKHR", "`].")]
49556///
49557/// # Safety
49558/// Implementors must be valid pNext chain members for the target struct.
49559pub unsafe trait ExtendsVideoProfileListInfoKHR {}
49560/// Marker trait for structs that can appear in the pNext chain of
49561#[doc = concat!("[`", "VideoReferenceIntraRefreshInfoKHR", "`].")]
49562///
49563/// # Safety
49564/// Implementors must be valid pNext chain members for the target struct.
49565pub unsafe trait ExtendsVideoReferenceIntraRefreshInfoKHR {}
49566/// Marker trait for structs that can appear in the pNext chain of
49567#[doc = concat!("[`", "VideoReferenceSlotInfoKHR", "`].")]
49568///
49569/// # Safety
49570/// Implementors must be valid pNext chain members for the target struct.
49571pub unsafe trait ExtendsVideoReferenceSlotInfoKHR {}
49572/// Marker trait for structs that can appear in the pNext chain of
49573#[doc = concat!("[`", "VideoSessionCreateInfoKHR", "`].")]
49574///
49575/// # Safety
49576/// Implementors must be valid pNext chain members for the target struct.
49577pub unsafe trait ExtendsVideoSessionCreateInfoKHR {}
49578/// Marker trait for structs that can appear in the pNext chain of
49579#[doc = concat!("[`", "VideoSessionParametersCreateInfoKHR", "`].")]
49580///
49581/// # Safety
49582/// Implementors must be valid pNext chain members for the target struct.
49583pub unsafe trait ExtendsVideoSessionParametersCreateInfoKHR {}
49584/// Marker trait for structs that can appear in the pNext chain of
49585#[doc = concat!("[`", "VideoSessionParametersUpdateInfoKHR", "`].")]
49586///
49587/// # Safety
49588/// Implementors must be valid pNext chain members for the target struct.
49589pub unsafe trait ExtendsVideoSessionParametersUpdateInfoKHR {}
49590/// Marker trait for structs that can appear in the pNext chain of
49591#[doc = concat!("[`", "WaylandSurfaceCreateInfoKHR", "`].")]
49592///
49593/// # Safety
49594/// Implementors must be valid pNext chain members for the target struct.
49595pub unsafe trait ExtendsWaylandSurfaceCreateInfoKHR {}
49596/// Marker trait for structs that can appear in the pNext chain of
49597#[doc = concat!("[`", "Win32KeyedMutexAcquireReleaseInfoKHR", "`].")]
49598///
49599/// # Safety
49600/// Implementors must be valid pNext chain members for the target struct.
49601pub unsafe trait ExtendsWin32KeyedMutexAcquireReleaseInfoKHR {}
49602/// Marker trait for structs that can appear in the pNext chain of
49603#[doc = concat!("[`", "Win32KeyedMutexAcquireReleaseInfoNV", "`].")]
49604///
49605/// # Safety
49606/// Implementors must be valid pNext chain members for the target struct.
49607pub unsafe trait ExtendsWin32KeyedMutexAcquireReleaseInfoNV {}
49608/// Marker trait for structs that can appear in the pNext chain of
49609#[doc = concat!("[`", "Win32SurfaceCreateInfoKHR", "`].")]
49610///
49611/// # Safety
49612/// Implementors must be valid pNext chain members for the target struct.
49613pub unsafe trait ExtendsWin32SurfaceCreateInfoKHR {}
49614/// Marker trait for structs that can appear in the pNext chain of
49615#[doc = concat!("[`", "WriteDescriptorSet", "`].")]
49616///
49617/// # Safety
49618/// Implementors must be valid pNext chain members for the target struct.
49619pub unsafe trait ExtendsWriteDescriptorSet {}
49620/// Marker trait for structs that can appear in the pNext chain of
49621#[doc = concat!("[`", "WriteDescriptorSetAccelerationStructureKHR", "`].")]
49622///
49623/// # Safety
49624/// Implementors must be valid pNext chain members for the target struct.
49625pub unsafe trait ExtendsWriteDescriptorSetAccelerationStructureKHR {}
49626/// Marker trait for structs that can appear in the pNext chain of
49627#[doc = concat!("[`", "WriteDescriptorSetAccelerationStructureNV", "`].")]
49628///
49629/// # Safety
49630/// Implementors must be valid pNext chain members for the target struct.
49631pub unsafe trait ExtendsWriteDescriptorSetAccelerationStructureNV {}
49632/// Marker trait for structs that can appear in the pNext chain of
49633#[doc = concat!("[`", "WriteDescriptorSetInlineUniformBlock", "`].")]
49634///
49635/// # Safety
49636/// Implementors must be valid pNext chain members for the target struct.
49637pub unsafe trait ExtendsWriteDescriptorSetInlineUniformBlock {}
49638/// Marker trait for structs that can appear in the pNext chain of
49639#[doc = concat!("[`", "WriteDescriptorSetPartitionedAccelerationStructureNV", "`].")]
49640///
49641/// # Safety
49642/// Implementors must be valid pNext chain members for the target struct.
49643pub unsafe trait ExtendsWriteDescriptorSetPartitionedAccelerationStructureNV {}
49644/// Marker trait for structs that can appear in the pNext chain of
49645#[doc = concat!("[`", "WriteDescriptorSetTensorARM", "`].")]
49646///
49647/// # Safety
49648/// Implementors must be valid pNext chain members for the target struct.
49649pub unsafe trait ExtendsWriteDescriptorSetTensorARM {}
49650/// Marker trait for structs that can appear in the pNext chain of
49651#[doc = concat!("[`", "WriteIndirectExecutionSetPipelineEXT", "`].")]
49652///
49653/// # Safety
49654/// Implementors must be valid pNext chain members for the target struct.
49655pub unsafe trait ExtendsWriteIndirectExecutionSetPipelineEXT {}
49656/// Marker trait for structs that can appear in the pNext chain of
49657#[doc = concat!("[`", "WriteIndirectExecutionSetShaderEXT", "`].")]
49658///
49659/// # Safety
49660/// Implementors must be valid pNext chain members for the target struct.
49661pub unsafe trait ExtendsWriteIndirectExecutionSetShaderEXT {}
49662/// Marker trait for structs that can appear in the pNext chain of
49663#[doc = concat!("[`", "XcbSurfaceCreateInfoKHR", "`].")]
49664///
49665/// # Safety
49666/// Implementors must be valid pNext chain members for the target struct.
49667pub unsafe trait ExtendsXcbSurfaceCreateInfoKHR {}
49668/// Marker trait for structs that can appear in the pNext chain of
49669#[doc = concat!("[`", "XlibSurfaceCreateInfoKHR", "`].")]
49670///
49671/// # Safety
49672/// Implementors must be valid pNext chain members for the target struct.
49673pub unsafe trait ExtendsXlibSurfaceCreateInfoKHR {}
49674unsafe impl ExtendsBufferViewCreateInfo for BufferUsageFlags2CreateInfo {}
49675unsafe impl ExtendsBufferCreateInfo for BufferUsageFlags2CreateInfo {}
49676unsafe impl ExtendsPhysicalDeviceExternalBufferInfo for BufferUsageFlags2CreateInfo {}
49677unsafe impl ExtendsDescriptorBufferBindingInfoEXT for BufferUsageFlags2CreateInfo {}
49678unsafe impl ExtendsPipelineShaderStageCreateInfo for ShaderModuleCreateInfo {}
49679unsafe impl ExtendsDataGraphPipelineCreateInfoARM for ShaderModuleCreateInfo {}
49680unsafe impl ExtendsComputePipelineCreateInfo for ComputePipelineIndirectBufferInfoNV {}
49681unsafe impl ExtendsComputePipelineCreateInfo for PipelineCreateFlags2CreateInfo {}
49682unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCreateFlags2CreateInfo {}
49683unsafe impl ExtendsRayTracingPipelineCreateInfoNV for PipelineCreateFlags2CreateInfo {}
49684unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineCreateFlags2CreateInfo {}
49685unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineBinaryInfoKHR {}
49686unsafe impl ExtendsComputePipelineCreateInfo for PipelineBinaryInfoKHR {}
49687unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineBinaryInfoKHR {}
49688unsafe impl ExtendsBindDescriptorSetsInfo for PipelineLayoutCreateInfo {}
49689unsafe impl ExtendsPushConstantsInfo for PipelineLayoutCreateInfo {}
49690unsafe impl ExtendsPushDescriptorSetInfo for PipelineLayoutCreateInfo {}
49691unsafe impl ExtendsPushDescriptorSetWithTemplateInfo for PipelineLayoutCreateInfo {}
49692unsafe impl ExtendsSetDescriptorBufferOffsetsInfoEXT for PipelineLayoutCreateInfo {}
49693unsafe impl ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT
49694for PipelineLayoutCreateInfo {}
49695unsafe impl ExtendsIndirectCommandsLayoutCreateInfoEXT for PipelineLayoutCreateInfo {}
49696unsafe impl ExtendsDisplaySurfaceCreateInfoKHR for DisplaySurfaceStereoCreateInfoNV {}
49697unsafe impl ExtendsPresentInfoKHR for DisplayPresentInfoKHR {}
49698unsafe impl ExtendsInstanceCreateInfo for DebugReportCallbackCreateInfoEXT {}
49699unsafe impl ExtendsInstanceCreateInfo for ValidationFlagsEXT {}
49700unsafe impl ExtendsInstanceCreateInfo for ValidationFeaturesEXT {}
49701unsafe impl ExtendsShaderModuleCreateInfo for ValidationFeaturesEXT {}
49702unsafe impl ExtendsShaderCreateInfoEXT for ValidationFeaturesEXT {}
49703unsafe impl ExtendsInstanceCreateInfo for LayerSettingsCreateInfoEXT {}
49704unsafe impl ExtendsApplicationInfo for ApplicationParametersEXT {}
49705unsafe impl ExtendsDeviceCreateInfo for ApplicationParametersEXT {}
49706unsafe impl ExtendsPipelineRasterizationStateCreateInfo
49707for PipelineRasterizationStateRasterizationOrderAMD {}
49708unsafe impl ExtendsImageCreateInfo for DedicatedAllocationImageCreateInfoNV {}
49709unsafe impl ExtendsBufferCreateInfo for DedicatedAllocationBufferCreateInfoNV {}
49710unsafe impl ExtendsMemoryAllocateInfo for DedicatedAllocationMemoryAllocateInfoNV {}
49711unsafe impl ExtendsImageCreateInfo for ExternalMemoryImageCreateInfoNV {}
49712unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryAllocateInfoNV {}
49713unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryWin32HandleInfoNV {}
49714unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryWin32HandleInfoNV {}
49715unsafe impl ExtendsMemoryAllocateInfo for ExportMemorySciBufInfoNV {}
49716unsafe impl ExtendsMemoryAllocateInfo for ImportMemorySciBufInfoNV {}
49717unsafe impl ExtendsPhysicalDeviceFeatures2
49718for PhysicalDeviceExternalMemorySciBufFeaturesNV {}
49719unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemorySciBufFeaturesNV {}
49720unsafe impl ExtendsSubmitInfo for Win32KeyedMutexAcquireReleaseInfoNV {}
49721unsafe impl ExtendsSubmitInfo2 for Win32KeyedMutexAcquireReleaseInfoNV {}
49722unsafe impl ExtendsPhysicalDeviceFeatures2
49723for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {}
49724unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {}
49725unsafe impl ExtendsDescriptorSetAndBindingMappingEXT for PushConstantBankInfoNV {}
49726unsafe impl ExtendsPushDataInfoEXT for PushConstantBankInfoNV {}
49727unsafe impl ExtendsPushConstantsInfo for PushConstantBankInfoNV {}
49728unsafe impl ExtendsIndirectCommandsLayoutTokenEXT for PushConstantBankInfoNV {}
49729unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePushConstantBankFeaturesNV {}
49730unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePushConstantBankFeaturesNV {}
49731unsafe impl ExtendsPhysicalDeviceProperties2
49732for PhysicalDevicePushConstantBankPropertiesNV {}
49733unsafe impl ExtendsPhysicalDeviceFeatures2
49734for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {}
49735unsafe impl ExtendsDeviceCreateInfo
49736for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {}
49737unsafe impl ExtendsDeviceCreateInfo for DevicePrivateDataCreateInfo {}
49738unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePrivateDataFeatures {}
49739unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePrivateDataFeatures {}
49740unsafe impl ExtendsPhysicalDeviceProperties2
49741for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {}
49742unsafe impl ExtendsPhysicalDeviceFeatures2
49743for PhysicalDeviceClusterAccelerationStructureFeaturesNV {}
49744unsafe impl ExtendsDeviceCreateInfo
49745for PhysicalDeviceClusterAccelerationStructureFeaturesNV {}
49746unsafe impl ExtendsPhysicalDeviceProperties2
49747for PhysicalDeviceClusterAccelerationStructurePropertiesNV {}
49748unsafe impl ExtendsRayTracingPipelineCreateInfoKHR
49749for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {}
49750unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMultiDrawPropertiesEXT {}
49751unsafe impl ExtendsGraphicsPipelineCreateInfo
49752for GraphicsPipelineShaderGroupsCreateInfoNV {}
49753unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFeatures2 {}
49754unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePushDescriptorProperties {}
49755unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDriverProperties {}
49756unsafe impl ExtendsPresentInfoKHR for PresentRegionsKHR {}
49757unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVariablePointersFeatures {}
49758unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVariablePointersFeatures {}
49759unsafe impl ExtendsPhysicalDeviceImageFormatInfo2
49760for PhysicalDeviceExternalImageFormatInfo {}
49761unsafe impl ExtendsImageFormatProperties2 for ExternalImageFormatProperties {}
49762unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceIDProperties {}
49763unsafe impl ExtendsImageCreateInfo for ExternalMemoryImageCreateInfo {}
49764unsafe impl ExtendsBufferCreateInfo for ExternalMemoryBufferCreateInfo {}
49765unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryAllocateInfo {}
49766unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryWin32HandleInfoKHR {}
49767unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryWin32HandleInfoKHR {}
49768unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryZirconHandleInfoFUCHSIA {}
49769unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryFdInfoKHR {}
49770unsafe impl ExtendsSubmitInfo for Win32KeyedMutexAcquireReleaseInfoKHR {}
49771unsafe impl ExtendsSubmitInfo2 for Win32KeyedMutexAcquireReleaseInfoKHR {}
49772unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryMetalHandleInfoEXT {}
49773unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreCreateInfo {}
49774unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreWin32HandleInfoKHR {}
49775unsafe impl ExtendsSubmitInfo for D3D12FenceSubmitInfoKHR {}
49776unsafe impl ExtendsFenceCreateInfo for ExportFenceCreateInfo {}
49777unsafe impl ExtendsFenceCreateInfo for ExportFenceWin32HandleInfoKHR {}
49778unsafe impl ExtendsFenceCreateInfo for ExportFenceSciSyncInfoNV {}
49779unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreSciSyncInfoNV {}
49780unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalSciSyncFeaturesNV {}
49781unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalSciSyncFeaturesNV {}
49782unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalSciSync2FeaturesNV {}
49783unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalSciSync2FeaturesNV {}
49784unsafe impl ExtendsSemaphoreCreateInfo for SemaphoreSciSyncCreateInfoNV {}
49785unsafe impl ExtendsDeviceCreateInfo
49786for DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {}
49787unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMultiviewFeatures {}
49788unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiviewFeatures {}
49789unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMultiviewProperties {}
49790unsafe impl ExtendsRenderPassCreateInfo for RenderPassMultiviewCreateInfo {}
49791unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainCounterCreateInfoEXT {}
49792unsafe impl ExtendsMemoryAllocateInfo for MemoryAllocateFlagsInfo {}
49793unsafe impl ExtendsBindBufferMemoryInfo for BindBufferMemoryDeviceGroupInfo {}
49794unsafe impl ExtendsBindImageMemoryInfo for BindImageMemoryDeviceGroupInfo {}
49795unsafe impl ExtendsRenderPassBeginInfo for DeviceGroupRenderPassBeginInfo {}
49796unsafe impl ExtendsRenderingInfo for DeviceGroupRenderPassBeginInfo {}
49797unsafe impl ExtendsCommandBufferBeginInfo for DeviceGroupCommandBufferBeginInfo {}
49798unsafe impl ExtendsSubmitInfo for DeviceGroupSubmitInfo {}
49799unsafe impl ExtendsBindSparseInfo for DeviceGroupBindSparseInfo {}
49800unsafe impl ExtendsImageCreateInfo for ImageSwapchainCreateInfoKHR {}
49801unsafe impl ExtendsBindImageMemoryInfo for BindImageMemorySwapchainInfoKHR {}
49802unsafe impl ExtendsPresentInfoKHR for DeviceGroupPresentInfoKHR {}
49803unsafe impl ExtendsDeviceCreateInfo for DeviceGroupDeviceCreateInfo {}
49804unsafe impl ExtendsSwapchainCreateInfoKHR for DeviceGroupSwapchainCreateInfoKHR {}
49805unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentIdFeaturesKHR {}
49806unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentIdFeaturesKHR {}
49807unsafe impl ExtendsPresentInfoKHR for PresentIdKHR {}
49808unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentId2FeaturesKHR {}
49809unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentId2FeaturesKHR {}
49810unsafe impl ExtendsPresentInfoKHR for PresentId2KHR {}
49811unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentWaitFeaturesKHR {}
49812unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentWaitFeaturesKHR {}
49813unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentWait2FeaturesKHR {}
49814unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentWait2FeaturesKHR {}
49815unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentTimingFeaturesEXT {}
49816unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentTimingFeaturesEXT {}
49817unsafe impl ExtendsSurfaceCapabilities2KHR for PresentTimingSurfaceCapabilitiesEXT {}
49818unsafe impl ExtendsPresentInfoKHR for PresentTimingsInfoEXT {}
49819unsafe impl ExtendsCalibratedTimestampInfoKHR for SwapchainCalibratedTimestampInfoEXT {}
49820unsafe impl ExtendsHdrMetadataEXT for HdrVividDynamicMetadataHUAWEI {}
49821unsafe impl ExtendsSurfaceCapabilities2KHR for DisplayNativeHdrSurfaceCapabilitiesAMD {}
49822unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainDisplayNativeHdrCreateInfoAMD {}
49823unsafe impl ExtendsPresentInfoKHR for PresentTimesInfoGOOGLE {}
49824unsafe impl ExtendsPipelineViewportStateCreateInfo
49825for PipelineViewportWScalingStateCreateInfoNV {}
49826unsafe impl ExtendsPipelineViewportStateCreateInfo
49827for PipelineViewportSwizzleStateCreateInfoNV {}
49828unsafe impl ExtendsPhysicalDeviceProperties2
49829for PhysicalDeviceDiscardRectanglePropertiesEXT {}
49830unsafe impl ExtendsGraphicsPipelineCreateInfo
49831for PipelineDiscardRectangleStateCreateInfoEXT {}
49832unsafe impl ExtendsPhysicalDeviceProperties2
49833for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {}
49834unsafe impl ExtendsRenderPassCreateInfo for RenderPassInputAttachmentAspectCreateInfo {}
49835unsafe impl ExtendsDisplayModeProperties2KHR for DisplayModeStereoPropertiesNV {}
49836unsafe impl ExtendsSurfaceCapabilities2KHR for SharedPresentSurfaceCapabilitiesKHR {}
49837unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice16BitStorageFeatures {}
49838unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice16BitStorageFeatures {}
49839unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSubgroupProperties {}
49840unsafe impl ExtendsPhysicalDeviceFeatures2
49841for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {}
49842unsafe impl ExtendsDeviceCreateInfo
49843for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {}
49844unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePointClippingProperties {}
49845unsafe impl ExtendsMemoryRequirements2 for MemoryDedicatedRequirements {}
49846unsafe impl ExtendsMemoryAllocateInfo for MemoryDedicatedAllocateInfo {}
49847unsafe impl ExtendsImageViewCreateInfo for ImageViewUsageCreateInfo {}
49848unsafe impl ExtendsImageViewCreateInfo for ImageViewSlicedCreateInfoEXT {}
49849unsafe impl ExtendsPipelineTessellationStateCreateInfo
49850for PipelineTessellationDomainOriginStateCreateInfo {}
49851unsafe impl ExtendsSamplerCreateInfo for SamplerYcbcrConversionInfo {}
49852unsafe impl ExtendsImageViewCreateInfo for SamplerYcbcrConversionInfo {}
49853unsafe impl ExtendsBindImageMemoryInfo for BindImagePlaneMemoryInfo {}
49854unsafe impl ExtendsImageMemoryRequirementsInfo2 for ImagePlaneMemoryRequirementsInfo {}
49855unsafe impl ExtendsPhysicalDeviceFeatures2
49856for PhysicalDeviceSamplerYcbcrConversionFeatures {}
49857unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSamplerYcbcrConversionFeatures {}
49858unsafe impl ExtendsImageFormatProperties2
49859for SamplerYcbcrConversionImageFormatProperties {}
49860unsafe impl ExtendsImageFormatProperties2 for TextureLODGatherFormatPropertiesAMD {}
49861unsafe impl ExtendsSubmitInfo for ProtectedSubmitInfo {}
49862unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceProtectedMemoryFeatures {}
49863unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceProtectedMemoryFeatures {}
49864unsafe impl ExtendsPhysicalDeviceProperties2
49865for PhysicalDeviceProtectedMemoryProperties {}
49866unsafe impl ExtendsPipelineMultisampleStateCreateInfo
49867for PipelineCoverageToColorStateCreateInfoNV {}
49868unsafe impl ExtendsPhysicalDeviceProperties2
49869for PhysicalDeviceSamplerFilterMinmaxProperties {}
49870unsafe impl ExtendsImageMemoryBarrier for SampleLocationsInfoEXT {}
49871unsafe impl ExtendsImageMemoryBarrier2 for SampleLocationsInfoEXT {}
49872unsafe impl ExtendsRenderPassBeginInfo for RenderPassSampleLocationsBeginInfoEXT {}
49873unsafe impl ExtendsPipelineMultisampleStateCreateInfo
49874for PipelineSampleLocationsStateCreateInfoEXT {}
49875unsafe impl ExtendsPhysicalDeviceProperties2
49876for PhysicalDeviceSampleLocationsPropertiesEXT {}
49877unsafe impl ExtendsSamplerCreateInfo for SamplerReductionModeCreateInfo {}
49878unsafe impl ExtendsPhysicalDeviceFeatures2
49879for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {}
49880unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {}
49881unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMultiDrawFeaturesEXT {}
49882unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiDrawFeaturesEXT {}
49883unsafe impl ExtendsPhysicalDeviceProperties2
49884for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {}
49885unsafe impl ExtendsPipelineColorBlendStateCreateInfo
49886for PipelineColorBlendAdvancedStateCreateInfoEXT {}
49887unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceInlineUniformBlockFeatures {}
49888unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInlineUniformBlockFeatures {}
49889unsafe impl ExtendsPhysicalDeviceProperties2
49890for PhysicalDeviceInlineUniformBlockProperties {}
49891unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetInlineUniformBlock {}
49892unsafe impl ExtendsDescriptorPoolCreateInfo
49893for DescriptorPoolInlineUniformBlockCreateInfo {}
49894unsafe impl ExtendsPipelineMultisampleStateCreateInfo
49895for PipelineCoverageModulationStateCreateInfoNV {}
49896unsafe impl ExtendsImageCreateInfo for ImageFormatListCreateInfo {}
49897unsafe impl ExtendsSwapchainCreateInfoKHR for ImageFormatListCreateInfo {}
49898unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageFormatListCreateInfo {}
49899unsafe impl ExtendsShaderModuleCreateInfo for ShaderModuleValidationCacheCreateInfoEXT {}
49900unsafe impl ExtendsPipelineShaderStageCreateInfo
49901for ShaderModuleValidationCacheCreateInfoEXT {}
49902unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance3Properties {}
49903unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance4Features {}
49904unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance4Features {}
49905unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance4Properties {}
49906unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance5Features {}
49907unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance5Features {}
49908unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance5Properties {}
49909unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance6Features {}
49910unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance6Features {}
49911unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance6Properties {}
49912unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance7FeaturesKHR {}
49913unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance7FeaturesKHR {}
49914unsafe impl ExtendsPhysicalDeviceProperties2
49915for PhysicalDeviceMaintenance7PropertiesKHR {}
49916unsafe impl ExtendsPhysicalDeviceProperties2
49917for PhysicalDeviceLayeredApiPropertiesListKHR {}
49918unsafe impl ExtendsPhysicalDeviceLayeredApiPropertiesKHR
49919for PhysicalDeviceLayeredApiVulkanPropertiesKHR {}
49920unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance8FeaturesKHR {}
49921unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance8FeaturesKHR {}
49922unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance9FeaturesKHR {}
49923unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance9FeaturesKHR {}
49924unsafe impl ExtendsPhysicalDeviceProperties2
49925for PhysicalDeviceMaintenance9PropertiesKHR {}
49926unsafe impl ExtendsPhysicalDeviceProperties2
49927for PhysicalDeviceMaintenance10PropertiesKHR {}
49928unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance10FeaturesKHR {}
49929unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance10FeaturesKHR {}
49930unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyOwnershipTransferPropertiesKHR {}
49931unsafe impl ExtendsPhysicalDeviceFeatures2
49932for PhysicalDeviceShaderDrawParametersFeatures {}
49933unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderDrawParametersFeatures {}
49934unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloat16Int8Features {}
49935unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloat16Int8Features {}
49936unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFloatControlsProperties {}
49937unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHostQueryResetFeatures {}
49938unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHostQueryResetFeatures {}
49939unsafe impl ExtendsImageCreateInfo for NativeBufferANDROID {}
49940unsafe impl ExtendsBindImageMemoryInfo for NativeBufferANDROID {}
49941unsafe impl ExtendsImageCreateInfo for SwapchainImageCreateInfoANDROID {}
49942unsafe impl ExtendsPhysicalDeviceProperties2
49943for PhysicalDevicePresentationPropertiesANDROID {}
49944unsafe impl ExtendsDeviceQueueCreateInfo for DeviceQueueGlobalPriorityCreateInfo {}
49945unsafe impl ExtendsPhysicalDeviceFeatures2
49946for PhysicalDeviceGlobalPriorityQueryFeatures {}
49947unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceGlobalPriorityQueryFeatures {}
49948unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyGlobalPriorityProperties {}
49949unsafe impl ExtendsPipelineShaderStageCreateInfo for DebugUtilsObjectNameInfoEXT {}
49950unsafe impl ExtendsResourceDescriptorInfoEXT for DebugUtilsObjectNameInfoEXT {}
49951unsafe impl ExtendsSamplerCreateInfo for DebugUtilsObjectNameInfoEXT {}
49952unsafe impl ExtendsInstanceCreateInfo for DebugUtilsMessengerCreateInfoEXT {}
49953unsafe impl ExtendsPhysicalDeviceFeatures2
49954for PhysicalDeviceDeviceMemoryReportFeaturesEXT {}
49955unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceMemoryReportFeaturesEXT {}
49956unsafe impl ExtendsDeviceCreateInfo for DeviceDeviceMemoryReportCreateInfoEXT {}
49957unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryHostPointerInfoEXT {}
49958unsafe impl ExtendsPhysicalDeviceProperties2
49959for PhysicalDeviceExternalMemoryHostPropertiesEXT {}
49960unsafe impl ExtendsPhysicalDeviceProperties2
49961for PhysicalDeviceConservativeRasterizationPropertiesEXT {}
49962unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesAMD {}
49963unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCoreProperties2AMD {}
49964unsafe impl ExtendsPipelineRasterizationStateCreateInfo
49965for PipelineRasterizationConservativeStateCreateInfoEXT {}
49966unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorIndexingFeatures {}
49967unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorIndexingFeatures {}
49968unsafe impl ExtendsPhysicalDeviceProperties2
49969for PhysicalDeviceDescriptorIndexingProperties {}
49970unsafe impl ExtendsDescriptorSetLayoutCreateInfo
49971for DescriptorSetLayoutBindingFlagsCreateInfo {}
49972unsafe impl ExtendsDescriptorSetAllocateInfo
49973for DescriptorSetVariableDescriptorCountAllocateInfo {}
49974unsafe impl ExtendsDescriptorSetLayoutSupport
49975for DescriptorSetVariableDescriptorCountLayoutSupport {}
49976unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTimelineSemaphoreFeatures {}
49977unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTimelineSemaphoreFeatures {}
49978unsafe impl ExtendsPhysicalDeviceProperties2
49979for PhysicalDeviceTimelineSemaphoreProperties {}
49980unsafe impl ExtendsSemaphoreCreateInfo for SemaphoreTypeCreateInfo {}
49981unsafe impl ExtendsPhysicalDeviceExternalSemaphoreInfo for SemaphoreTypeCreateInfo {}
49982unsafe impl ExtendsSubmitInfo for TimelineSemaphoreSubmitInfo {}
49983unsafe impl ExtendsBindSparseInfo for TimelineSemaphoreSubmitInfo {}
49984unsafe impl ExtendsPipelineVertexInputStateCreateInfo
49985for PipelineVertexInputDivisorStateCreateInfo {}
49986unsafe impl ExtendsPhysicalDeviceProperties2
49987for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {}
49988unsafe impl ExtendsPhysicalDeviceProperties2
49989for PhysicalDeviceVertexAttributeDivisorProperties {}
49990unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePCIBusInfoPropertiesEXT {}
49991unsafe impl ExtendsMemoryAllocateInfo for ImportAndroidHardwareBufferInfoANDROID {}
49992unsafe impl ExtendsImageFormatProperties2 for AndroidHardwareBufferUsageANDROID {}
49993unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID
49994for AndroidHardwareBufferFormatPropertiesANDROID {}
49995unsafe impl ExtendsCommandBufferInheritanceInfo
49996for CommandBufferInheritanceConditionalRenderingInfoEXT {}
49997unsafe impl ExtendsImageCreateInfo for ExternalFormatANDROID {}
49998unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatANDROID {}
49999unsafe impl ExtendsAttachmentDescription2 for ExternalFormatANDROID {}
50000unsafe impl ExtendsGraphicsPipelineCreateInfo for ExternalFormatANDROID {}
50001unsafe impl ExtendsCommandBufferInheritanceInfo for ExternalFormatANDROID {}
50002unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice8BitStorageFeatures {}
50003unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice8BitStorageFeatures {}
50004unsafe impl ExtendsPhysicalDeviceFeatures2
50005for PhysicalDeviceConditionalRenderingFeaturesEXT {}
50006unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceConditionalRenderingFeaturesEXT {}
50007unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkanMemoryModelFeatures {}
50008unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkanMemoryModelFeatures {}
50009unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicInt64Features {}
50010unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicInt64Features {}
50011unsafe impl ExtendsPhysicalDeviceFeatures2
50012for PhysicalDeviceShaderAtomicFloatFeaturesEXT {}
50013unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloatFeaturesEXT {}
50014unsafe impl ExtendsPhysicalDeviceFeatures2
50015for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {}
50016unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {}
50017unsafe impl ExtendsPhysicalDeviceFeatures2
50018for PhysicalDeviceVertexAttributeDivisorFeatures {}
50019unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVertexAttributeDivisorFeatures {}
50020unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyCheckpointPropertiesNV {}
50021unsafe impl ExtendsPhysicalDeviceProperties2
50022for PhysicalDeviceDepthStencilResolveProperties {}
50023unsafe impl ExtendsSubpassDescription2 for SubpassDescriptionDepthStencilResolve {}
50024unsafe impl ExtendsImageViewCreateInfo for ImageViewASTCDecodeModeEXT {}
50025unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceASTCDecodeFeaturesEXT {}
50026unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceASTCDecodeFeaturesEXT {}
50027unsafe impl ExtendsPhysicalDeviceFeatures2
50028for PhysicalDeviceTransformFeedbackFeaturesEXT {}
50029unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTransformFeedbackFeaturesEXT {}
50030unsafe impl ExtendsPhysicalDeviceProperties2
50031for PhysicalDeviceTransformFeedbackPropertiesEXT {}
50032unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50033for PipelineRasterizationStateStreamCreateInfoEXT {}
50034unsafe impl ExtendsPhysicalDeviceFeatures2
50035for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {}
50036unsafe impl ExtendsDeviceCreateInfo
50037for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {}
50038unsafe impl ExtendsGraphicsPipelineCreateInfo
50039for PipelineRepresentativeFragmentTestStateCreateInfoNV {}
50040unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExclusiveScissorFeaturesNV {}
50041unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExclusiveScissorFeaturesNV {}
50042unsafe impl ExtendsPipelineViewportStateCreateInfo
50043for PipelineViewportExclusiveScissorStateCreateInfoNV {}
50044unsafe impl ExtendsPhysicalDeviceFeatures2
50045for PhysicalDeviceCornerSampledImageFeaturesNV {}
50046unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCornerSampledImageFeaturesNV {}
50047unsafe impl ExtendsPhysicalDeviceFeatures2
50048for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {}
50049unsafe impl ExtendsDeviceCreateInfo
50050for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {}
50051unsafe impl ExtendsPhysicalDeviceProperties2
50052for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {}
50053unsafe impl ExtendsPhysicalDeviceFeatures2
50054for PhysicalDeviceShaderImageFootprintFeaturesNV {}
50055unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageFootprintFeaturesNV {}
50056unsafe impl ExtendsPhysicalDeviceFeatures2
50057for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {}
50058unsafe impl ExtendsDeviceCreateInfo
50059for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {}
50060unsafe impl ExtendsPhysicalDeviceFeatures2
50061for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {}
50062unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {}
50063unsafe impl ExtendsPhysicalDeviceFeatures2
50064for PhysicalDeviceCopyMemoryIndirectFeaturesNV {}
50065unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCopyMemoryIndirectFeaturesNV {}
50066unsafe impl ExtendsPhysicalDeviceProperties2
50067for PhysicalDeviceCopyMemoryIndirectPropertiesKHR {}
50068unsafe impl ExtendsPhysicalDeviceFeatures2
50069for PhysicalDeviceMemoryDecompressionFeaturesEXT {}
50070unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMemoryDecompressionFeaturesEXT {}
50071unsafe impl ExtendsPhysicalDeviceProperties2
50072for PhysicalDeviceMemoryDecompressionPropertiesEXT {}
50073unsafe impl ExtendsPipelineViewportStateCreateInfo
50074for PipelineViewportShadingRateImageStateCreateInfoNV {}
50075unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShadingRateImageFeaturesNV {}
50076unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShadingRateImageFeaturesNV {}
50077unsafe impl ExtendsPhysicalDeviceProperties2
50078for PhysicalDeviceShadingRateImagePropertiesNV {}
50079unsafe impl ExtendsPhysicalDeviceFeatures2
50080for PhysicalDeviceInvocationMaskFeaturesHUAWEI {}
50081unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInvocationMaskFeaturesHUAWEI {}
50082unsafe impl ExtendsPipelineViewportStateCreateInfo
50083for PipelineViewportCoarseSampleOrderStateCreateInfoNV {}
50084unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMeshShaderFeaturesNV {}
50085unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMeshShaderFeaturesNV {}
50086unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMeshShaderPropertiesNV {}
50087unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMeshShaderFeaturesEXT {}
50088unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMeshShaderFeaturesEXT {}
50089unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMeshShaderPropertiesEXT {}
50090unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetAccelerationStructureKHR {}
50091unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetAccelerationStructureNV {}
50092unsafe impl ExtendsPhysicalDeviceFeatures2
50093for PhysicalDeviceAccelerationStructureFeaturesKHR {}
50094unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAccelerationStructureFeaturesKHR {}
50095unsafe impl ExtendsPhysicalDeviceFeatures2
50096for PhysicalDeviceRayTracingPipelineFeaturesKHR {}
50097unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingPipelineFeaturesKHR {}
50098unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayQueryFeaturesKHR {}
50099unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayQueryFeaturesKHR {}
50100unsafe impl ExtendsPhysicalDeviceProperties2
50101for PhysicalDeviceAccelerationStructurePropertiesKHR {}
50102unsafe impl ExtendsPhysicalDeviceProperties2
50103for PhysicalDeviceRayTracingPipelinePropertiesKHR {}
50104unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRayTracingPropertiesNV {}
50105unsafe impl ExtendsPhysicalDeviceFeatures2
50106for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {}
50107unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {}
50108unsafe impl ExtendsFormatProperties2 for DrmFormatModifierPropertiesListEXT {}
50109unsafe impl ExtendsPhysicalDeviceImageFormatInfo2
50110for PhysicalDeviceImageDrmFormatModifierInfoEXT {}
50111unsafe impl ExtendsImageCreateInfo for ImageDrmFormatModifierListCreateInfoEXT {}
50112unsafe impl ExtendsImageCreateInfo for ImageDrmFormatModifierExplicitCreateInfoEXT {}
50113unsafe impl ExtendsImageCreateInfo for ImageStencilUsageCreateInfo {}
50114unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageStencilUsageCreateInfo {}
50115unsafe impl ExtendsDeviceCreateInfo for DeviceMemoryOverallocationCreateInfoAMD {}
50116unsafe impl ExtendsPhysicalDeviceFeatures2
50117for PhysicalDeviceFragmentDensityMapFeaturesEXT {}
50118unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMapFeaturesEXT {}
50119unsafe impl ExtendsPhysicalDeviceFeatures2
50120for PhysicalDeviceFragmentDensityMap2FeaturesEXT {}
50121unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMap2FeaturesEXT {}
50122unsafe impl ExtendsPhysicalDeviceFeatures2
50123for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {}
50124unsafe impl ExtendsDeviceCreateInfo
50125for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {}
50126unsafe impl ExtendsPhysicalDeviceProperties2
50127for PhysicalDeviceFragmentDensityMapPropertiesEXT {}
50128unsafe impl ExtendsPhysicalDeviceProperties2
50129for PhysicalDeviceFragmentDensityMap2PropertiesEXT {}
50130unsafe impl ExtendsPhysicalDeviceProperties2
50131for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {}
50132unsafe impl ExtendsRenderPassCreateInfo for RenderPassFragmentDensityMapCreateInfoEXT {}
50133unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassFragmentDensityMapCreateInfoEXT {}
50134unsafe impl ExtendsSubpassEndInfo for RenderPassFragmentDensityMapOffsetEndInfoEXT {}
50135unsafe impl ExtendsRenderingEndInfoKHR for RenderPassFragmentDensityMapOffsetEndInfoEXT {}
50136unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceScalarBlockLayoutFeatures {}
50137unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceScalarBlockLayoutFeatures {}
50138unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceProtectedCapabilitiesKHR {}
50139unsafe impl ExtendsPhysicalDeviceFeatures2
50140for PhysicalDeviceUniformBufferStandardLayoutFeatures {}
50141unsafe impl ExtendsDeviceCreateInfo
50142for PhysicalDeviceUniformBufferStandardLayoutFeatures {}
50143unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClipEnableFeaturesEXT {}
50144unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClipEnableFeaturesEXT {}
50145unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50146for PipelineRasterizationDepthClipStateCreateInfoEXT {}
50147unsafe impl ExtendsPhysicalDeviceMemoryProperties2
50148for PhysicalDeviceMemoryBudgetPropertiesEXT {}
50149unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMemoryPriorityFeaturesEXT {}
50150unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMemoryPriorityFeaturesEXT {}
50151unsafe impl ExtendsMemoryAllocateInfo for MemoryPriorityAllocateInfoEXT {}
50152unsafe impl ExtendsPhysicalDeviceFeatures2
50153for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {}
50154unsafe impl ExtendsDeviceCreateInfo
50155for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {}
50156unsafe impl ExtendsPhysicalDeviceFeatures2
50157for PhysicalDeviceBufferDeviceAddressFeatures {}
50158unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBufferDeviceAddressFeatures {}
50159unsafe impl ExtendsPhysicalDeviceFeatures2
50160for PhysicalDeviceBufferDeviceAddressFeaturesEXT {}
50161unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBufferDeviceAddressFeaturesEXT {}
50162unsafe impl ExtendsBufferCreateInfo for BufferOpaqueCaptureAddressCreateInfo {}
50163unsafe impl ExtendsBufferCreateInfo for BufferDeviceAddressCreateInfoEXT {}
50164unsafe impl ExtendsPhysicalDeviceImageFormatInfo2
50165for PhysicalDeviceImageViewImageFormatInfoEXT {}
50166unsafe impl ExtendsImageFormatProperties2
50167for FilterCubicImageViewImageFormatPropertiesEXT {}
50168unsafe impl ExtendsPhysicalDeviceFeatures2
50169for PhysicalDeviceImagelessFramebufferFeatures {}
50170unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImagelessFramebufferFeatures {}
50171unsafe impl ExtendsFramebufferCreateInfo for FramebufferAttachmentsCreateInfo {}
50172unsafe impl ExtendsRenderPassBeginInfo for RenderPassAttachmentBeginInfo {}
50173unsafe impl ExtendsPhysicalDeviceFeatures2
50174for PhysicalDeviceTextureCompressionASTCHDRFeatures {}
50175unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTextureCompressionASTCHDRFeatures {}
50176unsafe impl ExtendsPhysicalDeviceFeatures2
50177for PhysicalDeviceCooperativeMatrixFeaturesNV {}
50178unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrixFeaturesNV {}
50179unsafe impl ExtendsPhysicalDeviceProperties2
50180for PhysicalDeviceCooperativeMatrixPropertiesNV {}
50181unsafe impl ExtendsPhysicalDeviceFeatures2
50182for PhysicalDeviceYcbcrImageArraysFeaturesEXT {}
50183unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcrImageArraysFeaturesEXT {}
50184unsafe impl ExtendsPresentInfoKHR for PresentFrameTokenGGP {}
50185unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCreationFeedbackCreateInfo {}
50186unsafe impl ExtendsComputePipelineCreateInfo for PipelineCreationFeedbackCreateInfo {}
50187unsafe impl ExtendsRayTracingPipelineCreateInfoNV
50188for PipelineCreationFeedbackCreateInfo {}
50189unsafe impl ExtendsRayTracingPipelineCreateInfoKHR
50190for PipelineCreationFeedbackCreateInfo {}
50191unsafe impl ExtendsExecutionGraphPipelineCreateInfoAMDX
50192for PipelineCreationFeedbackCreateInfo {}
50193unsafe impl ExtendsDataGraphPipelineCreateInfoARM
50194for PipelineCreationFeedbackCreateInfo {}
50195unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfaceFullScreenExclusiveInfoEXT {}
50196unsafe impl ExtendsSwapchainCreateInfoKHR for SurfaceFullScreenExclusiveInfoEXT {}
50197unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR
50198for SurfaceFullScreenExclusiveWin32InfoEXT {}
50199unsafe impl ExtendsSwapchainCreateInfoKHR for SurfaceFullScreenExclusiveWin32InfoEXT {}
50200unsafe impl ExtendsSurfaceCapabilities2KHR
50201for SurfaceCapabilitiesFullScreenExclusiveEXT {}
50202unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentBarrierFeaturesNV {}
50203unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentBarrierFeaturesNV {}
50204unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesPresentBarrierNV {}
50205unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentBarrierCreateInfoNV {}
50206unsafe impl ExtendsPhysicalDeviceFeatures2
50207for PhysicalDevicePerformanceQueryFeaturesKHR {}
50208unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePerformanceQueryFeaturesKHR {}
50209unsafe impl ExtendsPhysicalDeviceProperties2
50210for PhysicalDevicePerformanceQueryPropertiesKHR {}
50211unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolPerformanceCreateInfoKHR {}
50212unsafe impl ExtendsSubmitInfo for PerformanceQuerySubmitInfoKHR {}
50213unsafe impl ExtendsSubmitInfo2 for PerformanceQuerySubmitInfoKHR {}
50214unsafe impl ExtendsDeviceCreateInfo for PerformanceQueryReservationInfoKHR {}
50215unsafe impl ExtendsPhysicalDeviceFeatures2
50216for PhysicalDeviceCoverageReductionModeFeaturesNV {}
50217unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCoverageReductionModeFeaturesNV {}
50218unsafe impl ExtendsPipelineMultisampleStateCreateInfo
50219for PipelineCoverageReductionStateCreateInfoNV {}
50220unsafe impl ExtendsPhysicalDeviceFeatures2
50221for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {}
50222unsafe impl ExtendsDeviceCreateInfo
50223for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {}
50224unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolPerformanceQueryCreateInfoINTEL {}
50225unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderClockFeaturesKHR {}
50226unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderClockFeaturesKHR {}
50227unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceIndexTypeUint8Features {}
50228unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceIndexTypeUint8Features {}
50229unsafe impl ExtendsPhysicalDeviceProperties2
50230for PhysicalDeviceShaderSMBuiltinsPropertiesNV {}
50231unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderSMBuiltinsFeaturesNV {}
50232unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSMBuiltinsFeaturesNV {}
50233unsafe impl ExtendsPhysicalDeviceFeatures2
50234for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {}
50235unsafe impl ExtendsDeviceCreateInfo
50236for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {}
50237unsafe impl ExtendsPhysicalDeviceFeatures2
50238for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {}
50239unsafe impl ExtendsDeviceCreateInfo
50240for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {}
50241unsafe impl ExtendsAttachmentReference2 for AttachmentReferenceStencilLayout {}
50242unsafe impl ExtendsPhysicalDeviceFeatures2
50243for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {}
50244unsafe impl ExtendsDeviceCreateInfo
50245for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {}
50246unsafe impl ExtendsAttachmentDescription2 for AttachmentDescriptionStencilLayout {}
50247unsafe impl ExtendsPhysicalDeviceFeatures2
50248for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {}
50249unsafe impl ExtendsDeviceCreateInfo
50250for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {}
50251unsafe impl ExtendsPhysicalDeviceFeatures2
50252for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {}
50253unsafe impl ExtendsDeviceCreateInfo
50254for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {}
50255unsafe impl ExtendsPhysicalDeviceFeatures2
50256for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {}
50257unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {}
50258unsafe impl ExtendsPhysicalDeviceProperties2
50259for PhysicalDeviceTexelBufferAlignmentProperties {}
50260unsafe impl ExtendsPhysicalDeviceFeatures2
50261for PhysicalDeviceSubgroupSizeControlFeatures {}
50262unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubgroupSizeControlFeatures {}
50263unsafe impl ExtendsPhysicalDeviceProperties2
50264for PhysicalDeviceSubgroupSizeControlProperties {}
50265unsafe impl ExtendsPipelineShaderStageCreateInfo
50266for PipelineShaderStageRequiredSubgroupSizeCreateInfo {}
50267unsafe impl ExtendsShaderCreateInfoEXT
50268for PipelineShaderStageRequiredSubgroupSizeCreateInfo {}
50269unsafe impl ExtendsComputePipelineCreateInfo for SubpassShadingPipelineCreateInfoHUAWEI {}
50270unsafe impl ExtendsPhysicalDeviceProperties2
50271for PhysicalDeviceSubpassShadingPropertiesHUAWEI {}
50272unsafe impl ExtendsPhysicalDeviceProperties2
50273for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {}
50274unsafe impl ExtendsMemoryAllocateInfo for MemoryOpaqueCaptureAddressAllocateInfo {}
50275unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLineRasterizationFeatures {}
50276unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLineRasterizationFeatures {}
50277unsafe impl ExtendsPhysicalDeviceProperties2
50278for PhysicalDeviceLineRasterizationProperties {}
50279unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50280for PipelineRasterizationLineStateCreateInfo {}
50281unsafe impl ExtendsPhysicalDeviceFeatures2
50282for PhysicalDevicePipelineCreationCacheControlFeatures {}
50283unsafe impl ExtendsDeviceCreateInfo
50284for PhysicalDevicePipelineCreationCacheControlFeatures {}
50285unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan11Features {}
50286unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan11Features {}
50287unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan11Properties {}
50288unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan12Features {}
50289unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan12Features {}
50290unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan12Properties {}
50291unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan13Features {}
50292unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan13Features {}
50293unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan13Properties {}
50294unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan14Features {}
50295unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan14Features {}
50296unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan14Properties {}
50297unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCompilerControlCreateInfoAMD {}
50298unsafe impl ExtendsComputePipelineCreateInfo for PipelineCompilerControlCreateInfoAMD {}
50299unsafe impl ExtendsExecutionGraphPipelineCreateInfoAMDX
50300for PipelineCompilerControlCreateInfoAMD {}
50301unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCoherentMemoryFeaturesAMD {}
50302unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCoherentMemoryFeaturesAMD {}
50303unsafe impl ExtendsDeviceCreateInfo for FaultCallbackInfo {}
50304unsafe impl ExtendsSamplerCreateInfo for SamplerCustomBorderColorCreateInfoEXT {}
50305unsafe impl ExtendsPhysicalDeviceProperties2
50306for PhysicalDeviceCustomBorderColorPropertiesEXT {}
50307unsafe impl ExtendsPhysicalDeviceFeatures2
50308for PhysicalDeviceCustomBorderColorFeaturesEXT {}
50309unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCustomBorderColorFeaturesEXT {}
50310unsafe impl ExtendsSamplerCreateInfo
50311for SamplerBorderColorComponentMappingCreateInfoEXT {}
50312unsafe impl ExtendsPhysicalDeviceFeatures2
50313for PhysicalDeviceBorderColorSwizzleFeaturesEXT {}
50314unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBorderColorSwizzleFeaturesEXT {}
50315unsafe impl ExtendsAccelerationStructureGeometryKHR
50316for AccelerationStructureGeometryLinearSweptSpheresDataNV {}
50317unsafe impl ExtendsAccelerationStructureGeometryKHR
50318for AccelerationStructureGeometrySpheresDataNV {}
50319unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineLibraryCreateInfoKHR {}
50320unsafe impl ExtendsPhysicalDeviceFeatures2
50321for PhysicalDeviceExtendedDynamicStateFeaturesEXT {}
50322unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicStateFeaturesEXT {}
50323unsafe impl ExtendsPhysicalDeviceFeatures2
50324for PhysicalDeviceExtendedDynamicState2FeaturesEXT {}
50325unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicState2FeaturesEXT {}
50326unsafe impl ExtendsPhysicalDeviceFeatures2
50327for PhysicalDeviceExtendedDynamicState3FeaturesEXT {}
50328unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicState3FeaturesEXT {}
50329unsafe impl ExtendsPhysicalDeviceProperties2
50330for PhysicalDeviceExtendedDynamicState3PropertiesEXT {}
50331unsafe impl ExtendsRenderPassBeginInfo for RenderPassTransformBeginInfoQCOM {}
50332unsafe impl ExtendsBufferImageCopy2 for CopyCommandTransformInfoQCOM {}
50333unsafe impl ExtendsImageBlit2 for CopyCommandTransformInfoQCOM {}
50334unsafe impl ExtendsDeviceMemoryImageCopyKHR for CopyCommandTransformInfoQCOM {}
50335unsafe impl ExtendsCommandBufferInheritanceInfo
50336for CommandBufferInheritanceRenderPassTransformInfoQCOM {}
50337unsafe impl ExtendsPhysicalDeviceFeatures2
50338for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {}
50339unsafe impl ExtendsDeviceCreateInfo
50340for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {}
50341unsafe impl ExtendsPhysicalDeviceProperties2
50342for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {}
50343unsafe impl ExtendsPartitionedAccelerationStructureInstancesInputNV
50344for PartitionedAccelerationStructureFlagsNV {}
50345unsafe impl ExtendsWriteDescriptorSet
50346for WriteDescriptorSetPartitionedAccelerationStructureNV {}
50347unsafe impl ExtendsPhysicalDeviceFeatures2
50348for PhysicalDeviceDiagnosticsConfigFeaturesNV {}
50349unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDiagnosticsConfigFeaturesNV {}
50350unsafe impl ExtendsDeviceCreateInfo for DeviceDiagnosticsConfigCreateInfoNV {}
50351unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineOfflineCreateInfo {}
50352unsafe impl ExtendsComputePipelineCreateInfo for PipelineOfflineCreateInfo {}
50353unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineOfflineCreateInfo {}
50354unsafe impl ExtendsRayTracingPipelineCreateInfoNV for PipelineOfflineCreateInfo {}
50355unsafe impl ExtendsPhysicalDeviceFeatures2
50356for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {}
50357unsafe impl ExtendsDeviceCreateInfo
50358for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {}
50359unsafe impl ExtendsPhysicalDeviceFeatures2
50360for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {}
50361unsafe impl ExtendsDeviceCreateInfo
50362for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {}
50363unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRobustness2FeaturesKHR {}
50364unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRobustness2FeaturesKHR {}
50365unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRobustness2PropertiesKHR {}
50366unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageRobustnessFeatures {}
50367unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageRobustnessFeatures {}
50368unsafe impl ExtendsPhysicalDeviceFeatures2
50369for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {}
50370unsafe impl ExtendsDeviceCreateInfo
50371for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {}
50372unsafe impl ExtendsPhysicalDeviceFeatures2
50373for PhysicalDevicePortabilitySubsetFeaturesKHR {}
50374unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePortabilitySubsetFeaturesKHR {}
50375unsafe impl ExtendsPhysicalDeviceProperties2
50376for PhysicalDevicePortabilitySubsetPropertiesKHR {}
50377unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice4444FormatsFeaturesEXT {}
50378unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice4444FormatsFeaturesEXT {}
50379unsafe impl ExtendsPhysicalDeviceFeatures2
50380for PhysicalDeviceSubpassShadingFeaturesHUAWEI {}
50381unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubpassShadingFeaturesHUAWEI {}
50382unsafe impl ExtendsPhysicalDeviceFeatures2
50383for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {}
50384unsafe impl ExtendsDeviceCreateInfo
50385for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {}
50386unsafe impl ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
50387for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {}
50388unsafe impl ExtendsPhysicalDeviceFeatures2
50389for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {}
50390unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {}
50391unsafe impl ExtendsSubpassDescription2 for FragmentShadingRateAttachmentInfoKHR {}
50392unsafe impl ExtendsGraphicsPipelineCreateInfo
50393for PipelineFragmentShadingRateStateCreateInfoKHR {}
50394unsafe impl ExtendsPhysicalDeviceFeatures2
50395for PhysicalDeviceFragmentShadingRateFeaturesKHR {}
50396unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShadingRateFeaturesKHR {}
50397unsafe impl ExtendsPhysicalDeviceProperties2
50398for PhysicalDeviceFragmentShadingRatePropertiesKHR {}
50399unsafe impl ExtendsPhysicalDeviceFeatures2
50400for PhysicalDeviceShaderTerminateInvocationFeatures {}
50401unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTerminateInvocationFeatures {}
50402unsafe impl ExtendsPhysicalDeviceFeatures2
50403for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {}
50404unsafe impl ExtendsDeviceCreateInfo
50405for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {}
50406unsafe impl ExtendsPhysicalDeviceProperties2
50407for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {}
50408unsafe impl ExtendsGraphicsPipelineCreateInfo
50409for PipelineFragmentShadingRateEnumStateCreateInfoNV {}
50410unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImage2DViewOf3DFeaturesEXT {}
50411unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImage2DViewOf3DFeaturesEXT {}
50412unsafe impl ExtendsPhysicalDeviceFeatures2
50413for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {}
50414unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {}
50415unsafe impl ExtendsPhysicalDeviceFeatures2
50416for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {}
50417unsafe impl ExtendsDeviceCreateInfo
50418for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {}
50419unsafe impl ExtendsPhysicalDeviceFeatures2
50420for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {}
50421unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {}
50422unsafe impl ExtendsPhysicalDeviceProperties2
50423for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {}
50424unsafe impl ExtendsPhysicalDeviceFeatures2
50425for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {}
50426unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {}
50427unsafe impl ExtendsDescriptorSetLayoutCreateInfo for MutableDescriptorTypeCreateInfoEXT {}
50428unsafe impl ExtendsDescriptorPoolCreateInfo for MutableDescriptorTypeCreateInfoEXT {}
50429unsafe impl ExtendsPhysicalDeviceFeatures2
50430for PhysicalDeviceDepthClipControlFeaturesEXT {}
50431unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClipControlFeaturesEXT {}
50432unsafe impl ExtendsPhysicalDeviceFeatures2
50433for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {}
50434unsafe impl ExtendsDeviceCreateInfo
50435for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {}
50436unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCustomResolveFeaturesEXT {}
50437unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCustomResolveFeaturesEXT {}
50438unsafe impl ExtendsGraphicsPipelineCreateInfo for CustomResolveCreateInfoEXT {}
50439unsafe impl ExtendsCommandBufferInheritanceInfo for CustomResolveCreateInfoEXT {}
50440unsafe impl ExtendsShaderCreateInfoEXT for CustomResolveCreateInfoEXT {}
50441unsafe impl ExtendsPhysicalDeviceFeatures2
50442for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {}
50443unsafe impl ExtendsDeviceCreateInfo
50444for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {}
50445unsafe impl ExtendsPhysicalDeviceProperties2
50446for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {}
50447unsafe impl ExtendsGeneratedCommandsInfoEXT for GeneratedCommandsPipelineInfoEXT {}
50448unsafe impl ExtendsGeneratedCommandsMemoryRequirementsInfoEXT
50449for GeneratedCommandsPipelineInfoEXT {}
50450unsafe impl ExtendsGeneratedCommandsInfoEXT for GeneratedCommandsShaderInfoEXT {}
50451unsafe impl ExtendsGeneratedCommandsMemoryRequirementsInfoEXT
50452for GeneratedCommandsShaderInfoEXT {}
50453unsafe impl ExtendsPipelineViewportStateCreateInfo
50454for PipelineViewportDepthClipControlCreateInfoEXT {}
50455unsafe impl ExtendsPhysicalDeviceFeatures2
50456for PhysicalDeviceDepthClampControlFeaturesEXT {}
50457unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClampControlFeaturesEXT {}
50458unsafe impl ExtendsPipelineViewportStateCreateInfo
50459for PipelineViewportDepthClampControlCreateInfoEXT {}
50460unsafe impl ExtendsPhysicalDeviceFeatures2
50461for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {}
50462unsafe impl ExtendsDeviceCreateInfo
50463for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {}
50464unsafe impl ExtendsPhysicalDeviceFeatures2
50465for PhysicalDeviceExternalMemoryRDMAFeaturesNV {}
50466unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemoryRDMAFeaturesNV {}
50467unsafe impl ExtendsPhysicalDeviceFeatures2
50468for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {}
50469unsafe impl ExtendsDeviceCreateInfo
50470for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {}
50471unsafe impl ExtendsPhysicalDeviceFeatures2
50472for PhysicalDeviceColorWriteEnableFeaturesEXT {}
50473unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceColorWriteEnableFeaturesEXT {}
50474unsafe impl ExtendsPipelineColorBlendStateCreateInfo
50475for PipelineColorWriteCreateInfoEXT {}
50476unsafe impl ExtendsSubpassDependency2 for MemoryBarrier2 {}
50477unsafe impl ExtendsSubpassDependency2 for MemoryBarrierAccessFlags3KHR {}
50478unsafe impl ExtendsBufferMemoryBarrier2 for MemoryBarrierAccessFlags3KHR {}
50479unsafe impl ExtendsImageMemoryBarrier2 for MemoryBarrierAccessFlags3KHR {}
50480unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyCheckpointProperties2NV {}
50481unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSynchronization2Features {}
50482unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSynchronization2Features {}
50483unsafe impl ExtendsPhysicalDeviceFeatures2
50484for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {}
50485unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {}
50486unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHostImageCopyFeatures {}
50487unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHostImageCopyFeatures {}
50488unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceHostImageCopyProperties {}
50489unsafe impl ExtendsSubresourceLayout2 for SubresourceHostMemcpySize {}
50490unsafe impl ExtendsImageFormatProperties2 for HostImageCopyDevicePerformanceQuery {}
50491unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkanSC10Properties {}
50492unsafe impl ExtendsDeviceCreateInfo for DeviceObjectReservationCreateInfo {}
50493unsafe impl ExtendsCommandPoolCreateInfo for CommandPoolMemoryReservationCreateInfo {}
50494unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkanSC10Features {}
50495unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkanSC10Features {}
50496unsafe impl ExtendsPhysicalDeviceFeatures2
50497for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {}
50498unsafe impl ExtendsDeviceCreateInfo
50499for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {}
50500unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLegacyDitheringFeaturesEXT {}
50501unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLegacyDitheringFeaturesEXT {}
50502unsafe impl ExtendsPhysicalDeviceFeatures2
50503for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {}
50504unsafe impl ExtendsDeviceCreateInfo
50505for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {}
50506unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesPresentId2KHR {}
50507unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesPresentWait2KHR {}
50508unsafe impl ExtendsFormatProperties2 for SubpassResolvePerformanceQueryEXT {}
50509unsafe impl ExtendsSubpassDescription2 for MultisampledRenderToSingleSampledInfoEXT {}
50510unsafe impl ExtendsRenderingInfo for MultisampledRenderToSingleSampledInfoEXT {}
50511unsafe impl ExtendsPhysicalDeviceFeatures2
50512for PhysicalDevicePipelineProtectedAccessFeatures {}
50513unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineProtectedAccessFeatures {}
50514unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyVideoPropertiesKHR {}
50515unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyQueryResultStatusPropertiesKHR {}
50516unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for VideoProfileListInfoKHR {}
50517unsafe impl ExtendsPhysicalDeviceVideoFormatInfoKHR for VideoProfileListInfoKHR {}
50518unsafe impl ExtendsImageCreateInfo for VideoProfileListInfoKHR {}
50519unsafe impl ExtendsBufferCreateInfo for VideoProfileListInfoKHR {}
50520unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeQuantizationMapCapabilitiesKHR {}
50521unsafe impl ExtendsVideoCapabilitiesKHR
50522for VideoEncodeH264QuantizationMapCapabilitiesKHR {}
50523unsafe impl ExtendsVideoCapabilitiesKHR
50524for VideoEncodeH265QuantizationMapCapabilitiesKHR {}
50525unsafe impl ExtendsVideoCapabilitiesKHR
50526for VideoEncodeAV1QuantizationMapCapabilitiesKHR {}
50527unsafe impl ExtendsVideoFormatPropertiesKHR for VideoFormatQuantizationMapPropertiesKHR {}
50528unsafe impl ExtendsVideoFormatPropertiesKHR
50529for VideoFormatH265QuantizationMapPropertiesKHR {}
50530unsafe impl ExtendsVideoFormatPropertiesKHR
50531for VideoFormatAV1QuantizationMapPropertiesKHR {}
50532unsafe impl ExtendsQueryPoolCreateInfo for VideoProfileInfoKHR {}
50533unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeCapabilitiesKHR {}
50534unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeUsageInfoKHR {}
50535unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeUsageInfoKHR {}
50536unsafe impl ExtendsPhysicalDeviceFeatures2
50537for PhysicalDeviceVideoMaintenance1FeaturesKHR {}
50538unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoMaintenance1FeaturesKHR {}
50539unsafe impl ExtendsPhysicalDeviceFeatures2
50540for PhysicalDeviceVideoMaintenance2FeaturesKHR {}
50541unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoMaintenance2FeaturesKHR {}
50542unsafe impl ExtendsVideoDecodeInfoKHR for VideoInlineQueryInfoKHR {}
50543unsafe impl ExtendsVideoEncodeInfoKHR for VideoInlineQueryInfoKHR {}
50544unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeH264ProfileInfoKHR {}
50545unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeH264ProfileInfoKHR {}
50546unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeH264CapabilitiesKHR {}
50547unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR
50548for VideoDecodeH264SessionParametersAddInfoKHR {}
50549unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50550for VideoDecodeH264SessionParametersCreateInfoKHR {}
50551unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH264InlineSessionParametersInfoKHR {}
50552unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH264PictureInfoKHR {}
50553unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeH264DpbSlotInfoKHR {}
50554unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeH265ProfileInfoKHR {}
50555unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeH265ProfileInfoKHR {}
50556unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeH265CapabilitiesKHR {}
50557unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR
50558for VideoDecodeH265SessionParametersAddInfoKHR {}
50559unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50560for VideoDecodeH265SessionParametersCreateInfoKHR {}
50561unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH265InlineSessionParametersInfoKHR {}
50562unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH265PictureInfoKHR {}
50563unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeH265DpbSlotInfoKHR {}
50564unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVideoDecodeVP9FeaturesKHR {}
50565unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoDecodeVP9FeaturesKHR {}
50566unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeVP9ProfileInfoKHR {}
50567unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeVP9ProfileInfoKHR {}
50568unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeVP9CapabilitiesKHR {}
50569unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeVP9PictureInfoKHR {}
50570unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeAV1ProfileInfoKHR {}
50571unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeAV1ProfileInfoKHR {}
50572unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeAV1CapabilitiesKHR {}
50573unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50574for VideoDecodeAV1SessionParametersCreateInfoKHR {}
50575unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeAV1InlineSessionParametersInfoKHR {}
50576unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeAV1PictureInfoKHR {}
50577unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeAV1DpbSlotInfoKHR {}
50578unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeUsageInfoKHR {}
50579unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeUsageInfoKHR {}
50580unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeQuantizationMapInfoKHR {}
50581unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50582for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {}
50583unsafe impl ExtendsPhysicalDeviceFeatures2
50584for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {}
50585unsafe impl ExtendsDeviceCreateInfo
50586for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {}
50587unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolVideoEncodeFeedbackCreateInfoKHR {}
50588unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeQualityLevelInfoKHR {}
50589unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50590for VideoEncodeQualityLevelInfoKHR {}
50591unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeRateControlInfoKHR {}
50592unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeRateControlInfoKHR {}
50593unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeCapabilitiesKHR {}
50594unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeH264CapabilitiesKHR {}
50595unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR
50596for VideoEncodeH264QualityLevelPropertiesKHR {}
50597unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeH264SessionCreateInfoKHR {}
50598unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR
50599for VideoEncodeH264SessionParametersAddInfoKHR {}
50600unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50601for VideoEncodeH264SessionParametersCreateInfoKHR {}
50602unsafe impl ExtendsVideoEncodeSessionParametersGetInfoKHR
50603for VideoEncodeH264SessionParametersGetInfoKHR {}
50604unsafe impl ExtendsVideoEncodeSessionParametersFeedbackInfoKHR
50605for VideoEncodeH264SessionParametersFeedbackInfoKHR {}
50606unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeH264DpbSlotInfoKHR {}
50607unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeH264PictureInfoKHR {}
50608unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeH264ProfileInfoKHR {}
50609unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeH264ProfileInfoKHR {}
50610unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeH264RateControlInfoKHR {}
50611unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH264RateControlInfoKHR {}
50612unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH264GopRemainingFrameInfoKHR {}
50613unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR
50614for VideoEncodeH264RateControlLayerInfoKHR {}
50615unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeH265CapabilitiesKHR {}
50616unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR
50617for VideoEncodeH265QualityLevelPropertiesKHR {}
50618unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeH265SessionCreateInfoKHR {}
50619unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR
50620for VideoEncodeH265SessionParametersAddInfoKHR {}
50621unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50622for VideoEncodeH265SessionParametersCreateInfoKHR {}
50623unsafe impl ExtendsVideoEncodeSessionParametersGetInfoKHR
50624for VideoEncodeH265SessionParametersGetInfoKHR {}
50625unsafe impl ExtendsVideoEncodeSessionParametersFeedbackInfoKHR
50626for VideoEncodeH265SessionParametersFeedbackInfoKHR {}
50627unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeH265PictureInfoKHR {}
50628unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeH265RateControlInfoKHR {}
50629unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH265RateControlInfoKHR {}
50630unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH265GopRemainingFrameInfoKHR {}
50631unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR
50632for VideoEncodeH265RateControlLayerInfoKHR {}
50633unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeH265ProfileInfoKHR {}
50634unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeH265ProfileInfoKHR {}
50635unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeH265DpbSlotInfoKHR {}
50636unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeAV1CapabilitiesKHR {}
50637unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR
50638for VideoEncodeAV1QualityLevelPropertiesKHR {}
50639unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVideoEncodeAV1FeaturesKHR {}
50640unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoEncodeAV1FeaturesKHR {}
50641unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeAV1SessionCreateInfoKHR {}
50642unsafe impl ExtendsVideoSessionParametersCreateInfoKHR
50643for VideoEncodeAV1SessionParametersCreateInfoKHR {}
50644unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeAV1DpbSlotInfoKHR {}
50645unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeAV1PictureInfoKHR {}
50646unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeAV1ProfileInfoKHR {}
50647unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeAV1ProfileInfoKHR {}
50648unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeAV1RateControlInfoKHR {}
50649unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeAV1RateControlInfoKHR {}
50650unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeAV1GopRemainingFrameInfoKHR {}
50651unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR
50652for VideoEncodeAV1RateControlLayerInfoKHR {}
50653unsafe impl ExtendsPhysicalDeviceFeatures2
50654for PhysicalDeviceInheritedViewportScissorFeaturesNV {}
50655unsafe impl ExtendsDeviceCreateInfo
50656for PhysicalDeviceInheritedViewportScissorFeaturesNV {}
50657unsafe impl ExtendsCommandBufferInheritanceInfo
50658for CommandBufferInheritanceViewportScissorInfoNV {}
50659unsafe impl ExtendsPhysicalDeviceFeatures2
50660for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {}
50661unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {}
50662unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceProvokingVertexFeaturesEXT {}
50663unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceProvokingVertexFeaturesEXT {}
50664unsafe impl ExtendsPhysicalDeviceProperties2
50665for PhysicalDeviceProvokingVertexPropertiesEXT {}
50666unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50667for PipelineRasterizationProvokingVertexStateCreateInfoEXT {}
50668unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeIntraRefreshCapabilitiesKHR {}
50669unsafe impl ExtendsVideoSessionCreateInfoKHR
50670for VideoEncodeSessionIntraRefreshCreateInfoKHR {}
50671unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeIntraRefreshInfoKHR {}
50672unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoReferenceIntraRefreshInfoKHR {}
50673unsafe impl ExtendsPhysicalDeviceFeatures2
50674for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {}
50675unsafe impl ExtendsDeviceCreateInfo
50676for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {}
50677unsafe impl ExtendsCuModuleCreateInfoNVX for CuModuleTexturingModeCreateInfoNVX {}
50678unsafe impl ExtendsPhysicalDeviceFeatures2
50679for PhysicalDeviceDescriptorBufferFeaturesEXT {}
50680unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorBufferFeaturesEXT {}
50681unsafe impl ExtendsPhysicalDeviceProperties2
50682for PhysicalDeviceDescriptorBufferPropertiesEXT {}
50683unsafe impl ExtendsPhysicalDeviceProperties2
50684for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {}
50685unsafe impl ExtendsDescriptorBufferBindingInfoEXT
50686for DescriptorBufferBindingPushDescriptorBufferHandleEXT {}
50687unsafe impl ExtendsBufferCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50688unsafe impl ExtendsImageCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50689unsafe impl ExtendsImageViewCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50690unsafe impl ExtendsSamplerCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50691unsafe impl ExtendsAccelerationStructureCreateInfoKHR
50692for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50693unsafe impl ExtendsAccelerationStructureCreateInfoNV
50694for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50695unsafe impl ExtendsTensorCreateInfoARM for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50696unsafe impl ExtendsTensorViewCreateInfoARM for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50697unsafe impl ExtendsAccelerationStructureCreateInfo2KHR
50698for OpaqueCaptureDescriptorDataCreateInfoEXT {}
50699unsafe impl ExtendsPhysicalDeviceFeatures2
50700for PhysicalDeviceShaderIntegerDotProductFeatures {}
50701unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderIntegerDotProductFeatures {}
50702unsafe impl ExtendsPhysicalDeviceProperties2
50703for PhysicalDeviceShaderIntegerDotProductProperties {}
50704unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDrmPropertiesEXT {}
50705unsafe impl ExtendsPhysicalDeviceFeatures2
50706for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {}
50707unsafe impl ExtendsDeviceCreateInfo
50708for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {}
50709unsafe impl ExtendsPhysicalDeviceProperties2
50710for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {}
50711unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFmaFeaturesKHR {}
50712unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFmaFeaturesKHR {}
50713unsafe impl ExtendsPhysicalDeviceFeatures2
50714for PhysicalDeviceRayTracingMotionBlurFeaturesNV {}
50715unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingMotionBlurFeaturesNV {}
50716unsafe impl ExtendsPhysicalDeviceFeatures2
50717for PhysicalDeviceRayTracingValidationFeaturesNV {}
50718unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingValidationFeaturesNV {}
50719unsafe impl ExtendsPhysicalDeviceFeatures2
50720for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {}
50721unsafe impl ExtendsDeviceCreateInfo
50722for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {}
50723unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR
50724for AccelerationStructureGeometryMotionTrianglesDataNV {}
50725unsafe impl ExtendsAccelerationStructureCreateInfoKHR
50726for AccelerationStructureMotionInfoNV {}
50727unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryBufferCollectionFUCHSIA {}
50728unsafe impl ExtendsImageCreateInfo for BufferCollectionImageCreateInfoFUCHSIA {}
50729unsafe impl ExtendsBufferCreateInfo for BufferCollectionBufferCreateInfoFUCHSIA {}
50730unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {}
50731unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {}
50732unsafe impl ExtendsFormatProperties2 for FormatProperties3 {}
50733unsafe impl ExtendsFormatProperties2 for DrmFormatModifierPropertiesList2EXT {}
50734unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID
50735for AndroidHardwareBufferFormatProperties2ANDROID {}
50736unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineRenderingCreateInfo {}
50737unsafe impl ExtendsRenderingInfo for RenderingFragmentShadingRateAttachmentInfoKHR {}
50738unsafe impl ExtendsRenderingInfo for RenderingFragmentDensityMapAttachmentInfoEXT {}
50739unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDynamicRenderingFeatures {}
50740unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDynamicRenderingFeatures {}
50741unsafe impl ExtendsCommandBufferInheritanceInfo
50742for CommandBufferInheritanceRenderingInfo {}
50743unsafe impl ExtendsCommandBufferInheritanceInfo for AttachmentSampleCountInfoAMD {}
50744unsafe impl ExtendsGraphicsPipelineCreateInfo for AttachmentSampleCountInfoAMD {}
50745unsafe impl ExtendsCommandBufferInheritanceInfo for MultiviewPerViewAttributesInfoNVX {}
50746unsafe impl ExtendsGraphicsPipelineCreateInfo for MultiviewPerViewAttributesInfoNVX {}
50747unsafe impl ExtendsRenderingInfo for MultiviewPerViewAttributesInfoNVX {}
50748unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageViewMinLodFeaturesEXT {}
50749unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageViewMinLodFeaturesEXT {}
50750unsafe impl ExtendsImageViewCreateInfo for ImageViewMinLodCreateInfoEXT {}
50751unsafe impl ExtendsPhysicalDeviceFeatures2
50752for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {}
50753unsafe impl ExtendsDeviceCreateInfo
50754for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {}
50755unsafe impl ExtendsPhysicalDeviceFeatures2
50756for PhysicalDeviceLinearColorAttachmentFeaturesNV {}
50757unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLinearColorAttachmentFeaturesNV {}
50758unsafe impl ExtendsPhysicalDeviceFeatures2
50759for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {}
50760unsafe impl ExtendsDeviceCreateInfo
50761for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {}
50762unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelineBinaryFeaturesKHR {}
50763unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineBinaryFeaturesKHR {}
50764unsafe impl ExtendsDeviceCreateInfo for DevicePipelineBinaryInternalCacheControlKHR {}
50765unsafe impl ExtendsPhysicalDeviceProperties2
50766for PhysicalDevicePipelineBinaryPropertiesKHR {}
50767unsafe impl ExtendsPhysicalDeviceProperties2
50768for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {}
50769unsafe impl ExtendsGraphicsPipelineCreateInfo for GraphicsPipelineLibraryCreateInfoEXT {}
50770unsafe impl ExtendsPhysicalDeviceFeatures2
50771for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {}
50772unsafe impl ExtendsDeviceCreateInfo
50773for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {}
50774unsafe impl ExtendsPhysicalDeviceFeatures2
50775for PhysicalDeviceNestedCommandBufferFeaturesEXT {}
50776unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceNestedCommandBufferFeaturesEXT {}
50777unsafe impl ExtendsPhysicalDeviceProperties2
50778for PhysicalDeviceNestedCommandBufferPropertiesEXT {}
50779unsafe impl ExtendsPhysicalDeviceFeatures2
50780for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {}
50781unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {}
50782unsafe impl ExtendsPhysicalDeviceProperties2
50783for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {}
50784unsafe impl ExtendsPipelineShaderStageCreateInfo
50785for PipelineShaderStageModuleIdentifierCreateInfoEXT {}
50786unsafe impl ExtendsImageCreateInfo for ImageCompressionControlEXT {}
50787unsafe impl ExtendsSwapchainCreateInfoKHR for ImageCompressionControlEXT {}
50788unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageCompressionControlEXT {}
50789unsafe impl ExtendsPhysicalDeviceFeatures2
50790for PhysicalDeviceImageCompressionControlFeaturesEXT {}
50791unsafe impl ExtendsDeviceCreateInfo
50792for PhysicalDeviceImageCompressionControlFeaturesEXT {}
50793unsafe impl ExtendsImageFormatProperties2 for ImageCompressionPropertiesEXT {}
50794unsafe impl ExtendsSurfaceFormat2KHR for ImageCompressionPropertiesEXT {}
50795unsafe impl ExtendsSubresourceLayout2 for ImageCompressionPropertiesEXT {}
50796unsafe impl ExtendsPhysicalDeviceFeatures2
50797for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {}
50798unsafe impl ExtendsDeviceCreateInfo
50799for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {}
50800unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassCreationControlEXT {}
50801unsafe impl ExtendsSubpassDescription2 for RenderPassCreationControlEXT {}
50802unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassCreationFeedbackCreateInfoEXT {}
50803unsafe impl ExtendsSubpassDescription2 for RenderPassSubpassFeedbackCreateInfoEXT {}
50804unsafe impl ExtendsPhysicalDeviceFeatures2
50805for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {}
50806unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {}
50807unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceOpacityMicromapFeaturesEXT {}
50808unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceOpacityMicromapFeaturesEXT {}
50809unsafe impl ExtendsPhysicalDeviceProperties2
50810for PhysicalDeviceOpacityMicromapPropertiesEXT {}
50811unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR
50812for AccelerationStructureTrianglesOpacityMicromapEXT {}
50813unsafe impl ExtendsAccelerationStructureDenseGeometryFormatTrianglesDataAMDX
50814for AccelerationStructureTrianglesOpacityMicromapEXT {}
50815unsafe impl ExtendsPhysicalDeviceFeatures2
50816for PhysicalDeviceDisplacementMicromapFeaturesNV {}
50817unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDisplacementMicromapFeaturesNV {}
50818unsafe impl ExtendsPhysicalDeviceProperties2
50819for PhysicalDeviceDisplacementMicromapPropertiesNV {}
50820unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR
50821for AccelerationStructureTrianglesDisplacementMicromapNV {}
50822unsafe impl ExtendsPhysicalDeviceFeatures2
50823for PhysicalDevicePipelinePropertiesFeaturesEXT {}
50824unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelinePropertiesFeaturesEXT {}
50825unsafe impl ExtendsPhysicalDeviceFeatures2
50826for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {}
50827unsafe impl ExtendsDeviceCreateInfo
50828for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {}
50829unsafe impl ExtendsBufferMemoryBarrier for ExternalMemoryAcquireUnmodifiedEXT {}
50830unsafe impl ExtendsBufferMemoryBarrier2 for ExternalMemoryAcquireUnmodifiedEXT {}
50831unsafe impl ExtendsImageMemoryBarrier for ExternalMemoryAcquireUnmodifiedEXT {}
50832unsafe impl ExtendsImageMemoryBarrier2 for ExternalMemoryAcquireUnmodifiedEXT {}
50833unsafe impl ExtendsInstanceCreateInfo for ExportMetalObjectCreateInfoEXT {}
50834unsafe impl ExtendsMemoryAllocateInfo for ExportMetalObjectCreateInfoEXT {}
50835unsafe impl ExtendsImageCreateInfo for ExportMetalObjectCreateInfoEXT {}
50836unsafe impl ExtendsImageViewCreateInfo for ExportMetalObjectCreateInfoEXT {}
50837unsafe impl ExtendsBufferViewCreateInfo for ExportMetalObjectCreateInfoEXT {}
50838unsafe impl ExtendsSemaphoreCreateInfo for ExportMetalObjectCreateInfoEXT {}
50839unsafe impl ExtendsEventCreateInfo for ExportMetalObjectCreateInfoEXT {}
50840unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalDeviceInfoEXT {}
50841unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalCommandQueueInfoEXT {}
50842unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalBufferInfoEXT {}
50843unsafe impl ExtendsMemoryAllocateInfo for ImportMetalBufferInfoEXT {}
50844unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalTextureInfoEXT {}
50845unsafe impl ExtendsImageCreateInfo for ImportMetalTextureInfoEXT {}
50846unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalIOSurfaceInfoEXT {}
50847unsafe impl ExtendsImageCreateInfo for ImportMetalIOSurfaceInfoEXT {}
50848unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalSharedEventInfoEXT {}
50849unsafe impl ExtendsSemaphoreCreateInfo for ImportMetalSharedEventInfoEXT {}
50850unsafe impl ExtendsEventCreateInfo for ImportMetalSharedEventInfoEXT {}
50851unsafe impl ExtendsPhysicalDeviceFeatures2
50852for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {}
50853unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {}
50854unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelineRobustnessFeatures {}
50855unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineRobustnessFeatures {}
50856unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineRobustnessCreateInfo {}
50857unsafe impl ExtendsComputePipelineCreateInfo for PipelineRobustnessCreateInfo {}
50858unsafe impl ExtendsPipelineShaderStageCreateInfo for PipelineRobustnessCreateInfo {}
50859unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineRobustnessCreateInfo {}
50860unsafe impl ExtendsPhysicalDeviceProperties2
50861for PhysicalDevicePipelineRobustnessProperties {}
50862unsafe impl ExtendsImageViewCreateInfo for ImageViewSampleWeightCreateInfoQCOM {}
50863unsafe impl ExtendsPhysicalDeviceFeatures2
50864for PhysicalDeviceImageProcessingFeaturesQCOM {}
50865unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageProcessingFeaturesQCOM {}
50866unsafe impl ExtendsPhysicalDeviceProperties2
50867for PhysicalDeviceImageProcessingPropertiesQCOM {}
50868unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTilePropertiesFeaturesQCOM {}
50869unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTilePropertiesFeaturesQCOM {}
50870unsafe impl ExtendsCommandBufferInheritanceInfo for TileMemoryBindInfoQCOM {}
50871unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAmigoProfilingFeaturesSEC {}
50872unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAmigoProfilingFeaturesSEC {}
50873unsafe impl ExtendsSubmitInfo for AmigoProfilingSubmitInfoSEC {}
50874unsafe impl ExtendsPhysicalDeviceFeatures2
50875for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {}
50876unsafe impl ExtendsDeviceCreateInfo
50877for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {}
50878unsafe impl ExtendsRenderingAttachmentInfo for AttachmentFeedbackLoopInfoEXT {}
50879unsafe impl ExtendsPhysicalDeviceFeatures2
50880for PhysicalDeviceAddressBindingReportFeaturesEXT {}
50881unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAddressBindingReportFeaturesEXT {}
50882unsafe impl ExtendsRenderingAttachmentInfo for RenderingAttachmentFlagsInfoKHR {}
50883unsafe impl ExtendsResolveImageInfo2 for ResolveImageModeInfoKHR {}
50884unsafe impl ExtendsDebugUtilsMessengerCallbackDataEXT
50885for DeviceAddressBindingCallbackDataEXT {}
50886unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceOpticalFlowFeaturesNV {}
50887unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceOpticalFlowFeaturesNV {}
50888unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceOpticalFlowPropertiesNV {}
50889unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for OpticalFlowImageFormatInfoNV {}
50890unsafe impl ExtendsImageCreateInfo for OpticalFlowImageFormatInfoNV {}
50891unsafe impl ExtendsOpticalFlowSessionCreateInfoNV
50892for OpticalFlowSessionCreatePrivateDataInfoNV {}
50893unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFaultFeaturesEXT {}
50894unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFaultFeaturesEXT {}
50895unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFaultFeaturesKHR {}
50896unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFaultFeaturesKHR {}
50897unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFaultPropertiesKHR {}
50898unsafe impl ExtendsPhysicalDeviceFeatures2
50899for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {}
50900unsafe impl ExtendsDeviceCreateInfo
50901for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {}
50902unsafe impl ExtendsDepthBiasInfoEXT for DepthBiasRepresentationInfoEXT {}
50903unsafe impl ExtendsPipelineRasterizationStateCreateInfo
50904for DepthBiasRepresentationInfoEXT {}
50905unsafe impl ExtendsPhysicalDeviceProperties2
50906for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {}
50907unsafe impl ExtendsPhysicalDeviceFeatures2
50908for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {}
50909unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {}
50910unsafe impl ExtendsSubmitInfo for FrameBoundaryEXT {}
50911unsafe impl ExtendsSubmitInfo2 for FrameBoundaryEXT {}
50912unsafe impl ExtendsPresentInfoKHR for FrameBoundaryEXT {}
50913unsafe impl ExtendsBindSparseInfo for FrameBoundaryEXT {}
50914unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFrameBoundaryFeaturesEXT {}
50915unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFrameBoundaryFeaturesEXT {}
50916unsafe impl ExtendsPhysicalDeviceFeatures2
50917for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {}
50918unsafe impl ExtendsDeviceCreateInfo
50919for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {}
50920unsafe impl ExtendsPhysicalDeviceFeatures2
50921for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {}
50922unsafe impl ExtendsDeviceCreateInfo
50923for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {}
50924unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfacePresentModeKHR {}
50925unsafe impl ExtendsSurfaceCapabilities2KHR for SurfacePresentScalingCapabilitiesKHR {}
50926unsafe impl ExtendsSurfaceCapabilities2KHR for SurfacePresentModeCompatibilityKHR {}
50927unsafe impl ExtendsPhysicalDeviceFeatures2
50928for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {}
50929unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {}
50930unsafe impl ExtendsPresentInfoKHR for SwapchainPresentFenceInfoKHR {}
50931unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentModesCreateInfoKHR {}
50932unsafe impl ExtendsPresentInfoKHR for SwapchainPresentModeInfoKHR {}
50933unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentScalingCreateInfoKHR {}
50934unsafe impl ExtendsPhysicalDeviceFeatures2
50935for PhysicalDeviceDepthBiasControlFeaturesEXT {}
50936unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthBiasControlFeaturesEXT {}
50937unsafe impl ExtendsPhysicalDeviceFeatures2
50938for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {}
50939unsafe impl ExtendsDeviceCreateInfo
50940for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {}
50941unsafe impl ExtendsPhysicalDeviceFeatures2
50942for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {}
50943unsafe impl ExtendsDeviceCreateInfo
50944for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {}
50945unsafe impl ExtendsPhysicalDeviceProperties2
50946for PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {}
50947unsafe impl ExtendsPhysicalDeviceProperties2
50948for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {}
50949unsafe impl ExtendsPhysicalDeviceFeatures2
50950for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {}
50951unsafe impl ExtendsDeviceCreateInfo
50952for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {}
50953unsafe impl ExtendsPhysicalDeviceProperties2
50954for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {}
50955unsafe impl ExtendsInstanceCreateInfo for DirectDriverLoadingListLUNARG {}
50956unsafe impl ExtendsPhysicalDeviceFeatures2
50957for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {}
50958unsafe impl ExtendsDeviceCreateInfo
50959for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {}
50960unsafe impl ExtendsPhysicalDeviceFeatures2
50961for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {}
50962unsafe impl ExtendsDeviceCreateInfo
50963for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {}
50964unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesARM {}
50965unsafe impl ExtendsPhysicalDeviceFeatures2
50966for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {}
50967unsafe impl ExtendsDeviceCreateInfo
50968for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {}
50969unsafe impl ExtendsRenderPassBeginInfo
50970for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {}
50971unsafe impl ExtendsRenderingInfo for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {}
50972unsafe impl ExtendsSemaphoreCreateInfo for QueryLowLatencySupportNV {}
50973unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderObjectFeaturesEXT {}
50974unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderObjectFeaturesEXT {}
50975unsafe impl ExtendsPhysicalDeviceProperties2
50976for PhysicalDeviceShaderObjectPropertiesEXT {}
50977unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderTileImageFeaturesEXT {}
50978unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTileImageFeaturesEXT {}
50979unsafe impl ExtendsPhysicalDeviceProperties2
50980for PhysicalDeviceShaderTileImagePropertiesEXT {}
50981unsafe impl ExtendsMemoryAllocateInfo for ImportScreenBufferInfoQNX {}
50982unsafe impl ExtendsScreenBufferPropertiesQNX for ScreenBufferFormatPropertiesQNX {}
50983unsafe impl ExtendsImageCreateInfo for ExternalFormatQNX {}
50984unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatQNX {}
50985unsafe impl ExtendsPhysicalDeviceFeatures2
50986for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {}
50987unsafe impl ExtendsDeviceCreateInfo
50988for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {}
50989unsafe impl ExtendsPhysicalDeviceFeatures2
50990for PhysicalDeviceCooperativeMatrixFeaturesKHR {}
50991unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrixFeaturesKHR {}
50992unsafe impl ExtendsPhysicalDeviceProperties2
50993for PhysicalDeviceCooperativeMatrixPropertiesKHR {}
50994unsafe impl ExtendsPhysicalDeviceFeatures2
50995for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {}
50996unsafe impl ExtendsDeviceCreateInfo
50997for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {}
50998unsafe impl ExtendsPhysicalDeviceProperties2
50999for PhysicalDeviceShaderEnqueuePropertiesAMDX {}
51000unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderEnqueueFeaturesAMDX {}
51001unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderEnqueueFeaturesAMDX {}
51002unsafe impl ExtendsPipelineShaderStageCreateInfo
51003for PipelineShaderStageNodeCreateInfoAMDX {}
51004unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAntiLagFeaturesAMD {}
51005unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAntiLagFeaturesAMD {}
51006unsafe impl ExtendsBindBufferMemoryInfo for BindMemoryStatus {}
51007unsafe impl ExtendsBindImageMemoryInfo for BindMemoryStatus {}
51008unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTileMemoryHeapFeaturesQCOM {}
51009unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTileMemoryHeapFeaturesQCOM {}
51010unsafe impl ExtendsPhysicalDeviceProperties2
51011for PhysicalDeviceTileMemoryHeapPropertiesQCOM {}
51012unsafe impl ExtendsRenderPassCreateInfo for TileMemorySizeInfoQCOM {}
51013unsafe impl ExtendsRenderPassCreateInfo2 for TileMemorySizeInfoQCOM {}
51014unsafe impl ExtendsRenderingInfo for TileMemorySizeInfoQCOM {}
51015unsafe impl ExtendsMemoryRequirements2 for TileMemoryRequirementsQCOM {}
51016unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCubicClampFeaturesQCOM {}
51017unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCubicClampFeaturesQCOM {}
51018unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceYcbcrDegammaFeaturesQCOM {}
51019unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcrDegammaFeaturesQCOM {}
51020unsafe impl ExtendsSamplerYcbcrConversionCreateInfo
51021for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {}
51022unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCubicWeightsFeaturesQCOM {}
51023unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCubicWeightsFeaturesQCOM {}
51024unsafe impl ExtendsSamplerCreateInfo for SamplerCubicWeightsCreateInfoQCOM {}
51025unsafe impl ExtendsBlitImageInfo2 for BlitImageCubicWeightsInfoQCOM {}
51026unsafe impl ExtendsPhysicalDeviceFeatures2
51027for PhysicalDeviceImageProcessing2FeaturesQCOM {}
51028unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageProcessing2FeaturesQCOM {}
51029unsafe impl ExtendsPhysicalDeviceProperties2
51030for PhysicalDeviceImageProcessing2PropertiesQCOM {}
51031unsafe impl ExtendsSamplerCreateInfo for SamplerBlockMatchWindowCreateInfoQCOM {}
51032unsafe impl ExtendsPhysicalDeviceFeatures2
51033for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {}
51034unsafe impl ExtendsDeviceCreateInfo
51035for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {}
51036unsafe impl ExtendsPhysicalDeviceProperties2
51037for PhysicalDeviceLayeredDriverPropertiesMSFT {}
51038unsafe impl ExtendsPhysicalDeviceFeatures2
51039for PhysicalDevicePerStageDescriptorSetFeaturesNV {}
51040unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePerStageDescriptorSetFeaturesNV {}
51041unsafe impl ExtendsPhysicalDeviceFeatures2
51042for PhysicalDeviceExternalFormatResolveFeaturesANDROID {}
51043unsafe impl ExtendsDeviceCreateInfo
51044for PhysicalDeviceExternalFormatResolveFeaturesANDROID {}
51045unsafe impl ExtendsPhysicalDeviceProperties2
51046for PhysicalDeviceExternalFormatResolvePropertiesANDROID {}
51047unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID
51048for AndroidHardwareBufferFormatResolvePropertiesANDROID {}
51049unsafe impl ExtendsSubmitInfo for LatencySubmissionPresentIdNV {}
51050unsafe impl ExtendsSubmitInfo2 for LatencySubmissionPresentIdNV {}
51051unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainLatencyCreateInfoNV {}
51052unsafe impl ExtendsSurfaceCapabilities2KHR for LatencySurfaceCapabilitiesNV {}
51053unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCudaKernelLaunchFeaturesNV {}
51054unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCudaKernelLaunchFeaturesNV {}
51055unsafe impl ExtendsPhysicalDeviceProperties2
51056for PhysicalDeviceCudaKernelLaunchPropertiesNV {}
51057unsafe impl ExtendsDeviceQueueCreateInfo for DeviceQueueShaderCoreControlCreateInfoARM {}
51058unsafe impl ExtendsDeviceCreateInfo for DeviceQueueShaderCoreControlCreateInfoARM {}
51059unsafe impl ExtendsPhysicalDeviceFeatures2
51060for PhysicalDeviceSchedulingControlsFeaturesARM {}
51061unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSchedulingControlsFeaturesARM {}
51062unsafe impl ExtendsPhysicalDeviceProperties2
51063for PhysicalDeviceSchedulingControlsPropertiesARM {}
51064unsafe impl ExtendsPhysicalDeviceFeatures2
51065for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {}
51066unsafe impl ExtendsDeviceCreateInfo
51067for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {}
51068unsafe impl ExtendsPhysicalDeviceFeatures2
51069for PhysicalDeviceRenderPassStripedFeaturesARM {}
51070unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRenderPassStripedFeaturesARM {}
51071unsafe impl ExtendsPhysicalDeviceProperties2
51072for PhysicalDeviceRenderPassStripedPropertiesARM {}
51073unsafe impl ExtendsRenderingInfo for RenderPassStripeBeginInfoARM {}
51074unsafe impl ExtendsRenderPassBeginInfo for RenderPassStripeBeginInfoARM {}
51075unsafe impl ExtendsCommandBufferSubmitInfo for RenderPassStripeSubmitInfoARM {}
51076unsafe impl ExtendsPhysicalDeviceFeatures2
51077for PhysicalDevicePipelineOpacityMicromapFeaturesARM {}
51078unsafe impl ExtendsDeviceCreateInfo
51079for PhysicalDevicePipelineOpacityMicromapFeaturesARM {}
51080unsafe impl ExtendsPhysicalDeviceFeatures2
51081for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {}
51082unsafe impl ExtendsDeviceCreateInfo
51083for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {}
51084unsafe impl ExtendsPhysicalDeviceFeatures2
51085for PhysicalDeviceShaderSubgroupRotateFeatures {}
51086unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSubgroupRotateFeatures {}
51087unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderExpectAssumeFeatures {}
51088unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderExpectAssumeFeatures {}
51089unsafe impl ExtendsPhysicalDeviceFeatures2
51090for PhysicalDeviceShaderFloatControls2Features {}
51091unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloatControls2Features {}
51092unsafe impl ExtendsPhysicalDeviceFeatures2
51093for PhysicalDeviceDynamicRenderingLocalReadFeatures {}
51094unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDynamicRenderingLocalReadFeatures {}
51095unsafe impl ExtendsGraphicsPipelineCreateInfo for RenderingAttachmentLocationInfo {}
51096unsafe impl ExtendsCommandBufferInheritanceInfo for RenderingAttachmentLocationInfo {}
51097unsafe impl ExtendsGraphicsPipelineCreateInfo for RenderingInputAttachmentIndexInfo {}
51098unsafe impl ExtendsCommandBufferInheritanceInfo for RenderingInputAttachmentIndexInfo {}
51099unsafe impl ExtendsPhysicalDeviceFeatures2
51100for PhysicalDeviceShaderQuadControlFeaturesKHR {}
51101unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderQuadControlFeaturesKHR {}
51102unsafe impl ExtendsPhysicalDeviceFeatures2
51103for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {}
51104unsafe impl ExtendsDeviceCreateInfo
51105for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {}
51106unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMapMemoryPlacedFeaturesEXT {}
51107unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMapMemoryPlacedFeaturesEXT {}
51108unsafe impl ExtendsPhysicalDeviceProperties2
51109for PhysicalDeviceMapMemoryPlacedPropertiesEXT {}
51110unsafe impl ExtendsMemoryMapInfo for MemoryMapPlacedInfoEXT {}
51111unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderBfloat16FeaturesKHR {}
51112unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderBfloat16FeaturesKHR {}
51113unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRawAccessChainsFeaturesNV {}
51114unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRawAccessChainsFeaturesNV {}
51115unsafe impl ExtendsPhysicalDeviceFeatures2
51116for PhysicalDeviceCommandBufferInheritanceFeaturesNV {}
51117unsafe impl ExtendsDeviceCreateInfo
51118for PhysicalDeviceCommandBufferInheritanceFeaturesNV {}
51119unsafe impl ExtendsPhysicalDeviceFeatures2
51120for PhysicalDeviceImageAlignmentControlFeaturesMESA {}
51121unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageAlignmentControlFeaturesMESA {}
51122unsafe impl ExtendsPhysicalDeviceProperties2
51123for PhysicalDeviceImageAlignmentControlPropertiesMESA {}
51124unsafe impl ExtendsImageCreateInfo for ImageAlignmentControlCreateInfoMESA {}
51125unsafe impl ExtendsPhysicalDeviceFeatures2
51126for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {}
51127unsafe impl ExtendsDeviceCreateInfo
51128for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {}
51129unsafe impl ExtendsPhysicalDeviceFeatures2
51130for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {}
51131unsafe impl ExtendsDeviceCreateInfo
51132for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {}
51133unsafe impl ExtendsPhysicalDeviceFeatures2
51134for PhysicalDeviceCooperativeMatrix2FeaturesNV {}
51135unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrix2FeaturesNV {}
51136unsafe impl ExtendsPhysicalDeviceProperties2
51137for PhysicalDeviceCooperativeMatrix2PropertiesNV {}
51138unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHdrVividFeaturesHUAWEI {}
51139unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHdrVividFeaturesHUAWEI {}
51140unsafe impl ExtendsPhysicalDeviceFeatures2
51141for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {}
51142unsafe impl ExtendsDeviceCreateInfo
51143for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {}
51144unsafe impl ExtendsPhysicalDeviceFeatures2
51145for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {}
51146unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {}
51147unsafe impl ExtendsAccelerationStructureGeometryKHR
51148for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {}
51149unsafe impl ExtendsPhysicalDeviceFeatures2
51150for PhysicalDeviceDepthClampZeroOneFeaturesKHR {}
51151unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClampZeroOneFeaturesKHR {}
51152unsafe impl ExtendsPhysicalDeviceFeatures2
51153for PhysicalDeviceCooperativeVectorFeaturesNV {}
51154unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeVectorFeaturesNV {}
51155unsafe impl ExtendsPhysicalDeviceProperties2
51156for PhysicalDeviceCooperativeVectorPropertiesNV {}
51157unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTileShadingFeaturesQCOM {}
51158unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTileShadingFeaturesQCOM {}
51159unsafe impl ExtendsPhysicalDeviceProperties2
51160for PhysicalDeviceTileShadingPropertiesQCOM {}
51161unsafe impl ExtendsRenderPassCreateInfo for RenderPassTileShadingCreateInfoQCOM {}
51162unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassTileShadingCreateInfoQCOM {}
51163unsafe impl ExtendsRenderingInfo for RenderPassTileShadingCreateInfoQCOM {}
51164unsafe impl ExtendsCommandBufferInheritanceInfo for RenderPassTileShadingCreateInfoQCOM {}
51165unsafe impl ExtendsPhysicalDeviceProperties2
51166for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {}
51167unsafe impl ExtendsPhysicalDeviceFeatures2
51168for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {}
51169unsafe impl ExtendsDeviceCreateInfo
51170for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {}
51171unsafe impl ExtendsGraphicsPipelineCreateInfo
51172for PipelineFragmentDensityMapLayeredCreateInfoVALVE {}
51173unsafe impl ExtendsPresentInfoKHR for SetPresentConfigNV {}
51174unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentMeteringFeaturesNV {}
51175unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentMeteringFeaturesNV {}
51176unsafe impl ExtendsDeviceCreateInfo for ExternalComputeQueueDeviceCreateInfoNV {}
51177unsafe impl ExtendsPhysicalDeviceProperties2
51178for PhysicalDeviceExternalComputeQueuePropertiesNV {}
51179unsafe impl ExtendsPhysicalDeviceFeatures2
51180for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {}
51181unsafe impl ExtendsDeviceCreateInfo
51182for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {}
51183unsafe impl ExtendsPhysicalDeviceFeatures2
51184for PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {}
51185unsafe impl ExtendsDeviceCreateInfo
51186for PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {}
51187unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFormatPackFeaturesARM {}
51188unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFormatPackFeaturesARM {}
51189unsafe impl ExtendsDataGraphPipelineResourceInfoARM for TensorDescriptionARM {}
51190unsafe impl ExtendsDataGraphPipelineConstantARM for TensorDescriptionARM {}
51191unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetTensorARM {}
51192unsafe impl ExtendsFormatProperties2 for TensorFormatPropertiesARM {}
51193unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceTensorPropertiesARM {}
51194unsafe impl ExtendsDependencyInfo for TensorMemoryBarrierARM {}
51195unsafe impl ExtendsDependencyInfo for TensorDependencyInfoARM {}
51196unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTensorFeaturesARM {}
51197unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTensorFeaturesARM {}
51198unsafe impl ExtendsMemoryAllocateInfo for MemoryDedicatedAllocateInfoTensorARM {}
51199unsafe impl ExtendsPhysicalDeviceProperties2
51200for PhysicalDeviceDescriptorBufferTensorPropertiesARM {}
51201unsafe impl ExtendsPhysicalDeviceFeatures2
51202for PhysicalDeviceDescriptorBufferTensorFeaturesARM {}
51203unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorBufferTensorFeaturesARM {}
51204unsafe impl ExtendsDescriptorGetInfoEXT for DescriptorGetTensorInfoARM {}
51205unsafe impl ExtendsSubmitInfo for FrameBoundaryTensorsARM {}
51206unsafe impl ExtendsSubmitInfo2 for FrameBoundaryTensorsARM {}
51207unsafe impl ExtendsPresentInfoKHR for FrameBoundaryTensorsARM {}
51208unsafe impl ExtendsBindSparseInfo for FrameBoundaryTensorsARM {}
51209unsafe impl ExtendsTensorCreateInfoARM for ExternalMemoryTensorCreateInfoARM {}
51210unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloat8FeaturesEXT {}
51211unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloat8FeaturesEXT {}
51212unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDataGraphFeaturesARM {}
51213unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDataGraphFeaturesARM {}
51214unsafe impl ExtendsDataGraphPipelineConstantARM
51215for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {}
51216unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51217for DataGraphPipelineCompilerControlCreateInfoARM {}
51218unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51219for DataGraphPipelineShaderModuleCreateInfoARM {}
51220unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51221for DataGraphPipelineIdentifierCreateInfoARM {}
51222unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51223for DataGraphProcessingEngineCreateInfoARM {}
51224unsafe impl ExtendsDescriptorPoolCreateInfo for DataGraphProcessingEngineCreateInfoARM {}
51225unsafe impl ExtendsCommandPoolCreateInfo for DataGraphProcessingEngineCreateInfoARM {}
51226unsafe impl ExtendsPhysicalDeviceFeatures2
51227for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {}
51228unsafe impl ExtendsDeviceCreateInfo
51229for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {}
51230unsafe impl ExtendsDataGraphPipelineCreateInfoARM
51231for DataGraphPipelineBuiltinModelCreateInfoQCOM {}
51232unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDataGraphModelFeaturesQCOM {}
51233unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDataGraphModelFeaturesQCOM {}
51234unsafe impl ExtendsPhysicalDeviceFeatures2
51235for PhysicalDeviceShaderUntypedPointersFeaturesKHR {}
51236unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderUntypedPointersFeaturesKHR {}
51237unsafe impl ExtendsImageCreateInfo for NativeBufferOHOS {}
51238unsafe impl ExtendsBindImageMemoryInfo for NativeBufferOHOS {}
51239unsafe impl ExtendsImageCreateInfo for SwapchainImageCreateInfoOHOS {}
51240unsafe impl ExtendsPhysicalDeviceProperties2
51241for PhysicalDevicePresentationPropertiesOHOS {}
51242unsafe impl ExtendsPhysicalDeviceFeatures2
51243for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {}
51244unsafe impl ExtendsDeviceCreateInfo
51245for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {}
51246unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeRgbConversionCapabilitiesVALVE {}
51247unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeProfileRgbConversionInfoVALVE {}
51248unsafe impl ExtendsVideoSessionCreateInfoKHR
51249for VideoEncodeSessionRgbConversionCreateInfoVALVE {}
51250unsafe impl ExtendsPhysicalDeviceFeatures2
51251for PhysicalDeviceShader64BitIndexingFeaturesEXT {}
51252unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShader64BitIndexingFeaturesEXT {}
51253unsafe impl ExtendsImageFormatProperties2 for NativeBufferUsageOHOS {}
51254unsafe impl ExtendsNativeBufferPropertiesOHOS for NativeBufferFormatPropertiesOHOS {}
51255unsafe impl ExtendsMemoryAllocateInfo for ImportNativeBufferInfoOHOS {}
51256unsafe impl ExtendsImageCreateInfo for ExternalFormatOHOS {}
51257unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatOHOS {}
51258unsafe impl ExtendsAttachmentDescription2 for ExternalFormatOHOS {}
51259unsafe impl ExtendsGraphicsPipelineCreateInfo for ExternalFormatOHOS {}
51260unsafe impl ExtendsCommandBufferInheritanceInfo for ExternalFormatOHOS {}
51261unsafe impl ExtendsPhysicalDeviceFeatures2
51262for PhysicalDevicePerformanceCountersByRegionFeaturesARM {}
51263unsafe impl ExtendsDeviceCreateInfo
51264for PhysicalDevicePerformanceCountersByRegionFeaturesARM {}
51265unsafe impl ExtendsPhysicalDeviceProperties2
51266for PhysicalDevicePerformanceCountersByRegionPropertiesARM {}
51267unsafe impl ExtendsRenderPassBeginInfo
51268for RenderPassPerformanceCountersByRegionBeginInfoARM {}
51269unsafe impl ExtendsRenderingInfo for RenderPassPerformanceCountersByRegionBeginInfoARM {}
51270unsafe impl ExtendsPhysicalDeviceFeatures2
51271for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {}
51272unsafe impl ExtendsDeviceCreateInfo
51273for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {}
51274unsafe impl ExtendsPhysicalDeviceFeatures2
51275for PhysicalDeviceShaderLongVectorFeaturesEXT {}
51276unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderLongVectorFeaturesEXT {}
51277unsafe impl ExtendsPhysicalDeviceProperties2
51278for PhysicalDeviceShaderLongVectorPropertiesEXT {}
51279unsafe impl ExtendsPhysicalDeviceFeatures2
51280for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {}
51281unsafe impl ExtendsDeviceCreateInfo
51282for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {}
51283unsafe impl ExtendsPhysicalDeviceFeatures2
51284for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {}
51285unsafe impl ExtendsDeviceCreateInfo
51286for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {}
51287unsafe impl ExtendsPipelineShaderStageCreateInfo
51288for ShaderDescriptorSetAndBindingMappingInfoEXT {}
51289unsafe impl ExtendsShaderCreateInfoEXT for ShaderDescriptorSetAndBindingMappingInfoEXT {}
51290unsafe impl ExtendsSamplerCreateInfo for SamplerCustomBorderColorIndexCreateInfoEXT {}
51291unsafe impl ExtendsImageCreateInfo for OpaqueCaptureDataCreateInfoEXT {}
51292unsafe impl ExtendsTensorCreateInfoARM for OpaqueCaptureDataCreateInfoEXT {}
51293unsafe impl ExtendsIndirectCommandsLayoutTokenNV
51294for IndirectCommandsLayoutPushDataTokenNV {}
51295unsafe impl ExtendsImageFormatProperties2 for SubsampledImageFormatPropertiesEXT {}
51296unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorHeapFeaturesEXT {}
51297unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorHeapFeaturesEXT {}
51298unsafe impl ExtendsPhysicalDeviceProperties2
51299for PhysicalDeviceDescriptorHeapPropertiesEXT {}
51300unsafe impl ExtendsCommandBufferInheritanceInfo
51301for CommandBufferInheritanceDescriptorHeapInfoEXT {}
51302unsafe impl ExtendsPhysicalDeviceProperties2
51303for PhysicalDeviceDescriptorHeapTensorPropertiesARM {}
51304unsafe impl ExtendsPhysicalDeviceFeatures2
51305for PhysicalDeviceShaderInstrumentationFeaturesARM {}
51306unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderInstrumentationFeaturesARM {}
51307unsafe impl ExtendsPhysicalDeviceProperties2
51308for PhysicalDeviceShaderInstrumentationPropertiesARM {}
51309unsafe impl ExtendsDependencyInfo for MemoryRangeBarriersInfoKHR {}
51310unsafe impl ExtendsPhysicalDeviceFeatures2
51311for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {}
51312unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceAddressCommandsFeaturesKHR {}
51313unsafe impl ExtendsPhysicalDeviceFeatures2
51314for PhysicalDeviceShaderConstantDataFeaturesKHR {}
51315unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderConstantDataFeaturesKHR {}
51316unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAbortFeaturesKHR {}
51317unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAbortFeaturesKHR {}
51318unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderAbortPropertiesKHR {}
51319unsafe impl ExtendsDeviceFaultDebugInfoKHR for DeviceFaultShaderAbortMessageInfoKHR {}