1#![allow(
9 non_camel_case_types,
10 non_snake_case,
11 clippy::bad_bit_mask,
12 clippy::let_unit_value,
13 clippy::missing_safety_doc,
14 clippy::missing_transmute_annotations,
15 clippy::too_many_arguments,
16 clippy::type_complexity,
17 clippy::unnecessary_cast,
18 clippy::upper_case_acronyms,
19 clippy::useless_transmute
20)]
21
22use core::ffi::{c_char, c_int, c_void};
23use core::fmt;
24use core::ptr;
25
26use crate::*;
27
28#[repr(C)]
30#[derive(Copy, Clone, Default, Debug, PartialEq)]
31pub struct AabbPositionsKHR {
32 pub min_x: f32,
33 pub min_y: f32,
34 pub min_z: f32,
35 pub max_x: f32,
36 pub max_y: f32,
37 pub max_z: f32,
38}
39
40#[repr(C)]
42#[derive(Copy, Clone, Debug)]
43pub struct AccelerationStructureBuildGeometryInfoKHR {
44 pub s_type: StructureType,
45 pub next: *const c_void,
46 pub type_: AccelerationStructureTypeKHR,
47 pub flags: BuildAccelerationStructureFlagsKHR,
48 pub mode: BuildAccelerationStructureModeKHR,
49 pub src_acceleration_structure: AccelerationStructureKHR,
50 pub dst_acceleration_structure: AccelerationStructureKHR,
51 pub geometry_count: u32,
52 pub geometries: *const AccelerationStructureGeometryKHR,
53 pub pointer_geometries: *const *const AccelerationStructureGeometryKHR,
54 pub scratch_data: DeviceOrHostAddressKHR,
55}
56
57impl Default for AccelerationStructureBuildGeometryInfoKHR {
58 #[inline]
59 fn default() -> Self {
60 Self {
61 s_type: StructureType::ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
62 next: ptr::null(),
63 type_: AccelerationStructureTypeKHR::default(),
64 flags: BuildAccelerationStructureFlagsKHR::default(),
65 mode: BuildAccelerationStructureModeKHR::default(),
66 src_acceleration_structure: AccelerationStructureKHR::default(),
67 dst_acceleration_structure: AccelerationStructureKHR::default(),
68 geometry_count: u32::default(),
69 geometries: ptr::null(),
70 pointer_geometries: ptr::null(),
71 scratch_data: DeviceOrHostAddressKHR::default(),
72 }
73 }
74}
75
76#[repr(C)]
78#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
79pub struct AccelerationStructureBuildRangeInfoKHR {
80 pub primitive_count: u32,
81 pub primitive_offset: u32,
82 pub first_vertex: u32,
83 pub transform_offset: u32,
84}
85
86#[repr(C)]
88#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
89pub struct AccelerationStructureBuildSizesInfoKHR {
90 pub s_type: StructureType,
91 pub next: *const c_void,
92 pub acceleration_structure_size: DeviceSize,
93 pub update_scratch_size: DeviceSize,
94 pub build_scratch_size: DeviceSize,
95}
96
97impl Default for AccelerationStructureBuildSizesInfoKHR {
98 #[inline]
99 fn default() -> Self {
100 Self {
101 s_type: StructureType::ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
102 next: ptr::null(),
103 acceleration_structure_size: DeviceSize::default(),
104 update_scratch_size: DeviceSize::default(),
105 build_scratch_size: DeviceSize::default(),
106 }
107 }
108}
109
110#[repr(C)]
112#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
113pub struct AccelerationStructureCaptureDescriptorDataInfoEXT {
114 pub s_type: StructureType,
115 pub next: *const c_void,
116 pub acceleration_structure: AccelerationStructureKHR,
117 pub acceleration_structure_nv: AccelerationStructureNV,
118}
119
120impl Default for AccelerationStructureCaptureDescriptorDataInfoEXT {
121 #[inline]
122 fn default() -> Self {
123 Self {
124 s_type: StructureType::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
125 next: ptr::null(),
126 acceleration_structure: AccelerationStructureKHR::default(),
127 acceleration_structure_nv: AccelerationStructureNV::default(),
128 }
129 }
130}
131
132#[repr(C)]
134#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
135pub struct AccelerationStructureCreateInfoKHR {
136 pub s_type: StructureType,
137 pub next: *const c_void,
138 pub create_flags: AccelerationStructureCreateFlagsKHR,
139 pub buffer: Buffer,
140 pub offset: DeviceSize,
141 pub size: DeviceSize,
142 pub type_: AccelerationStructureTypeKHR,
143 pub device_address: DeviceAddress,
144}
145
146impl Default for AccelerationStructureCreateInfoKHR {
147 #[inline]
148 fn default() -> Self {
149 Self {
150 s_type: StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
151 next: ptr::null(),
152 create_flags: AccelerationStructureCreateFlagsKHR::default(),
153 buffer: Buffer::default(),
154 offset: DeviceSize::default(),
155 size: DeviceSize::default(),
156 type_: AccelerationStructureTypeKHR::default(),
157 device_address: DeviceAddress::default(),
158 }
159 }
160}
161
162#[repr(C)]
164#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
165pub struct AccelerationStructureCreateInfoNV {
166 pub s_type: StructureType,
167 pub next: *const c_void,
168 pub compacted_size: DeviceSize,
169 pub info: AccelerationStructureInfoNV,
170}
171
172impl Default for AccelerationStructureCreateInfoNV {
173 #[inline]
174 fn default() -> Self {
175 Self {
176 s_type: StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_NV,
177 next: ptr::null(),
178 compacted_size: DeviceSize::default(),
179 info: AccelerationStructureInfoNV::default(),
180 }
181 }
182}
183
184#[repr(C)]
186#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
187pub struct AccelerationStructureDeviceAddressInfoKHR {
188 pub s_type: StructureType,
189 pub next: *const c_void,
190 pub acceleration_structure: AccelerationStructureKHR,
191}
192
193impl Default for AccelerationStructureDeviceAddressInfoKHR {
194 #[inline]
195 fn default() -> Self {
196 Self {
197 s_type: StructureType::ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
198 next: ptr::null(),
199 acceleration_structure: AccelerationStructureKHR::default(),
200 }
201 }
202}
203
204#[repr(C)]
206#[derive(Copy, Clone, Debug)]
207pub struct AccelerationStructureGeometryAabbsDataKHR {
208 pub s_type: StructureType,
209 pub next: *const c_void,
210 pub data: DeviceOrHostAddressConstKHR,
211 pub stride: DeviceSize,
212}
213
214impl Default for AccelerationStructureGeometryAabbsDataKHR {
215 #[inline]
216 fn default() -> Self {
217 Self {
218 s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
219 next: ptr::null(),
220 data: DeviceOrHostAddressConstKHR::default(),
221 stride: DeviceSize::default(),
222 }
223 }
224}
225
226#[repr(C)]
228#[derive(Copy, Clone, Debug)]
229pub struct AccelerationStructureGeometryInstancesDataKHR {
230 pub s_type: StructureType,
231 pub next: *const c_void,
232 pub array_of_pointers: Bool32,
233 pub data: DeviceOrHostAddressConstKHR,
234}
235
236impl Default for AccelerationStructureGeometryInstancesDataKHR {
237 #[inline]
238 fn default() -> Self {
239 Self {
240 s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
241 next: ptr::null(),
242 array_of_pointers: Bool32::default(),
243 data: DeviceOrHostAddressConstKHR::default(),
244 }
245 }
246}
247
248#[repr(C)]
250#[derive(Copy, Clone, Debug)]
251pub struct AccelerationStructureGeometryKHR {
252 pub s_type: StructureType,
253 pub next: *const c_void,
254 pub geometry_type: GeometryTypeKHR,
255 pub geometry: AccelerationStructureGeometryDataKHR,
256 pub flags: GeometryFlagsKHR,
257}
258
259impl Default for AccelerationStructureGeometryKHR {
260 #[inline]
261 fn default() -> Self {
262 Self {
263 s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_KHR,
264 next: ptr::null(),
265 geometry_type: GeometryTypeKHR::default(),
266 geometry: AccelerationStructureGeometryDataKHR::default(),
267 flags: GeometryFlagsKHR::default(),
268 }
269 }
270}
271
272#[repr(C)]
274#[derive(Copy, Clone, Debug)]
275pub struct AccelerationStructureGeometryLinearSweptSpheresDataNV {
276 pub s_type: StructureType,
277 pub next: *const c_void,
278 pub vertex_format: Format,
279 pub vertex_data: DeviceOrHostAddressConstKHR,
280 pub vertex_stride: DeviceSize,
281 pub radius_format: Format,
282 pub radius_data: DeviceOrHostAddressConstKHR,
283 pub radius_stride: DeviceSize,
284 pub index_type: IndexType,
285 pub index_data: DeviceOrHostAddressConstKHR,
286 pub index_stride: DeviceSize,
287 pub indexing_mode: RayTracingLssIndexingModeNV,
288 pub end_caps_mode: RayTracingLssPrimitiveEndCapsModeNV,
289}
290
291impl Default for AccelerationStructureGeometryLinearSweptSpheresDataNV {
292 #[inline]
293 fn default() -> Self {
294 Self {
295 s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV,
296 next: ptr::null(),
297 vertex_format: Format::default(),
298 vertex_data: DeviceOrHostAddressConstKHR::default(),
299 vertex_stride: DeviceSize::default(),
300 radius_format: Format::default(),
301 radius_data: DeviceOrHostAddressConstKHR::default(),
302 radius_stride: DeviceSize::default(),
303 index_type: IndexType::default(),
304 index_data: DeviceOrHostAddressConstKHR::default(),
305 index_stride: DeviceSize::default(),
306 indexing_mode: RayTracingLssIndexingModeNV::default(),
307 end_caps_mode: RayTracingLssPrimitiveEndCapsModeNV::default(),
308 }
309 }
310}
311
312#[repr(C)]
314#[derive(Copy, Clone, Debug)]
315pub struct AccelerationStructureGeometryMotionTrianglesDataNV {
316 pub s_type: StructureType,
317 pub next: *const c_void,
318 pub vertex_data: DeviceOrHostAddressConstKHR,
319}
320
321impl Default for AccelerationStructureGeometryMotionTrianglesDataNV {
322 #[inline]
323 fn default() -> Self {
324 Self {
325 s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
326 next: ptr::null(),
327 vertex_data: DeviceOrHostAddressConstKHR::default(),
328 }
329 }
330}
331
332#[repr(C)]
334#[derive(Copy, Clone, Debug)]
335pub struct AccelerationStructureGeometrySpheresDataNV {
336 pub s_type: StructureType,
337 pub next: *const c_void,
338 pub vertex_format: Format,
339 pub vertex_data: DeviceOrHostAddressConstKHR,
340 pub vertex_stride: DeviceSize,
341 pub radius_format: Format,
342 pub radius_data: DeviceOrHostAddressConstKHR,
343 pub radius_stride: DeviceSize,
344 pub index_type: IndexType,
345 pub index_data: DeviceOrHostAddressConstKHR,
346 pub index_stride: DeviceSize,
347}
348
349impl Default for AccelerationStructureGeometrySpheresDataNV {
350 #[inline]
351 fn default() -> Self {
352 Self {
353 s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV,
354 next: ptr::null(),
355 vertex_format: Format::default(),
356 vertex_data: DeviceOrHostAddressConstKHR::default(),
357 vertex_stride: DeviceSize::default(),
358 radius_format: Format::default(),
359 radius_data: DeviceOrHostAddressConstKHR::default(),
360 radius_stride: DeviceSize::default(),
361 index_type: IndexType::default(),
362 index_data: DeviceOrHostAddressConstKHR::default(),
363 index_stride: DeviceSize::default(),
364 }
365 }
366}
367
368#[repr(C)]
370#[derive(Copy, Clone, Debug)]
371pub struct AccelerationStructureGeometryTrianglesDataKHR {
372 pub s_type: StructureType,
373 pub next: *const c_void,
374 pub vertex_format: Format,
375 pub vertex_data: DeviceOrHostAddressConstKHR,
376 pub vertex_stride: DeviceSize,
377 pub max_vertex: u32,
378 pub index_type: IndexType,
379 pub index_data: DeviceOrHostAddressConstKHR,
380 pub transform_data: DeviceOrHostAddressConstKHR,
381}
382
383impl Default for AccelerationStructureGeometryTrianglesDataKHR {
384 #[inline]
385 fn default() -> Self {
386 Self {
387 s_type: StructureType::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
388 next: ptr::null(),
389 vertex_format: Format::default(),
390 vertex_data: DeviceOrHostAddressConstKHR::default(),
391 vertex_stride: DeviceSize::default(),
392 max_vertex: u32::default(),
393 index_type: IndexType::default(),
394 index_data: DeviceOrHostAddressConstKHR::default(),
395 transform_data: DeviceOrHostAddressConstKHR::default(),
396 }
397 }
398}
399
400#[repr(C)]
402#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
403pub struct AccelerationStructureInfoNV {
404 pub s_type: StructureType,
405 pub next: *const c_void,
406 pub type_: AccelerationStructureTypeNV,
407 pub flags: BuildAccelerationStructureFlagsNV,
408 pub instance_count: u32,
409 pub geometry_count: u32,
410 pub geometries: *const GeometryNV,
411}
412
413impl Default for AccelerationStructureInfoNV {
414 #[inline]
415 fn default() -> Self {
416 Self {
417 s_type: StructureType::ACCELERATION_STRUCTURE_INFO_NV,
418 next: ptr::null(),
419 type_: AccelerationStructureTypeNV::default(),
420 flags: BuildAccelerationStructureFlagsNV::default(),
421 instance_count: u32::default(),
422 geometry_count: u32::default(),
423 geometries: ptr::null(),
424 }
425 }
426}
427
428bitfields32! {
429 struct AccelerationStructureInstanceKHRBitfields0 {
430 (instance_custom_index, with_instance_custom_index)[0 .. 24],
431 (mask, with_mask)[24 .. 32],
432 }
433}
434
435bitfields32! {
436 struct AccelerationStructureInstanceKHRBitfields1 {
437 (instance_shader_binding_table_record_offset, with_instance_shader_binding_table_record_offset)[0 .. 24],
438 (flags, with_flags)[24 .. 32],
439 }
440}
441
442#[repr(C)]
444#[derive(Copy, Clone, Default, Debug, PartialEq)]
445pub struct AccelerationStructureInstanceKHR {
446 pub transform: TransformMatrixKHR,
447 pub acceleration_structure_reference: u64,
448 pub bitfields0: AccelerationStructureInstanceKHRBitfields0,
449 pub bitfields1: AccelerationStructureInstanceKHRBitfields1,
450}
451
452bitfields32! {
453 struct AccelerationStructureMatrixMotionInstanceNVBitfields0 {
454 (instance_custom_index, with_instance_custom_index)[0 .. 24],
455 (mask, with_mask)[24 .. 32],
456 }
457}
458
459bitfields32! {
460 struct AccelerationStructureMatrixMotionInstanceNVBitfields1 {
461 (instance_shader_binding_table_record_offset, with_instance_shader_binding_table_record_offset)[0 .. 24],
462 (flags, with_flags)[24 .. 32],
463 }
464}
465
466#[repr(C)]
468#[derive(Copy, Clone, Default, Debug, PartialEq)]
469pub struct AccelerationStructureMatrixMotionInstanceNV {
470 pub transform_t0: TransformMatrixKHR,
471 pub transform_t1: TransformMatrixKHR,
472 pub acceleration_structure_reference: u64,
473 pub bitfields0: AccelerationStructureMatrixMotionInstanceNVBitfields0,
474 pub bitfields1: AccelerationStructureMatrixMotionInstanceNVBitfields1,
475}
476
477#[repr(C)]
479#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
480pub struct AccelerationStructureMemoryRequirementsInfoNV {
481 pub s_type: StructureType,
482 pub next: *const c_void,
483 pub type_: AccelerationStructureMemoryRequirementsTypeNV,
484 pub acceleration_structure: AccelerationStructureNV,
485}
486
487impl Default for AccelerationStructureMemoryRequirementsInfoNV {
488 #[inline]
489 fn default() -> Self {
490 Self {
491 s_type: StructureType::ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
492 next: ptr::null(),
493 type_: AccelerationStructureMemoryRequirementsTypeNV::default(),
494 acceleration_structure: AccelerationStructureNV::default(),
495 }
496 }
497}
498
499#[repr(C)]
501#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
502pub struct AccelerationStructureMotionInfoNV {
503 pub s_type: StructureType,
504 pub next: *const c_void,
505 pub max_instances: u32,
506 pub flags: AccelerationStructureMotionInfoFlagsNV,
507}
508
509impl Default for AccelerationStructureMotionInfoNV {
510 #[inline]
511 fn default() -> Self {
512 Self {
513 s_type: StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV,
514 next: ptr::null(),
515 max_instances: u32::default(),
516 flags: AccelerationStructureMotionInfoFlagsNV::default(),
517 }
518 }
519}
520
521#[repr(C)]
523#[derive(Copy, Clone, Default, Debug)]
524pub struct AccelerationStructureMotionInstanceNV {
525 pub type_: AccelerationStructureMotionInstanceTypeNV,
526 pub flags: AccelerationStructureMotionInstanceFlagsNV,
527 pub data: AccelerationStructureMotionInstanceDataNV,
528}
529
530bitfields32! {
531 struct AccelerationStructureSRTMotionInstanceNVBitfields0 {
532 (instance_custom_index, with_instance_custom_index)[0 .. 24],
533 (mask, with_mask)[24 .. 32],
534 }
535}
536
537bitfields32! {
538 struct AccelerationStructureSRTMotionInstanceNVBitfields1 {
539 (instance_shader_binding_table_record_offset, with_instance_shader_binding_table_record_offset)[0 .. 24],
540 (flags, with_flags)[24 .. 32],
541 }
542}
543
544#[repr(C)]
546#[derive(Copy, Clone, Default, Debug, PartialEq)]
547pub struct AccelerationStructureSRTMotionInstanceNV {
548 pub transform_t0: SRTDataNV,
549 pub transform_t1: SRTDataNV,
550 pub acceleration_structure_reference: u64,
551 pub bitfields0: AccelerationStructureSRTMotionInstanceNVBitfields0,
552 pub bitfields1: AccelerationStructureSRTMotionInstanceNVBitfields1,
553}
554
555#[repr(C)]
557#[derive(Copy, Clone, Debug)]
558pub struct AccelerationStructureTrianglesDisplacementMicromapNV {
559 pub s_type: StructureType,
560 pub next: *mut c_void,
561 pub displacement_bias_and_scale_format: Format,
562 pub displacement_vector_format: Format,
563 pub displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR,
564 pub displacement_bias_and_scale_stride: DeviceSize,
565 pub displacement_vector_buffer: DeviceOrHostAddressConstKHR,
566 pub displacement_vector_stride: DeviceSize,
567 pub displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR,
568 pub displaced_micromap_primitive_flags_stride: DeviceSize,
569 pub index_type: IndexType,
570 pub index_buffer: DeviceOrHostAddressConstKHR,
571 pub index_stride: DeviceSize,
572 pub base_triangle: u32,
573 pub usage_counts_count: u32,
574 pub usage_counts: *const MicromapUsageEXT,
575 pub pointer_usage_counts: *const *const MicromapUsageEXT,
576 pub micromap: MicromapEXT,
577}
578
579impl Default for AccelerationStructureTrianglesDisplacementMicromapNV {
580 #[inline]
581 fn default() -> Self {
582 Self {
583 s_type: StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV,
584 next: ptr::null_mut(),
585 displacement_bias_and_scale_format: Format::default(),
586 displacement_vector_format: Format::default(),
587 displacement_bias_and_scale_buffer: DeviceOrHostAddressConstKHR::default(),
588 displacement_bias_and_scale_stride: DeviceSize::default(),
589 displacement_vector_buffer: DeviceOrHostAddressConstKHR::default(),
590 displacement_vector_stride: DeviceSize::default(),
591 displaced_micromap_primitive_flags: DeviceOrHostAddressConstKHR::default(),
592 displaced_micromap_primitive_flags_stride: DeviceSize::default(),
593 index_type: IndexType::default(),
594 index_buffer: DeviceOrHostAddressConstKHR::default(),
595 index_stride: DeviceSize::default(),
596 base_triangle: u32::default(),
597 usage_counts_count: u32::default(),
598 usage_counts: ptr::null(),
599 pointer_usage_counts: ptr::null(),
600 micromap: MicromapEXT::default(),
601 }
602 }
603}
604
605#[repr(C)]
607#[derive(Copy, Clone, Debug)]
608pub struct AccelerationStructureTrianglesOpacityMicromapEXT {
609 pub s_type: StructureType,
610 pub next: *mut c_void,
611 pub index_type: IndexType,
612 pub index_buffer: DeviceOrHostAddressConstKHR,
613 pub index_stride: DeviceSize,
614 pub base_triangle: u32,
615 pub usage_counts_count: u32,
616 pub usage_counts: *const MicromapUsageEXT,
617 pub pointer_usage_counts: *const *const MicromapUsageEXT,
618 pub micromap: MicromapEXT,
619}
620
621impl Default for AccelerationStructureTrianglesOpacityMicromapEXT {
622 #[inline]
623 fn default() -> Self {
624 Self {
625 s_type: StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT,
626 next: ptr::null_mut(),
627 index_type: IndexType::default(),
628 index_buffer: DeviceOrHostAddressConstKHR::default(),
629 index_stride: DeviceSize::default(),
630 base_triangle: u32::default(),
631 usage_counts_count: u32::default(),
632 usage_counts: ptr::null(),
633 pointer_usage_counts: ptr::null(),
634 micromap: MicromapEXT::default(),
635 }
636 }
637}
638
639#[repr(C)]
641#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
642pub struct AccelerationStructureVersionInfoKHR {
643 pub s_type: StructureType,
644 pub next: *const c_void,
645 pub version_data: *const u8,
646}
647
648impl Default for AccelerationStructureVersionInfoKHR {
649 #[inline]
650 fn default() -> Self {
651 Self {
652 s_type: StructureType::ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
653 next: ptr::null(),
654 version_data: ptr::null(),
655 }
656 }
657}
658
659#[repr(C)]
661#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
662pub struct AcquireNextImageInfoKHR {
663 pub s_type: StructureType,
664 pub next: *const c_void,
665 pub swapchain: SwapchainKHR,
666 pub timeout: u64,
667 pub semaphore: Semaphore,
668 pub fence: Fence,
669 pub device_mask: u32,
670}
671
672impl Default for AcquireNextImageInfoKHR {
673 #[inline]
674 fn default() -> Self {
675 Self {
676 s_type: StructureType::ACQUIRE_NEXT_IMAGE_INFO_KHR,
677 next: ptr::null(),
678 swapchain: SwapchainKHR::default(),
679 timeout: u64::default(),
680 semaphore: Semaphore::default(),
681 fence: Fence::default(),
682 device_mask: u32::default(),
683 }
684 }
685}
686
687#[repr(C)]
689#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
690pub struct AcquireProfilingLockInfoKHR {
691 pub s_type: StructureType,
692 pub next: *const c_void,
693 pub flags: AcquireProfilingLockFlagsKHR,
694 pub timeout: u64,
695}
696
697impl Default for AcquireProfilingLockInfoKHR {
698 #[inline]
699 fn default() -> Self {
700 Self {
701 s_type: StructureType::ACQUIRE_PROFILING_LOCK_INFO_KHR,
702 next: ptr::null(),
703 flags: AcquireProfilingLockFlagsKHR::default(),
704 timeout: u64::default(),
705 }
706 }
707}
708
709#[repr(C)]
711#[derive(Copy, Clone)]
712pub struct AllocationCallbacks {
713 pub user_data: *mut c_void,
714 pub allocation: PFN_vkAllocationFunction,
715 pub reallocation: PFN_vkReallocationFunction,
716 pub free: PFN_vkFreeFunction,
717 pub internal_allocation: PFN_vkInternalAllocationNotification,
718 pub internal_free: PFN_vkInternalFreeNotification,
719}
720
721impl fmt::Debug for AllocationCallbacks {
722 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
723 f.debug_struct("AllocationCallbacks")
724 .field("user_data", &self.user_data)
725 .field("allocation", &(self.allocation.map(|f| f as *const u8)))
726 .field("reallocation", &(self.reallocation.map(|f| f as *const u8)))
727 .field("free", &(self.free.map(|f| f as *const u8)))
728 .field(
729 "internal_allocation",
730 &(self.internal_allocation.map(|f| f as *const u8)),
731 )
732 .field(
733 "internal_free",
734 &(self.internal_free.map(|f| f as *const u8)),
735 )
736 .finish()
737 }
738}
739
740impl Default for AllocationCallbacks {
741 #[inline]
742 fn default() -> Self {
743 Self {
744 user_data: ptr::null_mut(),
745 allocation: PFN_vkAllocationFunction::default(),
746 reallocation: PFN_vkReallocationFunction::default(),
747 free: PFN_vkFreeFunction::default(),
748 internal_allocation: PFN_vkInternalAllocationNotification::default(),
749 internal_free: PFN_vkInternalFreeNotification::default(),
750 }
751 }
752}
753
754#[repr(C)]
756#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
757pub struct AmigoProfilingSubmitInfoSEC {
758 pub s_type: StructureType,
759 pub next: *const c_void,
760 pub first_draw_timestamp: u64,
761 pub swap_buffer_timestamp: u64,
762}
763
764impl Default for AmigoProfilingSubmitInfoSEC {
765 #[inline]
766 fn default() -> Self {
767 Self {
768 s_type: StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC,
769 next: ptr::null(),
770 first_draw_timestamp: u64::default(),
771 swap_buffer_timestamp: u64::default(),
772 }
773 }
774}
775
776#[repr(C)]
778#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
779pub struct AndroidHardwareBufferFormatProperties2ANDROID {
780 pub s_type: StructureType,
781 pub next: *mut c_void,
782 pub format: Format,
783 pub external_format: u64,
784 pub format_features: FormatFeatureFlags2,
785 pub sampler_ycbcr_conversion_components: ComponentMapping,
786 pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
787 pub suggested_ycbcr_range: SamplerYcbcrRange,
788 pub suggested_x_chroma_offset: ChromaLocation,
789 pub suggested_y_chroma_offset: ChromaLocation,
790}
791
792impl Default for AndroidHardwareBufferFormatProperties2ANDROID {
793 #[inline]
794 fn default() -> Self {
795 Self {
796 s_type: StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,
797 next: ptr::null_mut(),
798 format: Format::default(),
799 external_format: u64::default(),
800 format_features: FormatFeatureFlags2::default(),
801 sampler_ycbcr_conversion_components: ComponentMapping::default(),
802 suggested_ycbcr_model: SamplerYcbcrModelConversion::default(),
803 suggested_ycbcr_range: SamplerYcbcrRange::default(),
804 suggested_x_chroma_offset: ChromaLocation::default(),
805 suggested_y_chroma_offset: ChromaLocation::default(),
806 }
807 }
808}
809
810#[repr(C)]
812#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
813pub struct AndroidHardwareBufferFormatPropertiesANDROID {
814 pub s_type: StructureType,
815 pub next: *mut c_void,
816 pub format: Format,
817 pub external_format: u64,
818 pub format_features: FormatFeatureFlags,
819 pub sampler_ycbcr_conversion_components: ComponentMapping,
820 pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
821 pub suggested_ycbcr_range: SamplerYcbcrRange,
822 pub suggested_x_chroma_offset: ChromaLocation,
823 pub suggested_y_chroma_offset: ChromaLocation,
824}
825
826impl Default for AndroidHardwareBufferFormatPropertiesANDROID {
827 #[inline]
828 fn default() -> Self {
829 Self {
830 s_type: StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
831 next: ptr::null_mut(),
832 format: Format::default(),
833 external_format: u64::default(),
834 format_features: FormatFeatureFlags::default(),
835 sampler_ycbcr_conversion_components: ComponentMapping::default(),
836 suggested_ycbcr_model: SamplerYcbcrModelConversion::default(),
837 suggested_ycbcr_range: SamplerYcbcrRange::default(),
838 suggested_x_chroma_offset: ChromaLocation::default(),
839 suggested_y_chroma_offset: ChromaLocation::default(),
840 }
841 }
842}
843
844#[repr(C)]
846#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
847pub struct AndroidHardwareBufferFormatResolvePropertiesANDROID {
848 pub s_type: StructureType,
849 pub next: *mut c_void,
850 pub color_attachment_format: Format,
851}
852
853impl Default for AndroidHardwareBufferFormatResolvePropertiesANDROID {
854 #[inline]
855 fn default() -> Self {
856 Self {
857 s_type: StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID,
858 next: ptr::null_mut(),
859 color_attachment_format: Format::default(),
860 }
861 }
862}
863
864#[repr(C)]
866#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
867pub struct AndroidHardwareBufferPropertiesANDROID {
868 pub s_type: StructureType,
869 pub next: *mut c_void,
870 pub allocation_size: DeviceSize,
871 pub memory_type_bits: u32,
872}
873
874impl Default for AndroidHardwareBufferPropertiesANDROID {
875 #[inline]
876 fn default() -> Self {
877 Self {
878 s_type: StructureType::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
879 next: ptr::null_mut(),
880 allocation_size: DeviceSize::default(),
881 memory_type_bits: u32::default(),
882 }
883 }
884}
885
886#[repr(C)]
888#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
889pub struct AndroidHardwareBufferUsageANDROID {
890 pub s_type: StructureType,
891 pub next: *mut c_void,
892 pub android_hardware_buffer_usage: u64,
893}
894
895impl Default for AndroidHardwareBufferUsageANDROID {
896 #[inline]
897 fn default() -> Self {
898 Self {
899 s_type: StructureType::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
900 next: ptr::null_mut(),
901 android_hardware_buffer_usage: u64::default(),
902 }
903 }
904}
905
906#[repr(C)]
908#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
909pub struct AndroidSurfaceCreateInfoKHR {
910 pub s_type: StructureType,
911 pub next: *const c_void,
912 pub flags: AndroidSurfaceCreateFlagsKHR,
913 pub window: *mut ANativeWindow,
914}
915
916impl Default for AndroidSurfaceCreateInfoKHR {
917 #[inline]
918 fn default() -> Self {
919 Self {
920 s_type: StructureType::ANDROID_SURFACE_CREATE_INFO_KHR,
921 next: ptr::null(),
922 flags: AndroidSurfaceCreateFlagsKHR::default(),
923 window: ptr::null_mut(),
924 }
925 }
926}
927
928#[repr(C)]
930#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
931pub struct AntiLagDataAMD {
932 pub s_type: StructureType,
933 pub next: *const c_void,
934 pub mode: AntiLagModeAMD,
935 pub max_fps: u32,
936 pub presentation_info: *const AntiLagPresentationInfoAMD,
937}
938
939impl Default for AntiLagDataAMD {
940 #[inline]
941 fn default() -> Self {
942 Self {
943 s_type: StructureType::ANTI_LAG_DATA_AMD,
944 next: ptr::null(),
945 mode: AntiLagModeAMD::default(),
946 max_fps: u32::default(),
947 presentation_info: ptr::null(),
948 }
949 }
950}
951
952#[repr(C)]
954#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
955pub struct AntiLagPresentationInfoAMD {
956 pub s_type: StructureType,
957 pub next: *mut c_void,
958 pub stage: AntiLagStageAMD,
959 pub frame_index: u64,
960}
961
962impl Default for AntiLagPresentationInfoAMD {
963 #[inline]
964 fn default() -> Self {
965 Self {
966 s_type: StructureType::ANTI_LAG_PRESENTATION_INFO_AMD,
967 next: ptr::null_mut(),
968 stage: AntiLagStageAMD::default(),
969 frame_index: u64::default(),
970 }
971 }
972}
973
974#[repr(C)]
976#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
977pub struct ApplicationInfo {
978 pub s_type: StructureType,
979 pub next: *const c_void,
980 pub application_name: *const c_char,
981 pub application_version: u32,
982 pub engine_name: *const c_char,
983 pub engine_version: u32,
984 pub api_version: u32,
985}
986
987impl Default for ApplicationInfo {
988 #[inline]
989 fn default() -> Self {
990 Self {
991 s_type: StructureType::APPLICATION_INFO,
992 next: ptr::null(),
993 application_name: ptr::null(),
994 application_version: u32::default(),
995 engine_name: ptr::null(),
996 engine_version: u32::default(),
997 api_version: u32::default(),
998 }
999 }
1000}
1001
1002#[repr(C)]
1004#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1005pub struct ApplicationParametersEXT {
1006 pub s_type: StructureType,
1007 pub next: *const c_void,
1008 pub vendor_id: u32,
1009 pub device_id: u32,
1010 pub key: u32,
1011 pub value: u64,
1012}
1013
1014impl Default for ApplicationParametersEXT {
1015 #[inline]
1016 fn default() -> Self {
1017 Self {
1018 s_type: StructureType::APPLICATION_PARAMETERS_EXT,
1019 next: ptr::null(),
1020 vendor_id: u32::default(),
1021 device_id: u32::default(),
1022 key: u32::default(),
1023 value: u64::default(),
1024 }
1025 }
1026}
1027
1028#[repr(C)]
1030#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1031pub struct AttachmentDescription {
1032 pub flags: AttachmentDescriptionFlags,
1033 pub format: Format,
1034 pub samples: SampleCountFlags,
1035 pub load_op: AttachmentLoadOp,
1036 pub store_op: AttachmentStoreOp,
1037 pub stencil_load_op: AttachmentLoadOp,
1038 pub stencil_store_op: AttachmentStoreOp,
1039 pub initial_layout: ImageLayout,
1040 pub final_layout: ImageLayout,
1041}
1042
1043#[repr(C)]
1045#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1046pub struct AttachmentDescription2 {
1047 pub s_type: StructureType,
1048 pub next: *const c_void,
1049 pub flags: AttachmentDescriptionFlags,
1050 pub format: Format,
1051 pub samples: SampleCountFlags,
1052 pub load_op: AttachmentLoadOp,
1053 pub store_op: AttachmentStoreOp,
1054 pub stencil_load_op: AttachmentLoadOp,
1055 pub stencil_store_op: AttachmentStoreOp,
1056 pub initial_layout: ImageLayout,
1057 pub final_layout: ImageLayout,
1058}
1059
1060impl Default for AttachmentDescription2 {
1061 #[inline]
1062 fn default() -> Self {
1063 Self {
1064 s_type: StructureType::ATTACHMENT_DESCRIPTION_2,
1065 next: ptr::null(),
1066 flags: AttachmentDescriptionFlags::default(),
1067 format: Format::default(),
1068 samples: SampleCountFlags::default(),
1069 load_op: AttachmentLoadOp::default(),
1070 store_op: AttachmentStoreOp::default(),
1071 stencil_load_op: AttachmentLoadOp::default(),
1072 stencil_store_op: AttachmentStoreOp::default(),
1073 initial_layout: ImageLayout::default(),
1074 final_layout: ImageLayout::default(),
1075 }
1076 }
1077}
1078
1079#[repr(C)]
1081#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1082pub struct AttachmentDescriptionStencilLayout {
1083 pub s_type: StructureType,
1084 pub next: *mut c_void,
1085 pub stencil_initial_layout: ImageLayout,
1086 pub stencil_final_layout: ImageLayout,
1087}
1088
1089impl Default for AttachmentDescriptionStencilLayout {
1090 #[inline]
1091 fn default() -> Self {
1092 Self {
1093 s_type: StructureType::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1094 next: ptr::null_mut(),
1095 stencil_initial_layout: ImageLayout::default(),
1096 stencil_final_layout: ImageLayout::default(),
1097 }
1098 }
1099}
1100
1101#[repr(C)]
1103#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1104pub struct AttachmentReference {
1105 pub attachment: u32,
1106 pub layout: ImageLayout,
1107}
1108
1109#[repr(C)]
1111#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1112pub struct AttachmentReference2 {
1113 pub s_type: StructureType,
1114 pub next: *const c_void,
1115 pub attachment: u32,
1116 pub layout: ImageLayout,
1117 pub aspect_mask: ImageAspectFlags,
1118}
1119
1120impl Default for AttachmentReference2 {
1121 #[inline]
1122 fn default() -> Self {
1123 Self {
1124 s_type: StructureType::ATTACHMENT_REFERENCE_2,
1125 next: ptr::null(),
1126 attachment: u32::default(),
1127 layout: ImageLayout::default(),
1128 aspect_mask: ImageAspectFlags::default(),
1129 }
1130 }
1131}
1132
1133#[repr(C)]
1135#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1136pub struct AttachmentReferenceStencilLayout {
1137 pub s_type: StructureType,
1138 pub next: *mut c_void,
1139 pub stencil_layout: ImageLayout,
1140}
1141
1142impl Default for AttachmentReferenceStencilLayout {
1143 #[inline]
1144 fn default() -> Self {
1145 Self {
1146 s_type: StructureType::ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1147 next: ptr::null_mut(),
1148 stencil_layout: ImageLayout::default(),
1149 }
1150 }
1151}
1152
1153#[repr(C)]
1155#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1156pub struct AttachmentSampleCountInfoAMD {
1157 pub s_type: StructureType,
1158 pub next: *const c_void,
1159 pub color_attachment_count: u32,
1160 pub color_attachment_samples: *const SampleCountFlags,
1161 pub depth_stencil_attachment_samples: SampleCountFlags,
1162}
1163
1164impl Default for AttachmentSampleCountInfoAMD {
1165 #[inline]
1166 fn default() -> Self {
1167 Self {
1168 s_type: StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1169 next: ptr::null(),
1170 color_attachment_count: u32::default(),
1171 color_attachment_samples: ptr::null(),
1172 depth_stencil_attachment_samples: SampleCountFlags::default(),
1173 }
1174 }
1175}
1176
1177#[repr(C)]
1179#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1180pub struct AttachmentSampleLocationsEXT {
1181 pub attachment_index: u32,
1182 pub sample_locations_info: SampleLocationsInfoEXT,
1183}
1184
1185#[repr(C)]
1187#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1188pub struct BaseInStructure {
1189 pub s_type: StructureType,
1190 pub next: *const BaseInStructure,
1191}
1192
1193impl Default for BaseInStructure {
1194 #[inline]
1195 fn default() -> Self {
1196 Self {
1197 s_type: StructureType::default(),
1198 next: ptr::null(),
1199 }
1200 }
1201}
1202
1203#[repr(C)]
1205#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1206pub struct BaseOutStructure {
1207 pub s_type: StructureType,
1208 pub next: *mut BaseOutStructure,
1209}
1210
1211impl Default for BaseOutStructure {
1212 #[inline]
1213 fn default() -> Self {
1214 Self {
1215 s_type: StructureType::default(),
1216 next: ptr::null_mut(),
1217 }
1218 }
1219}
1220
1221#[repr(C)]
1223#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1224pub struct BindAccelerationStructureMemoryInfoNV {
1225 pub s_type: StructureType,
1226 pub next: *const c_void,
1227 pub acceleration_structure: AccelerationStructureNV,
1228 pub memory: DeviceMemory,
1229 pub memory_offset: DeviceSize,
1230 pub device_index_count: u32,
1231 pub device_indices: *const u32,
1232}
1233
1234impl Default for BindAccelerationStructureMemoryInfoNV {
1235 #[inline]
1236 fn default() -> Self {
1237 Self {
1238 s_type: StructureType::BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
1239 next: ptr::null(),
1240 acceleration_structure: AccelerationStructureNV::default(),
1241 memory: DeviceMemory::default(),
1242 memory_offset: DeviceSize::default(),
1243 device_index_count: u32::default(),
1244 device_indices: ptr::null(),
1245 }
1246 }
1247}
1248
1249#[repr(C)]
1251#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1252pub struct BindBufferMemoryDeviceGroupInfo {
1253 pub s_type: StructureType,
1254 pub next: *const c_void,
1255 pub device_index_count: u32,
1256 pub device_indices: *const u32,
1257}
1258
1259impl Default for BindBufferMemoryDeviceGroupInfo {
1260 #[inline]
1261 fn default() -> Self {
1262 Self {
1263 s_type: StructureType::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1264 next: ptr::null(),
1265 device_index_count: u32::default(),
1266 device_indices: ptr::null(),
1267 }
1268 }
1269}
1270
1271#[repr(C)]
1273#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1274pub struct BindBufferMemoryInfo {
1275 pub s_type: StructureType,
1276 pub next: *const c_void,
1277 pub buffer: Buffer,
1278 pub memory: DeviceMemory,
1279 pub memory_offset: DeviceSize,
1280}
1281
1282impl Default for BindBufferMemoryInfo {
1283 #[inline]
1284 fn default() -> Self {
1285 Self {
1286 s_type: StructureType::BIND_BUFFER_MEMORY_INFO,
1287 next: ptr::null(),
1288 buffer: Buffer::default(),
1289 memory: DeviceMemory::default(),
1290 memory_offset: DeviceSize::default(),
1291 }
1292 }
1293}
1294
1295#[repr(C)]
1297#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1298pub struct BindDescriptorBufferEmbeddedSamplersInfoEXT {
1299 pub s_type: StructureType,
1300 pub next: *const c_void,
1301 pub stage_flags: ShaderStageFlags,
1302 pub layout: PipelineLayout,
1303 pub set: u32,
1304}
1305
1306impl Default for BindDescriptorBufferEmbeddedSamplersInfoEXT {
1307 #[inline]
1308 fn default() -> Self {
1309 Self {
1310 s_type: StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT,
1311 next: ptr::null(),
1312 stage_flags: ShaderStageFlags::default(),
1313 layout: PipelineLayout::default(),
1314 set: u32::default(),
1315 }
1316 }
1317}
1318
1319#[repr(C)]
1321#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1322pub struct BindDescriptorSetsInfo {
1323 pub s_type: StructureType,
1324 pub next: *const c_void,
1325 pub stage_flags: ShaderStageFlags,
1326 pub layout: PipelineLayout,
1327 pub first_set: u32,
1328 pub descriptor_set_count: u32,
1329 pub descriptor_sets: *const DescriptorSet,
1330 pub dynamic_offset_count: u32,
1331 pub dynamic_offsets: *const u32,
1332}
1333
1334impl Default for BindDescriptorSetsInfo {
1335 #[inline]
1336 fn default() -> Self {
1337 Self {
1338 s_type: StructureType::BIND_DESCRIPTOR_SETS_INFO,
1339 next: ptr::null(),
1340 stage_flags: ShaderStageFlags::default(),
1341 layout: PipelineLayout::default(),
1342 first_set: u32::default(),
1343 descriptor_set_count: u32::default(),
1344 descriptor_sets: ptr::null(),
1345 dynamic_offset_count: u32::default(),
1346 dynamic_offsets: ptr::null(),
1347 }
1348 }
1349}
1350
1351#[repr(C)]
1353#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1354pub struct BindImageMemoryDeviceGroupInfo {
1355 pub s_type: StructureType,
1356 pub next: *const c_void,
1357 pub device_index_count: u32,
1358 pub device_indices: *const u32,
1359 pub split_instance_bind_region_count: u32,
1360 pub split_instance_bind_regions: *const Rect2D,
1361}
1362
1363impl Default for BindImageMemoryDeviceGroupInfo {
1364 #[inline]
1365 fn default() -> Self {
1366 Self {
1367 s_type: StructureType::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1368 next: ptr::null(),
1369 device_index_count: u32::default(),
1370 device_indices: ptr::null(),
1371 split_instance_bind_region_count: u32::default(),
1372 split_instance_bind_regions: ptr::null(),
1373 }
1374 }
1375}
1376
1377#[repr(C)]
1379#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1380pub struct BindImageMemoryInfo {
1381 pub s_type: StructureType,
1382 pub next: *const c_void,
1383 pub image: Image,
1384 pub memory: DeviceMemory,
1385 pub memory_offset: DeviceSize,
1386}
1387
1388impl Default for BindImageMemoryInfo {
1389 #[inline]
1390 fn default() -> Self {
1391 Self {
1392 s_type: StructureType::BIND_IMAGE_MEMORY_INFO,
1393 next: ptr::null(),
1394 image: Image::default(),
1395 memory: DeviceMemory::default(),
1396 memory_offset: DeviceSize::default(),
1397 }
1398 }
1399}
1400
1401#[repr(C)]
1403#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1404pub struct BindImageMemorySwapchainInfoKHR {
1405 pub s_type: StructureType,
1406 pub next: *const c_void,
1407 pub swapchain: SwapchainKHR,
1408 pub image_index: u32,
1409}
1410
1411impl Default for BindImageMemorySwapchainInfoKHR {
1412 #[inline]
1413 fn default() -> Self {
1414 Self {
1415 s_type: StructureType::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
1416 next: ptr::null(),
1417 swapchain: SwapchainKHR::default(),
1418 image_index: u32::default(),
1419 }
1420 }
1421}
1422
1423#[repr(C)]
1425#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1426pub struct BindImagePlaneMemoryInfo {
1427 pub s_type: StructureType,
1428 pub next: *const c_void,
1429 pub plane_aspect: ImageAspectFlags,
1430}
1431
1432impl Default for BindImagePlaneMemoryInfo {
1433 #[inline]
1434 fn default() -> Self {
1435 Self {
1436 s_type: StructureType::BIND_IMAGE_PLANE_MEMORY_INFO,
1437 next: ptr::null(),
1438 plane_aspect: ImageAspectFlags::default(),
1439 }
1440 }
1441}
1442
1443#[repr(C)]
1445#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1446pub struct BindIndexBufferIndirectCommandEXT {
1447 pub buffer_address: DeviceAddress,
1448 pub size: u32,
1449 pub index_type: IndexType,
1450}
1451
1452#[repr(C)]
1454#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1455pub struct BindIndexBufferIndirectCommandNV {
1456 pub buffer_address: DeviceAddress,
1457 pub size: u32,
1458 pub index_type: IndexType,
1459}
1460
1461#[repr(C)]
1463#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1464pub struct BindMemoryStatus {
1465 pub s_type: StructureType,
1466 pub next: *const c_void,
1467 pub result: *mut Result,
1468}
1469
1470impl Default for BindMemoryStatus {
1471 #[inline]
1472 fn default() -> Self {
1473 Self {
1474 s_type: StructureType::BIND_MEMORY_STATUS,
1475 next: ptr::null(),
1476 result: ptr::null_mut(),
1477 }
1478 }
1479}
1480
1481#[repr(C)]
1483#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1484pub struct BindPipelineIndirectCommandNV {
1485 pub pipeline_address: DeviceAddress,
1486}
1487
1488#[repr(C)]
1490#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1491pub struct BindShaderGroupIndirectCommandNV {
1492 pub group_index: u32,
1493}
1494
1495#[repr(C)]
1497#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1498pub struct BindSparseInfo {
1499 pub s_type: StructureType,
1500 pub next: *const c_void,
1501 pub wait_semaphore_count: u32,
1502 pub wait_semaphores: *const Semaphore,
1503 pub buffer_bind_count: u32,
1504 pub buffer_binds: *const SparseBufferMemoryBindInfo,
1505 pub image_opaque_bind_count: u32,
1506 pub image_opaque_binds: *const SparseImageOpaqueMemoryBindInfo,
1507 pub image_bind_count: u32,
1508 pub image_binds: *const SparseImageMemoryBindInfo,
1509 pub signal_semaphore_count: u32,
1510 pub signal_semaphores: *const Semaphore,
1511}
1512
1513impl Default for BindSparseInfo {
1514 #[inline]
1515 fn default() -> Self {
1516 Self {
1517 s_type: StructureType::BIND_SPARSE_INFO,
1518 next: ptr::null(),
1519 wait_semaphore_count: u32::default(),
1520 wait_semaphores: ptr::null(),
1521 buffer_bind_count: u32::default(),
1522 buffer_binds: ptr::null(),
1523 image_opaque_bind_count: u32::default(),
1524 image_opaque_binds: ptr::null(),
1525 image_bind_count: u32::default(),
1526 image_binds: ptr::null(),
1527 signal_semaphore_count: u32::default(),
1528 signal_semaphores: ptr::null(),
1529 }
1530 }
1531}
1532
1533#[repr(C)]
1535#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1536pub struct BindVertexBufferIndirectCommandEXT {
1537 pub buffer_address: DeviceAddress,
1538 pub size: u32,
1539 pub stride: u32,
1540}
1541
1542#[repr(C)]
1544#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1545pub struct BindVertexBufferIndirectCommandNV {
1546 pub buffer_address: DeviceAddress,
1547 pub size: u32,
1548 pub stride: u32,
1549}
1550
1551#[repr(C)]
1553#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1554pub struct BindVideoSessionMemoryInfoKHR {
1555 pub s_type: StructureType,
1556 pub next: *const c_void,
1557 pub memory_bind_index: u32,
1558 pub memory: DeviceMemory,
1559 pub memory_offset: DeviceSize,
1560 pub memory_size: DeviceSize,
1561}
1562
1563impl Default for BindVideoSessionMemoryInfoKHR {
1564 #[inline]
1565 fn default() -> Self {
1566 Self {
1567 s_type: StructureType::BIND_VIDEO_SESSION_MEMORY_INFO_KHR,
1568 next: ptr::null(),
1569 memory_bind_index: u32::default(),
1570 memory: DeviceMemory::default(),
1571 memory_offset: DeviceSize::default(),
1572 memory_size: DeviceSize::default(),
1573 }
1574 }
1575}
1576
1577#[repr(C)]
1579#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1580pub struct BlitImageCubicWeightsInfoQCOM {
1581 pub s_type: StructureType,
1582 pub next: *const c_void,
1583 pub cubic_weights: CubicFilterWeightsQCOM,
1584}
1585
1586impl Default for BlitImageCubicWeightsInfoQCOM {
1587 #[inline]
1588 fn default() -> Self {
1589 Self {
1590 s_type: StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM,
1591 next: ptr::null(),
1592 cubic_weights: CubicFilterWeightsQCOM::default(),
1593 }
1594 }
1595}
1596
1597#[repr(C)]
1599#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1600pub struct BlitImageInfo2 {
1601 pub s_type: StructureType,
1602 pub next: *const c_void,
1603 pub src_image: Image,
1604 pub src_image_layout: ImageLayout,
1605 pub dst_image: Image,
1606 pub dst_image_layout: ImageLayout,
1607 pub region_count: u32,
1608 pub regions: *const ImageBlit2,
1609 pub filter: Filter,
1610}
1611
1612impl Default for BlitImageInfo2 {
1613 #[inline]
1614 fn default() -> Self {
1615 Self {
1616 s_type: StructureType::BLIT_IMAGE_INFO_2,
1617 next: ptr::null(),
1618 src_image: Image::default(),
1619 src_image_layout: ImageLayout::default(),
1620 dst_image: Image::default(),
1621 dst_image_layout: ImageLayout::default(),
1622 region_count: u32::default(),
1623 regions: ptr::null(),
1624 filter: Filter::default(),
1625 }
1626 }
1627}
1628
1629#[repr(C)]
1631#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1632pub struct BufferCaptureDescriptorDataInfoEXT {
1633 pub s_type: StructureType,
1634 pub next: *const c_void,
1635 pub buffer: Buffer,
1636}
1637
1638impl Default for BufferCaptureDescriptorDataInfoEXT {
1639 #[inline]
1640 fn default() -> Self {
1641 Self {
1642 s_type: StructureType::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
1643 next: ptr::null(),
1644 buffer: Buffer::default(),
1645 }
1646 }
1647}
1648
1649#[repr(C)]
1651#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1652pub struct BufferCollectionBufferCreateInfoFUCHSIA {
1653 pub s_type: StructureType,
1654 pub next: *const c_void,
1655 pub collection: BufferCollectionFUCHSIA,
1656 pub index: u32,
1657}
1658
1659impl Default for BufferCollectionBufferCreateInfoFUCHSIA {
1660 #[inline]
1661 fn default() -> Self {
1662 Self {
1663 s_type: StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,
1664 next: ptr::null(),
1665 collection: BufferCollectionFUCHSIA::default(),
1666 index: u32::default(),
1667 }
1668 }
1669}
1670
1671#[repr(C)]
1673#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1674pub struct BufferCollectionConstraintsInfoFUCHSIA {
1675 pub s_type: StructureType,
1676 pub next: *const c_void,
1677 pub min_buffer_count: u32,
1678 pub max_buffer_count: u32,
1679 pub min_buffer_count_for_camping: u32,
1680 pub min_buffer_count_for_dedicated_slack: u32,
1681 pub min_buffer_count_for_shared_slack: u32,
1682}
1683
1684impl Default for BufferCollectionConstraintsInfoFUCHSIA {
1685 #[inline]
1686 fn default() -> Self {
1687 Self {
1688 s_type: StructureType::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA,
1689 next: ptr::null(),
1690 min_buffer_count: u32::default(),
1691 max_buffer_count: u32::default(),
1692 min_buffer_count_for_camping: u32::default(),
1693 min_buffer_count_for_dedicated_slack: u32::default(),
1694 min_buffer_count_for_shared_slack: u32::default(),
1695 }
1696 }
1697}
1698
1699#[repr(C)]
1701#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1702pub struct BufferCollectionCreateInfoFUCHSIA {
1703 pub s_type: StructureType,
1704 pub next: *const c_void,
1705 pub collection_token: zx_handle_t,
1706}
1707
1708impl Default for BufferCollectionCreateInfoFUCHSIA {
1709 #[inline]
1710 fn default() -> Self {
1711 Self {
1712 s_type: StructureType::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA,
1713 next: ptr::null(),
1714 collection_token: zx_handle_t::default(),
1715 }
1716 }
1717}
1718
1719#[repr(C)]
1721#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1722pub struct BufferCollectionImageCreateInfoFUCHSIA {
1723 pub s_type: StructureType,
1724 pub next: *const c_void,
1725 pub collection: BufferCollectionFUCHSIA,
1726 pub index: u32,
1727}
1728
1729impl Default for BufferCollectionImageCreateInfoFUCHSIA {
1730 #[inline]
1731 fn default() -> Self {
1732 Self {
1733 s_type: StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA,
1734 next: ptr::null(),
1735 collection: BufferCollectionFUCHSIA::default(),
1736 index: u32::default(),
1737 }
1738 }
1739}
1740
1741#[repr(C)]
1743#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1744pub struct BufferCollectionPropertiesFUCHSIA {
1745 pub s_type: StructureType,
1746 pub next: *mut c_void,
1747 pub memory_type_bits: u32,
1748 pub buffer_count: u32,
1749 pub create_info_index: u32,
1750 pub sysmem_pixel_format: u64,
1751 pub format_features: FormatFeatureFlags,
1752 pub sysmem_color_space_index: SysmemColorSpaceFUCHSIA,
1753 pub sampler_ycbcr_conversion_components: ComponentMapping,
1754 pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
1755 pub suggested_ycbcr_range: SamplerYcbcrRange,
1756 pub suggested_x_chroma_offset: ChromaLocation,
1757 pub suggested_y_chroma_offset: ChromaLocation,
1758}
1759
1760impl Default for BufferCollectionPropertiesFUCHSIA {
1761 #[inline]
1762 fn default() -> Self {
1763 Self {
1764 s_type: StructureType::BUFFER_COLLECTION_PROPERTIES_FUCHSIA,
1765 next: ptr::null_mut(),
1766 memory_type_bits: u32::default(),
1767 buffer_count: u32::default(),
1768 create_info_index: u32::default(),
1769 sysmem_pixel_format: u64::default(),
1770 format_features: FormatFeatureFlags::default(),
1771 sysmem_color_space_index: SysmemColorSpaceFUCHSIA::default(),
1772 sampler_ycbcr_conversion_components: ComponentMapping::default(),
1773 suggested_ycbcr_model: SamplerYcbcrModelConversion::default(),
1774 suggested_ycbcr_range: SamplerYcbcrRange::default(),
1775 suggested_x_chroma_offset: ChromaLocation::default(),
1776 suggested_y_chroma_offset: ChromaLocation::default(),
1777 }
1778 }
1779}
1780
1781#[repr(C)]
1783#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1784pub struct BufferConstraintsInfoFUCHSIA {
1785 pub s_type: StructureType,
1786 pub next: *const c_void,
1787 pub create_info: BufferCreateInfo,
1788 pub required_format_features: FormatFeatureFlags,
1789 pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA,
1790}
1791
1792impl Default for BufferConstraintsInfoFUCHSIA {
1793 #[inline]
1794 fn default() -> Self {
1795 Self {
1796 s_type: StructureType::BUFFER_CONSTRAINTS_INFO_FUCHSIA,
1797 next: ptr::null(),
1798 create_info: BufferCreateInfo::default(),
1799 required_format_features: FormatFeatureFlags::default(),
1800 buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA::default(),
1801 }
1802 }
1803}
1804
1805#[repr(C)]
1807#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1808pub struct BufferCopy {
1809 pub src_offset: DeviceSize,
1810 pub dst_offset: DeviceSize,
1811 pub size: DeviceSize,
1812}
1813
1814#[repr(C)]
1816#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1817pub struct BufferCopy2 {
1818 pub s_type: StructureType,
1819 pub next: *const c_void,
1820 pub src_offset: DeviceSize,
1821 pub dst_offset: DeviceSize,
1822 pub size: DeviceSize,
1823}
1824
1825impl Default for BufferCopy2 {
1826 #[inline]
1827 fn default() -> Self {
1828 Self {
1829 s_type: StructureType::BUFFER_COPY_2,
1830 next: ptr::null(),
1831 src_offset: DeviceSize::default(),
1832 dst_offset: DeviceSize::default(),
1833 size: DeviceSize::default(),
1834 }
1835 }
1836}
1837
1838#[repr(C)]
1840#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1841pub struct BufferCreateInfo {
1842 pub s_type: StructureType,
1843 pub next: *const c_void,
1844 pub flags: BufferCreateFlags,
1845 pub size: DeviceSize,
1846 pub usage: BufferUsageFlags,
1847 pub sharing_mode: SharingMode,
1848 pub queue_family_index_count: u32,
1849 pub queue_family_indices: *const u32,
1850}
1851
1852impl Default for BufferCreateInfo {
1853 #[inline]
1854 fn default() -> Self {
1855 Self {
1856 s_type: StructureType::BUFFER_CREATE_INFO,
1857 next: ptr::null(),
1858 flags: BufferCreateFlags::default(),
1859 size: DeviceSize::default(),
1860 usage: BufferUsageFlags::default(),
1861 sharing_mode: SharingMode::default(),
1862 queue_family_index_count: u32::default(),
1863 queue_family_indices: ptr::null(),
1864 }
1865 }
1866}
1867
1868#[repr(C)]
1870#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1871pub struct BufferDeviceAddressCreateInfoEXT {
1872 pub s_type: StructureType,
1873 pub next: *const c_void,
1874 pub device_address: DeviceAddress,
1875}
1876
1877impl Default for BufferDeviceAddressCreateInfoEXT {
1878 #[inline]
1879 fn default() -> Self {
1880 Self {
1881 s_type: StructureType::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
1882 next: ptr::null(),
1883 device_address: DeviceAddress::default(),
1884 }
1885 }
1886}
1887
1888#[repr(C)]
1890#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1891pub struct BufferDeviceAddressInfo {
1892 pub s_type: StructureType,
1893 pub next: *const c_void,
1894 pub buffer: Buffer,
1895}
1896
1897impl Default for BufferDeviceAddressInfo {
1898 #[inline]
1899 fn default() -> Self {
1900 Self {
1901 s_type: StructureType::BUFFER_DEVICE_ADDRESS_INFO,
1902 next: ptr::null(),
1903 buffer: Buffer::default(),
1904 }
1905 }
1906}
1907
1908#[repr(C)]
1910#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
1911pub struct BufferImageCopy {
1912 pub buffer_offset: DeviceSize,
1913 pub buffer_row_length: u32,
1914 pub buffer_image_height: u32,
1915 pub image_subresource: ImageSubresourceLayers,
1916 pub image_offset: Offset3D,
1917 pub image_extent: Extent3D,
1918}
1919
1920#[repr(C)]
1922#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1923pub struct BufferImageCopy2 {
1924 pub s_type: StructureType,
1925 pub next: *const c_void,
1926 pub buffer_offset: DeviceSize,
1927 pub buffer_row_length: u32,
1928 pub buffer_image_height: u32,
1929 pub image_subresource: ImageSubresourceLayers,
1930 pub image_offset: Offset3D,
1931 pub image_extent: Extent3D,
1932}
1933
1934impl Default for BufferImageCopy2 {
1935 #[inline]
1936 fn default() -> Self {
1937 Self {
1938 s_type: StructureType::BUFFER_IMAGE_COPY_2,
1939 next: ptr::null(),
1940 buffer_offset: DeviceSize::default(),
1941 buffer_row_length: u32::default(),
1942 buffer_image_height: u32::default(),
1943 image_subresource: ImageSubresourceLayers::default(),
1944 image_offset: Offset3D::default(),
1945 image_extent: Extent3D::default(),
1946 }
1947 }
1948}
1949
1950#[repr(C)]
1952#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1953pub struct BufferMemoryBarrier {
1954 pub s_type: StructureType,
1955 pub next: *const c_void,
1956 pub src_access_mask: AccessFlags,
1957 pub dst_access_mask: AccessFlags,
1958 pub src_queue_family_index: u32,
1959 pub dst_queue_family_index: u32,
1960 pub buffer: Buffer,
1961 pub offset: DeviceSize,
1962 pub size: DeviceSize,
1963}
1964
1965impl Default for BufferMemoryBarrier {
1966 #[inline]
1967 fn default() -> Self {
1968 Self {
1969 s_type: StructureType::BUFFER_MEMORY_BARRIER,
1970 next: ptr::null(),
1971 src_access_mask: AccessFlags::default(),
1972 dst_access_mask: AccessFlags::default(),
1973 src_queue_family_index: u32::default(),
1974 dst_queue_family_index: u32::default(),
1975 buffer: Buffer::default(),
1976 offset: DeviceSize::default(),
1977 size: DeviceSize::default(),
1978 }
1979 }
1980}
1981
1982#[repr(C)]
1984#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
1985pub struct BufferMemoryBarrier2 {
1986 pub s_type: StructureType,
1987 pub next: *const c_void,
1988 pub src_stage_mask: PipelineStageFlags2,
1989 pub src_access_mask: AccessFlags2,
1990 pub dst_stage_mask: PipelineStageFlags2,
1991 pub dst_access_mask: AccessFlags2,
1992 pub src_queue_family_index: u32,
1993 pub dst_queue_family_index: u32,
1994 pub buffer: Buffer,
1995 pub offset: DeviceSize,
1996 pub size: DeviceSize,
1997}
1998
1999impl Default for BufferMemoryBarrier2 {
2000 #[inline]
2001 fn default() -> Self {
2002 Self {
2003 s_type: StructureType::BUFFER_MEMORY_BARRIER_2,
2004 next: ptr::null(),
2005 src_stage_mask: PipelineStageFlags2::default(),
2006 src_access_mask: AccessFlags2::default(),
2007 dst_stage_mask: PipelineStageFlags2::default(),
2008 dst_access_mask: AccessFlags2::default(),
2009 src_queue_family_index: u32::default(),
2010 dst_queue_family_index: u32::default(),
2011 buffer: Buffer::default(),
2012 offset: DeviceSize::default(),
2013 size: DeviceSize::default(),
2014 }
2015 }
2016}
2017
2018#[repr(C)]
2020#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2021pub struct BufferMemoryRequirementsInfo2 {
2022 pub s_type: StructureType,
2023 pub next: *const c_void,
2024 pub buffer: Buffer,
2025}
2026
2027impl Default for BufferMemoryRequirementsInfo2 {
2028 #[inline]
2029 fn default() -> Self {
2030 Self {
2031 s_type: StructureType::BUFFER_MEMORY_REQUIREMENTS_INFO_2,
2032 next: ptr::null(),
2033 buffer: Buffer::default(),
2034 }
2035 }
2036}
2037
2038#[repr(C)]
2040#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2041pub struct BufferOpaqueCaptureAddressCreateInfo {
2042 pub s_type: StructureType,
2043 pub next: *const c_void,
2044 pub opaque_capture_address: u64,
2045}
2046
2047impl Default for BufferOpaqueCaptureAddressCreateInfo {
2048 #[inline]
2049 fn default() -> Self {
2050 Self {
2051 s_type: StructureType::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
2052 next: ptr::null(),
2053 opaque_capture_address: u64::default(),
2054 }
2055 }
2056}
2057
2058#[repr(C)]
2060#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2061pub struct BufferUsageFlags2CreateInfo {
2062 pub s_type: StructureType,
2063 pub next: *const c_void,
2064 pub usage: BufferUsageFlags2,
2065}
2066
2067impl Default for BufferUsageFlags2CreateInfo {
2068 #[inline]
2069 fn default() -> Self {
2070 Self {
2071 s_type: StructureType::BUFFER_USAGE_FLAGS_2_CREATE_INFO,
2072 next: ptr::null(),
2073 usage: BufferUsageFlags2::default(),
2074 }
2075 }
2076}
2077
2078#[repr(C)]
2080#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2081pub struct BufferViewCreateInfo {
2082 pub s_type: StructureType,
2083 pub next: *const c_void,
2084 pub flags: BufferViewCreateFlags,
2085 pub buffer: Buffer,
2086 pub format: Format,
2087 pub offset: DeviceSize,
2088 pub range: DeviceSize,
2089}
2090
2091impl Default for BufferViewCreateInfo {
2092 #[inline]
2093 fn default() -> Self {
2094 Self {
2095 s_type: StructureType::BUFFER_VIEW_CREATE_INFO,
2096 next: ptr::null(),
2097 flags: BufferViewCreateFlags::default(),
2098 buffer: Buffer::default(),
2099 format: Format::default(),
2100 offset: DeviceSize::default(),
2101 range: DeviceSize::default(),
2102 }
2103 }
2104}
2105
2106#[repr(C)]
2108#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2109pub struct BuildPartitionedAccelerationStructureIndirectCommandNV {
2110 pub op_type: PartitionedAccelerationStructureOpTypeNV,
2111 pub arg_count: u32,
2112 pub arg_data: StridedDeviceAddressNV,
2113}
2114
2115#[repr(C)]
2117#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2118pub struct BuildPartitionedAccelerationStructureInfoNV {
2119 pub s_type: StructureType,
2120 pub next: *mut c_void,
2121 pub input: PartitionedAccelerationStructureInstancesInputNV,
2122 pub src_acceleration_structure_data: DeviceAddress,
2123 pub dst_acceleration_structure_data: DeviceAddress,
2124 pub scratch_data: DeviceAddress,
2125 pub src_infos: DeviceAddress,
2126 pub src_infos_count: DeviceAddress,
2127}
2128
2129impl Default for BuildPartitionedAccelerationStructureInfoNV {
2130 #[inline]
2131 fn default() -> Self {
2132 Self {
2133 s_type: StructureType::BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV,
2134 next: ptr::null_mut(),
2135 input: PartitionedAccelerationStructureInstancesInputNV::default(),
2136 src_acceleration_structure_data: DeviceAddress::default(),
2137 dst_acceleration_structure_data: DeviceAddress::default(),
2138 scratch_data: DeviceAddress::default(),
2139 src_infos: DeviceAddress::default(),
2140 src_infos_count: DeviceAddress::default(),
2141 }
2142 }
2143}
2144
2145#[repr(C)]
2147#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2148pub struct CalibratedTimestampInfoKHR {
2149 pub s_type: StructureType,
2150 pub next: *const c_void,
2151 pub time_domain: TimeDomainKHR,
2152}
2153
2154impl Default for CalibratedTimestampInfoKHR {
2155 #[inline]
2156 fn default() -> Self {
2157 Self {
2158 s_type: StructureType::CALIBRATED_TIMESTAMP_INFO_KHR,
2159 next: ptr::null(),
2160 time_domain: TimeDomainKHR::default(),
2161 }
2162 }
2163}
2164
2165#[repr(C)]
2167#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2168pub struct CheckpointData2NV {
2169 pub s_type: StructureType,
2170 pub next: *mut c_void,
2171 pub stage: PipelineStageFlags2,
2172 pub checkpoint_marker: *mut c_void,
2173}
2174
2175impl Default for CheckpointData2NV {
2176 #[inline]
2177 fn default() -> Self {
2178 Self {
2179 s_type: StructureType::CHECKPOINT_DATA_2_NV,
2180 next: ptr::null_mut(),
2181 stage: PipelineStageFlags2::default(),
2182 checkpoint_marker: ptr::null_mut(),
2183 }
2184 }
2185}
2186
2187#[repr(C)]
2189#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2190pub struct CheckpointDataNV {
2191 pub s_type: StructureType,
2192 pub next: *mut c_void,
2193 pub stage: PipelineStageFlags,
2194 pub checkpoint_marker: *mut c_void,
2195}
2196
2197impl Default for CheckpointDataNV {
2198 #[inline]
2199 fn default() -> Self {
2200 Self {
2201 s_type: StructureType::CHECKPOINT_DATA_NV,
2202 next: ptr::null_mut(),
2203 stage: PipelineStageFlags::default(),
2204 checkpoint_marker: ptr::null_mut(),
2205 }
2206 }
2207}
2208
2209#[repr(C)]
2211#[derive(Copy, Clone, Default, Debug)]
2212pub struct ClearAttachment {
2213 pub aspect_mask: ImageAspectFlags,
2214 pub color_attachment: u32,
2215 pub clear_value: ClearValue,
2216}
2217
2218#[repr(C)]
2220#[derive(Copy, Clone, Default, Debug, PartialEq)]
2221pub struct ClearDepthStencilValue {
2222 pub depth: f32,
2223 pub stencil: u32,
2224}
2225
2226#[repr(C)]
2228#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2229pub struct ClearRect {
2230 pub rect: Rect2D,
2231 pub base_array_layer: u32,
2232 pub layer_count: u32,
2233}
2234
2235#[repr(C)]
2237#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2238pub struct ClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
2239 pub cluster_references_count: u32,
2240 pub cluster_references_stride: u32,
2241 pub cluster_references: DeviceAddress,
2242}
2243
2244bitfields32! {
2245 struct ClusterAccelerationStructureBuildTriangleClusterInfoNVBitfields0 {
2246 (triangle_count, with_triangle_count)[0 .. 9],
2247 (vertex_count, with_vertex_count)[9 .. 18],
2248 (position_truncate_bit_count, with_position_truncate_bit_count)[18 .. 24],
2249 (index_type, with_index_type)[24 .. 28],
2250 (opacity_micromap_index_type, with_opacity_micromap_index_type)[28 .. 32],
2251 }
2252}
2253
2254#[repr(C)]
2256#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2257pub struct ClusterAccelerationStructureBuildTriangleClusterInfoNV {
2258 pub cluster_id: u32,
2259 pub cluster_flags: ClusterAccelerationStructureClusterFlagsNV,
2260 pub base_geometry_index_and_geometry_flags:
2261 ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV,
2262 pub index_buffer_stride: u16,
2263 pub vertex_buffer_stride: u16,
2264 pub geometry_index_and_flags_buffer_stride: u16,
2265 pub opacity_micromap_index_buffer_stride: u16,
2266 pub index_buffer: DeviceAddress,
2267 pub vertex_buffer: DeviceAddress,
2268 pub geometry_index_and_flags_buffer: DeviceAddress,
2269 pub opacity_micromap_array: DeviceAddress,
2270 pub opacity_micromap_index_buffer: DeviceAddress,
2271 pub bitfields0: ClusterAccelerationStructureBuildTriangleClusterInfoNVBitfields0,
2272}
2273
2274bitfields32! {
2275 struct ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNVBitfields0 {
2276 (triangle_count, with_triangle_count)[0 .. 9],
2277 (vertex_count, with_vertex_count)[9 .. 18],
2278 (position_truncate_bit_count, with_position_truncate_bit_count)[18 .. 24],
2279 (index_type, with_index_type)[24 .. 28],
2280 (opacity_micromap_index_type, with_opacity_micromap_index_type)[28 .. 32],
2281 }
2282}
2283
2284#[repr(C)]
2286#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2287pub struct ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
2288 pub cluster_id: u32,
2289 pub cluster_flags: ClusterAccelerationStructureClusterFlagsNV,
2290 pub base_geometry_index_and_geometry_flags:
2291 ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV,
2292 pub index_buffer_stride: u16,
2293 pub vertex_buffer_stride: u16,
2294 pub geometry_index_and_flags_buffer_stride: u16,
2295 pub opacity_micromap_index_buffer_stride: u16,
2296 pub index_buffer: DeviceAddress,
2297 pub vertex_buffer: DeviceAddress,
2298 pub geometry_index_and_flags_buffer: DeviceAddress,
2299 pub opacity_micromap_array: DeviceAddress,
2300 pub opacity_micromap_index_buffer: DeviceAddress,
2301 pub instantiation_bounding_box_limit: DeviceAddress,
2302 pub bitfields0: ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNVBitfields0,
2303}
2304
2305#[repr(C)]
2307#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2308pub struct ClusterAccelerationStructureClustersBottomLevelInputNV {
2309 pub s_type: StructureType,
2310 pub next: *mut c_void,
2311 pub max_total_cluster_count: u32,
2312 pub max_cluster_count_per_acceleration_structure: u32,
2313}
2314
2315impl Default for ClusterAccelerationStructureClustersBottomLevelInputNV {
2316 #[inline]
2317 fn default() -> Self {
2318 Self {
2319 s_type: StructureType::CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV,
2320 next: ptr::null_mut(),
2321 max_total_cluster_count: u32::default(),
2322 max_cluster_count_per_acceleration_structure: u32::default(),
2323 }
2324 }
2325}
2326
2327#[repr(C)]
2329#[derive(Copy, Clone, Debug)]
2330pub struct ClusterAccelerationStructureCommandsInfoNV {
2331 pub s_type: StructureType,
2332 pub next: *mut c_void,
2333 pub input: ClusterAccelerationStructureInputInfoNV,
2334 pub dst_implicit_data: DeviceAddress,
2335 pub scratch_data: DeviceAddress,
2336 pub dst_addresses_array: StridedDeviceAddressRegionKHR,
2337 pub dst_sizes_array: StridedDeviceAddressRegionKHR,
2338 pub src_infos_array: StridedDeviceAddressRegionKHR,
2339 pub src_infos_count: DeviceAddress,
2340 pub address_resolution_flags: ClusterAccelerationStructureAddressResolutionFlagsNV,
2341}
2342
2343impl Default for ClusterAccelerationStructureCommandsInfoNV {
2344 #[inline]
2345 fn default() -> Self {
2346 Self {
2347 s_type: StructureType::CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV,
2348 next: ptr::null_mut(),
2349 input: ClusterAccelerationStructureInputInfoNV::default(),
2350 dst_implicit_data: DeviceAddress::default(),
2351 scratch_data: DeviceAddress::default(),
2352 dst_addresses_array: StridedDeviceAddressRegionKHR::default(),
2353 dst_sizes_array: StridedDeviceAddressRegionKHR::default(),
2354 src_infos_array: StridedDeviceAddressRegionKHR::default(),
2355 src_infos_count: DeviceAddress::default(),
2356 address_resolution_flags: ClusterAccelerationStructureAddressResolutionFlagsNV::default(
2357 ),
2358 }
2359 }
2360}
2361
2362bitfields32! {
2363 struct ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNVBitfields0 {
2364 (geometry_index, with_geometry_index)[0 .. 24],
2365 (reserved, with_reserved)[24 .. 29],
2366 (geometry_flags, with_geometry_flags)[29 .. 32],
2367 }
2368}
2369
2370#[repr(C)]
2372#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2373pub struct ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
2374 pub bitfields0: ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNVBitfields0,
2375}
2376
2377#[repr(C)]
2379#[derive(Copy, Clone, Debug)]
2380pub struct ClusterAccelerationStructureInputInfoNV {
2381 pub s_type: StructureType,
2382 pub next: *mut c_void,
2383 pub max_acceleration_structure_count: u32,
2384 pub flags: BuildAccelerationStructureFlagsKHR,
2385 pub op_type: ClusterAccelerationStructureOpTypeNV,
2386 pub op_mode: ClusterAccelerationStructureOpModeNV,
2387 pub op_input: ClusterAccelerationStructureOpInputNV,
2388}
2389
2390impl Default for ClusterAccelerationStructureInputInfoNV {
2391 #[inline]
2392 fn default() -> Self {
2393 Self {
2394 s_type: StructureType::CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV,
2395 next: ptr::null_mut(),
2396 max_acceleration_structure_count: u32::default(),
2397 flags: BuildAccelerationStructureFlagsKHR::default(),
2398 op_type: ClusterAccelerationStructureOpTypeNV::default(),
2399 op_mode: ClusterAccelerationStructureOpModeNV::default(),
2400 op_input: ClusterAccelerationStructureOpInputNV::default(),
2401 }
2402 }
2403}
2404
2405bitfields32! {
2406 struct ClusterAccelerationStructureInstantiateClusterInfoNVBitfields0 {
2407 (geometry_index_offset, with_geometry_index_offset)[0 .. 24],
2408 (reserved, with_reserved)[24 .. 32],
2409 }
2410}
2411
2412#[repr(C)]
2414#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2415pub struct ClusterAccelerationStructureInstantiateClusterInfoNV {
2416 pub cluster_id_offset: u32,
2417 pub cluster_template_address: DeviceAddress,
2418 pub vertex_buffer: StridedDeviceAddressNV,
2419 pub bitfields0: ClusterAccelerationStructureInstantiateClusterInfoNVBitfields0,
2420}
2421
2422#[repr(C)]
2424#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2425pub struct ClusterAccelerationStructureMoveObjectsInfoNV {
2426 pub src_acceleration_structure: DeviceAddress,
2427}
2428
2429#[repr(C)]
2431#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2432pub struct ClusterAccelerationStructureMoveObjectsInputNV {
2433 pub s_type: StructureType,
2434 pub next: *mut c_void,
2435 pub type_: ClusterAccelerationStructureTypeNV,
2436 pub no_move_overlap: Bool32,
2437 pub max_moved_bytes: DeviceSize,
2438}
2439
2440impl Default for ClusterAccelerationStructureMoveObjectsInputNV {
2441 #[inline]
2442 fn default() -> Self {
2443 Self {
2444 s_type: StructureType::CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV,
2445 next: ptr::null_mut(),
2446 type_: ClusterAccelerationStructureTypeNV::default(),
2447 no_move_overlap: Bool32::default(),
2448 max_moved_bytes: DeviceSize::default(),
2449 }
2450 }
2451}
2452
2453#[repr(C)]
2455#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2456pub struct ClusterAccelerationStructureTriangleClusterInputNV {
2457 pub s_type: StructureType,
2458 pub next: *mut c_void,
2459 pub vertex_format: Format,
2460 pub max_geometry_index_value: u32,
2461 pub max_cluster_unique_geometry_count: u32,
2462 pub max_cluster_triangle_count: u32,
2463 pub max_cluster_vertex_count: u32,
2464 pub max_total_triangle_count: u32,
2465 pub max_total_vertex_count: u32,
2466 pub min_position_truncate_bit_count: u32,
2467}
2468
2469impl Default for ClusterAccelerationStructureTriangleClusterInputNV {
2470 #[inline]
2471 fn default() -> Self {
2472 Self {
2473 s_type: StructureType::CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV,
2474 next: ptr::null_mut(),
2475 vertex_format: Format::default(),
2476 max_geometry_index_value: u32::default(),
2477 max_cluster_unique_geometry_count: u32::default(),
2478 max_cluster_triangle_count: u32::default(),
2479 max_cluster_vertex_count: u32::default(),
2480 max_total_triangle_count: u32::default(),
2481 max_total_vertex_count: u32::default(),
2482 min_position_truncate_bit_count: u32::default(),
2483 }
2484 }
2485}
2486
2487#[repr(C)]
2489#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2490pub struct CoarseSampleLocationNV {
2491 pub pixel_x: u32,
2492 pub pixel_y: u32,
2493 pub sample: u32,
2494}
2495
2496#[repr(C)]
2498#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2499pub struct CoarseSampleOrderCustomNV {
2500 pub shading_rate: ShadingRatePaletteEntryNV,
2501 pub sample_count: u32,
2502 pub sample_location_count: u32,
2503 pub sample_locations: *const CoarseSampleLocationNV,
2504}
2505
2506impl Default for CoarseSampleOrderCustomNV {
2507 #[inline]
2508 fn default() -> Self {
2509 Self {
2510 shading_rate: ShadingRatePaletteEntryNV::default(),
2511 sample_count: u32::default(),
2512 sample_location_count: u32::default(),
2513 sample_locations: ptr::null(),
2514 }
2515 }
2516}
2517
2518#[repr(C)]
2520#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2521pub struct ColorBlendAdvancedEXT {
2522 pub advanced_blend_op: BlendOp,
2523 pub src_premultiplied: Bool32,
2524 pub dst_premultiplied: Bool32,
2525 pub blend_overlap: BlendOverlapEXT,
2526 pub clamp_results: Bool32,
2527}
2528
2529#[repr(C)]
2531#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2532pub struct ColorBlendEquationEXT {
2533 pub src_color_blend_factor: BlendFactor,
2534 pub dst_color_blend_factor: BlendFactor,
2535 pub color_blend_op: BlendOp,
2536 pub src_alpha_blend_factor: BlendFactor,
2537 pub dst_alpha_blend_factor: BlendFactor,
2538 pub alpha_blend_op: BlendOp,
2539}
2540
2541#[repr(C)]
2543#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2544pub struct CommandBufferAllocateInfo {
2545 pub s_type: StructureType,
2546 pub next: *const c_void,
2547 pub command_pool: CommandPool,
2548 pub level: CommandBufferLevel,
2549 pub command_buffer_count: u32,
2550}
2551
2552impl Default for CommandBufferAllocateInfo {
2553 #[inline]
2554 fn default() -> Self {
2555 Self {
2556 s_type: StructureType::COMMAND_BUFFER_ALLOCATE_INFO,
2557 next: ptr::null(),
2558 command_pool: CommandPool::default(),
2559 level: CommandBufferLevel::default(),
2560 command_buffer_count: u32::default(),
2561 }
2562 }
2563}
2564
2565#[repr(C)]
2567#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2568pub struct CommandBufferBeginInfo {
2569 pub s_type: StructureType,
2570 pub next: *const c_void,
2571 pub flags: CommandBufferUsageFlags,
2572 pub inheritance_info: *const CommandBufferInheritanceInfo,
2573}
2574
2575impl Default for CommandBufferBeginInfo {
2576 #[inline]
2577 fn default() -> Self {
2578 Self {
2579 s_type: StructureType::COMMAND_BUFFER_BEGIN_INFO,
2580 next: ptr::null(),
2581 flags: CommandBufferUsageFlags::default(),
2582 inheritance_info: ptr::null(),
2583 }
2584 }
2585}
2586
2587#[repr(C)]
2589#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2590pub struct CommandBufferInheritanceConditionalRenderingInfoEXT {
2591 pub s_type: StructureType,
2592 pub next: *const c_void,
2593 pub conditional_rendering_enable: Bool32,
2594}
2595
2596impl Default for CommandBufferInheritanceConditionalRenderingInfoEXT {
2597 #[inline]
2598 fn default() -> Self {
2599 Self {
2600 s_type: StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
2601 next: ptr::null(),
2602 conditional_rendering_enable: Bool32::default(),
2603 }
2604 }
2605}
2606
2607#[repr(C)]
2609#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2610pub struct CommandBufferInheritanceInfo {
2611 pub s_type: StructureType,
2612 pub next: *const c_void,
2613 pub render_pass: RenderPass,
2614 pub subpass: u32,
2615 pub framebuffer: Framebuffer,
2616 pub occlusion_query_enable: Bool32,
2617 pub query_flags: QueryControlFlags,
2618 pub pipeline_statistics: QueryPipelineStatisticFlags,
2619}
2620
2621impl Default for CommandBufferInheritanceInfo {
2622 #[inline]
2623 fn default() -> Self {
2624 Self {
2625 s_type: StructureType::COMMAND_BUFFER_INHERITANCE_INFO,
2626 next: ptr::null(),
2627 render_pass: RenderPass::default(),
2628 subpass: u32::default(),
2629 framebuffer: Framebuffer::default(),
2630 occlusion_query_enable: Bool32::default(),
2631 query_flags: QueryControlFlags::default(),
2632 pipeline_statistics: QueryPipelineStatisticFlags::default(),
2633 }
2634 }
2635}
2636
2637#[repr(C)]
2639#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2640pub struct CommandBufferInheritanceRenderPassTransformInfoQCOM {
2641 pub s_type: StructureType,
2642 pub next: *mut c_void,
2643 pub transform: SurfaceTransformFlagsKHR,
2644 pub render_area: Rect2D,
2645}
2646
2647impl Default for CommandBufferInheritanceRenderPassTransformInfoQCOM {
2648 #[inline]
2649 fn default() -> Self {
2650 Self {
2651 s_type: StructureType::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
2652 next: ptr::null_mut(),
2653 transform: SurfaceTransformFlagsKHR::default(),
2654 render_area: Rect2D::default(),
2655 }
2656 }
2657}
2658
2659#[repr(C)]
2661#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2662pub struct CommandBufferInheritanceRenderingInfo {
2663 pub s_type: StructureType,
2664 pub next: *const c_void,
2665 pub flags: RenderingFlags,
2666 pub view_mask: u32,
2667 pub color_attachment_count: u32,
2668 pub color_attachment_formats: *const Format,
2669 pub depth_attachment_format: Format,
2670 pub stencil_attachment_format: Format,
2671 pub rasterization_samples: SampleCountFlags,
2672}
2673
2674impl Default for CommandBufferInheritanceRenderingInfo {
2675 #[inline]
2676 fn default() -> Self {
2677 Self {
2678 s_type: StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
2679 next: ptr::null(),
2680 flags: RenderingFlags::default(),
2681 view_mask: u32::default(),
2682 color_attachment_count: u32::default(),
2683 color_attachment_formats: ptr::null(),
2684 depth_attachment_format: Format::default(),
2685 stencil_attachment_format: Format::default(),
2686 rasterization_samples: SampleCountFlags::default(),
2687 }
2688 }
2689}
2690
2691#[repr(C)]
2693#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2694pub struct CommandBufferInheritanceViewportScissorInfoNV {
2695 pub s_type: StructureType,
2696 pub next: *const c_void,
2697 pub viewport_scissor_2d: Bool32,
2698 pub viewport_depth_count: u32,
2699 pub viewport_depths: *const Viewport,
2700}
2701
2702impl Default for CommandBufferInheritanceViewportScissorInfoNV {
2703 #[inline]
2704 fn default() -> Self {
2705 Self {
2706 s_type: StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
2707 next: ptr::null(),
2708 viewport_scissor_2d: Bool32::default(),
2709 viewport_depth_count: u32::default(),
2710 viewport_depths: ptr::null(),
2711 }
2712 }
2713}
2714
2715#[repr(C)]
2717#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2718pub struct CommandBufferSubmitInfo {
2719 pub s_type: StructureType,
2720 pub next: *const c_void,
2721 pub command_buffer: CommandBuffer,
2722 pub device_mask: u32,
2723}
2724
2725impl Default for CommandBufferSubmitInfo {
2726 #[inline]
2727 fn default() -> Self {
2728 Self {
2729 s_type: StructureType::COMMAND_BUFFER_SUBMIT_INFO,
2730 next: ptr::null(),
2731 command_buffer: CommandBuffer::default(),
2732 device_mask: u32::default(),
2733 }
2734 }
2735}
2736
2737#[repr(C)]
2739#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2740pub struct CommandPoolCreateInfo {
2741 pub s_type: StructureType,
2742 pub next: *const c_void,
2743 pub flags: CommandPoolCreateFlags,
2744 pub queue_family_index: u32,
2745}
2746
2747impl Default for CommandPoolCreateInfo {
2748 #[inline]
2749 fn default() -> Self {
2750 Self {
2751 s_type: StructureType::COMMAND_POOL_CREATE_INFO,
2752 next: ptr::null(),
2753 flags: CommandPoolCreateFlags::default(),
2754 queue_family_index: u32::default(),
2755 }
2756 }
2757}
2758
2759#[repr(C)]
2761#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2762pub struct ComponentMapping {
2763 pub r: ComponentSwizzle,
2764 pub g: ComponentSwizzle,
2765 pub b: ComponentSwizzle,
2766 pub a: ComponentSwizzle,
2767}
2768
2769#[repr(C)]
2771#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2772pub struct ComputePipelineCreateInfo {
2773 pub s_type: StructureType,
2774 pub next: *const c_void,
2775 pub flags: PipelineCreateFlags,
2776 pub stage: PipelineShaderStageCreateInfo,
2777 pub layout: PipelineLayout,
2778 pub base_pipeline_handle: Pipeline,
2779 pub base_pipeline_index: i32,
2780}
2781
2782impl Default for ComputePipelineCreateInfo {
2783 #[inline]
2784 fn default() -> Self {
2785 Self {
2786 s_type: StructureType::COMPUTE_PIPELINE_CREATE_INFO,
2787 next: ptr::null(),
2788 flags: PipelineCreateFlags::default(),
2789 stage: PipelineShaderStageCreateInfo::default(),
2790 layout: PipelineLayout::default(),
2791 base_pipeline_handle: Pipeline::default(),
2792 base_pipeline_index: i32::default(),
2793 }
2794 }
2795}
2796
2797#[repr(C)]
2799#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2800pub struct ComputePipelineIndirectBufferInfoNV {
2801 pub s_type: StructureType,
2802 pub next: *const c_void,
2803 pub device_address: DeviceAddress,
2804 pub size: DeviceSize,
2805 pub pipeline_device_address_capture_replay: DeviceAddress,
2806}
2807
2808impl Default for ComputePipelineIndirectBufferInfoNV {
2809 #[inline]
2810 fn default() -> Self {
2811 Self {
2812 s_type: StructureType::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV,
2813 next: ptr::null(),
2814 device_address: DeviceAddress::default(),
2815 size: DeviceSize::default(),
2816 pipeline_device_address_capture_replay: DeviceAddress::default(),
2817 }
2818 }
2819}
2820
2821#[repr(C)]
2823#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2824pub struct ConditionalRenderingBeginInfoEXT {
2825 pub s_type: StructureType,
2826 pub next: *const c_void,
2827 pub buffer: Buffer,
2828 pub offset: DeviceSize,
2829 pub flags: ConditionalRenderingFlagsEXT,
2830}
2831
2832impl Default for ConditionalRenderingBeginInfoEXT {
2833 #[inline]
2834 fn default() -> Self {
2835 Self {
2836 s_type: StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
2837 next: ptr::null(),
2838 buffer: Buffer::default(),
2839 offset: DeviceSize::default(),
2840 flags: ConditionalRenderingFlagsEXT::default(),
2841 }
2842 }
2843}
2844
2845#[repr(C)]
2847#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
2848pub struct ConformanceVersion {
2849 pub major: u8,
2850 pub minor: u8,
2851 pub subminor: u8,
2852 pub patch: u8,
2853}
2854
2855#[repr(C)]
2857#[derive(Copy, Clone, Debug)]
2858pub struct ConvertCooperativeVectorMatrixInfoNV {
2859 pub s_type: StructureType,
2860 pub next: *const c_void,
2861 pub src_size: usize,
2862 pub src_data: DeviceOrHostAddressConstKHR,
2863 pub dst_size: *mut usize,
2864 pub dst_data: DeviceOrHostAddressKHR,
2865 pub src_component_type: ComponentTypeKHR,
2866 pub dst_component_type: ComponentTypeKHR,
2867 pub num_rows: u32,
2868 pub num_columns: u32,
2869 pub src_layout: CooperativeVectorMatrixLayoutNV,
2870 pub src_stride: usize,
2871 pub dst_layout: CooperativeVectorMatrixLayoutNV,
2872 pub dst_stride: usize,
2873}
2874
2875impl Default for ConvertCooperativeVectorMatrixInfoNV {
2876 #[inline]
2877 fn default() -> Self {
2878 Self {
2879 s_type: StructureType::CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV,
2880 next: ptr::null(),
2881 src_size: usize::default(),
2882 src_data: DeviceOrHostAddressConstKHR::default(),
2883 dst_size: ptr::null_mut(),
2884 dst_data: DeviceOrHostAddressKHR::default(),
2885 src_component_type: ComponentTypeKHR::default(),
2886 dst_component_type: ComponentTypeKHR::default(),
2887 num_rows: u32::default(),
2888 num_columns: u32::default(),
2889 src_layout: CooperativeVectorMatrixLayoutNV::default(),
2890 src_stride: usize::default(),
2891 dst_layout: CooperativeVectorMatrixLayoutNV::default(),
2892 dst_stride: usize::default(),
2893 }
2894 }
2895}
2896
2897#[repr(C)]
2899#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2900pub struct CooperativeMatrixFlexibleDimensionsPropertiesNV {
2901 pub s_type: StructureType,
2902 pub next: *mut c_void,
2903 pub m_granularity: u32,
2904 pub n_granularity: u32,
2905 pub k_granularity: u32,
2906 pub a_type: ComponentTypeKHR,
2907 pub b_type: ComponentTypeKHR,
2908 pub c_type: ComponentTypeKHR,
2909 pub result_type: ComponentTypeKHR,
2910 pub saturating_accumulation: Bool32,
2911 pub scope: ScopeKHR,
2912 pub workgroup_invocations: u32,
2913}
2914
2915impl Default for CooperativeMatrixFlexibleDimensionsPropertiesNV {
2916 #[inline]
2917 fn default() -> Self {
2918 Self {
2919 s_type: StructureType::COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV,
2920 next: ptr::null_mut(),
2921 m_granularity: u32::default(),
2922 n_granularity: u32::default(),
2923 k_granularity: u32::default(),
2924 a_type: ComponentTypeKHR::default(),
2925 b_type: ComponentTypeKHR::default(),
2926 c_type: ComponentTypeKHR::default(),
2927 result_type: ComponentTypeKHR::default(),
2928 saturating_accumulation: Bool32::default(),
2929 scope: ScopeKHR::default(),
2930 workgroup_invocations: u32::default(),
2931 }
2932 }
2933}
2934
2935#[repr(C)]
2937#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2938pub struct CooperativeMatrixPropertiesKHR {
2939 pub s_type: StructureType,
2940 pub next: *mut c_void,
2941 pub m_size: u32,
2942 pub n_size: u32,
2943 pub k_size: u32,
2944 pub a_type: ComponentTypeKHR,
2945 pub b_type: ComponentTypeKHR,
2946 pub c_type: ComponentTypeKHR,
2947 pub result_type: ComponentTypeKHR,
2948 pub saturating_accumulation: Bool32,
2949 pub scope: ScopeKHR,
2950}
2951
2952impl Default for CooperativeMatrixPropertiesKHR {
2953 #[inline]
2954 fn default() -> Self {
2955 Self {
2956 s_type: StructureType::COOPERATIVE_MATRIX_PROPERTIES_KHR,
2957 next: ptr::null_mut(),
2958 m_size: u32::default(),
2959 n_size: u32::default(),
2960 k_size: u32::default(),
2961 a_type: ComponentTypeKHR::default(),
2962 b_type: ComponentTypeKHR::default(),
2963 c_type: ComponentTypeKHR::default(),
2964 result_type: ComponentTypeKHR::default(),
2965 saturating_accumulation: Bool32::default(),
2966 scope: ScopeKHR::default(),
2967 }
2968 }
2969}
2970
2971#[repr(C)]
2973#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
2974pub struct CooperativeMatrixPropertiesNV {
2975 pub s_type: StructureType,
2976 pub next: *mut c_void,
2977 pub m_size: u32,
2978 pub n_size: u32,
2979 pub k_size: u32,
2980 pub a_type: ComponentTypeNV,
2981 pub b_type: ComponentTypeNV,
2982 pub c_type: ComponentTypeNV,
2983 pub d_type: ComponentTypeNV,
2984 pub scope: ScopeNV,
2985}
2986
2987impl Default for CooperativeMatrixPropertiesNV {
2988 #[inline]
2989 fn default() -> Self {
2990 Self {
2991 s_type: StructureType::COOPERATIVE_MATRIX_PROPERTIES_NV,
2992 next: ptr::null_mut(),
2993 m_size: u32::default(),
2994 n_size: u32::default(),
2995 k_size: u32::default(),
2996 a_type: ComponentTypeNV::default(),
2997 b_type: ComponentTypeNV::default(),
2998 c_type: ComponentTypeNV::default(),
2999 d_type: ComponentTypeNV::default(),
3000 scope: ScopeNV::default(),
3001 }
3002 }
3003}
3004
3005#[repr(C)]
3007#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3008pub struct CooperativeVectorPropertiesNV {
3009 pub s_type: StructureType,
3010 pub next: *mut c_void,
3011 pub input_type: ComponentTypeKHR,
3012 pub input_interpretation: ComponentTypeKHR,
3013 pub matrix_interpretation: ComponentTypeKHR,
3014 pub bias_interpretation: ComponentTypeKHR,
3015 pub result_type: ComponentTypeKHR,
3016 pub transpose: Bool32,
3017}
3018
3019impl Default for CooperativeVectorPropertiesNV {
3020 #[inline]
3021 fn default() -> Self {
3022 Self {
3023 s_type: StructureType::COOPERATIVE_VECTOR_PROPERTIES_NV,
3024 next: ptr::null_mut(),
3025 input_type: ComponentTypeKHR::default(),
3026 input_interpretation: ComponentTypeKHR::default(),
3027 matrix_interpretation: ComponentTypeKHR::default(),
3028 bias_interpretation: ComponentTypeKHR::default(),
3029 result_type: ComponentTypeKHR::default(),
3030 transpose: Bool32::default(),
3031 }
3032 }
3033}
3034
3035#[repr(C)]
3037#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3038pub struct CopyAccelerationStructureInfoKHR {
3039 pub s_type: StructureType,
3040 pub next: *const c_void,
3041 pub src: AccelerationStructureKHR,
3042 pub dst: AccelerationStructureKHR,
3043 pub mode: CopyAccelerationStructureModeKHR,
3044}
3045
3046impl Default for CopyAccelerationStructureInfoKHR {
3047 #[inline]
3048 fn default() -> Self {
3049 Self {
3050 s_type: StructureType::COPY_ACCELERATION_STRUCTURE_INFO_KHR,
3051 next: ptr::null(),
3052 src: AccelerationStructureKHR::default(),
3053 dst: AccelerationStructureKHR::default(),
3054 mode: CopyAccelerationStructureModeKHR::default(),
3055 }
3056 }
3057}
3058
3059#[repr(C)]
3061#[derive(Copy, Clone, Debug)]
3062pub struct CopyAccelerationStructureToMemoryInfoKHR {
3063 pub s_type: StructureType,
3064 pub next: *const c_void,
3065 pub src: AccelerationStructureKHR,
3066 pub dst: DeviceOrHostAddressKHR,
3067 pub mode: CopyAccelerationStructureModeKHR,
3068}
3069
3070impl Default for CopyAccelerationStructureToMemoryInfoKHR {
3071 #[inline]
3072 fn default() -> Self {
3073 Self {
3074 s_type: StructureType::COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
3075 next: ptr::null(),
3076 src: AccelerationStructureKHR::default(),
3077 dst: DeviceOrHostAddressKHR::default(),
3078 mode: CopyAccelerationStructureModeKHR::default(),
3079 }
3080 }
3081}
3082
3083#[repr(C)]
3085#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3086pub struct CopyBufferInfo2 {
3087 pub s_type: StructureType,
3088 pub next: *const c_void,
3089 pub src_buffer: Buffer,
3090 pub dst_buffer: Buffer,
3091 pub region_count: u32,
3092 pub regions: *const BufferCopy2,
3093}
3094
3095impl Default for CopyBufferInfo2 {
3096 #[inline]
3097 fn default() -> Self {
3098 Self {
3099 s_type: StructureType::COPY_BUFFER_INFO_2,
3100 next: ptr::null(),
3101 src_buffer: Buffer::default(),
3102 dst_buffer: Buffer::default(),
3103 region_count: u32::default(),
3104 regions: ptr::null(),
3105 }
3106 }
3107}
3108
3109#[repr(C)]
3111#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3112pub struct CopyBufferToImageInfo2 {
3113 pub s_type: StructureType,
3114 pub next: *const c_void,
3115 pub src_buffer: Buffer,
3116 pub dst_image: Image,
3117 pub dst_image_layout: ImageLayout,
3118 pub region_count: u32,
3119 pub regions: *const BufferImageCopy2,
3120}
3121
3122impl Default for CopyBufferToImageInfo2 {
3123 #[inline]
3124 fn default() -> Self {
3125 Self {
3126 s_type: StructureType::COPY_BUFFER_TO_IMAGE_INFO_2,
3127 next: ptr::null(),
3128 src_buffer: Buffer::default(),
3129 dst_image: Image::default(),
3130 dst_image_layout: ImageLayout::default(),
3131 region_count: u32::default(),
3132 regions: ptr::null(),
3133 }
3134 }
3135}
3136
3137#[repr(C)]
3139#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3140pub struct CopyCommandTransformInfoQCOM {
3141 pub s_type: StructureType,
3142 pub next: *const c_void,
3143 pub transform: SurfaceTransformFlagsKHR,
3144}
3145
3146impl Default for CopyCommandTransformInfoQCOM {
3147 #[inline]
3148 fn default() -> Self {
3149 Self {
3150 s_type: StructureType::COPY_COMMAND_TRANSFORM_INFO_QCOM,
3151 next: ptr::null(),
3152 transform: SurfaceTransformFlagsKHR::default(),
3153 }
3154 }
3155}
3156
3157#[repr(C)]
3159#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3160pub struct CopyDescriptorSet {
3161 pub s_type: StructureType,
3162 pub next: *const c_void,
3163 pub src_set: DescriptorSet,
3164 pub src_binding: u32,
3165 pub src_array_element: u32,
3166 pub dst_set: DescriptorSet,
3167 pub dst_binding: u32,
3168 pub dst_array_element: u32,
3169 pub descriptor_count: u32,
3170}
3171
3172impl Default for CopyDescriptorSet {
3173 #[inline]
3174 fn default() -> Self {
3175 Self {
3176 s_type: StructureType::COPY_DESCRIPTOR_SET,
3177 next: ptr::null(),
3178 src_set: DescriptorSet::default(),
3179 src_binding: u32::default(),
3180 src_array_element: u32::default(),
3181 dst_set: DescriptorSet::default(),
3182 dst_binding: u32::default(),
3183 dst_array_element: u32::default(),
3184 descriptor_count: u32::default(),
3185 }
3186 }
3187}
3188
3189#[repr(C)]
3191#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3192pub struct CopyImageInfo2 {
3193 pub s_type: StructureType,
3194 pub next: *const c_void,
3195 pub src_image: Image,
3196 pub src_image_layout: ImageLayout,
3197 pub dst_image: Image,
3198 pub dst_image_layout: ImageLayout,
3199 pub region_count: u32,
3200 pub regions: *const ImageCopy2,
3201}
3202
3203impl Default for CopyImageInfo2 {
3204 #[inline]
3205 fn default() -> Self {
3206 Self {
3207 s_type: StructureType::COPY_IMAGE_INFO_2,
3208 next: ptr::null(),
3209 src_image: Image::default(),
3210 src_image_layout: ImageLayout::default(),
3211 dst_image: Image::default(),
3212 dst_image_layout: ImageLayout::default(),
3213 region_count: u32::default(),
3214 regions: ptr::null(),
3215 }
3216 }
3217}
3218
3219#[repr(C)]
3221#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3222pub struct CopyImageToBufferInfo2 {
3223 pub s_type: StructureType,
3224 pub next: *const c_void,
3225 pub src_image: Image,
3226 pub src_image_layout: ImageLayout,
3227 pub dst_buffer: Buffer,
3228 pub region_count: u32,
3229 pub regions: *const BufferImageCopy2,
3230}
3231
3232impl Default for CopyImageToBufferInfo2 {
3233 #[inline]
3234 fn default() -> Self {
3235 Self {
3236 s_type: StructureType::COPY_IMAGE_TO_BUFFER_INFO_2,
3237 next: ptr::null(),
3238 src_image: Image::default(),
3239 src_image_layout: ImageLayout::default(),
3240 dst_buffer: Buffer::default(),
3241 region_count: u32::default(),
3242 regions: ptr::null(),
3243 }
3244 }
3245}
3246
3247#[repr(C)]
3249#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3250pub struct CopyImageToImageInfo {
3251 pub s_type: StructureType,
3252 pub next: *const c_void,
3253 pub flags: HostImageCopyFlags,
3254 pub src_image: Image,
3255 pub src_image_layout: ImageLayout,
3256 pub dst_image: Image,
3257 pub dst_image_layout: ImageLayout,
3258 pub region_count: u32,
3259 pub regions: *const ImageCopy2,
3260}
3261
3262impl Default for CopyImageToImageInfo {
3263 #[inline]
3264 fn default() -> Self {
3265 Self {
3266 s_type: StructureType::COPY_IMAGE_TO_IMAGE_INFO,
3267 next: ptr::null(),
3268 flags: HostImageCopyFlags::default(),
3269 src_image: Image::default(),
3270 src_image_layout: ImageLayout::default(),
3271 dst_image: Image::default(),
3272 dst_image_layout: ImageLayout::default(),
3273 region_count: u32::default(),
3274 regions: ptr::null(),
3275 }
3276 }
3277}
3278
3279#[repr(C)]
3281#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3282pub struct CopyImageToMemoryInfo {
3283 pub s_type: StructureType,
3284 pub next: *const c_void,
3285 pub flags: HostImageCopyFlags,
3286 pub src_image: Image,
3287 pub src_image_layout: ImageLayout,
3288 pub region_count: u32,
3289 pub regions: *const ImageToMemoryCopy,
3290}
3291
3292impl Default for CopyImageToMemoryInfo {
3293 #[inline]
3294 fn default() -> Self {
3295 Self {
3296 s_type: StructureType::COPY_IMAGE_TO_MEMORY_INFO,
3297 next: ptr::null(),
3298 flags: HostImageCopyFlags::default(),
3299 src_image: Image::default(),
3300 src_image_layout: ImageLayout::default(),
3301 region_count: u32::default(),
3302 regions: ptr::null(),
3303 }
3304 }
3305}
3306
3307#[repr(C)]
3309#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
3310pub struct CopyMemoryIndirectCommandNV {
3311 pub src_address: DeviceAddress,
3312 pub dst_address: DeviceAddress,
3313 pub size: DeviceSize,
3314}
3315
3316#[repr(C)]
3318#[derive(Copy, Clone, Debug)]
3319pub struct CopyMemoryToAccelerationStructureInfoKHR {
3320 pub s_type: StructureType,
3321 pub next: *const c_void,
3322 pub src: DeviceOrHostAddressConstKHR,
3323 pub dst: AccelerationStructureKHR,
3324 pub mode: CopyAccelerationStructureModeKHR,
3325}
3326
3327impl Default for CopyMemoryToAccelerationStructureInfoKHR {
3328 #[inline]
3329 fn default() -> Self {
3330 Self {
3331 s_type: StructureType::COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
3332 next: ptr::null(),
3333 src: DeviceOrHostAddressConstKHR::default(),
3334 dst: AccelerationStructureKHR::default(),
3335 mode: CopyAccelerationStructureModeKHR::default(),
3336 }
3337 }
3338}
3339
3340#[repr(C)]
3342#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
3343pub struct CopyMemoryToImageIndirectCommandNV {
3344 pub src_address: DeviceAddress,
3345 pub buffer_row_length: u32,
3346 pub buffer_image_height: u32,
3347 pub image_subresource: ImageSubresourceLayers,
3348 pub image_offset: Offset3D,
3349 pub image_extent: Extent3D,
3350}
3351
3352#[repr(C)]
3354#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3355pub struct CopyMemoryToImageInfo {
3356 pub s_type: StructureType,
3357 pub next: *const c_void,
3358 pub flags: HostImageCopyFlags,
3359 pub dst_image: Image,
3360 pub dst_image_layout: ImageLayout,
3361 pub region_count: u32,
3362 pub regions: *const MemoryToImageCopy,
3363}
3364
3365impl Default for CopyMemoryToImageInfo {
3366 #[inline]
3367 fn default() -> Self {
3368 Self {
3369 s_type: StructureType::COPY_MEMORY_TO_IMAGE_INFO,
3370 next: ptr::null(),
3371 flags: HostImageCopyFlags::default(),
3372 dst_image: Image::default(),
3373 dst_image_layout: ImageLayout::default(),
3374 region_count: u32::default(),
3375 regions: ptr::null(),
3376 }
3377 }
3378}
3379
3380#[repr(C)]
3382#[derive(Copy, Clone, Debug)]
3383pub struct CopyMemoryToMicromapInfoEXT {
3384 pub s_type: StructureType,
3385 pub next: *const c_void,
3386 pub src: DeviceOrHostAddressConstKHR,
3387 pub dst: MicromapEXT,
3388 pub mode: CopyMicromapModeEXT,
3389}
3390
3391impl Default for CopyMemoryToMicromapInfoEXT {
3392 #[inline]
3393 fn default() -> Self {
3394 Self {
3395 s_type: StructureType::COPY_MEMORY_TO_MICROMAP_INFO_EXT,
3396 next: ptr::null(),
3397 src: DeviceOrHostAddressConstKHR::default(),
3398 dst: MicromapEXT::default(),
3399 mode: CopyMicromapModeEXT::default(),
3400 }
3401 }
3402}
3403
3404#[repr(C)]
3406#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3407pub struct CopyMicromapInfoEXT {
3408 pub s_type: StructureType,
3409 pub next: *const c_void,
3410 pub src: MicromapEXT,
3411 pub dst: MicromapEXT,
3412 pub mode: CopyMicromapModeEXT,
3413}
3414
3415impl Default for CopyMicromapInfoEXT {
3416 #[inline]
3417 fn default() -> Self {
3418 Self {
3419 s_type: StructureType::COPY_MICROMAP_INFO_EXT,
3420 next: ptr::null(),
3421 src: MicromapEXT::default(),
3422 dst: MicromapEXT::default(),
3423 mode: CopyMicromapModeEXT::default(),
3424 }
3425 }
3426}
3427
3428#[repr(C)]
3430#[derive(Copy, Clone, Debug)]
3431pub struct CopyMicromapToMemoryInfoEXT {
3432 pub s_type: StructureType,
3433 pub next: *const c_void,
3434 pub src: MicromapEXT,
3435 pub dst: DeviceOrHostAddressKHR,
3436 pub mode: CopyMicromapModeEXT,
3437}
3438
3439impl Default for CopyMicromapToMemoryInfoEXT {
3440 #[inline]
3441 fn default() -> Self {
3442 Self {
3443 s_type: StructureType::COPY_MICROMAP_TO_MEMORY_INFO_EXT,
3444 next: ptr::null(),
3445 src: MicromapEXT::default(),
3446 dst: DeviceOrHostAddressKHR::default(),
3447 mode: CopyMicromapModeEXT::default(),
3448 }
3449 }
3450}
3451
3452#[repr(C)]
3454#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3455pub struct CuFunctionCreateInfoNVX {
3456 pub s_type: StructureType,
3457 pub next: *const c_void,
3458 pub module: CuModuleNVX,
3459 pub name: *const c_char,
3460}
3461
3462impl Default for CuFunctionCreateInfoNVX {
3463 #[inline]
3464 fn default() -> Self {
3465 Self {
3466 s_type: StructureType::CU_FUNCTION_CREATE_INFO_NVX,
3467 next: ptr::null(),
3468 module: CuModuleNVX::default(),
3469 name: ptr::null(),
3470 }
3471 }
3472}
3473
3474#[repr(C)]
3476#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3477pub struct CuLaunchInfoNVX {
3478 pub s_type: StructureType,
3479 pub next: *const c_void,
3480 pub function: CuFunctionNVX,
3481 pub grid_dim_x: u32,
3482 pub grid_dim_y: u32,
3483 pub grid_dim_z: u32,
3484 pub block_dim_x: u32,
3485 pub block_dim_y: u32,
3486 pub block_dim_z: u32,
3487 pub shared_mem_bytes: u32,
3488 pub param_count: usize,
3489 pub params: *const c_void,
3490 pub extra_count: usize,
3491 pub extras: *const c_void,
3492}
3493
3494impl Default for CuLaunchInfoNVX {
3495 #[inline]
3496 fn default() -> Self {
3497 Self {
3498 s_type: StructureType::CU_LAUNCH_INFO_NVX,
3499 next: ptr::null(),
3500 function: CuFunctionNVX::default(),
3501 grid_dim_x: u32::default(),
3502 grid_dim_y: u32::default(),
3503 grid_dim_z: u32::default(),
3504 block_dim_x: u32::default(),
3505 block_dim_y: u32::default(),
3506 block_dim_z: u32::default(),
3507 shared_mem_bytes: u32::default(),
3508 param_count: usize::default(),
3509 params: ptr::null(),
3510 extra_count: usize::default(),
3511 extras: ptr::null(),
3512 }
3513 }
3514}
3515
3516#[repr(C)]
3518#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3519pub struct CuModuleCreateInfoNVX {
3520 pub s_type: StructureType,
3521 pub next: *const c_void,
3522 pub data_size: usize,
3523 pub data: *const c_void,
3524}
3525
3526impl Default for CuModuleCreateInfoNVX {
3527 #[inline]
3528 fn default() -> Self {
3529 Self {
3530 s_type: StructureType::CU_MODULE_CREATE_INFO_NVX,
3531 next: ptr::null(),
3532 data_size: usize::default(),
3533 data: ptr::null(),
3534 }
3535 }
3536}
3537
3538#[repr(C)]
3540#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3541pub struct CuModuleTexturingModeCreateInfoNVX {
3542 pub s_type: StructureType,
3543 pub next: *const c_void,
3544 pub use64bit_texturing: Bool32,
3545}
3546
3547impl Default for CuModuleTexturingModeCreateInfoNVX {
3548 #[inline]
3549 fn default() -> Self {
3550 Self {
3551 s_type: StructureType::CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX,
3552 next: ptr::null(),
3553 use64bit_texturing: Bool32::default(),
3554 }
3555 }
3556}
3557
3558#[repr(C)]
3560#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3561pub struct CudaFunctionCreateInfoNV {
3562 pub s_type: StructureType,
3563 pub next: *const c_void,
3564 pub module: CudaModuleNV,
3565 pub name: *const c_char,
3566}
3567
3568impl Default for CudaFunctionCreateInfoNV {
3569 #[inline]
3570 fn default() -> Self {
3571 Self {
3572 s_type: StructureType::CUDA_FUNCTION_CREATE_INFO_NV,
3573 next: ptr::null(),
3574 module: CudaModuleNV::default(),
3575 name: ptr::null(),
3576 }
3577 }
3578}
3579
3580#[repr(C)]
3582#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3583pub struct CudaLaunchInfoNV {
3584 pub s_type: StructureType,
3585 pub next: *const c_void,
3586 pub function: CudaFunctionNV,
3587 pub grid_dim_x: u32,
3588 pub grid_dim_y: u32,
3589 pub grid_dim_z: u32,
3590 pub block_dim_x: u32,
3591 pub block_dim_y: u32,
3592 pub block_dim_z: u32,
3593 pub shared_mem_bytes: u32,
3594 pub param_count: usize,
3595 pub params: *const c_void,
3596 pub extra_count: usize,
3597 pub extras: *const c_void,
3598}
3599
3600impl Default for CudaLaunchInfoNV {
3601 #[inline]
3602 fn default() -> Self {
3603 Self {
3604 s_type: StructureType::CUDA_LAUNCH_INFO_NV,
3605 next: ptr::null(),
3606 function: CudaFunctionNV::default(),
3607 grid_dim_x: u32::default(),
3608 grid_dim_y: u32::default(),
3609 grid_dim_z: u32::default(),
3610 block_dim_x: u32::default(),
3611 block_dim_y: u32::default(),
3612 block_dim_z: u32::default(),
3613 shared_mem_bytes: u32::default(),
3614 param_count: usize::default(),
3615 params: ptr::null(),
3616 extra_count: usize::default(),
3617 extras: ptr::null(),
3618 }
3619 }
3620}
3621
3622#[repr(C)]
3624#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3625pub struct CudaModuleCreateInfoNV {
3626 pub s_type: StructureType,
3627 pub next: *const c_void,
3628 pub data_size: usize,
3629 pub data: *const c_void,
3630}
3631
3632impl Default for CudaModuleCreateInfoNV {
3633 #[inline]
3634 fn default() -> Self {
3635 Self {
3636 s_type: StructureType::CUDA_MODULE_CREATE_INFO_NV,
3637 next: ptr::null(),
3638 data_size: usize::default(),
3639 data: ptr::null(),
3640 }
3641 }
3642}
3643
3644#[repr(C)]
3646#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3647pub struct D3D12FenceSubmitInfoKHR {
3648 pub s_type: StructureType,
3649 pub next: *const c_void,
3650 pub wait_semaphore_values_count: u32,
3651 pub wait_semaphore_values: *const u64,
3652 pub signal_semaphore_values_count: u32,
3653 pub signal_semaphore_values: *const u64,
3654}
3655
3656impl Default for D3D12FenceSubmitInfoKHR {
3657 #[inline]
3658 fn default() -> Self {
3659 Self {
3660 s_type: StructureType::D3D12_FENCE_SUBMIT_INFO_KHR,
3661 next: ptr::null(),
3662 wait_semaphore_values_count: u32::default(),
3663 wait_semaphore_values: ptr::null(),
3664 signal_semaphore_values_count: u32::default(),
3665 signal_semaphore_values: ptr::null(),
3666 }
3667 }
3668}
3669
3670#[repr(C)]
3672#[derive(Copy, Clone, Debug, PartialEq)]
3673pub struct DebugMarkerMarkerInfoEXT {
3674 pub s_type: StructureType,
3675 pub next: *const c_void,
3676 pub marker_name: *const c_char,
3677 pub color: [f32; 4],
3678}
3679
3680impl Default for DebugMarkerMarkerInfoEXT {
3681 #[inline]
3682 fn default() -> Self {
3683 Self {
3684 s_type: StructureType::DEBUG_MARKER_MARKER_INFO_EXT,
3685 next: ptr::null(),
3686 marker_name: ptr::null(),
3687 color: [f32::default(); 4],
3688 }
3689 }
3690}
3691
3692#[repr(C)]
3694#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3695pub struct DebugMarkerObjectNameInfoEXT {
3696 pub s_type: StructureType,
3697 pub next: *const c_void,
3698 pub object_type: DebugReportObjectTypeEXT,
3699 pub object: u64,
3700 pub object_name: *const c_char,
3701}
3702
3703impl Default for DebugMarkerObjectNameInfoEXT {
3704 #[inline]
3705 fn default() -> Self {
3706 Self {
3707 s_type: StructureType::DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
3708 next: ptr::null(),
3709 object_type: DebugReportObjectTypeEXT::default(),
3710 object: u64::default(),
3711 object_name: ptr::null(),
3712 }
3713 }
3714}
3715
3716#[repr(C)]
3718#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3719pub struct DebugMarkerObjectTagInfoEXT {
3720 pub s_type: StructureType,
3721 pub next: *const c_void,
3722 pub object_type: DebugReportObjectTypeEXT,
3723 pub object: u64,
3724 pub tag_name: u64,
3725 pub tag_size: usize,
3726 pub tag: *const c_void,
3727}
3728
3729impl Default for DebugMarkerObjectTagInfoEXT {
3730 #[inline]
3731 fn default() -> Self {
3732 Self {
3733 s_type: StructureType::DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
3734 next: ptr::null(),
3735 object_type: DebugReportObjectTypeEXT::default(),
3736 object: u64::default(),
3737 tag_name: u64::default(),
3738 tag_size: usize::default(),
3739 tag: ptr::null(),
3740 }
3741 }
3742}
3743
3744#[repr(C)]
3746#[derive(Copy, Clone)]
3747pub struct DebugReportCallbackCreateInfoEXT {
3748 pub s_type: StructureType,
3749 pub next: *const c_void,
3750 pub flags: DebugReportFlagsEXT,
3751 pub callback: PFN_vkDebugReportCallbackEXT,
3752 pub user_data: *mut c_void,
3753}
3754
3755impl fmt::Debug for DebugReportCallbackCreateInfoEXT {
3756 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3757 f.debug_struct("DebugReportCallbackCreateInfoEXT")
3758 .field("s_type", &self.s_type)
3759 .field("next", &self.next)
3760 .field("flags", &self.flags)
3761 .field("callback", &(self.callback.map(|f| f as *const u8)))
3762 .field("user_data", &self.user_data)
3763 .finish()
3764 }
3765}
3766
3767impl Default for DebugReportCallbackCreateInfoEXT {
3768 #[inline]
3769 fn default() -> Self {
3770 Self {
3771 s_type: StructureType::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
3772 next: ptr::null(),
3773 flags: DebugReportFlagsEXT::default(),
3774 callback: PFN_vkDebugReportCallbackEXT::default(),
3775 user_data: ptr::null_mut(),
3776 }
3777 }
3778}
3779
3780#[repr(C)]
3782#[derive(Copy, Clone, Debug, PartialEq)]
3783pub struct DebugUtilsLabelEXT {
3784 pub s_type: StructureType,
3785 pub next: *const c_void,
3786 pub label_name: *const c_char,
3787 pub color: [f32; 4],
3788}
3789
3790impl Default for DebugUtilsLabelEXT {
3791 #[inline]
3792 fn default() -> Self {
3793 Self {
3794 s_type: StructureType::DEBUG_UTILS_LABEL_EXT,
3795 next: ptr::null(),
3796 label_name: ptr::null(),
3797 color: [f32::default(); 4],
3798 }
3799 }
3800}
3801
3802#[repr(C)]
3804#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3805pub struct DebugUtilsMessengerCallbackDataEXT {
3806 pub s_type: StructureType,
3807 pub next: *const c_void,
3808 pub flags: DebugUtilsMessengerCallbackDataFlagsEXT,
3809 pub message_id_name: *const c_char,
3810 pub message_id_number: i32,
3811 pub message: *const c_char,
3812 pub queue_label_count: u32,
3813 pub queue_labels: *const DebugUtilsLabelEXT,
3814 pub cmd_buf_label_count: u32,
3815 pub cmd_buf_labels: *const DebugUtilsLabelEXT,
3816 pub object_count: u32,
3817 pub objects: *const DebugUtilsObjectNameInfoEXT,
3818}
3819
3820impl Default for DebugUtilsMessengerCallbackDataEXT {
3821 #[inline]
3822 fn default() -> Self {
3823 Self {
3824 s_type: StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
3825 next: ptr::null(),
3826 flags: DebugUtilsMessengerCallbackDataFlagsEXT::default(),
3827 message_id_name: ptr::null(),
3828 message_id_number: i32::default(),
3829 message: ptr::null(),
3830 queue_label_count: u32::default(),
3831 queue_labels: ptr::null(),
3832 cmd_buf_label_count: u32::default(),
3833 cmd_buf_labels: ptr::null(),
3834 object_count: u32::default(),
3835 objects: ptr::null(),
3836 }
3837 }
3838}
3839
3840#[repr(C)]
3842#[derive(Copy, Clone)]
3843pub struct DebugUtilsMessengerCreateInfoEXT {
3844 pub s_type: StructureType,
3845 pub next: *const c_void,
3846 pub flags: DebugUtilsMessengerCreateFlagsEXT,
3847 pub message_severity: DebugUtilsMessageSeverityFlagsEXT,
3848 pub message_type: DebugUtilsMessageTypeFlagsEXT,
3849 pub user_callback: PFN_vkDebugUtilsMessengerCallbackEXT,
3850 pub user_data: *mut c_void,
3851}
3852
3853impl fmt::Debug for DebugUtilsMessengerCreateInfoEXT {
3854 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3855 f.debug_struct("DebugUtilsMessengerCreateInfoEXT")
3856 .field("s_type", &self.s_type)
3857 .field("next", &self.next)
3858 .field("flags", &self.flags)
3859 .field("message_severity", &self.message_severity)
3860 .field("message_type", &self.message_type)
3861 .field(
3862 "user_callback",
3863 &(self.user_callback.map(|f| f as *const u8)),
3864 )
3865 .field("user_data", &self.user_data)
3866 .finish()
3867 }
3868}
3869
3870impl Default for DebugUtilsMessengerCreateInfoEXT {
3871 #[inline]
3872 fn default() -> Self {
3873 Self {
3874 s_type: StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
3875 next: ptr::null(),
3876 flags: DebugUtilsMessengerCreateFlagsEXT::default(),
3877 message_severity: DebugUtilsMessageSeverityFlagsEXT::default(),
3878 message_type: DebugUtilsMessageTypeFlagsEXT::default(),
3879 user_callback: PFN_vkDebugUtilsMessengerCallbackEXT::default(),
3880 user_data: ptr::null_mut(),
3881 }
3882 }
3883}
3884
3885#[repr(C)]
3887#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3888pub struct DebugUtilsObjectNameInfoEXT {
3889 pub s_type: StructureType,
3890 pub next: *const c_void,
3891 pub object_type: ObjectType,
3892 pub object_handle: u64,
3893 pub object_name: *const c_char,
3894}
3895
3896impl Default for DebugUtilsObjectNameInfoEXT {
3897 #[inline]
3898 fn default() -> Self {
3899 Self {
3900 s_type: StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
3901 next: ptr::null(),
3902 object_type: ObjectType::default(),
3903 object_handle: u64::default(),
3904 object_name: ptr::null(),
3905 }
3906 }
3907}
3908
3909#[repr(C)]
3911#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3912pub struct DebugUtilsObjectTagInfoEXT {
3913 pub s_type: StructureType,
3914 pub next: *const c_void,
3915 pub object_type: ObjectType,
3916 pub object_handle: u64,
3917 pub tag_name: u64,
3918 pub tag_size: usize,
3919 pub tag: *const c_void,
3920}
3921
3922impl Default for DebugUtilsObjectTagInfoEXT {
3923 #[inline]
3924 fn default() -> Self {
3925 Self {
3926 s_type: StructureType::DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
3927 next: ptr::null(),
3928 object_type: ObjectType::default(),
3929 object_handle: u64::default(),
3930 tag_name: u64::default(),
3931 tag_size: usize::default(),
3932 tag: ptr::null(),
3933 }
3934 }
3935}
3936
3937#[repr(C)]
3939#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
3940pub struct DecompressMemoryRegionNV {
3941 pub src_address: DeviceAddress,
3942 pub dst_address: DeviceAddress,
3943 pub compressed_size: DeviceSize,
3944 pub decompressed_size: DeviceSize,
3945 pub decompression_method: MemoryDecompressionMethodFlagsNV,
3946}
3947
3948#[repr(C)]
3950#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3951pub struct DedicatedAllocationBufferCreateInfoNV {
3952 pub s_type: StructureType,
3953 pub next: *const c_void,
3954 pub dedicated_allocation: Bool32,
3955}
3956
3957impl Default for DedicatedAllocationBufferCreateInfoNV {
3958 #[inline]
3959 fn default() -> Self {
3960 Self {
3961 s_type: StructureType::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
3962 next: ptr::null(),
3963 dedicated_allocation: Bool32::default(),
3964 }
3965 }
3966}
3967
3968#[repr(C)]
3970#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3971pub struct DedicatedAllocationImageCreateInfoNV {
3972 pub s_type: StructureType,
3973 pub next: *const c_void,
3974 pub dedicated_allocation: Bool32,
3975}
3976
3977impl Default for DedicatedAllocationImageCreateInfoNV {
3978 #[inline]
3979 fn default() -> Self {
3980 Self {
3981 s_type: StructureType::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
3982 next: ptr::null(),
3983 dedicated_allocation: Bool32::default(),
3984 }
3985 }
3986}
3987
3988#[repr(C)]
3990#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
3991pub struct DedicatedAllocationMemoryAllocateInfoNV {
3992 pub s_type: StructureType,
3993 pub next: *const c_void,
3994 pub image: Image,
3995 pub buffer: Buffer,
3996}
3997
3998impl Default for DedicatedAllocationMemoryAllocateInfoNV {
3999 #[inline]
4000 fn default() -> Self {
4001 Self {
4002 s_type: StructureType::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
4003 next: ptr::null(),
4004 image: Image::default(),
4005 buffer: Buffer::default(),
4006 }
4007 }
4008}
4009
4010#[repr(C)]
4012#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4013pub struct DependencyInfo {
4014 pub s_type: StructureType,
4015 pub next: *const c_void,
4016 pub dependency_flags: DependencyFlags,
4017 pub memory_barrier_count: u32,
4018 pub memory_barriers: *const MemoryBarrier2,
4019 pub buffer_memory_barrier_count: u32,
4020 pub buffer_memory_barriers: *const BufferMemoryBarrier2,
4021 pub image_memory_barrier_count: u32,
4022 pub image_memory_barriers: *const ImageMemoryBarrier2,
4023}
4024
4025impl Default for DependencyInfo {
4026 #[inline]
4027 fn default() -> Self {
4028 Self {
4029 s_type: StructureType::DEPENDENCY_INFO,
4030 next: ptr::null(),
4031 dependency_flags: DependencyFlags::default(),
4032 memory_barrier_count: u32::default(),
4033 memory_barriers: ptr::null(),
4034 buffer_memory_barrier_count: u32::default(),
4035 buffer_memory_barriers: ptr::null(),
4036 image_memory_barrier_count: u32::default(),
4037 image_memory_barriers: ptr::null(),
4038 }
4039 }
4040}
4041
4042#[repr(C)]
4044#[derive(Copy, Clone, Debug, PartialEq)]
4045pub struct DepthBiasInfoEXT {
4046 pub s_type: StructureType,
4047 pub next: *const c_void,
4048 pub depth_bias_constant_factor: f32,
4049 pub depth_bias_clamp: f32,
4050 pub depth_bias_slope_factor: f32,
4051}
4052
4053impl Default for DepthBiasInfoEXT {
4054 #[inline]
4055 fn default() -> Self {
4056 Self {
4057 s_type: StructureType::DEPTH_BIAS_INFO_EXT,
4058 next: ptr::null(),
4059 depth_bias_constant_factor: f32::default(),
4060 depth_bias_clamp: f32::default(),
4061 depth_bias_slope_factor: f32::default(),
4062 }
4063 }
4064}
4065
4066#[repr(C)]
4068#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4069pub struct DepthBiasRepresentationInfoEXT {
4070 pub s_type: StructureType,
4071 pub next: *const c_void,
4072 pub depth_bias_representation: DepthBiasRepresentationEXT,
4073 pub depth_bias_exact: Bool32,
4074}
4075
4076impl Default for DepthBiasRepresentationInfoEXT {
4077 #[inline]
4078 fn default() -> Self {
4079 Self {
4080 s_type: StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT,
4081 next: ptr::null(),
4082 depth_bias_representation: DepthBiasRepresentationEXT::default(),
4083 depth_bias_exact: Bool32::default(),
4084 }
4085 }
4086}
4087
4088#[repr(C)]
4090#[derive(Copy, Clone, Default, Debug, PartialEq)]
4091pub struct DepthClampRangeEXT {
4092 pub min_depth_clamp: f32,
4093 pub max_depth_clamp: f32,
4094}
4095
4096#[repr(C)]
4098#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4099pub struct DescriptorAddressInfoEXT {
4100 pub s_type: StructureType,
4101 pub next: *mut c_void,
4102 pub address: DeviceAddress,
4103 pub range: DeviceSize,
4104 pub format: Format,
4105}
4106
4107impl Default for DescriptorAddressInfoEXT {
4108 #[inline]
4109 fn default() -> Self {
4110 Self {
4111 s_type: StructureType::DESCRIPTOR_ADDRESS_INFO_EXT,
4112 next: ptr::null_mut(),
4113 address: DeviceAddress::default(),
4114 range: DeviceSize::default(),
4115 format: Format::default(),
4116 }
4117 }
4118}
4119
4120#[repr(C)]
4122#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4123pub struct DescriptorBufferBindingInfoEXT {
4124 pub s_type: StructureType,
4125 pub next: *const c_void,
4126 pub address: DeviceAddress,
4127 pub usage: BufferUsageFlags,
4128}
4129
4130impl Default for DescriptorBufferBindingInfoEXT {
4131 #[inline]
4132 fn default() -> Self {
4133 Self {
4134 s_type: StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
4135 next: ptr::null(),
4136 address: DeviceAddress::default(),
4137 usage: BufferUsageFlags::default(),
4138 }
4139 }
4140}
4141
4142#[repr(C)]
4144#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4145pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT {
4146 pub s_type: StructureType,
4147 pub next: *const c_void,
4148 pub buffer: Buffer,
4149}
4150
4151impl Default for DescriptorBufferBindingPushDescriptorBufferHandleEXT {
4152 #[inline]
4153 fn default() -> Self {
4154 Self {
4155 s_type: StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT,
4156 next: ptr::null(),
4157 buffer: Buffer::default(),
4158 }
4159 }
4160}
4161
4162#[repr(C)]
4164#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
4165pub struct DescriptorBufferInfo {
4166 pub buffer: Buffer,
4167 pub offset: DeviceSize,
4168 pub range: DeviceSize,
4169}
4170
4171#[repr(C)]
4173#[derive(Copy, Clone, Debug)]
4174pub struct DescriptorGetInfoEXT {
4175 pub s_type: StructureType,
4176 pub next: *const c_void,
4177 pub type_: DescriptorType,
4178 pub data: DescriptorDataEXT,
4179}
4180
4181impl Default for DescriptorGetInfoEXT {
4182 #[inline]
4183 fn default() -> Self {
4184 Self {
4185 s_type: StructureType::DESCRIPTOR_GET_INFO_EXT,
4186 next: ptr::null(),
4187 type_: DescriptorType::default(),
4188 data: DescriptorDataEXT::default(),
4189 }
4190 }
4191}
4192
4193#[repr(C)]
4195#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
4196pub struct DescriptorImageInfo {
4197 pub sampler: Sampler,
4198 pub image_view: ImageView,
4199 pub image_layout: ImageLayout,
4200}
4201
4202#[repr(C)]
4204#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4205pub struct DescriptorPoolCreateInfo {
4206 pub s_type: StructureType,
4207 pub next: *const c_void,
4208 pub flags: DescriptorPoolCreateFlags,
4209 pub max_sets: u32,
4210 pub pool_size_count: u32,
4211 pub pool_sizes: *const DescriptorPoolSize,
4212}
4213
4214impl Default for DescriptorPoolCreateInfo {
4215 #[inline]
4216 fn default() -> Self {
4217 Self {
4218 s_type: StructureType::DESCRIPTOR_POOL_CREATE_INFO,
4219 next: ptr::null(),
4220 flags: DescriptorPoolCreateFlags::default(),
4221 max_sets: u32::default(),
4222 pool_size_count: u32::default(),
4223 pool_sizes: ptr::null(),
4224 }
4225 }
4226}
4227
4228#[repr(C)]
4230#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4231pub struct DescriptorPoolInlineUniformBlockCreateInfo {
4232 pub s_type: StructureType,
4233 pub next: *const c_void,
4234 pub max_inline_uniform_block_bindings: u32,
4235}
4236
4237impl Default for DescriptorPoolInlineUniformBlockCreateInfo {
4238 #[inline]
4239 fn default() -> Self {
4240 Self {
4241 s_type: StructureType::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
4242 next: ptr::null(),
4243 max_inline_uniform_block_bindings: u32::default(),
4244 }
4245 }
4246}
4247
4248#[repr(C)]
4250#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
4251pub struct DescriptorPoolSize {
4252 pub type_: DescriptorType,
4253 pub descriptor_count: u32,
4254}
4255
4256#[repr(C)]
4258#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4259pub struct DescriptorSetAllocateInfo {
4260 pub s_type: StructureType,
4261 pub next: *const c_void,
4262 pub descriptor_pool: DescriptorPool,
4263 pub descriptor_set_count: u32,
4264 pub set_layouts: *const DescriptorSetLayout,
4265}
4266
4267impl Default for DescriptorSetAllocateInfo {
4268 #[inline]
4269 fn default() -> Self {
4270 Self {
4271 s_type: StructureType::DESCRIPTOR_SET_ALLOCATE_INFO,
4272 next: ptr::null(),
4273 descriptor_pool: DescriptorPool::default(),
4274 descriptor_set_count: u32::default(),
4275 set_layouts: ptr::null(),
4276 }
4277 }
4278}
4279
4280#[repr(C)]
4282#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4283pub struct DescriptorSetBindingReferenceVALVE {
4284 pub s_type: StructureType,
4285 pub next: *const c_void,
4286 pub descriptor_set_layout: DescriptorSetLayout,
4287 pub binding: u32,
4288}
4289
4290impl Default for DescriptorSetBindingReferenceVALVE {
4291 #[inline]
4292 fn default() -> Self {
4293 Self {
4294 s_type: StructureType::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE,
4295 next: ptr::null(),
4296 descriptor_set_layout: DescriptorSetLayout::default(),
4297 binding: u32::default(),
4298 }
4299 }
4300}
4301
4302#[repr(C)]
4304#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4305pub struct DescriptorSetLayoutBinding {
4306 pub binding: u32,
4307 pub descriptor_type: DescriptorType,
4308 pub descriptor_count: u32,
4309 pub stage_flags: ShaderStageFlags,
4310 pub immutable_samplers: *const Sampler,
4311}
4312
4313impl Default for DescriptorSetLayoutBinding {
4314 #[inline]
4315 fn default() -> Self {
4316 Self {
4317 binding: u32::default(),
4318 descriptor_type: DescriptorType::default(),
4319 descriptor_count: u32::default(),
4320 stage_flags: ShaderStageFlags::default(),
4321 immutable_samplers: ptr::null(),
4322 }
4323 }
4324}
4325
4326#[repr(C)]
4328#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4329pub struct DescriptorSetLayoutBindingFlagsCreateInfo {
4330 pub s_type: StructureType,
4331 pub next: *const c_void,
4332 pub binding_count: u32,
4333 pub binding_flags: *const DescriptorBindingFlags,
4334}
4335
4336impl Default for DescriptorSetLayoutBindingFlagsCreateInfo {
4337 #[inline]
4338 fn default() -> Self {
4339 Self {
4340 s_type: StructureType::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
4341 next: ptr::null(),
4342 binding_count: u32::default(),
4343 binding_flags: ptr::null(),
4344 }
4345 }
4346}
4347
4348#[repr(C)]
4350#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4351pub struct DescriptorSetLayoutCreateInfo {
4352 pub s_type: StructureType,
4353 pub next: *const c_void,
4354 pub flags: DescriptorSetLayoutCreateFlags,
4355 pub binding_count: u32,
4356 pub bindings: *const DescriptorSetLayoutBinding,
4357}
4358
4359impl Default for DescriptorSetLayoutCreateInfo {
4360 #[inline]
4361 fn default() -> Self {
4362 Self {
4363 s_type: StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
4364 next: ptr::null(),
4365 flags: DescriptorSetLayoutCreateFlags::default(),
4366 binding_count: u32::default(),
4367 bindings: ptr::null(),
4368 }
4369 }
4370}
4371
4372#[repr(C)]
4374#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4375pub struct DescriptorSetLayoutHostMappingInfoVALVE {
4376 pub s_type: StructureType,
4377 pub next: *mut c_void,
4378 pub descriptor_offset: usize,
4379 pub descriptor_size: u32,
4380}
4381
4382impl Default for DescriptorSetLayoutHostMappingInfoVALVE {
4383 #[inline]
4384 fn default() -> Self {
4385 Self {
4386 s_type: StructureType::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE,
4387 next: ptr::null_mut(),
4388 descriptor_offset: usize::default(),
4389 descriptor_size: u32::default(),
4390 }
4391 }
4392}
4393
4394#[repr(C)]
4396#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4397pub struct DescriptorSetLayoutSupport {
4398 pub s_type: StructureType,
4399 pub next: *mut c_void,
4400 pub supported: Bool32,
4401}
4402
4403impl Default for DescriptorSetLayoutSupport {
4404 #[inline]
4405 fn default() -> Self {
4406 Self {
4407 s_type: StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT,
4408 next: ptr::null_mut(),
4409 supported: Bool32::default(),
4410 }
4411 }
4412}
4413
4414#[repr(C)]
4416#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4417pub struct DescriptorSetVariableDescriptorCountAllocateInfo {
4418 pub s_type: StructureType,
4419 pub next: *const c_void,
4420 pub descriptor_set_count: u32,
4421 pub descriptor_counts: *const u32,
4422}
4423
4424impl Default for DescriptorSetVariableDescriptorCountAllocateInfo {
4425 #[inline]
4426 fn default() -> Self {
4427 Self {
4428 s_type: StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
4429 next: ptr::null(),
4430 descriptor_set_count: u32::default(),
4431 descriptor_counts: ptr::null(),
4432 }
4433 }
4434}
4435
4436#[repr(C)]
4438#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4439pub struct DescriptorSetVariableDescriptorCountLayoutSupport {
4440 pub s_type: StructureType,
4441 pub next: *mut c_void,
4442 pub max_variable_descriptor_count: u32,
4443}
4444
4445impl Default for DescriptorSetVariableDescriptorCountLayoutSupport {
4446 #[inline]
4447 fn default() -> Self {
4448 Self {
4449 s_type: StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
4450 next: ptr::null_mut(),
4451 max_variable_descriptor_count: u32::default(),
4452 }
4453 }
4454}
4455
4456#[repr(C)]
4458#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4459pub struct DescriptorUpdateTemplateCreateInfo {
4460 pub s_type: StructureType,
4461 pub next: *const c_void,
4462 pub flags: DescriptorUpdateTemplateCreateFlags,
4463 pub descriptor_update_entry_count: u32,
4464 pub descriptor_update_entries: *const DescriptorUpdateTemplateEntry,
4465 pub template_type: DescriptorUpdateTemplateType,
4466 pub descriptor_set_layout: DescriptorSetLayout,
4467 pub pipeline_bind_point: PipelineBindPoint,
4468 pub pipeline_layout: PipelineLayout,
4469 pub set: u32,
4470}
4471
4472impl Default for DescriptorUpdateTemplateCreateInfo {
4473 #[inline]
4474 fn default() -> Self {
4475 Self {
4476 s_type: StructureType::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
4477 next: ptr::null(),
4478 flags: DescriptorUpdateTemplateCreateFlags::default(),
4479 descriptor_update_entry_count: u32::default(),
4480 descriptor_update_entries: ptr::null(),
4481 template_type: DescriptorUpdateTemplateType::default(),
4482 descriptor_set_layout: DescriptorSetLayout::default(),
4483 pipeline_bind_point: PipelineBindPoint::default(),
4484 pipeline_layout: PipelineLayout::default(),
4485 set: u32::default(),
4486 }
4487 }
4488}
4489
4490#[repr(C)]
4492#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
4493pub struct DescriptorUpdateTemplateEntry {
4494 pub dst_binding: u32,
4495 pub dst_array_element: u32,
4496 pub descriptor_count: u32,
4497 pub descriptor_type: DescriptorType,
4498 pub offset: usize,
4499 pub stride: usize,
4500}
4501
4502#[repr(C)]
4504#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4505pub struct DeviceAddressBindingCallbackDataEXT {
4506 pub s_type: StructureType,
4507 pub next: *mut c_void,
4508 pub flags: DeviceAddressBindingFlagsEXT,
4509 pub base_address: DeviceAddress,
4510 pub size: DeviceSize,
4511 pub binding_type: DeviceAddressBindingTypeEXT,
4512}
4513
4514impl Default for DeviceAddressBindingCallbackDataEXT {
4515 #[inline]
4516 fn default() -> Self {
4517 Self {
4518 s_type: StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT,
4519 next: ptr::null_mut(),
4520 flags: DeviceAddressBindingFlagsEXT::default(),
4521 base_address: DeviceAddress::default(),
4522 size: DeviceSize::default(),
4523 binding_type: DeviceAddressBindingTypeEXT::default(),
4524 }
4525 }
4526}
4527
4528#[repr(C)]
4530#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4531pub struct DeviceBufferMemoryRequirements {
4532 pub s_type: StructureType,
4533 pub next: *const c_void,
4534 pub create_info: *const BufferCreateInfo,
4535}
4536
4537impl Default for DeviceBufferMemoryRequirements {
4538 #[inline]
4539 fn default() -> Self {
4540 Self {
4541 s_type: StructureType::DEVICE_BUFFER_MEMORY_REQUIREMENTS,
4542 next: ptr::null(),
4543 create_info: ptr::null(),
4544 }
4545 }
4546}
4547
4548#[repr(C)]
4550#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4551pub struct DeviceCreateInfo {
4552 pub s_type: StructureType,
4553 pub next: *const c_void,
4554 pub flags: DeviceCreateFlags,
4555 pub queue_create_info_count: u32,
4556 pub queue_create_infos: *const DeviceQueueCreateInfo,
4557 pub enabled_layer_count: u32,
4558 pub enabled_layer_names: *const *const c_char,
4559 pub enabled_extension_count: u32,
4560 pub enabled_extension_names: *const *const c_char,
4561 pub enabled_features: *const PhysicalDeviceFeatures,
4562}
4563
4564impl Default for DeviceCreateInfo {
4565 #[inline]
4566 fn default() -> Self {
4567 Self {
4568 s_type: StructureType::DEVICE_CREATE_INFO,
4569 next: ptr::null(),
4570 flags: DeviceCreateFlags::default(),
4571 queue_create_info_count: u32::default(),
4572 queue_create_infos: ptr::null(),
4573 enabled_layer_count: u32::default(),
4574 enabled_layer_names: ptr::null(),
4575 enabled_extension_count: u32::default(),
4576 enabled_extension_names: ptr::null(),
4577 enabled_features: ptr::null(),
4578 }
4579 }
4580}
4581
4582#[repr(C)]
4584#[derive(Copy, Clone)]
4585pub struct DeviceDeviceMemoryReportCreateInfoEXT {
4586 pub s_type: StructureType,
4587 pub next: *const c_void,
4588 pub flags: DeviceMemoryReportFlagsEXT,
4589 pub user_callback: PFN_vkDeviceMemoryReportCallbackEXT,
4590 pub user_data: *mut c_void,
4591}
4592
4593impl fmt::Debug for DeviceDeviceMemoryReportCreateInfoEXT {
4594 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4595 f.debug_struct("DeviceDeviceMemoryReportCreateInfoEXT")
4596 .field("s_type", &self.s_type)
4597 .field("next", &self.next)
4598 .field("flags", &self.flags)
4599 .field(
4600 "user_callback",
4601 &(self.user_callback.map(|f| f as *const u8)),
4602 )
4603 .field("user_data", &self.user_data)
4604 .finish()
4605 }
4606}
4607
4608impl Default for DeviceDeviceMemoryReportCreateInfoEXT {
4609 #[inline]
4610 fn default() -> Self {
4611 Self {
4612 s_type: StructureType::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
4613 next: ptr::null(),
4614 flags: DeviceMemoryReportFlagsEXT::default(),
4615 user_callback: PFN_vkDeviceMemoryReportCallbackEXT::default(),
4616 user_data: ptr::null_mut(),
4617 }
4618 }
4619}
4620
4621#[repr(C)]
4623#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4624pub struct DeviceDiagnosticsConfigCreateInfoNV {
4625 pub s_type: StructureType,
4626 pub next: *const c_void,
4627 pub flags: DeviceDiagnosticsConfigFlagsNV,
4628}
4629
4630impl Default for DeviceDiagnosticsConfigCreateInfoNV {
4631 #[inline]
4632 fn default() -> Self {
4633 Self {
4634 s_type: StructureType::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
4635 next: ptr::null(),
4636 flags: DeviceDiagnosticsConfigFlagsNV::default(),
4637 }
4638 }
4639}
4640
4641#[repr(C)]
4643#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4644pub struct DeviceEventInfoEXT {
4645 pub s_type: StructureType,
4646 pub next: *const c_void,
4647 pub device_event: DeviceEventTypeEXT,
4648}
4649
4650impl Default for DeviceEventInfoEXT {
4651 #[inline]
4652 fn default() -> Self {
4653 Self {
4654 s_type: StructureType::DEVICE_EVENT_INFO_EXT,
4655 next: ptr::null(),
4656 device_event: DeviceEventTypeEXT::default(),
4657 }
4658 }
4659}
4660
4661#[repr(C)]
4663#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
4664pub struct DeviceFaultAddressInfoEXT {
4665 pub address_type: DeviceFaultAddressTypeEXT,
4666 pub reported_address: DeviceAddress,
4667 pub address_precision: DeviceSize,
4668}
4669
4670#[repr(C)]
4672#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4673pub struct DeviceFaultCountsEXT {
4674 pub s_type: StructureType,
4675 pub next: *mut c_void,
4676 pub address_info_count: u32,
4677 pub vendor_info_count: u32,
4678 pub vendor_binary_size: DeviceSize,
4679}
4680
4681impl Default for DeviceFaultCountsEXT {
4682 #[inline]
4683 fn default() -> Self {
4684 Self {
4685 s_type: StructureType::DEVICE_FAULT_COUNTS_EXT,
4686 next: ptr::null_mut(),
4687 address_info_count: u32::default(),
4688 vendor_info_count: u32::default(),
4689 vendor_binary_size: DeviceSize::default(),
4690 }
4691 }
4692}
4693
4694#[repr(C)]
4696#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4697pub struct DeviceFaultInfoEXT {
4698 pub s_type: StructureType,
4699 pub next: *mut c_void,
4700 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
4701 pub address_infos: *mut DeviceFaultAddressInfoEXT,
4702 pub vendor_infos: *mut DeviceFaultVendorInfoEXT,
4703 pub vendor_binary_data: *mut c_void,
4704}
4705
4706impl Default for DeviceFaultInfoEXT {
4707 #[inline]
4708 fn default() -> Self {
4709 Self {
4710 s_type: StructureType::DEVICE_FAULT_INFO_EXT,
4711 next: ptr::null_mut(),
4712 description: StringArray::default(),
4713 address_infos: ptr::null_mut(),
4714 vendor_infos: ptr::null_mut(),
4715 vendor_binary_data: ptr::null_mut(),
4716 }
4717 }
4718}
4719
4720#[repr(C)]
4722#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
4723pub struct DeviceFaultVendorBinaryHeaderVersionOneEXT {
4724 pub header_size: u32,
4725 pub header_version: DeviceFaultVendorBinaryHeaderVersionEXT,
4726 pub vendor_id: u32,
4727 pub device_id: u32,
4728 pub driver_version: u32,
4729 pub pipeline_cache_uuid: ByteArray<UUID_SIZE>,
4730 pub application_name_offset: u32,
4731 pub application_version: u32,
4732 pub engine_name_offset: u32,
4733 pub engine_version: u32,
4734 pub api_version: u32,
4735}
4736
4737#[repr(C)]
4739#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
4740pub struct DeviceFaultVendorInfoEXT {
4741 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
4742 pub vendor_fault_code: u64,
4743 pub vendor_fault_data: u64,
4744}
4745
4746#[repr(C)]
4748#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4749pub struct DeviceGroupBindSparseInfo {
4750 pub s_type: StructureType,
4751 pub next: *const c_void,
4752 pub resource_device_index: u32,
4753 pub memory_device_index: u32,
4754}
4755
4756impl Default for DeviceGroupBindSparseInfo {
4757 #[inline]
4758 fn default() -> Self {
4759 Self {
4760 s_type: StructureType::DEVICE_GROUP_BIND_SPARSE_INFO,
4761 next: ptr::null(),
4762 resource_device_index: u32::default(),
4763 memory_device_index: u32::default(),
4764 }
4765 }
4766}
4767
4768#[repr(C)]
4770#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4771pub struct DeviceGroupCommandBufferBeginInfo {
4772 pub s_type: StructureType,
4773 pub next: *const c_void,
4774 pub device_mask: u32,
4775}
4776
4777impl Default for DeviceGroupCommandBufferBeginInfo {
4778 #[inline]
4779 fn default() -> Self {
4780 Self {
4781 s_type: StructureType::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
4782 next: ptr::null(),
4783 device_mask: u32::default(),
4784 }
4785 }
4786}
4787
4788#[repr(C)]
4790#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4791pub struct DeviceGroupDeviceCreateInfo {
4792 pub s_type: StructureType,
4793 pub next: *const c_void,
4794 pub physical_device_count: u32,
4795 pub physical_devices: *const PhysicalDevice,
4796}
4797
4798impl Default for DeviceGroupDeviceCreateInfo {
4799 #[inline]
4800 fn default() -> Self {
4801 Self {
4802 s_type: StructureType::DEVICE_GROUP_DEVICE_CREATE_INFO,
4803 next: ptr::null(),
4804 physical_device_count: u32::default(),
4805 physical_devices: ptr::null(),
4806 }
4807 }
4808}
4809
4810#[repr(C)]
4812#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4813pub struct DeviceGroupPresentCapabilitiesKHR {
4814 pub s_type: StructureType,
4815 pub next: *mut c_void,
4816 pub present_mask: [u32; MAX_DEVICE_GROUP_SIZE],
4817 pub modes: DeviceGroupPresentModeFlagsKHR,
4818}
4819
4820impl Default for DeviceGroupPresentCapabilitiesKHR {
4821 #[inline]
4822 fn default() -> Self {
4823 Self {
4824 s_type: StructureType::DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
4825 next: ptr::null_mut(),
4826 present_mask: [u32::default(); MAX_DEVICE_GROUP_SIZE],
4827 modes: DeviceGroupPresentModeFlagsKHR::default(),
4828 }
4829 }
4830}
4831
4832#[repr(C)]
4834#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4835pub struct DeviceGroupPresentInfoKHR {
4836 pub s_type: StructureType,
4837 pub next: *const c_void,
4838 pub swapchain_count: u32,
4839 pub device_masks: *const u32,
4840 pub mode: DeviceGroupPresentModeFlagsKHR,
4841}
4842
4843impl Default for DeviceGroupPresentInfoKHR {
4844 #[inline]
4845 fn default() -> Self {
4846 Self {
4847 s_type: StructureType::DEVICE_GROUP_PRESENT_INFO_KHR,
4848 next: ptr::null(),
4849 swapchain_count: u32::default(),
4850 device_masks: ptr::null(),
4851 mode: DeviceGroupPresentModeFlagsKHR::default(),
4852 }
4853 }
4854}
4855
4856#[repr(C)]
4858#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4859pub struct DeviceGroupRenderPassBeginInfo {
4860 pub s_type: StructureType,
4861 pub next: *const c_void,
4862 pub device_mask: u32,
4863 pub device_render_area_count: u32,
4864 pub device_render_areas: *const Rect2D,
4865}
4866
4867impl Default for DeviceGroupRenderPassBeginInfo {
4868 #[inline]
4869 fn default() -> Self {
4870 Self {
4871 s_type: StructureType::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
4872 next: ptr::null(),
4873 device_mask: u32::default(),
4874 device_render_area_count: u32::default(),
4875 device_render_areas: ptr::null(),
4876 }
4877 }
4878}
4879
4880#[repr(C)]
4882#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4883pub struct DeviceGroupSubmitInfo {
4884 pub s_type: StructureType,
4885 pub next: *const c_void,
4886 pub wait_semaphore_count: u32,
4887 pub wait_semaphore_device_indices: *const u32,
4888 pub command_buffer_count: u32,
4889 pub command_buffer_device_masks: *const u32,
4890 pub signal_semaphore_count: u32,
4891 pub signal_semaphore_device_indices: *const u32,
4892}
4893
4894impl Default for DeviceGroupSubmitInfo {
4895 #[inline]
4896 fn default() -> Self {
4897 Self {
4898 s_type: StructureType::DEVICE_GROUP_SUBMIT_INFO,
4899 next: ptr::null(),
4900 wait_semaphore_count: u32::default(),
4901 wait_semaphore_device_indices: ptr::null(),
4902 command_buffer_count: u32::default(),
4903 command_buffer_device_masks: ptr::null(),
4904 signal_semaphore_count: u32::default(),
4905 signal_semaphore_device_indices: ptr::null(),
4906 }
4907 }
4908}
4909
4910#[repr(C)]
4912#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4913pub struct DeviceGroupSwapchainCreateInfoKHR {
4914 pub s_type: StructureType,
4915 pub next: *const c_void,
4916 pub modes: DeviceGroupPresentModeFlagsKHR,
4917}
4918
4919impl Default for DeviceGroupSwapchainCreateInfoKHR {
4920 #[inline]
4921 fn default() -> Self {
4922 Self {
4923 s_type: StructureType::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
4924 next: ptr::null(),
4925 modes: DeviceGroupPresentModeFlagsKHR::default(),
4926 }
4927 }
4928}
4929
4930#[repr(C)]
4932#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4933pub struct DeviceImageMemoryRequirements {
4934 pub s_type: StructureType,
4935 pub next: *const c_void,
4936 pub create_info: *const ImageCreateInfo,
4937 pub plane_aspect: ImageAspectFlags,
4938}
4939
4940impl Default for DeviceImageMemoryRequirements {
4941 #[inline]
4942 fn default() -> Self {
4943 Self {
4944 s_type: StructureType::DEVICE_IMAGE_MEMORY_REQUIREMENTS,
4945 next: ptr::null(),
4946 create_info: ptr::null(),
4947 plane_aspect: ImageAspectFlags::default(),
4948 }
4949 }
4950}
4951
4952#[repr(C)]
4954#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4955pub struct DeviceImageSubresourceInfo {
4956 pub s_type: StructureType,
4957 pub next: *const c_void,
4958 pub create_info: *const ImageCreateInfo,
4959 pub subresource: *const ImageSubresource2,
4960}
4961
4962impl Default for DeviceImageSubresourceInfo {
4963 #[inline]
4964 fn default() -> Self {
4965 Self {
4966 s_type: StructureType::DEVICE_IMAGE_SUBRESOURCE_INFO,
4967 next: ptr::null(),
4968 create_info: ptr::null(),
4969 subresource: ptr::null(),
4970 }
4971 }
4972}
4973
4974#[repr(C)]
4976#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4977pub struct DeviceMemoryOpaqueCaptureAddressInfo {
4978 pub s_type: StructureType,
4979 pub next: *const c_void,
4980 pub memory: DeviceMemory,
4981}
4982
4983impl Default for DeviceMemoryOpaqueCaptureAddressInfo {
4984 #[inline]
4985 fn default() -> Self {
4986 Self {
4987 s_type: StructureType::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
4988 next: ptr::null(),
4989 memory: DeviceMemory::default(),
4990 }
4991 }
4992}
4993
4994#[repr(C)]
4996#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
4997pub struct DeviceMemoryOverallocationCreateInfoAMD {
4998 pub s_type: StructureType,
4999 pub next: *const c_void,
5000 pub overallocation_behavior: MemoryOverallocationBehaviorAMD,
5001}
5002
5003impl Default for DeviceMemoryOverallocationCreateInfoAMD {
5004 #[inline]
5005 fn default() -> Self {
5006 Self {
5007 s_type: StructureType::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
5008 next: ptr::null(),
5009 overallocation_behavior: MemoryOverallocationBehaviorAMD::default(),
5010 }
5011 }
5012}
5013
5014#[repr(C)]
5016#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5017pub struct DeviceMemoryReportCallbackDataEXT {
5018 pub s_type: StructureType,
5019 pub next: *mut c_void,
5020 pub flags: DeviceMemoryReportFlagsEXT,
5021 pub type_: DeviceMemoryReportEventTypeEXT,
5022 pub memory_object_id: u64,
5023 pub size: DeviceSize,
5024 pub object_type: ObjectType,
5025 pub object_handle: u64,
5026 pub heap_index: u32,
5027}
5028
5029impl Default for DeviceMemoryReportCallbackDataEXT {
5030 #[inline]
5031 fn default() -> Self {
5032 Self {
5033 s_type: StructureType::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
5034 next: ptr::null_mut(),
5035 flags: DeviceMemoryReportFlagsEXT::default(),
5036 type_: DeviceMemoryReportEventTypeEXT::default(),
5037 memory_object_id: u64::default(),
5038 size: DeviceSize::default(),
5039 object_type: ObjectType::default(),
5040 object_handle: u64::default(),
5041 heap_index: u32::default(),
5042 }
5043 }
5044}
5045
5046#[repr(C)]
5048#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5049pub struct DevicePipelineBinaryInternalCacheControlKHR {
5050 pub s_type: StructureType,
5051 pub next: *const c_void,
5052 pub disable_internal_cache: Bool32,
5053}
5054
5055impl Default for DevicePipelineBinaryInternalCacheControlKHR {
5056 #[inline]
5057 fn default() -> Self {
5058 Self {
5059 s_type: StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR,
5060 next: ptr::null(),
5061 disable_internal_cache: Bool32::default(),
5062 }
5063 }
5064}
5065
5066#[repr(C)]
5068#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5069pub struct DevicePrivateDataCreateInfo {
5070 pub s_type: StructureType,
5071 pub next: *const c_void,
5072 pub private_data_slot_request_count: u32,
5073}
5074
5075impl Default for DevicePrivateDataCreateInfo {
5076 #[inline]
5077 fn default() -> Self {
5078 Self {
5079 s_type: StructureType::DEVICE_PRIVATE_DATA_CREATE_INFO,
5080 next: ptr::null(),
5081 private_data_slot_request_count: u32::default(),
5082 }
5083 }
5084}
5085
5086#[repr(C)]
5088#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5089pub struct DeviceQueueCreateInfo {
5090 pub s_type: StructureType,
5091 pub next: *const c_void,
5092 pub flags: DeviceQueueCreateFlags,
5093 pub queue_family_index: u32,
5094 pub queue_count: u32,
5095 pub queue_priorities: *const f32,
5096}
5097
5098impl Default for DeviceQueueCreateInfo {
5099 #[inline]
5100 fn default() -> Self {
5101 Self {
5102 s_type: StructureType::DEVICE_QUEUE_CREATE_INFO,
5103 next: ptr::null(),
5104 flags: DeviceQueueCreateFlags::default(),
5105 queue_family_index: u32::default(),
5106 queue_count: u32::default(),
5107 queue_priorities: ptr::null(),
5108 }
5109 }
5110}
5111
5112#[repr(C)]
5114#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5115pub struct DeviceQueueGlobalPriorityCreateInfo {
5116 pub s_type: StructureType,
5117 pub next: *const c_void,
5118 pub global_priority: QueueGlobalPriority,
5119}
5120
5121impl Default for DeviceQueueGlobalPriorityCreateInfo {
5122 #[inline]
5123 fn default() -> Self {
5124 Self {
5125 s_type: StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
5126 next: ptr::null(),
5127 global_priority: QueueGlobalPriority::default(),
5128 }
5129 }
5130}
5131
5132#[repr(C)]
5134#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5135pub struct DeviceQueueInfo2 {
5136 pub s_type: StructureType,
5137 pub next: *const c_void,
5138 pub flags: DeviceQueueCreateFlags,
5139 pub queue_family_index: u32,
5140 pub queue_index: u32,
5141}
5142
5143impl Default for DeviceQueueInfo2 {
5144 #[inline]
5145 fn default() -> Self {
5146 Self {
5147 s_type: StructureType::DEVICE_QUEUE_INFO_2,
5148 next: ptr::null(),
5149 flags: DeviceQueueCreateFlags::default(),
5150 queue_family_index: u32::default(),
5151 queue_index: u32::default(),
5152 }
5153 }
5154}
5155
5156#[repr(C)]
5158#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5159pub struct DeviceQueueShaderCoreControlCreateInfoARM {
5160 pub s_type: StructureType,
5161 pub next: *mut c_void,
5162 pub shader_core_count: u32,
5163}
5164
5165impl Default for DeviceQueueShaderCoreControlCreateInfoARM {
5166 #[inline]
5167 fn default() -> Self {
5168 Self {
5169 s_type: StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM,
5170 next: ptr::null_mut(),
5171 shader_core_count: u32::default(),
5172 }
5173 }
5174}
5175
5176#[repr(C)]
5178#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5179pub struct DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
5180 pub s_type: StructureType,
5181 pub next: *const c_void,
5182 pub semaphore_sci_sync_pool_request_count: u32,
5183}
5184
5185impl Default for DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
5186 #[inline]
5187 fn default() -> Self {
5188 Self {
5189 s_type: StructureType::DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV,
5190 next: ptr::null(),
5191 semaphore_sci_sync_pool_request_count: u32::default(),
5192 }
5193 }
5194}
5195
5196#[repr(C)]
5198#[derive(Copy, Clone)]
5199pub struct DirectDriverLoadingInfoLUNARG {
5200 pub s_type: StructureType,
5201 pub next: *mut c_void,
5202 pub flags: DirectDriverLoadingFlagsLUNARG,
5203 pub get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG,
5204}
5205
5206impl fmt::Debug for DirectDriverLoadingInfoLUNARG {
5207 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5208 f.debug_struct("DirectDriverLoadingInfoLUNARG")
5209 .field("s_type", &self.s_type)
5210 .field("next", &self.next)
5211 .field("flags", &self.flags)
5212 .field(
5213 "get_instance_proc_addr",
5214 &(self.get_instance_proc_addr.map(|f| f as *const u8)),
5215 )
5216 .finish()
5217 }
5218}
5219
5220impl Default for DirectDriverLoadingInfoLUNARG {
5221 #[inline]
5222 fn default() -> Self {
5223 Self {
5224 s_type: StructureType::DIRECT_DRIVER_LOADING_INFO_LUNARG,
5225 next: ptr::null_mut(),
5226 flags: DirectDriverLoadingFlagsLUNARG::default(),
5227 get_instance_proc_addr: PFN_vkGetInstanceProcAddrLUNARG::default(),
5228 }
5229 }
5230}
5231
5232#[repr(C)]
5234#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5235pub struct DirectDriverLoadingListLUNARG {
5236 pub s_type: StructureType,
5237 pub next: *const c_void,
5238 pub mode: DirectDriverLoadingModeLUNARG,
5239 pub driver_count: u32,
5240 pub drivers: *const DirectDriverLoadingInfoLUNARG,
5241}
5242
5243impl Default for DirectDriverLoadingListLUNARG {
5244 #[inline]
5245 fn default() -> Self {
5246 Self {
5247 s_type: StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG,
5248 next: ptr::null(),
5249 mode: DirectDriverLoadingModeLUNARG::default(),
5250 driver_count: u32::default(),
5251 drivers: ptr::null(),
5252 }
5253 }
5254}
5255
5256#[repr(C)]
5258#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5259pub struct DirectFBSurfaceCreateInfoEXT {
5260 pub s_type: StructureType,
5261 pub next: *const c_void,
5262 pub flags: DirectFBSurfaceCreateFlagsEXT,
5263 pub dfb: *mut IDirectFB,
5264 pub surface: *mut IDirectFBSurface,
5265}
5266
5267impl Default for DirectFBSurfaceCreateInfoEXT {
5268 #[inline]
5269 fn default() -> Self {
5270 Self {
5271 s_type: StructureType::DIRECTFB_SURFACE_CREATE_INFO_EXT,
5272 next: ptr::null(),
5273 flags: DirectFBSurfaceCreateFlagsEXT::default(),
5274 dfb: ptr::null_mut(),
5275 surface: ptr::null_mut(),
5276 }
5277 }
5278}
5279
5280#[repr(C)]
5282#[derive(Copy, Clone, Default, Debug)]
5283pub struct DispatchGraphCountInfoAMDX {
5284 pub count: u32,
5285 pub infos: DeviceOrHostAddressConstAMDX,
5286 pub stride: u64,
5287}
5288
5289#[repr(C)]
5291#[derive(Copy, Clone, Default, Debug)]
5292pub struct DispatchGraphInfoAMDX {
5293 pub node_index: u32,
5294 pub payload_count: u32,
5295 pub payloads: DeviceOrHostAddressConstAMDX,
5296 pub payload_stride: u64,
5297}
5298
5299#[repr(C)]
5301#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5302pub struct DispatchIndirectCommand {
5303 pub x: u32,
5304 pub y: u32,
5305 pub z: u32,
5306}
5307
5308#[repr(C)]
5310#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5311pub struct DisplayEventInfoEXT {
5312 pub s_type: StructureType,
5313 pub next: *const c_void,
5314 pub display_event: DisplayEventTypeEXT,
5315}
5316
5317impl Default for DisplayEventInfoEXT {
5318 #[inline]
5319 fn default() -> Self {
5320 Self {
5321 s_type: StructureType::DISPLAY_EVENT_INFO_EXT,
5322 next: ptr::null(),
5323 display_event: DisplayEventTypeEXT::default(),
5324 }
5325 }
5326}
5327
5328#[repr(C)]
5330#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5331pub struct DisplayModeCreateInfoKHR {
5332 pub s_type: StructureType,
5333 pub next: *const c_void,
5334 pub flags: DisplayModeCreateFlagsKHR,
5335 pub parameters: DisplayModeParametersKHR,
5336}
5337
5338impl Default for DisplayModeCreateInfoKHR {
5339 #[inline]
5340 fn default() -> Self {
5341 Self {
5342 s_type: StructureType::DISPLAY_MODE_CREATE_INFO_KHR,
5343 next: ptr::null(),
5344 flags: DisplayModeCreateFlagsKHR::default(),
5345 parameters: DisplayModeParametersKHR::default(),
5346 }
5347 }
5348}
5349
5350#[repr(C)]
5352#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5353pub struct DisplayModeParametersKHR {
5354 pub visible_region: Extent2D,
5355 pub refresh_rate: u32,
5356}
5357
5358#[repr(C)]
5360#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5361pub struct DisplayModeProperties2KHR {
5362 pub s_type: StructureType,
5363 pub next: *mut c_void,
5364 pub display_mode_properties: DisplayModePropertiesKHR,
5365}
5366
5367impl Default for DisplayModeProperties2KHR {
5368 #[inline]
5369 fn default() -> Self {
5370 Self {
5371 s_type: StructureType::DISPLAY_MODE_PROPERTIES_2_KHR,
5372 next: ptr::null_mut(),
5373 display_mode_properties: DisplayModePropertiesKHR::default(),
5374 }
5375 }
5376}
5377
5378#[repr(C)]
5380#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5381pub struct DisplayModePropertiesKHR {
5382 pub display_mode: DisplayModeKHR,
5383 pub parameters: DisplayModeParametersKHR,
5384}
5385
5386#[repr(C)]
5388#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5389pub struct DisplayModeStereoPropertiesNV {
5390 pub s_type: StructureType,
5391 pub next: *const c_void,
5392 pub hdmi_3d_supported: Bool32,
5393}
5394
5395impl Default for DisplayModeStereoPropertiesNV {
5396 #[inline]
5397 fn default() -> Self {
5398 Self {
5399 s_type: StructureType::DISPLAY_MODE_STEREO_PROPERTIES_NV,
5400 next: ptr::null(),
5401 hdmi_3d_supported: Bool32::default(),
5402 }
5403 }
5404}
5405
5406#[repr(C)]
5408#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5409pub struct DisplayNativeHdrSurfaceCapabilitiesAMD {
5410 pub s_type: StructureType,
5411 pub next: *mut c_void,
5412 pub local_dimming_support: Bool32,
5413}
5414
5415impl Default for DisplayNativeHdrSurfaceCapabilitiesAMD {
5416 #[inline]
5417 fn default() -> Self {
5418 Self {
5419 s_type: StructureType::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
5420 next: ptr::null_mut(),
5421 local_dimming_support: Bool32::default(),
5422 }
5423 }
5424}
5425
5426#[repr(C)]
5428#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5429pub struct DisplayPlaneCapabilities2KHR {
5430 pub s_type: StructureType,
5431 pub next: *mut c_void,
5432 pub capabilities: DisplayPlaneCapabilitiesKHR,
5433}
5434
5435impl Default for DisplayPlaneCapabilities2KHR {
5436 #[inline]
5437 fn default() -> Self {
5438 Self {
5439 s_type: StructureType::DISPLAY_PLANE_CAPABILITIES_2_KHR,
5440 next: ptr::null_mut(),
5441 capabilities: DisplayPlaneCapabilitiesKHR::default(),
5442 }
5443 }
5444}
5445
5446#[repr(C)]
5448#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5449pub struct DisplayPlaneCapabilitiesKHR {
5450 pub supported_alpha: DisplayPlaneAlphaFlagsKHR,
5451 pub min_src_position: Offset2D,
5452 pub max_src_position: Offset2D,
5453 pub min_src_extent: Extent2D,
5454 pub max_src_extent: Extent2D,
5455 pub min_dst_position: Offset2D,
5456 pub max_dst_position: Offset2D,
5457 pub min_dst_extent: Extent2D,
5458 pub max_dst_extent: Extent2D,
5459}
5460
5461#[repr(C)]
5463#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5464pub struct DisplayPlaneInfo2KHR {
5465 pub s_type: StructureType,
5466 pub next: *const c_void,
5467 pub mode: DisplayModeKHR,
5468 pub plane_index: u32,
5469}
5470
5471impl Default for DisplayPlaneInfo2KHR {
5472 #[inline]
5473 fn default() -> Self {
5474 Self {
5475 s_type: StructureType::DISPLAY_PLANE_INFO_2_KHR,
5476 next: ptr::null(),
5477 mode: DisplayModeKHR::default(),
5478 plane_index: u32::default(),
5479 }
5480 }
5481}
5482
5483#[repr(C)]
5485#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5486pub struct DisplayPlaneProperties2KHR {
5487 pub s_type: StructureType,
5488 pub next: *mut c_void,
5489 pub display_plane_properties: DisplayPlanePropertiesKHR,
5490}
5491
5492impl Default for DisplayPlaneProperties2KHR {
5493 #[inline]
5494 fn default() -> Self {
5495 Self {
5496 s_type: StructureType::DISPLAY_PLANE_PROPERTIES_2_KHR,
5497 next: ptr::null_mut(),
5498 display_plane_properties: DisplayPlanePropertiesKHR::default(),
5499 }
5500 }
5501}
5502
5503#[repr(C)]
5505#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5506pub struct DisplayPlanePropertiesKHR {
5507 pub current_display: DisplayKHR,
5508 pub current_stack_index: u32,
5509}
5510
5511#[repr(C)]
5513#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5514pub struct DisplayPowerInfoEXT {
5515 pub s_type: StructureType,
5516 pub next: *const c_void,
5517 pub power_state: DisplayPowerStateEXT,
5518}
5519
5520impl Default for DisplayPowerInfoEXT {
5521 #[inline]
5522 fn default() -> Self {
5523 Self {
5524 s_type: StructureType::DISPLAY_POWER_INFO_EXT,
5525 next: ptr::null(),
5526 power_state: DisplayPowerStateEXT::default(),
5527 }
5528 }
5529}
5530
5531#[repr(C)]
5533#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5534pub struct DisplayPresentInfoKHR {
5535 pub s_type: StructureType,
5536 pub next: *const c_void,
5537 pub src_rect: Rect2D,
5538 pub dst_rect: Rect2D,
5539 pub persistent: Bool32,
5540}
5541
5542impl Default for DisplayPresentInfoKHR {
5543 #[inline]
5544 fn default() -> Self {
5545 Self {
5546 s_type: StructureType::DISPLAY_PRESENT_INFO_KHR,
5547 next: ptr::null(),
5548 src_rect: Rect2D::default(),
5549 dst_rect: Rect2D::default(),
5550 persistent: Bool32::default(),
5551 }
5552 }
5553}
5554
5555#[repr(C)]
5557#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5558pub struct DisplayProperties2KHR {
5559 pub s_type: StructureType,
5560 pub next: *mut c_void,
5561 pub display_properties: DisplayPropertiesKHR,
5562}
5563
5564impl Default for DisplayProperties2KHR {
5565 #[inline]
5566 fn default() -> Self {
5567 Self {
5568 s_type: StructureType::DISPLAY_PROPERTIES_2_KHR,
5569 next: ptr::null_mut(),
5570 display_properties: DisplayPropertiesKHR::default(),
5571 }
5572 }
5573}
5574
5575#[repr(C)]
5577#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5578pub struct DisplayPropertiesKHR {
5579 pub display: DisplayKHR,
5580 pub display_name: *const c_char,
5581 pub physical_dimensions: Extent2D,
5582 pub physical_resolution: Extent2D,
5583 pub supported_transforms: SurfaceTransformFlagsKHR,
5584 pub plane_reorder_possible: Bool32,
5585 pub persistent_content: Bool32,
5586}
5587
5588impl Default for DisplayPropertiesKHR {
5589 #[inline]
5590 fn default() -> Self {
5591 Self {
5592 display: DisplayKHR::default(),
5593 display_name: ptr::null(),
5594 physical_dimensions: Extent2D::default(),
5595 physical_resolution: Extent2D::default(),
5596 supported_transforms: SurfaceTransformFlagsKHR::default(),
5597 plane_reorder_possible: Bool32::default(),
5598 persistent_content: Bool32::default(),
5599 }
5600 }
5601}
5602
5603#[repr(C)]
5605#[derive(Copy, Clone, Debug, PartialEq)]
5606pub struct DisplaySurfaceCreateInfoKHR {
5607 pub s_type: StructureType,
5608 pub next: *const c_void,
5609 pub flags: DisplaySurfaceCreateFlagsKHR,
5610 pub display_mode: DisplayModeKHR,
5611 pub plane_index: u32,
5612 pub plane_stack_index: u32,
5613 pub transform: SurfaceTransformFlagsKHR,
5614 pub global_alpha: f32,
5615 pub alpha_mode: DisplayPlaneAlphaFlagsKHR,
5616 pub image_extent: Extent2D,
5617}
5618
5619impl Default for DisplaySurfaceCreateInfoKHR {
5620 #[inline]
5621 fn default() -> Self {
5622 Self {
5623 s_type: StructureType::DISPLAY_SURFACE_CREATE_INFO_KHR,
5624 next: ptr::null(),
5625 flags: DisplaySurfaceCreateFlagsKHR::default(),
5626 display_mode: DisplayModeKHR::default(),
5627 plane_index: u32::default(),
5628 plane_stack_index: u32::default(),
5629 transform: SurfaceTransformFlagsKHR::default(),
5630 global_alpha: f32::default(),
5631 alpha_mode: DisplayPlaneAlphaFlagsKHR::default(),
5632 image_extent: Extent2D::default(),
5633 }
5634 }
5635}
5636
5637#[repr(C)]
5639#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5640pub struct DisplaySurfaceStereoCreateInfoNV {
5641 pub s_type: StructureType,
5642 pub next: *const c_void,
5643 pub stereo_type: DisplaySurfaceStereoTypeNV,
5644}
5645
5646impl Default for DisplaySurfaceStereoCreateInfoNV {
5647 #[inline]
5648 fn default() -> Self {
5649 Self {
5650 s_type: StructureType::DISPLAY_SURFACE_STEREO_CREATE_INFO_NV,
5651 next: ptr::null(),
5652 stereo_type: DisplaySurfaceStereoTypeNV::default(),
5653 }
5654 }
5655}
5656
5657#[repr(C)]
5659#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5660pub struct DrawIndexedIndirectCommand {
5661 pub index_count: u32,
5662 pub instance_count: u32,
5663 pub first_index: u32,
5664 pub vertex_offset: i32,
5665 pub first_instance: u32,
5666}
5667
5668#[repr(C)]
5670#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5671pub struct DrawIndirectCommand {
5672 pub vertex_count: u32,
5673 pub instance_count: u32,
5674 pub first_vertex: u32,
5675 pub first_instance: u32,
5676}
5677
5678#[repr(C)]
5680#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5681pub struct DrawIndirectCountIndirectCommandEXT {
5682 pub buffer_address: DeviceAddress,
5683 pub stride: u32,
5684 pub command_count: u32,
5685}
5686
5687#[repr(C)]
5689#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5690pub struct DrawMeshTasksIndirectCommandEXT {
5691 pub group_count_x: u32,
5692 pub group_count_y: u32,
5693 pub group_count_z: u32,
5694}
5695
5696#[repr(C)]
5698#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5699pub struct DrawMeshTasksIndirectCommandNV {
5700 pub task_count: u32,
5701 pub first_task: u32,
5702}
5703
5704#[repr(C)]
5706#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5707pub struct DrmFormatModifierProperties2EXT {
5708 pub drm_format_modifier: u64,
5709 pub drm_format_modifier_plane_count: u32,
5710 pub drm_format_modifier_tiling_features: FormatFeatureFlags2,
5711}
5712
5713#[repr(C)]
5715#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
5716pub struct DrmFormatModifierPropertiesEXT {
5717 pub drm_format_modifier: u64,
5718 pub drm_format_modifier_plane_count: u32,
5719 pub drm_format_modifier_tiling_features: FormatFeatureFlags,
5720}
5721
5722#[repr(C)]
5724#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5725pub struct DrmFormatModifierPropertiesList2EXT {
5726 pub s_type: StructureType,
5727 pub next: *mut c_void,
5728 pub drm_format_modifier_count: u32,
5729 pub drm_format_modifier_properties: *mut DrmFormatModifierProperties2EXT,
5730}
5731
5732impl Default for DrmFormatModifierPropertiesList2EXT {
5733 #[inline]
5734 fn default() -> Self {
5735 Self {
5736 s_type: StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
5737 next: ptr::null_mut(),
5738 drm_format_modifier_count: u32::default(),
5739 drm_format_modifier_properties: ptr::null_mut(),
5740 }
5741 }
5742}
5743
5744#[repr(C)]
5746#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5747pub struct DrmFormatModifierPropertiesListEXT {
5748 pub s_type: StructureType,
5749 pub next: *mut c_void,
5750 pub drm_format_modifier_count: u32,
5751 pub drm_format_modifier_properties: *mut DrmFormatModifierPropertiesEXT,
5752}
5753
5754impl Default for DrmFormatModifierPropertiesListEXT {
5755 #[inline]
5756 fn default() -> Self {
5757 Self {
5758 s_type: StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
5759 next: ptr::null_mut(),
5760 drm_format_modifier_count: u32::default(),
5761 drm_format_modifier_properties: ptr::null_mut(),
5762 }
5763 }
5764}
5765
5766#[repr(C)]
5768#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5769pub struct EventCreateInfo {
5770 pub s_type: StructureType,
5771 pub next: *const c_void,
5772 pub flags: EventCreateFlags,
5773}
5774
5775impl Default for EventCreateInfo {
5776 #[inline]
5777 fn default() -> Self {
5778 Self {
5779 s_type: StructureType::EVENT_CREATE_INFO,
5780 next: ptr::null(),
5781 flags: EventCreateFlags::default(),
5782 }
5783 }
5784}
5785
5786#[repr(C)]
5788#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5789pub struct ExecutionGraphPipelineCreateInfoAMDX {
5790 pub s_type: StructureType,
5791 pub next: *const c_void,
5792 pub flags: PipelineCreateFlags,
5793 pub stage_count: u32,
5794 pub stages: *const PipelineShaderStageCreateInfo,
5795 pub library_info: *const PipelineLibraryCreateInfoKHR,
5796 pub layout: PipelineLayout,
5797 pub base_pipeline_handle: Pipeline,
5798 pub base_pipeline_index: i32,
5799}
5800
5801impl Default for ExecutionGraphPipelineCreateInfoAMDX {
5802 #[inline]
5803 fn default() -> Self {
5804 Self {
5805 s_type: StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX,
5806 next: ptr::null(),
5807 flags: PipelineCreateFlags::default(),
5808 stage_count: u32::default(),
5809 stages: ptr::null(),
5810 library_info: ptr::null(),
5811 layout: PipelineLayout::default(),
5812 base_pipeline_handle: Pipeline::default(),
5813 base_pipeline_index: i32::default(),
5814 }
5815 }
5816}
5817
5818#[repr(C)]
5820#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5821pub struct ExecutionGraphPipelineScratchSizeAMDX {
5822 pub s_type: StructureType,
5823 pub next: *mut c_void,
5824 pub min_size: DeviceSize,
5825 pub max_size: DeviceSize,
5826 pub size_granularity: DeviceSize,
5827}
5828
5829impl Default for ExecutionGraphPipelineScratchSizeAMDX {
5830 #[inline]
5831 fn default() -> Self {
5832 Self {
5833 s_type: StructureType::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX,
5834 next: ptr::null_mut(),
5835 min_size: DeviceSize::default(),
5836 max_size: DeviceSize::default(),
5837 size_granularity: DeviceSize::default(),
5838 }
5839 }
5840}
5841
5842#[repr(C)]
5844#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5845pub struct ExportFenceCreateInfo {
5846 pub s_type: StructureType,
5847 pub next: *const c_void,
5848 pub handle_types: ExternalFenceHandleTypeFlags,
5849}
5850
5851impl Default for ExportFenceCreateInfo {
5852 #[inline]
5853 fn default() -> Self {
5854 Self {
5855 s_type: StructureType::EXPORT_FENCE_CREATE_INFO,
5856 next: ptr::null(),
5857 handle_types: ExternalFenceHandleTypeFlags::default(),
5858 }
5859 }
5860}
5861
5862#[repr(C)]
5864#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5865pub struct ExportFenceSciSyncInfoNV {
5866 pub s_type: StructureType,
5867 pub next: *const c_void,
5868 pub attributes: NvSciSyncAttrList,
5869}
5870
5871impl Default for ExportFenceSciSyncInfoNV {
5872 #[inline]
5873 fn default() -> Self {
5874 Self {
5875 s_type: StructureType::EXPORT_FENCE_SCI_SYNC_INFO_NV,
5876 next: ptr::null(),
5877 attributes: ptr::null_mut(),
5878 }
5879 }
5880}
5881
5882#[repr(C)]
5884#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5885pub struct ExportFenceWin32HandleInfoKHR {
5886 pub s_type: StructureType,
5887 pub next: *const c_void,
5888 pub attributes: *const SECURITY_ATTRIBUTES,
5889 pub dw_access: DWORD,
5890 pub name: LPCWSTR,
5891}
5892
5893impl Default for ExportFenceWin32HandleInfoKHR {
5894 #[inline]
5895 fn default() -> Self {
5896 Self {
5897 s_type: StructureType::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
5898 next: ptr::null(),
5899 attributes: ptr::null(),
5900 dw_access: DWORD::default(),
5901 name: ptr::null_mut(),
5902 }
5903 }
5904}
5905
5906#[repr(C)]
5908#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5909pub struct ExportMemoryAllocateInfo {
5910 pub s_type: StructureType,
5911 pub next: *const c_void,
5912 pub handle_types: ExternalMemoryHandleTypeFlags,
5913}
5914
5915impl Default for ExportMemoryAllocateInfo {
5916 #[inline]
5917 fn default() -> Self {
5918 Self {
5919 s_type: StructureType::EXPORT_MEMORY_ALLOCATE_INFO,
5920 next: ptr::null(),
5921 handle_types: ExternalMemoryHandleTypeFlags::default(),
5922 }
5923 }
5924}
5925
5926#[repr(C)]
5928#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5929pub struct ExportMemoryAllocateInfoNV {
5930 pub s_type: StructureType,
5931 pub next: *const c_void,
5932 pub handle_types: ExternalMemoryHandleTypeFlagsNV,
5933}
5934
5935impl Default for ExportMemoryAllocateInfoNV {
5936 #[inline]
5937 fn default() -> Self {
5938 Self {
5939 s_type: StructureType::EXPORT_MEMORY_ALLOCATE_INFO_NV,
5940 next: ptr::null(),
5941 handle_types: ExternalMemoryHandleTypeFlagsNV::default(),
5942 }
5943 }
5944}
5945
5946#[repr(C)]
5948#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5949pub struct ExportMemorySciBufInfoNV {
5950 pub s_type: StructureType,
5951 pub next: *const c_void,
5952 pub attributes: NvSciBufAttrList,
5953}
5954
5955impl Default for ExportMemorySciBufInfoNV {
5956 #[inline]
5957 fn default() -> Self {
5958 Self {
5959 s_type: StructureType::EXPORT_MEMORY_SCI_BUF_INFO_NV,
5960 next: ptr::null(),
5961 attributes: ptr::null_mut(),
5962 }
5963 }
5964}
5965
5966#[repr(C)]
5968#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5969pub struct ExportMemoryWin32HandleInfoKHR {
5970 pub s_type: StructureType,
5971 pub next: *const c_void,
5972 pub attributes: *const SECURITY_ATTRIBUTES,
5973 pub dw_access: DWORD,
5974 pub name: LPCWSTR,
5975}
5976
5977impl Default for ExportMemoryWin32HandleInfoKHR {
5978 #[inline]
5979 fn default() -> Self {
5980 Self {
5981 s_type: StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
5982 next: ptr::null(),
5983 attributes: ptr::null(),
5984 dw_access: DWORD::default(),
5985 name: ptr::null_mut(),
5986 }
5987 }
5988}
5989
5990#[repr(C)]
5992#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
5993pub struct ExportMemoryWin32HandleInfoNV {
5994 pub s_type: StructureType,
5995 pub next: *const c_void,
5996 pub attributes: *const SECURITY_ATTRIBUTES,
5997 pub dw_access: DWORD,
5998}
5999
6000impl Default for ExportMemoryWin32HandleInfoNV {
6001 #[inline]
6002 fn default() -> Self {
6003 Self {
6004 s_type: StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
6005 next: ptr::null(),
6006 attributes: ptr::null(),
6007 dw_access: DWORD::default(),
6008 }
6009 }
6010}
6011
6012#[repr(C)]
6014#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6015pub struct ExportMetalBufferInfoEXT {
6016 pub s_type: StructureType,
6017 pub next: *const c_void,
6018 pub memory: DeviceMemory,
6019 pub mtl_buffer: MTLBuffer_id,
6020}
6021
6022impl Default for ExportMetalBufferInfoEXT {
6023 #[inline]
6024 fn default() -> Self {
6025 Self {
6026 s_type: StructureType::EXPORT_METAL_BUFFER_INFO_EXT,
6027 next: ptr::null(),
6028 memory: DeviceMemory::default(),
6029 mtl_buffer: ptr::null_mut(),
6030 }
6031 }
6032}
6033
6034#[repr(C)]
6036#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6037pub struct ExportMetalCommandQueueInfoEXT {
6038 pub s_type: StructureType,
6039 pub next: *const c_void,
6040 pub queue: Queue,
6041 pub mtl_command_queue: MTLCommandQueue_id,
6042}
6043
6044impl Default for ExportMetalCommandQueueInfoEXT {
6045 #[inline]
6046 fn default() -> Self {
6047 Self {
6048 s_type: StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT,
6049 next: ptr::null(),
6050 queue: Queue::default(),
6051 mtl_command_queue: ptr::null_mut(),
6052 }
6053 }
6054}
6055
6056#[repr(C)]
6058#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6059pub struct ExportMetalDeviceInfoEXT {
6060 pub s_type: StructureType,
6061 pub next: *const c_void,
6062 pub mtl_device: MTLDevice_id,
6063}
6064
6065impl Default for ExportMetalDeviceInfoEXT {
6066 #[inline]
6067 fn default() -> Self {
6068 Self {
6069 s_type: StructureType::EXPORT_METAL_DEVICE_INFO_EXT,
6070 next: ptr::null(),
6071 mtl_device: ptr::null_mut(),
6072 }
6073 }
6074}
6075
6076#[repr(C)]
6078#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6079pub struct ExportMetalIOSurfaceInfoEXT {
6080 pub s_type: StructureType,
6081 pub next: *const c_void,
6082 pub image: Image,
6083 pub io_surface: IOSurfaceRef,
6084}
6085
6086impl Default for ExportMetalIOSurfaceInfoEXT {
6087 #[inline]
6088 fn default() -> Self {
6089 Self {
6090 s_type: StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT,
6091 next: ptr::null(),
6092 image: Image::default(),
6093 io_surface: ptr::null_mut(),
6094 }
6095 }
6096}
6097
6098#[repr(C)]
6100#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6101pub struct ExportMetalObjectCreateInfoEXT {
6102 pub s_type: StructureType,
6103 pub next: *const c_void,
6104 pub export_object_type: ExportMetalObjectTypeFlagsEXT,
6105}
6106
6107impl Default for ExportMetalObjectCreateInfoEXT {
6108 #[inline]
6109 fn default() -> Self {
6110 Self {
6111 s_type: StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT,
6112 next: ptr::null(),
6113 export_object_type: ExportMetalObjectTypeFlagsEXT::default(),
6114 }
6115 }
6116}
6117
6118#[repr(C)]
6120#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6121pub struct ExportMetalObjectsInfoEXT {
6122 pub s_type: StructureType,
6123 pub next: *const c_void,
6124}
6125
6126impl Default for ExportMetalObjectsInfoEXT {
6127 #[inline]
6128 fn default() -> Self {
6129 Self {
6130 s_type: StructureType::EXPORT_METAL_OBJECTS_INFO_EXT,
6131 next: ptr::null(),
6132 }
6133 }
6134}
6135
6136#[repr(C)]
6138#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6139pub struct ExportMetalSharedEventInfoEXT {
6140 pub s_type: StructureType,
6141 pub next: *const c_void,
6142 pub semaphore: Semaphore,
6143 pub event: Event,
6144 pub mtl_shared_event: MTLSharedEvent_id,
6145}
6146
6147impl Default for ExportMetalSharedEventInfoEXT {
6148 #[inline]
6149 fn default() -> Self {
6150 Self {
6151 s_type: StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT,
6152 next: ptr::null(),
6153 semaphore: Semaphore::default(),
6154 event: Event::default(),
6155 mtl_shared_event: ptr::null_mut(),
6156 }
6157 }
6158}
6159
6160#[repr(C)]
6162#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6163pub struct ExportMetalTextureInfoEXT {
6164 pub s_type: StructureType,
6165 pub next: *const c_void,
6166 pub image: Image,
6167 pub image_view: ImageView,
6168 pub buffer_view: BufferView,
6169 pub plane: ImageAspectFlags,
6170 pub mtl_texture: MTLTexture_id,
6171}
6172
6173impl Default for ExportMetalTextureInfoEXT {
6174 #[inline]
6175 fn default() -> Self {
6176 Self {
6177 s_type: StructureType::EXPORT_METAL_TEXTURE_INFO_EXT,
6178 next: ptr::null(),
6179 image: Image::default(),
6180 image_view: ImageView::default(),
6181 buffer_view: BufferView::default(),
6182 plane: ImageAspectFlags::default(),
6183 mtl_texture: ptr::null_mut(),
6184 }
6185 }
6186}
6187
6188#[repr(C)]
6190#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6191pub struct ExportSemaphoreCreateInfo {
6192 pub s_type: StructureType,
6193 pub next: *const c_void,
6194 pub handle_types: ExternalSemaphoreHandleTypeFlags,
6195}
6196
6197impl Default for ExportSemaphoreCreateInfo {
6198 #[inline]
6199 fn default() -> Self {
6200 Self {
6201 s_type: StructureType::EXPORT_SEMAPHORE_CREATE_INFO,
6202 next: ptr::null(),
6203 handle_types: ExternalSemaphoreHandleTypeFlags::default(),
6204 }
6205 }
6206}
6207
6208#[repr(C)]
6210#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6211pub struct ExportSemaphoreSciSyncInfoNV {
6212 pub s_type: StructureType,
6213 pub next: *const c_void,
6214 pub attributes: NvSciSyncAttrList,
6215}
6216
6217impl Default for ExportSemaphoreSciSyncInfoNV {
6218 #[inline]
6219 fn default() -> Self {
6220 Self {
6221 s_type: StructureType::EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV,
6222 next: ptr::null(),
6223 attributes: ptr::null_mut(),
6224 }
6225 }
6226}
6227
6228#[repr(C)]
6230#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6231pub struct ExportSemaphoreWin32HandleInfoKHR {
6232 pub s_type: StructureType,
6233 pub next: *const c_void,
6234 pub attributes: *const SECURITY_ATTRIBUTES,
6235 pub dw_access: DWORD,
6236 pub name: LPCWSTR,
6237}
6238
6239impl Default for ExportSemaphoreWin32HandleInfoKHR {
6240 #[inline]
6241 fn default() -> Self {
6242 Self {
6243 s_type: StructureType::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
6244 next: ptr::null(),
6245 attributes: ptr::null(),
6246 dw_access: DWORD::default(),
6247 name: ptr::null_mut(),
6248 }
6249 }
6250}
6251
6252#[repr(C)]
6254#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
6255pub struct ExtensionProperties {
6256 pub extension_name: StringArray<MAX_EXTENSION_NAME_SIZE>,
6257 pub spec_version: u32,
6258}
6259
6260#[repr(C)]
6262#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
6263pub struct Extent2D {
6264 pub width: u32,
6265 pub height: u32,
6266}
6267
6268#[repr(C)]
6270#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
6271pub struct Extent3D {
6272 pub width: u32,
6273 pub height: u32,
6274 pub depth: u32,
6275}
6276
6277#[repr(C)]
6279#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6280pub struct ExternalBufferProperties {
6281 pub s_type: StructureType,
6282 pub next: *mut c_void,
6283 pub external_memory_properties: ExternalMemoryProperties,
6284}
6285
6286impl Default for ExternalBufferProperties {
6287 #[inline]
6288 fn default() -> Self {
6289 Self {
6290 s_type: StructureType::EXTERNAL_BUFFER_PROPERTIES,
6291 next: ptr::null_mut(),
6292 external_memory_properties: ExternalMemoryProperties::default(),
6293 }
6294 }
6295}
6296
6297#[repr(C)]
6299#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6300pub struct ExternalFenceProperties {
6301 pub s_type: StructureType,
6302 pub next: *mut c_void,
6303 pub export_from_imported_handle_types: ExternalFenceHandleTypeFlags,
6304 pub compatible_handle_types: ExternalFenceHandleTypeFlags,
6305 pub external_fence_features: ExternalFenceFeatureFlags,
6306}
6307
6308impl Default for ExternalFenceProperties {
6309 #[inline]
6310 fn default() -> Self {
6311 Self {
6312 s_type: StructureType::EXTERNAL_FENCE_PROPERTIES,
6313 next: ptr::null_mut(),
6314 export_from_imported_handle_types: ExternalFenceHandleTypeFlags::default(),
6315 compatible_handle_types: ExternalFenceHandleTypeFlags::default(),
6316 external_fence_features: ExternalFenceFeatureFlags::default(),
6317 }
6318 }
6319}
6320
6321#[repr(C)]
6323#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6324pub struct ExternalFormatANDROID {
6325 pub s_type: StructureType,
6326 pub next: *mut c_void,
6327 pub external_format: u64,
6328}
6329
6330impl Default for ExternalFormatANDROID {
6331 #[inline]
6332 fn default() -> Self {
6333 Self {
6334 s_type: StructureType::EXTERNAL_FORMAT_ANDROID,
6335 next: ptr::null_mut(),
6336 external_format: u64::default(),
6337 }
6338 }
6339}
6340
6341#[repr(C)]
6343#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6344pub struct ExternalFormatQNX {
6345 pub s_type: StructureType,
6346 pub next: *mut c_void,
6347 pub external_format: u64,
6348}
6349
6350impl Default for ExternalFormatQNX {
6351 #[inline]
6352 fn default() -> Self {
6353 Self {
6354 s_type: StructureType::EXTERNAL_FORMAT_QNX,
6355 next: ptr::null_mut(),
6356 external_format: u64::default(),
6357 }
6358 }
6359}
6360
6361#[repr(C)]
6363#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6364pub struct ExternalImageFormatProperties {
6365 pub s_type: StructureType,
6366 pub next: *mut c_void,
6367 pub external_memory_properties: ExternalMemoryProperties,
6368}
6369
6370impl Default for ExternalImageFormatProperties {
6371 #[inline]
6372 fn default() -> Self {
6373 Self {
6374 s_type: StructureType::EXTERNAL_IMAGE_FORMAT_PROPERTIES,
6375 next: ptr::null_mut(),
6376 external_memory_properties: ExternalMemoryProperties::default(),
6377 }
6378 }
6379}
6380
6381#[repr(C)]
6383#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
6384pub struct ExternalImageFormatPropertiesNV {
6385 pub image_format_properties: ImageFormatProperties,
6386 pub external_memory_features: ExternalMemoryFeatureFlagsNV,
6387 pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlagsNV,
6388 pub compatible_handle_types: ExternalMemoryHandleTypeFlagsNV,
6389}
6390
6391#[repr(C)]
6393#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6394pub struct ExternalMemoryAcquireUnmodifiedEXT {
6395 pub s_type: StructureType,
6396 pub next: *const c_void,
6397 pub acquire_unmodified_memory: Bool32,
6398}
6399
6400impl Default for ExternalMemoryAcquireUnmodifiedEXT {
6401 #[inline]
6402 fn default() -> Self {
6403 Self {
6404 s_type: StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT,
6405 next: ptr::null(),
6406 acquire_unmodified_memory: Bool32::default(),
6407 }
6408 }
6409}
6410
6411#[repr(C)]
6413#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6414pub struct ExternalMemoryBufferCreateInfo {
6415 pub s_type: StructureType,
6416 pub next: *const c_void,
6417 pub handle_types: ExternalMemoryHandleTypeFlags,
6418}
6419
6420impl Default for ExternalMemoryBufferCreateInfo {
6421 #[inline]
6422 fn default() -> Self {
6423 Self {
6424 s_type: StructureType::EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
6425 next: ptr::null(),
6426 handle_types: ExternalMemoryHandleTypeFlags::default(),
6427 }
6428 }
6429}
6430
6431#[repr(C)]
6433#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6434pub struct ExternalMemoryImageCreateInfo {
6435 pub s_type: StructureType,
6436 pub next: *const c_void,
6437 pub handle_types: ExternalMemoryHandleTypeFlags,
6438}
6439
6440impl Default for ExternalMemoryImageCreateInfo {
6441 #[inline]
6442 fn default() -> Self {
6443 Self {
6444 s_type: StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
6445 next: ptr::null(),
6446 handle_types: ExternalMemoryHandleTypeFlags::default(),
6447 }
6448 }
6449}
6450
6451#[repr(C)]
6453#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6454pub struct ExternalMemoryImageCreateInfoNV {
6455 pub s_type: StructureType,
6456 pub next: *const c_void,
6457 pub handle_types: ExternalMemoryHandleTypeFlagsNV,
6458}
6459
6460impl Default for ExternalMemoryImageCreateInfoNV {
6461 #[inline]
6462 fn default() -> Self {
6463 Self {
6464 s_type: StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
6465 next: ptr::null(),
6466 handle_types: ExternalMemoryHandleTypeFlagsNV::default(),
6467 }
6468 }
6469}
6470
6471#[repr(C)]
6473#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
6474pub struct ExternalMemoryProperties {
6475 pub external_memory_features: ExternalMemoryFeatureFlags,
6476 pub export_from_imported_handle_types: ExternalMemoryHandleTypeFlags,
6477 pub compatible_handle_types: ExternalMemoryHandleTypeFlags,
6478}
6479
6480#[repr(C)]
6482#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6483pub struct ExternalSemaphoreProperties {
6484 pub s_type: StructureType,
6485 pub next: *mut c_void,
6486 pub export_from_imported_handle_types: ExternalSemaphoreHandleTypeFlags,
6487 pub compatible_handle_types: ExternalSemaphoreHandleTypeFlags,
6488 pub external_semaphore_features: ExternalSemaphoreFeatureFlags,
6489}
6490
6491impl Default for ExternalSemaphoreProperties {
6492 #[inline]
6493 fn default() -> Self {
6494 Self {
6495 s_type: StructureType::EXTERNAL_SEMAPHORE_PROPERTIES,
6496 next: ptr::null_mut(),
6497 export_from_imported_handle_types: ExternalSemaphoreHandleTypeFlags::default(),
6498 compatible_handle_types: ExternalSemaphoreHandleTypeFlags::default(),
6499 external_semaphore_features: ExternalSemaphoreFeatureFlags::default(),
6500 }
6501 }
6502}
6503
6504#[repr(C)]
6506#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6507pub struct FenceCreateInfo {
6508 pub s_type: StructureType,
6509 pub next: *const c_void,
6510 pub flags: FenceCreateFlags,
6511}
6512
6513impl Default for FenceCreateInfo {
6514 #[inline]
6515 fn default() -> Self {
6516 Self {
6517 s_type: StructureType::FENCE_CREATE_INFO,
6518 next: ptr::null(),
6519 flags: FenceCreateFlags::default(),
6520 }
6521 }
6522}
6523
6524#[repr(C)]
6526#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6527pub struct FenceGetFdInfoKHR {
6528 pub s_type: StructureType,
6529 pub next: *const c_void,
6530 pub fence: Fence,
6531 pub handle_type: ExternalFenceHandleTypeFlags,
6532}
6533
6534impl Default for FenceGetFdInfoKHR {
6535 #[inline]
6536 fn default() -> Self {
6537 Self {
6538 s_type: StructureType::FENCE_GET_FD_INFO_KHR,
6539 next: ptr::null(),
6540 fence: Fence::default(),
6541 handle_type: ExternalFenceHandleTypeFlags::default(),
6542 }
6543 }
6544}
6545
6546#[repr(C)]
6548#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6549pub struct FenceGetSciSyncInfoNV {
6550 pub s_type: StructureType,
6551 pub next: *const c_void,
6552 pub fence: Fence,
6553 pub handle_type: ExternalFenceHandleTypeFlags,
6554}
6555
6556impl Default for FenceGetSciSyncInfoNV {
6557 #[inline]
6558 fn default() -> Self {
6559 Self {
6560 s_type: StructureType::FENCE_GET_SCI_SYNC_INFO_NV,
6561 next: ptr::null(),
6562 fence: Fence::default(),
6563 handle_type: ExternalFenceHandleTypeFlags::default(),
6564 }
6565 }
6566}
6567
6568#[repr(C)]
6570#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6571pub struct FenceGetWin32HandleInfoKHR {
6572 pub s_type: StructureType,
6573 pub next: *const c_void,
6574 pub fence: Fence,
6575 pub handle_type: ExternalFenceHandleTypeFlags,
6576}
6577
6578impl Default for FenceGetWin32HandleInfoKHR {
6579 #[inline]
6580 fn default() -> Self {
6581 Self {
6582 s_type: StructureType::FENCE_GET_WIN32_HANDLE_INFO_KHR,
6583 next: ptr::null(),
6584 fence: Fence::default(),
6585 handle_type: ExternalFenceHandleTypeFlags::default(),
6586 }
6587 }
6588}
6589
6590#[repr(C)]
6592#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6593pub struct FilterCubicImageViewImageFormatPropertiesEXT {
6594 pub s_type: StructureType,
6595 pub next: *mut c_void,
6596 pub filter_cubic: Bool32,
6597 pub filter_cubic_minmax: Bool32,
6598}
6599
6600impl Default for FilterCubicImageViewImageFormatPropertiesEXT {
6601 #[inline]
6602 fn default() -> Self {
6603 Self {
6604 s_type: StructureType::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
6605 next: ptr::null_mut(),
6606 filter_cubic: Bool32::default(),
6607 filter_cubic_minmax: Bool32::default(),
6608 }
6609 }
6610}
6611
6612#[repr(C)]
6614#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
6615pub struct FormatProperties {
6616 pub linear_tiling_features: FormatFeatureFlags,
6617 pub optimal_tiling_features: FormatFeatureFlags,
6618 pub buffer_features: FormatFeatureFlags,
6619}
6620
6621#[repr(C)]
6623#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6624pub struct FormatProperties2 {
6625 pub s_type: StructureType,
6626 pub next: *mut c_void,
6627 pub format_properties: FormatProperties,
6628}
6629
6630impl Default for FormatProperties2 {
6631 #[inline]
6632 fn default() -> Self {
6633 Self {
6634 s_type: StructureType::FORMAT_PROPERTIES_2,
6635 next: ptr::null_mut(),
6636 format_properties: FormatProperties::default(),
6637 }
6638 }
6639}
6640
6641#[repr(C)]
6643#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6644pub struct FormatProperties3 {
6645 pub s_type: StructureType,
6646 pub next: *mut c_void,
6647 pub linear_tiling_features: FormatFeatureFlags2,
6648 pub optimal_tiling_features: FormatFeatureFlags2,
6649 pub buffer_features: FormatFeatureFlags2,
6650}
6651
6652impl Default for FormatProperties3 {
6653 #[inline]
6654 fn default() -> Self {
6655 Self {
6656 s_type: StructureType::FORMAT_PROPERTIES_3,
6657 next: ptr::null_mut(),
6658 linear_tiling_features: FormatFeatureFlags2::default(),
6659 optimal_tiling_features: FormatFeatureFlags2::default(),
6660 buffer_features: FormatFeatureFlags2::default(),
6661 }
6662 }
6663}
6664
6665#[repr(C)]
6667#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6668pub struct FragmentShadingRateAttachmentInfoKHR {
6669 pub s_type: StructureType,
6670 pub next: *const c_void,
6671 pub fragment_shading_rate_attachment: *const AttachmentReference2,
6672 pub shading_rate_attachment_texel_size: Extent2D,
6673}
6674
6675impl Default for FragmentShadingRateAttachmentInfoKHR {
6676 #[inline]
6677 fn default() -> Self {
6678 Self {
6679 s_type: StructureType::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
6680 next: ptr::null(),
6681 fragment_shading_rate_attachment: ptr::null(),
6682 shading_rate_attachment_texel_size: Extent2D::default(),
6683 }
6684 }
6685}
6686
6687#[repr(C)]
6689#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6690pub struct FrameBoundaryEXT {
6691 pub s_type: StructureType,
6692 pub next: *const c_void,
6693 pub flags: FrameBoundaryFlagsEXT,
6694 pub frame_id: u64,
6695 pub image_count: u32,
6696 pub images: *const Image,
6697 pub buffer_count: u32,
6698 pub buffers: *const Buffer,
6699 pub tag_name: u64,
6700 pub tag_size: usize,
6701 pub tag: *const c_void,
6702}
6703
6704impl Default for FrameBoundaryEXT {
6705 #[inline]
6706 fn default() -> Self {
6707 Self {
6708 s_type: StructureType::FRAME_BOUNDARY_EXT,
6709 next: ptr::null(),
6710 flags: FrameBoundaryFlagsEXT::default(),
6711 frame_id: u64::default(),
6712 image_count: u32::default(),
6713 images: ptr::null(),
6714 buffer_count: u32::default(),
6715 buffers: ptr::null(),
6716 tag_name: u64::default(),
6717 tag_size: usize::default(),
6718 tag: ptr::null(),
6719 }
6720 }
6721}
6722
6723#[repr(C)]
6725#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6726pub struct FramebufferAttachmentImageInfo {
6727 pub s_type: StructureType,
6728 pub next: *const c_void,
6729 pub flags: ImageCreateFlags,
6730 pub usage: ImageUsageFlags,
6731 pub width: u32,
6732 pub height: u32,
6733 pub layer_count: u32,
6734 pub view_format_count: u32,
6735 pub view_formats: *const Format,
6736}
6737
6738impl Default for FramebufferAttachmentImageInfo {
6739 #[inline]
6740 fn default() -> Self {
6741 Self {
6742 s_type: StructureType::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
6743 next: ptr::null(),
6744 flags: ImageCreateFlags::default(),
6745 usage: ImageUsageFlags::default(),
6746 width: u32::default(),
6747 height: u32::default(),
6748 layer_count: u32::default(),
6749 view_format_count: u32::default(),
6750 view_formats: ptr::null(),
6751 }
6752 }
6753}
6754
6755#[repr(C)]
6757#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6758pub struct FramebufferAttachmentsCreateInfo {
6759 pub s_type: StructureType,
6760 pub next: *const c_void,
6761 pub attachment_image_info_count: u32,
6762 pub attachment_image_infos: *const FramebufferAttachmentImageInfo,
6763}
6764
6765impl Default for FramebufferAttachmentsCreateInfo {
6766 #[inline]
6767 fn default() -> Self {
6768 Self {
6769 s_type: StructureType::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
6770 next: ptr::null(),
6771 attachment_image_info_count: u32::default(),
6772 attachment_image_infos: ptr::null(),
6773 }
6774 }
6775}
6776
6777#[repr(C)]
6779#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6780pub struct FramebufferCreateInfo {
6781 pub s_type: StructureType,
6782 pub next: *const c_void,
6783 pub flags: FramebufferCreateFlags,
6784 pub render_pass: RenderPass,
6785 pub attachment_count: u32,
6786 pub attachments: *const ImageView,
6787 pub width: u32,
6788 pub height: u32,
6789 pub layers: u32,
6790}
6791
6792impl Default for FramebufferCreateInfo {
6793 #[inline]
6794 fn default() -> Self {
6795 Self {
6796 s_type: StructureType::FRAMEBUFFER_CREATE_INFO,
6797 next: ptr::null(),
6798 flags: FramebufferCreateFlags::default(),
6799 render_pass: RenderPass::default(),
6800 attachment_count: u32::default(),
6801 attachments: ptr::null(),
6802 width: u32::default(),
6803 height: u32::default(),
6804 layers: u32::default(),
6805 }
6806 }
6807}
6808
6809#[repr(C)]
6811#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6812pub struct FramebufferMixedSamplesCombinationNV {
6813 pub s_type: StructureType,
6814 pub next: *mut c_void,
6815 pub coverage_reduction_mode: CoverageReductionModeNV,
6816 pub rasterization_samples: SampleCountFlags,
6817 pub depth_stencil_samples: SampleCountFlags,
6818 pub color_samples: SampleCountFlags,
6819}
6820
6821impl Default for FramebufferMixedSamplesCombinationNV {
6822 #[inline]
6823 fn default() -> Self {
6824 Self {
6825 s_type: StructureType::FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
6826 next: ptr::null_mut(),
6827 coverage_reduction_mode: CoverageReductionModeNV::default(),
6828 rasterization_samples: SampleCountFlags::default(),
6829 depth_stencil_samples: SampleCountFlags::default(),
6830 color_samples: SampleCountFlags::default(),
6831 }
6832 }
6833}
6834
6835#[repr(C)]
6837#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6838pub struct GeneratedCommandsInfoEXT {
6839 pub s_type: StructureType,
6840 pub next: *const c_void,
6841 pub shader_stages: ShaderStageFlags,
6842 pub indirect_execution_set: IndirectExecutionSetEXT,
6843 pub indirect_commands_layout: IndirectCommandsLayoutEXT,
6844 pub indirect_address: DeviceAddress,
6845 pub indirect_address_size: DeviceSize,
6846 pub preprocess_address: DeviceAddress,
6847 pub preprocess_size: DeviceSize,
6848 pub max_sequence_count: u32,
6849 pub sequence_count_address: DeviceAddress,
6850 pub max_draw_count: u32,
6851}
6852
6853impl Default for GeneratedCommandsInfoEXT {
6854 #[inline]
6855 fn default() -> Self {
6856 Self {
6857 s_type: StructureType::GENERATED_COMMANDS_INFO_EXT,
6858 next: ptr::null(),
6859 shader_stages: ShaderStageFlags::default(),
6860 indirect_execution_set: IndirectExecutionSetEXT::default(),
6861 indirect_commands_layout: IndirectCommandsLayoutEXT::default(),
6862 indirect_address: DeviceAddress::default(),
6863 indirect_address_size: DeviceSize::default(),
6864 preprocess_address: DeviceAddress::default(),
6865 preprocess_size: DeviceSize::default(),
6866 max_sequence_count: u32::default(),
6867 sequence_count_address: DeviceAddress::default(),
6868 max_draw_count: u32::default(),
6869 }
6870 }
6871}
6872
6873#[repr(C)]
6875#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6876pub struct GeneratedCommandsInfoNV {
6877 pub s_type: StructureType,
6878 pub next: *const c_void,
6879 pub pipeline_bind_point: PipelineBindPoint,
6880 pub pipeline: Pipeline,
6881 pub indirect_commands_layout: IndirectCommandsLayoutNV,
6882 pub stream_count: u32,
6883 pub streams: *const IndirectCommandsStreamNV,
6884 pub sequences_count: u32,
6885 pub preprocess_buffer: Buffer,
6886 pub preprocess_offset: DeviceSize,
6887 pub preprocess_size: DeviceSize,
6888 pub sequences_count_buffer: Buffer,
6889 pub sequences_count_offset: DeviceSize,
6890 pub sequences_index_buffer: Buffer,
6891 pub sequences_index_offset: DeviceSize,
6892}
6893
6894impl Default for GeneratedCommandsInfoNV {
6895 #[inline]
6896 fn default() -> Self {
6897 Self {
6898 s_type: StructureType::GENERATED_COMMANDS_INFO_NV,
6899 next: ptr::null(),
6900 pipeline_bind_point: PipelineBindPoint::default(),
6901 pipeline: Pipeline::default(),
6902 indirect_commands_layout: IndirectCommandsLayoutNV::default(),
6903 stream_count: u32::default(),
6904 streams: ptr::null(),
6905 sequences_count: u32::default(),
6906 preprocess_buffer: Buffer::default(),
6907 preprocess_offset: DeviceSize::default(),
6908 preprocess_size: DeviceSize::default(),
6909 sequences_count_buffer: Buffer::default(),
6910 sequences_count_offset: DeviceSize::default(),
6911 sequences_index_buffer: Buffer::default(),
6912 sequences_index_offset: DeviceSize::default(),
6913 }
6914 }
6915}
6916
6917#[repr(C)]
6919#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6920pub struct GeneratedCommandsMemoryRequirementsInfoEXT {
6921 pub s_type: StructureType,
6922 pub next: *const c_void,
6923 pub indirect_execution_set: IndirectExecutionSetEXT,
6924 pub indirect_commands_layout: IndirectCommandsLayoutEXT,
6925 pub max_sequence_count: u32,
6926 pub max_draw_count: u32,
6927}
6928
6929impl Default for GeneratedCommandsMemoryRequirementsInfoEXT {
6930 #[inline]
6931 fn default() -> Self {
6932 Self {
6933 s_type: StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT,
6934 next: ptr::null(),
6935 indirect_execution_set: IndirectExecutionSetEXT::default(),
6936 indirect_commands_layout: IndirectCommandsLayoutEXT::default(),
6937 max_sequence_count: u32::default(),
6938 max_draw_count: u32::default(),
6939 }
6940 }
6941}
6942
6943#[repr(C)]
6945#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6946pub struct GeneratedCommandsMemoryRequirementsInfoNV {
6947 pub s_type: StructureType,
6948 pub next: *const c_void,
6949 pub pipeline_bind_point: PipelineBindPoint,
6950 pub pipeline: Pipeline,
6951 pub indirect_commands_layout: IndirectCommandsLayoutNV,
6952 pub max_sequences_count: u32,
6953}
6954
6955impl Default for GeneratedCommandsMemoryRequirementsInfoNV {
6956 #[inline]
6957 fn default() -> Self {
6958 Self {
6959 s_type: StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
6960 next: ptr::null(),
6961 pipeline_bind_point: PipelineBindPoint::default(),
6962 pipeline: Pipeline::default(),
6963 indirect_commands_layout: IndirectCommandsLayoutNV::default(),
6964 max_sequences_count: u32::default(),
6965 }
6966 }
6967}
6968
6969#[repr(C)]
6971#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6972pub struct GeneratedCommandsPipelineInfoEXT {
6973 pub s_type: StructureType,
6974 pub next: *mut c_void,
6975 pub pipeline: Pipeline,
6976}
6977
6978impl Default for GeneratedCommandsPipelineInfoEXT {
6979 #[inline]
6980 fn default() -> Self {
6981 Self {
6982 s_type: StructureType::GENERATED_COMMANDS_PIPELINE_INFO_EXT,
6983 next: ptr::null_mut(),
6984 pipeline: Pipeline::default(),
6985 }
6986 }
6987}
6988
6989#[repr(C)]
6991#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
6992pub struct GeneratedCommandsShaderInfoEXT {
6993 pub s_type: StructureType,
6994 pub next: *mut c_void,
6995 pub shader_count: u32,
6996 pub shaders: *const ShaderEXT,
6997}
6998
6999impl Default for GeneratedCommandsShaderInfoEXT {
7000 #[inline]
7001 fn default() -> Self {
7002 Self {
7003 s_type: StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT,
7004 next: ptr::null_mut(),
7005 shader_count: u32::default(),
7006 shaders: ptr::null(),
7007 }
7008 }
7009}
7010
7011#[repr(C)]
7013#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7014pub struct GeometryAABBNV {
7015 pub s_type: StructureType,
7016 pub next: *const c_void,
7017 pub aabb_data: Buffer,
7018 pub num_aab_bs: u32,
7019 pub stride: u32,
7020 pub offset: DeviceSize,
7021}
7022
7023impl Default for GeometryAABBNV {
7024 #[inline]
7025 fn default() -> Self {
7026 Self {
7027 s_type: StructureType::GEOMETRY_AABB_NV,
7028 next: ptr::null(),
7029 aabb_data: Buffer::default(),
7030 num_aab_bs: u32::default(),
7031 stride: u32::default(),
7032 offset: DeviceSize::default(),
7033 }
7034 }
7035}
7036
7037#[repr(C)]
7039#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
7040pub struct GeometryDataNV {
7041 pub triangles: GeometryTrianglesNV,
7042 pub aabbs: GeometryAABBNV,
7043}
7044
7045#[repr(C)]
7047#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7048pub struct GeometryNV {
7049 pub s_type: StructureType,
7050 pub next: *const c_void,
7051 pub geometry_type: GeometryTypeKHR,
7052 pub geometry: GeometryDataNV,
7053 pub flags: GeometryFlagsKHR,
7054}
7055
7056impl Default for GeometryNV {
7057 #[inline]
7058 fn default() -> Self {
7059 Self {
7060 s_type: StructureType::GEOMETRY_NV,
7061 next: ptr::null(),
7062 geometry_type: GeometryTypeKHR::default(),
7063 geometry: GeometryDataNV::default(),
7064 flags: GeometryFlagsKHR::default(),
7065 }
7066 }
7067}
7068
7069#[repr(C)]
7071#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7072pub struct GeometryTrianglesNV {
7073 pub s_type: StructureType,
7074 pub next: *const c_void,
7075 pub vertex_data: Buffer,
7076 pub vertex_offset: DeviceSize,
7077 pub vertex_count: u32,
7078 pub vertex_stride: DeviceSize,
7079 pub vertex_format: Format,
7080 pub index_data: Buffer,
7081 pub index_offset: DeviceSize,
7082 pub index_count: u32,
7083 pub index_type: IndexType,
7084 pub transform_data: Buffer,
7085 pub transform_offset: DeviceSize,
7086}
7087
7088impl Default for GeometryTrianglesNV {
7089 #[inline]
7090 fn default() -> Self {
7091 Self {
7092 s_type: StructureType::GEOMETRY_TRIANGLES_NV,
7093 next: ptr::null(),
7094 vertex_data: Buffer::default(),
7095 vertex_offset: DeviceSize::default(),
7096 vertex_count: u32::default(),
7097 vertex_stride: DeviceSize::default(),
7098 vertex_format: Format::default(),
7099 index_data: Buffer::default(),
7100 index_offset: DeviceSize::default(),
7101 index_count: u32::default(),
7102 index_type: IndexType::default(),
7103 transform_data: Buffer::default(),
7104 transform_offset: DeviceSize::default(),
7105 }
7106 }
7107}
7108
7109#[repr(C)]
7111#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7112pub struct GetLatencyMarkerInfoNV {
7113 pub s_type: StructureType,
7114 pub next: *const c_void,
7115 pub timing_count: u32,
7116 pub timings: *mut LatencyTimingsFrameReportNV,
7117}
7118
7119impl Default for GetLatencyMarkerInfoNV {
7120 #[inline]
7121 fn default() -> Self {
7122 Self {
7123 s_type: StructureType::GET_LATENCY_MARKER_INFO_NV,
7124 next: ptr::null(),
7125 timing_count: u32::default(),
7126 timings: ptr::null_mut(),
7127 }
7128 }
7129}
7130
7131#[repr(C)]
7133#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7134pub struct GraphicsPipelineCreateInfo {
7135 pub s_type: StructureType,
7136 pub next: *const c_void,
7137 pub flags: PipelineCreateFlags,
7138 pub stage_count: u32,
7139 pub stages: *const PipelineShaderStageCreateInfo,
7140 pub vertex_input_state: *const PipelineVertexInputStateCreateInfo,
7141 pub input_assembly_state: *const PipelineInputAssemblyStateCreateInfo,
7142 pub tessellation_state: *const PipelineTessellationStateCreateInfo,
7143 pub viewport_state: *const PipelineViewportStateCreateInfo,
7144 pub rasterization_state: *const PipelineRasterizationStateCreateInfo,
7145 pub multisample_state: *const PipelineMultisampleStateCreateInfo,
7146 pub depth_stencil_state: *const PipelineDepthStencilStateCreateInfo,
7147 pub color_blend_state: *const PipelineColorBlendStateCreateInfo,
7148 pub dynamic_state: *const PipelineDynamicStateCreateInfo,
7149 pub layout: PipelineLayout,
7150 pub render_pass: RenderPass,
7151 pub subpass: u32,
7152 pub base_pipeline_handle: Pipeline,
7153 pub base_pipeline_index: i32,
7154}
7155
7156impl Default for GraphicsPipelineCreateInfo {
7157 #[inline]
7158 fn default() -> Self {
7159 Self {
7160 s_type: StructureType::GRAPHICS_PIPELINE_CREATE_INFO,
7161 next: ptr::null(),
7162 flags: PipelineCreateFlags::default(),
7163 stage_count: u32::default(),
7164 stages: ptr::null(),
7165 vertex_input_state: ptr::null(),
7166 input_assembly_state: ptr::null(),
7167 tessellation_state: ptr::null(),
7168 viewport_state: ptr::null(),
7169 rasterization_state: ptr::null(),
7170 multisample_state: ptr::null(),
7171 depth_stencil_state: ptr::null(),
7172 color_blend_state: ptr::null(),
7173 dynamic_state: ptr::null(),
7174 layout: PipelineLayout::default(),
7175 render_pass: RenderPass::default(),
7176 subpass: u32::default(),
7177 base_pipeline_handle: Pipeline::default(),
7178 base_pipeline_index: i32::default(),
7179 }
7180 }
7181}
7182
7183#[repr(C)]
7185#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7186pub struct GraphicsPipelineLibraryCreateInfoEXT {
7187 pub s_type: StructureType,
7188 pub next: *const c_void,
7189 pub flags: GraphicsPipelineLibraryFlagsEXT,
7190}
7191
7192impl Default for GraphicsPipelineLibraryCreateInfoEXT {
7193 #[inline]
7194 fn default() -> Self {
7195 Self {
7196 s_type: StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT,
7197 next: ptr::null(),
7198 flags: GraphicsPipelineLibraryFlagsEXT::default(),
7199 }
7200 }
7201}
7202
7203#[repr(C)]
7205#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7206pub struct GraphicsPipelineShaderGroupsCreateInfoNV {
7207 pub s_type: StructureType,
7208 pub next: *const c_void,
7209 pub group_count: u32,
7210 pub groups: *const GraphicsShaderGroupCreateInfoNV,
7211 pub pipeline_count: u32,
7212 pub pipelines: *const Pipeline,
7213}
7214
7215impl Default for GraphicsPipelineShaderGroupsCreateInfoNV {
7216 #[inline]
7217 fn default() -> Self {
7218 Self {
7219 s_type: StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
7220 next: ptr::null(),
7221 group_count: u32::default(),
7222 groups: ptr::null(),
7223 pipeline_count: u32::default(),
7224 pipelines: ptr::null(),
7225 }
7226 }
7227}
7228
7229#[repr(C)]
7231#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7232pub struct GraphicsShaderGroupCreateInfoNV {
7233 pub s_type: StructureType,
7234 pub next: *const c_void,
7235 pub stage_count: u32,
7236 pub stages: *const PipelineShaderStageCreateInfo,
7237 pub vertex_input_state: *const PipelineVertexInputStateCreateInfo,
7238 pub tessellation_state: *const PipelineTessellationStateCreateInfo,
7239}
7240
7241impl Default for GraphicsShaderGroupCreateInfoNV {
7242 #[inline]
7243 fn default() -> Self {
7244 Self {
7245 s_type: StructureType::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
7246 next: ptr::null(),
7247 stage_count: u32::default(),
7248 stages: ptr::null(),
7249 vertex_input_state: ptr::null(),
7250 tessellation_state: ptr::null(),
7251 }
7252 }
7253}
7254
7255#[repr(C)]
7257#[derive(Copy, Clone, Debug, PartialEq)]
7258pub struct HdrMetadataEXT {
7259 pub s_type: StructureType,
7260 pub next: *const c_void,
7261 pub display_primary_red: XYColorEXT,
7262 pub display_primary_green: XYColorEXT,
7263 pub display_primary_blue: XYColorEXT,
7264 pub white_point: XYColorEXT,
7265 pub max_luminance: f32,
7266 pub min_luminance: f32,
7267 pub max_content_light_level: f32,
7268 pub max_frame_average_light_level: f32,
7269}
7270
7271impl Default for HdrMetadataEXT {
7272 #[inline]
7273 fn default() -> Self {
7274 Self {
7275 s_type: StructureType::HDR_METADATA_EXT,
7276 next: ptr::null(),
7277 display_primary_red: XYColorEXT::default(),
7278 display_primary_green: XYColorEXT::default(),
7279 display_primary_blue: XYColorEXT::default(),
7280 white_point: XYColorEXT::default(),
7281 max_luminance: f32::default(),
7282 min_luminance: f32::default(),
7283 max_content_light_level: f32::default(),
7284 max_frame_average_light_level: f32::default(),
7285 }
7286 }
7287}
7288
7289#[repr(C)]
7291#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7292pub struct HdrVividDynamicMetadataHUAWEI {
7293 pub s_type: StructureType,
7294 pub next: *const c_void,
7295 pub dynamic_metadata_size: usize,
7296 pub dynamic_metadata: *const c_void,
7297}
7298
7299impl Default for HdrVividDynamicMetadataHUAWEI {
7300 #[inline]
7301 fn default() -> Self {
7302 Self {
7303 s_type: StructureType::HDR_VIVID_DYNAMIC_METADATA_HUAWEI,
7304 next: ptr::null(),
7305 dynamic_metadata_size: usize::default(),
7306 dynamic_metadata: ptr::null(),
7307 }
7308 }
7309}
7310
7311#[repr(C)]
7313#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7314pub struct HeadlessSurfaceCreateInfoEXT {
7315 pub s_type: StructureType,
7316 pub next: *const c_void,
7317 pub flags: HeadlessSurfaceCreateFlagsEXT,
7318}
7319
7320impl Default for HeadlessSurfaceCreateInfoEXT {
7321 #[inline]
7322 fn default() -> Self {
7323 Self {
7324 s_type: StructureType::HEADLESS_SURFACE_CREATE_INFO_EXT,
7325 next: ptr::null(),
7326 flags: HeadlessSurfaceCreateFlagsEXT::default(),
7327 }
7328 }
7329}
7330
7331#[repr(C)]
7333#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7334pub struct HostImageCopyDevicePerformanceQuery {
7335 pub s_type: StructureType,
7336 pub next: *mut c_void,
7337 pub optimal_device_access: Bool32,
7338 pub identical_memory_layout: Bool32,
7339}
7340
7341impl Default for HostImageCopyDevicePerformanceQuery {
7342 #[inline]
7343 fn default() -> Self {
7344 Self {
7345 s_type: StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
7346 next: ptr::null_mut(),
7347 optimal_device_access: Bool32::default(),
7348 identical_memory_layout: Bool32::default(),
7349 }
7350 }
7351}
7352
7353#[repr(C)]
7355#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7356pub struct HostImageLayoutTransitionInfo {
7357 pub s_type: StructureType,
7358 pub next: *const c_void,
7359 pub image: Image,
7360 pub old_layout: ImageLayout,
7361 pub new_layout: ImageLayout,
7362 pub subresource_range: ImageSubresourceRange,
7363}
7364
7365impl Default for HostImageLayoutTransitionInfo {
7366 #[inline]
7367 fn default() -> Self {
7368 Self {
7369 s_type: StructureType::HOST_IMAGE_LAYOUT_TRANSITION_INFO,
7370 next: ptr::null(),
7371 image: Image::default(),
7372 old_layout: ImageLayout::default(),
7373 new_layout: ImageLayout::default(),
7374 subresource_range: ImageSubresourceRange::default(),
7375 }
7376 }
7377}
7378
7379#[repr(C)]
7381#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7382pub struct IOSSurfaceCreateInfoMVK {
7383 pub s_type: StructureType,
7384 pub next: *const c_void,
7385 pub flags: IOSSurfaceCreateFlagsMVK,
7386 pub view: *const c_void,
7387}
7388
7389impl Default for IOSSurfaceCreateInfoMVK {
7390 #[inline]
7391 fn default() -> Self {
7392 Self {
7393 s_type: StructureType::IOS_SURFACE_CREATE_INFO_MVK,
7394 next: ptr::null(),
7395 flags: IOSSurfaceCreateFlagsMVK::default(),
7396 view: ptr::null(),
7397 }
7398 }
7399}
7400
7401#[repr(C)]
7403#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7404pub struct ImageAlignmentControlCreateInfoMESA {
7405 pub s_type: StructureType,
7406 pub next: *const c_void,
7407 pub maximum_requested_alignment: u32,
7408}
7409
7410impl Default for ImageAlignmentControlCreateInfoMESA {
7411 #[inline]
7412 fn default() -> Self {
7413 Self {
7414 s_type: StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA,
7415 next: ptr::null(),
7416 maximum_requested_alignment: u32::default(),
7417 }
7418 }
7419}
7420
7421#[repr(C)]
7423#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
7424pub struct ImageBlit {
7425 pub src_subresource: ImageSubresourceLayers,
7426 pub src_offsets: [Offset3D; 2],
7427 pub dst_subresource: ImageSubresourceLayers,
7428 pub dst_offsets: [Offset3D; 2],
7429}
7430
7431#[repr(C)]
7433#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7434pub struct ImageBlit2 {
7435 pub s_type: StructureType,
7436 pub next: *const c_void,
7437 pub src_subresource: ImageSubresourceLayers,
7438 pub src_offsets: [Offset3D; 2],
7439 pub dst_subresource: ImageSubresourceLayers,
7440 pub dst_offsets: [Offset3D; 2],
7441}
7442
7443impl Default for ImageBlit2 {
7444 #[inline]
7445 fn default() -> Self {
7446 Self {
7447 s_type: StructureType::IMAGE_BLIT_2,
7448 next: ptr::null(),
7449 src_subresource: ImageSubresourceLayers::default(),
7450 src_offsets: [Offset3D::default(); 2],
7451 dst_subresource: ImageSubresourceLayers::default(),
7452 dst_offsets: [Offset3D::default(); 2],
7453 }
7454 }
7455}
7456
7457#[repr(C)]
7459#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7460pub struct ImageCaptureDescriptorDataInfoEXT {
7461 pub s_type: StructureType,
7462 pub next: *const c_void,
7463 pub image: Image,
7464}
7465
7466impl Default for ImageCaptureDescriptorDataInfoEXT {
7467 #[inline]
7468 fn default() -> Self {
7469 Self {
7470 s_type: StructureType::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
7471 next: ptr::null(),
7472 image: Image::default(),
7473 }
7474 }
7475}
7476
7477#[repr(C)]
7479#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7480pub struct ImageCompressionControlEXT {
7481 pub s_type: StructureType,
7482 pub next: *const c_void,
7483 pub flags: ImageCompressionFlagsEXT,
7484 pub compression_control_plane_count: u32,
7485 pub fixed_rate_flags: *mut ImageCompressionFixedRateFlagsEXT,
7486}
7487
7488impl Default for ImageCompressionControlEXT {
7489 #[inline]
7490 fn default() -> Self {
7491 Self {
7492 s_type: StructureType::IMAGE_COMPRESSION_CONTROL_EXT,
7493 next: ptr::null(),
7494 flags: ImageCompressionFlagsEXT::default(),
7495 compression_control_plane_count: u32::default(),
7496 fixed_rate_flags: ptr::null_mut(),
7497 }
7498 }
7499}
7500
7501#[repr(C)]
7503#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7504pub struct ImageCompressionPropertiesEXT {
7505 pub s_type: StructureType,
7506 pub next: *mut c_void,
7507 pub image_compression_flags: ImageCompressionFlagsEXT,
7508 pub image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT,
7509}
7510
7511impl Default for ImageCompressionPropertiesEXT {
7512 #[inline]
7513 fn default() -> Self {
7514 Self {
7515 s_type: StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT,
7516 next: ptr::null_mut(),
7517 image_compression_flags: ImageCompressionFlagsEXT::default(),
7518 image_compression_fixed_rate_flags: ImageCompressionFixedRateFlagsEXT::default(),
7519 }
7520 }
7521}
7522
7523#[repr(C)]
7525#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7526pub struct ImageConstraintsInfoFUCHSIA {
7527 pub s_type: StructureType,
7528 pub next: *const c_void,
7529 pub format_constraints_count: u32,
7530 pub format_constraints: *const ImageFormatConstraintsInfoFUCHSIA,
7531 pub buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA,
7532 pub flags: ImageConstraintsInfoFlagsFUCHSIA,
7533}
7534
7535impl Default for ImageConstraintsInfoFUCHSIA {
7536 #[inline]
7537 fn default() -> Self {
7538 Self {
7539 s_type: StructureType::IMAGE_CONSTRAINTS_INFO_FUCHSIA,
7540 next: ptr::null(),
7541 format_constraints_count: u32::default(),
7542 format_constraints: ptr::null(),
7543 buffer_collection_constraints: BufferCollectionConstraintsInfoFUCHSIA::default(),
7544 flags: ImageConstraintsInfoFlagsFUCHSIA::default(),
7545 }
7546 }
7547}
7548
7549#[repr(C)]
7551#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
7552pub struct ImageCopy {
7553 pub src_subresource: ImageSubresourceLayers,
7554 pub src_offset: Offset3D,
7555 pub dst_subresource: ImageSubresourceLayers,
7556 pub dst_offset: Offset3D,
7557 pub extent: Extent3D,
7558}
7559
7560#[repr(C)]
7562#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7563pub struct ImageCopy2 {
7564 pub s_type: StructureType,
7565 pub next: *const c_void,
7566 pub src_subresource: ImageSubresourceLayers,
7567 pub src_offset: Offset3D,
7568 pub dst_subresource: ImageSubresourceLayers,
7569 pub dst_offset: Offset3D,
7570 pub extent: Extent3D,
7571}
7572
7573impl Default for ImageCopy2 {
7574 #[inline]
7575 fn default() -> Self {
7576 Self {
7577 s_type: StructureType::IMAGE_COPY_2,
7578 next: ptr::null(),
7579 src_subresource: ImageSubresourceLayers::default(),
7580 src_offset: Offset3D::default(),
7581 dst_subresource: ImageSubresourceLayers::default(),
7582 dst_offset: Offset3D::default(),
7583 extent: Extent3D::default(),
7584 }
7585 }
7586}
7587
7588#[repr(C)]
7590#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7591pub struct ImageCreateInfo {
7592 pub s_type: StructureType,
7593 pub next: *const c_void,
7594 pub flags: ImageCreateFlags,
7595 pub image_type: ImageType,
7596 pub format: Format,
7597 pub extent: Extent3D,
7598 pub mip_levels: u32,
7599 pub array_layers: u32,
7600 pub samples: SampleCountFlags,
7601 pub tiling: ImageTiling,
7602 pub usage: ImageUsageFlags,
7603 pub sharing_mode: SharingMode,
7604 pub queue_family_index_count: u32,
7605 pub queue_family_indices: *const u32,
7606 pub initial_layout: ImageLayout,
7607}
7608
7609impl Default for ImageCreateInfo {
7610 #[inline]
7611 fn default() -> Self {
7612 Self {
7613 s_type: StructureType::IMAGE_CREATE_INFO,
7614 next: ptr::null(),
7615 flags: ImageCreateFlags::default(),
7616 image_type: ImageType::default(),
7617 format: Format::default(),
7618 extent: Extent3D::default(),
7619 mip_levels: u32::default(),
7620 array_layers: u32::default(),
7621 samples: SampleCountFlags::default(),
7622 tiling: ImageTiling::default(),
7623 usage: ImageUsageFlags::default(),
7624 sharing_mode: SharingMode::default(),
7625 queue_family_index_count: u32::default(),
7626 queue_family_indices: ptr::null(),
7627 initial_layout: ImageLayout::default(),
7628 }
7629 }
7630}
7631
7632#[repr(C)]
7634#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7635pub struct ImageDrmFormatModifierExplicitCreateInfoEXT {
7636 pub s_type: StructureType,
7637 pub next: *const c_void,
7638 pub drm_format_modifier: u64,
7639 pub drm_format_modifier_plane_count: u32,
7640 pub plane_layouts: *const SubresourceLayout,
7641}
7642
7643impl Default for ImageDrmFormatModifierExplicitCreateInfoEXT {
7644 #[inline]
7645 fn default() -> Self {
7646 Self {
7647 s_type: StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
7648 next: ptr::null(),
7649 drm_format_modifier: u64::default(),
7650 drm_format_modifier_plane_count: u32::default(),
7651 plane_layouts: ptr::null(),
7652 }
7653 }
7654}
7655
7656#[repr(C)]
7658#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7659pub struct ImageDrmFormatModifierListCreateInfoEXT {
7660 pub s_type: StructureType,
7661 pub next: *const c_void,
7662 pub drm_format_modifier_count: u32,
7663 pub drm_format_modifiers: *const u64,
7664}
7665
7666impl Default for ImageDrmFormatModifierListCreateInfoEXT {
7667 #[inline]
7668 fn default() -> Self {
7669 Self {
7670 s_type: StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
7671 next: ptr::null(),
7672 drm_format_modifier_count: u32::default(),
7673 drm_format_modifiers: ptr::null(),
7674 }
7675 }
7676}
7677
7678#[repr(C)]
7680#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7681pub struct ImageDrmFormatModifierPropertiesEXT {
7682 pub s_type: StructureType,
7683 pub next: *mut c_void,
7684 pub drm_format_modifier: u64,
7685}
7686
7687impl Default for ImageDrmFormatModifierPropertiesEXT {
7688 #[inline]
7689 fn default() -> Self {
7690 Self {
7691 s_type: StructureType::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
7692 next: ptr::null_mut(),
7693 drm_format_modifier: u64::default(),
7694 }
7695 }
7696}
7697
7698#[repr(C)]
7700#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7701pub struct ImageFormatConstraintsInfoFUCHSIA {
7702 pub s_type: StructureType,
7703 pub next: *const c_void,
7704 pub image_create_info: ImageCreateInfo,
7705 pub required_format_features: FormatFeatureFlags,
7706 pub flags: ImageFormatConstraintsFlagsFUCHSIA,
7707 pub sysmem_pixel_format: u64,
7708 pub color_space_count: u32,
7709 pub color_spaces: *const SysmemColorSpaceFUCHSIA,
7710}
7711
7712impl Default for ImageFormatConstraintsInfoFUCHSIA {
7713 #[inline]
7714 fn default() -> Self {
7715 Self {
7716 s_type: StructureType::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,
7717 next: ptr::null(),
7718 image_create_info: ImageCreateInfo::default(),
7719 required_format_features: FormatFeatureFlags::default(),
7720 flags: ImageFormatConstraintsFlagsFUCHSIA::default(),
7721 sysmem_pixel_format: u64::default(),
7722 color_space_count: u32::default(),
7723 color_spaces: ptr::null(),
7724 }
7725 }
7726}
7727
7728#[repr(C)]
7730#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7731pub struct ImageFormatListCreateInfo {
7732 pub s_type: StructureType,
7733 pub next: *const c_void,
7734 pub view_format_count: u32,
7735 pub view_formats: *const Format,
7736}
7737
7738impl Default for ImageFormatListCreateInfo {
7739 #[inline]
7740 fn default() -> Self {
7741 Self {
7742 s_type: StructureType::IMAGE_FORMAT_LIST_CREATE_INFO,
7743 next: ptr::null(),
7744 view_format_count: u32::default(),
7745 view_formats: ptr::null(),
7746 }
7747 }
7748}
7749
7750#[repr(C)]
7752#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
7753pub struct ImageFormatProperties {
7754 pub max_extent: Extent3D,
7755 pub max_mip_levels: u32,
7756 pub max_array_layers: u32,
7757 pub sample_counts: SampleCountFlags,
7758 pub max_resource_size: DeviceSize,
7759}
7760
7761#[repr(C)]
7763#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7764pub struct ImageFormatProperties2 {
7765 pub s_type: StructureType,
7766 pub next: *mut c_void,
7767 pub image_format_properties: ImageFormatProperties,
7768}
7769
7770impl Default for ImageFormatProperties2 {
7771 #[inline]
7772 fn default() -> Self {
7773 Self {
7774 s_type: StructureType::IMAGE_FORMAT_PROPERTIES_2,
7775 next: ptr::null_mut(),
7776 image_format_properties: ImageFormatProperties::default(),
7777 }
7778 }
7779}
7780
7781#[repr(C)]
7783#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7784pub struct ImageMemoryBarrier {
7785 pub s_type: StructureType,
7786 pub next: *const c_void,
7787 pub src_access_mask: AccessFlags,
7788 pub dst_access_mask: AccessFlags,
7789 pub old_layout: ImageLayout,
7790 pub new_layout: ImageLayout,
7791 pub src_queue_family_index: u32,
7792 pub dst_queue_family_index: u32,
7793 pub image: Image,
7794 pub subresource_range: ImageSubresourceRange,
7795}
7796
7797impl Default for ImageMemoryBarrier {
7798 #[inline]
7799 fn default() -> Self {
7800 Self {
7801 s_type: StructureType::IMAGE_MEMORY_BARRIER,
7802 next: ptr::null(),
7803 src_access_mask: AccessFlags::default(),
7804 dst_access_mask: AccessFlags::default(),
7805 old_layout: ImageLayout::default(),
7806 new_layout: ImageLayout::default(),
7807 src_queue_family_index: u32::default(),
7808 dst_queue_family_index: u32::default(),
7809 image: Image::default(),
7810 subresource_range: ImageSubresourceRange::default(),
7811 }
7812 }
7813}
7814
7815#[repr(C)]
7817#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7818pub struct ImageMemoryBarrier2 {
7819 pub s_type: StructureType,
7820 pub next: *const c_void,
7821 pub src_stage_mask: PipelineStageFlags2,
7822 pub src_access_mask: AccessFlags2,
7823 pub dst_stage_mask: PipelineStageFlags2,
7824 pub dst_access_mask: AccessFlags2,
7825 pub old_layout: ImageLayout,
7826 pub new_layout: ImageLayout,
7827 pub src_queue_family_index: u32,
7828 pub dst_queue_family_index: u32,
7829 pub image: Image,
7830 pub subresource_range: ImageSubresourceRange,
7831}
7832
7833impl Default for ImageMemoryBarrier2 {
7834 #[inline]
7835 fn default() -> Self {
7836 Self {
7837 s_type: StructureType::IMAGE_MEMORY_BARRIER_2,
7838 next: ptr::null(),
7839 src_stage_mask: PipelineStageFlags2::default(),
7840 src_access_mask: AccessFlags2::default(),
7841 dst_stage_mask: PipelineStageFlags2::default(),
7842 dst_access_mask: AccessFlags2::default(),
7843 old_layout: ImageLayout::default(),
7844 new_layout: ImageLayout::default(),
7845 src_queue_family_index: u32::default(),
7846 dst_queue_family_index: u32::default(),
7847 image: Image::default(),
7848 subresource_range: ImageSubresourceRange::default(),
7849 }
7850 }
7851}
7852
7853#[repr(C)]
7855#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7856pub struct ImageMemoryRequirementsInfo2 {
7857 pub s_type: StructureType,
7858 pub next: *const c_void,
7859 pub image: Image,
7860}
7861
7862impl Default for ImageMemoryRequirementsInfo2 {
7863 #[inline]
7864 fn default() -> Self {
7865 Self {
7866 s_type: StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2,
7867 next: ptr::null(),
7868 image: Image::default(),
7869 }
7870 }
7871}
7872
7873#[repr(C)]
7875#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7876pub struct ImagePipeSurfaceCreateInfoFUCHSIA {
7877 pub s_type: StructureType,
7878 pub next: *const c_void,
7879 pub flags: ImagePipeSurfaceCreateFlagsFUCHSIA,
7880 pub image_pipe_handle: zx_handle_t,
7881}
7882
7883impl Default for ImagePipeSurfaceCreateInfoFUCHSIA {
7884 #[inline]
7885 fn default() -> Self {
7886 Self {
7887 s_type: StructureType::IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
7888 next: ptr::null(),
7889 flags: ImagePipeSurfaceCreateFlagsFUCHSIA::default(),
7890 image_pipe_handle: zx_handle_t::default(),
7891 }
7892 }
7893}
7894
7895#[repr(C)]
7897#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7898pub struct ImagePlaneMemoryRequirementsInfo {
7899 pub s_type: StructureType,
7900 pub next: *const c_void,
7901 pub plane_aspect: ImageAspectFlags,
7902}
7903
7904impl Default for ImagePlaneMemoryRequirementsInfo {
7905 #[inline]
7906 fn default() -> Self {
7907 Self {
7908 s_type: StructureType::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
7909 next: ptr::null(),
7910 plane_aspect: ImageAspectFlags::default(),
7911 }
7912 }
7913}
7914
7915#[repr(C)]
7917#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
7918pub struct ImageResolve {
7919 pub src_subresource: ImageSubresourceLayers,
7920 pub src_offset: Offset3D,
7921 pub dst_subresource: ImageSubresourceLayers,
7922 pub dst_offset: Offset3D,
7923 pub extent: Extent3D,
7924}
7925
7926#[repr(C)]
7928#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7929pub struct ImageResolve2 {
7930 pub s_type: StructureType,
7931 pub next: *const c_void,
7932 pub src_subresource: ImageSubresourceLayers,
7933 pub src_offset: Offset3D,
7934 pub dst_subresource: ImageSubresourceLayers,
7935 pub dst_offset: Offset3D,
7936 pub extent: Extent3D,
7937}
7938
7939impl Default for ImageResolve2 {
7940 #[inline]
7941 fn default() -> Self {
7942 Self {
7943 s_type: StructureType::IMAGE_RESOLVE_2,
7944 next: ptr::null(),
7945 src_subresource: ImageSubresourceLayers::default(),
7946 src_offset: Offset3D::default(),
7947 dst_subresource: ImageSubresourceLayers::default(),
7948 dst_offset: Offset3D::default(),
7949 extent: Extent3D::default(),
7950 }
7951 }
7952}
7953
7954#[repr(C)]
7956#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7957pub struct ImageSparseMemoryRequirementsInfo2 {
7958 pub s_type: StructureType,
7959 pub next: *const c_void,
7960 pub image: Image,
7961}
7962
7963impl Default for ImageSparseMemoryRequirementsInfo2 {
7964 #[inline]
7965 fn default() -> Self {
7966 Self {
7967 s_type: StructureType::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
7968 next: ptr::null(),
7969 image: Image::default(),
7970 }
7971 }
7972}
7973
7974#[repr(C)]
7976#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
7977pub struct ImageStencilUsageCreateInfo {
7978 pub s_type: StructureType,
7979 pub next: *const c_void,
7980 pub stencil_usage: ImageUsageFlags,
7981}
7982
7983impl Default for ImageStencilUsageCreateInfo {
7984 #[inline]
7985 fn default() -> Self {
7986 Self {
7987 s_type: StructureType::IMAGE_STENCIL_USAGE_CREATE_INFO,
7988 next: ptr::null(),
7989 stencil_usage: ImageUsageFlags::default(),
7990 }
7991 }
7992}
7993
7994#[repr(C)]
7996#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
7997pub struct ImageSubresource {
7998 pub aspect_mask: ImageAspectFlags,
7999 pub mip_level: u32,
8000 pub array_layer: u32,
8001}
8002
8003#[repr(C)]
8005#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8006pub struct ImageSubresource2 {
8007 pub s_type: StructureType,
8008 pub next: *mut c_void,
8009 pub image_subresource: ImageSubresource,
8010}
8011
8012impl Default for ImageSubresource2 {
8013 #[inline]
8014 fn default() -> Self {
8015 Self {
8016 s_type: StructureType::IMAGE_SUBRESOURCE_2,
8017 next: ptr::null_mut(),
8018 image_subresource: ImageSubresource::default(),
8019 }
8020 }
8021}
8022
8023#[repr(C)]
8025#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
8026pub struct ImageSubresourceLayers {
8027 pub aspect_mask: ImageAspectFlags,
8028 pub mip_level: u32,
8029 pub base_array_layer: u32,
8030 pub layer_count: u32,
8031}
8032
8033#[repr(C)]
8035#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
8036pub struct ImageSubresourceRange {
8037 pub aspect_mask: ImageAspectFlags,
8038 pub base_mip_level: u32,
8039 pub level_count: u32,
8040 pub base_array_layer: u32,
8041 pub layer_count: u32,
8042}
8043
8044#[repr(C)]
8046#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8047pub struct ImageSwapchainCreateInfoKHR {
8048 pub s_type: StructureType,
8049 pub next: *const c_void,
8050 pub swapchain: SwapchainKHR,
8051}
8052
8053impl Default for ImageSwapchainCreateInfoKHR {
8054 #[inline]
8055 fn default() -> Self {
8056 Self {
8057 s_type: StructureType::IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
8058 next: ptr::null(),
8059 swapchain: SwapchainKHR::default(),
8060 }
8061 }
8062}
8063
8064#[repr(C)]
8066#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8067pub struct ImageToMemoryCopy {
8068 pub s_type: StructureType,
8069 pub next: *const c_void,
8070 pub host_pointer: *mut c_void,
8071 pub memory_row_length: u32,
8072 pub memory_image_height: u32,
8073 pub image_subresource: ImageSubresourceLayers,
8074 pub image_offset: Offset3D,
8075 pub image_extent: Extent3D,
8076}
8077
8078impl Default for ImageToMemoryCopy {
8079 #[inline]
8080 fn default() -> Self {
8081 Self {
8082 s_type: StructureType::IMAGE_TO_MEMORY_COPY,
8083 next: ptr::null(),
8084 host_pointer: ptr::null_mut(),
8085 memory_row_length: u32::default(),
8086 memory_image_height: u32::default(),
8087 image_subresource: ImageSubresourceLayers::default(),
8088 image_offset: Offset3D::default(),
8089 image_extent: Extent3D::default(),
8090 }
8091 }
8092}
8093
8094#[repr(C)]
8096#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8097pub struct ImageViewASTCDecodeModeEXT {
8098 pub s_type: StructureType,
8099 pub next: *const c_void,
8100 pub decode_mode: Format,
8101}
8102
8103impl Default for ImageViewASTCDecodeModeEXT {
8104 #[inline]
8105 fn default() -> Self {
8106 Self {
8107 s_type: StructureType::IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
8108 next: ptr::null(),
8109 decode_mode: Format::default(),
8110 }
8111 }
8112}
8113
8114#[repr(C)]
8116#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8117pub struct ImageViewAddressPropertiesNVX {
8118 pub s_type: StructureType,
8119 pub next: *mut c_void,
8120 pub device_address: DeviceAddress,
8121 pub size: DeviceSize,
8122}
8123
8124impl Default for ImageViewAddressPropertiesNVX {
8125 #[inline]
8126 fn default() -> Self {
8127 Self {
8128 s_type: StructureType::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
8129 next: ptr::null_mut(),
8130 device_address: DeviceAddress::default(),
8131 size: DeviceSize::default(),
8132 }
8133 }
8134}
8135
8136#[repr(C)]
8138#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8139pub struct ImageViewCaptureDescriptorDataInfoEXT {
8140 pub s_type: StructureType,
8141 pub next: *const c_void,
8142 pub image_view: ImageView,
8143}
8144
8145impl Default for ImageViewCaptureDescriptorDataInfoEXT {
8146 #[inline]
8147 fn default() -> Self {
8148 Self {
8149 s_type: StructureType::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
8150 next: ptr::null(),
8151 image_view: ImageView::default(),
8152 }
8153 }
8154}
8155
8156#[repr(C)]
8158#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8159pub struct ImageViewCreateInfo {
8160 pub s_type: StructureType,
8161 pub next: *const c_void,
8162 pub flags: ImageViewCreateFlags,
8163 pub image: Image,
8164 pub view_type: ImageViewType,
8165 pub format: Format,
8166 pub components: ComponentMapping,
8167 pub subresource_range: ImageSubresourceRange,
8168}
8169
8170impl Default for ImageViewCreateInfo {
8171 #[inline]
8172 fn default() -> Self {
8173 Self {
8174 s_type: StructureType::IMAGE_VIEW_CREATE_INFO,
8175 next: ptr::null(),
8176 flags: ImageViewCreateFlags::default(),
8177 image: Image::default(),
8178 view_type: ImageViewType::default(),
8179 format: Format::default(),
8180 components: ComponentMapping::default(),
8181 subresource_range: ImageSubresourceRange::default(),
8182 }
8183 }
8184}
8185
8186#[repr(C)]
8188#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8189pub struct ImageViewHandleInfoNVX {
8190 pub s_type: StructureType,
8191 pub next: *const c_void,
8192 pub image_view: ImageView,
8193 pub descriptor_type: DescriptorType,
8194 pub sampler: Sampler,
8195}
8196
8197impl Default for ImageViewHandleInfoNVX {
8198 #[inline]
8199 fn default() -> Self {
8200 Self {
8201 s_type: StructureType::IMAGE_VIEW_HANDLE_INFO_NVX,
8202 next: ptr::null(),
8203 image_view: ImageView::default(),
8204 descriptor_type: DescriptorType::default(),
8205 sampler: Sampler::default(),
8206 }
8207 }
8208}
8209
8210#[repr(C)]
8212#[derive(Copy, Clone, Debug, PartialEq)]
8213pub struct ImageViewMinLodCreateInfoEXT {
8214 pub s_type: StructureType,
8215 pub next: *const c_void,
8216 pub min_lod: f32,
8217}
8218
8219impl Default for ImageViewMinLodCreateInfoEXT {
8220 #[inline]
8221 fn default() -> Self {
8222 Self {
8223 s_type: StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT,
8224 next: ptr::null(),
8225 min_lod: f32::default(),
8226 }
8227 }
8228}
8229
8230#[repr(C)]
8232#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8233pub struct ImageViewSampleWeightCreateInfoQCOM {
8234 pub s_type: StructureType,
8235 pub next: *const c_void,
8236 pub filter_center: Offset2D,
8237 pub filter_size: Extent2D,
8238 pub num_phases: u32,
8239}
8240
8241impl Default for ImageViewSampleWeightCreateInfoQCOM {
8242 #[inline]
8243 fn default() -> Self {
8244 Self {
8245 s_type: StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,
8246 next: ptr::null(),
8247 filter_center: Offset2D::default(),
8248 filter_size: Extent2D::default(),
8249 num_phases: u32::default(),
8250 }
8251 }
8252}
8253
8254#[repr(C)]
8256#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8257pub struct ImageViewSlicedCreateInfoEXT {
8258 pub s_type: StructureType,
8259 pub next: *const c_void,
8260 pub slice_offset: u32,
8261 pub slice_count: u32,
8262}
8263
8264impl Default for ImageViewSlicedCreateInfoEXT {
8265 #[inline]
8266 fn default() -> Self {
8267 Self {
8268 s_type: StructureType::IMAGE_VIEW_SLICED_CREATE_INFO_EXT,
8269 next: ptr::null(),
8270 slice_offset: u32::default(),
8271 slice_count: u32::default(),
8272 }
8273 }
8274}
8275
8276#[repr(C)]
8278#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8279pub struct ImageViewUsageCreateInfo {
8280 pub s_type: StructureType,
8281 pub next: *const c_void,
8282 pub usage: ImageUsageFlags,
8283}
8284
8285impl Default for ImageViewUsageCreateInfo {
8286 #[inline]
8287 fn default() -> Self {
8288 Self {
8289 s_type: StructureType::IMAGE_VIEW_USAGE_CREATE_INFO,
8290 next: ptr::null(),
8291 usage: ImageUsageFlags::default(),
8292 }
8293 }
8294}
8295
8296#[repr(C)]
8298#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8299pub struct ImportAndroidHardwareBufferInfoANDROID {
8300 pub s_type: StructureType,
8301 pub next: *const c_void,
8302 pub buffer: *mut AHardwareBuffer,
8303}
8304
8305impl Default for ImportAndroidHardwareBufferInfoANDROID {
8306 #[inline]
8307 fn default() -> Self {
8308 Self {
8309 s_type: StructureType::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
8310 next: ptr::null(),
8311 buffer: ptr::null_mut(),
8312 }
8313 }
8314}
8315
8316#[repr(C)]
8318#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8319pub struct ImportFenceFdInfoKHR {
8320 pub s_type: StructureType,
8321 pub next: *const c_void,
8322 pub fence: Fence,
8323 pub flags: FenceImportFlags,
8324 pub handle_type: ExternalFenceHandleTypeFlags,
8325 pub fd: c_int,
8326}
8327
8328impl Default for ImportFenceFdInfoKHR {
8329 #[inline]
8330 fn default() -> Self {
8331 Self {
8332 s_type: StructureType::IMPORT_FENCE_FD_INFO_KHR,
8333 next: ptr::null(),
8334 fence: Fence::default(),
8335 flags: FenceImportFlags::default(),
8336 handle_type: ExternalFenceHandleTypeFlags::default(),
8337 fd: c_int::default(),
8338 }
8339 }
8340}
8341
8342#[repr(C)]
8344#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8345pub struct ImportFenceSciSyncInfoNV {
8346 pub s_type: StructureType,
8347 pub next: *const c_void,
8348 pub fence: Fence,
8349 pub handle_type: ExternalFenceHandleTypeFlags,
8350 pub handle: *mut c_void,
8351}
8352
8353impl Default for ImportFenceSciSyncInfoNV {
8354 #[inline]
8355 fn default() -> Self {
8356 Self {
8357 s_type: StructureType::IMPORT_FENCE_SCI_SYNC_INFO_NV,
8358 next: ptr::null(),
8359 fence: Fence::default(),
8360 handle_type: ExternalFenceHandleTypeFlags::default(),
8361 handle: ptr::null_mut(),
8362 }
8363 }
8364}
8365
8366#[repr(C)]
8368#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8369pub struct ImportFenceWin32HandleInfoKHR {
8370 pub s_type: StructureType,
8371 pub next: *const c_void,
8372 pub fence: Fence,
8373 pub flags: FenceImportFlags,
8374 pub handle_type: ExternalFenceHandleTypeFlags,
8375 pub handle: HANDLE,
8376 pub name: LPCWSTR,
8377}
8378
8379impl Default for ImportFenceWin32HandleInfoKHR {
8380 #[inline]
8381 fn default() -> Self {
8382 Self {
8383 s_type: StructureType::IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
8384 next: ptr::null(),
8385 fence: Fence::default(),
8386 flags: FenceImportFlags::default(),
8387 handle_type: ExternalFenceHandleTypeFlags::default(),
8388 handle: ptr::null_mut(),
8389 name: ptr::null_mut(),
8390 }
8391 }
8392}
8393
8394#[repr(C)]
8396#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8397pub struct ImportMemoryBufferCollectionFUCHSIA {
8398 pub s_type: StructureType,
8399 pub next: *const c_void,
8400 pub collection: BufferCollectionFUCHSIA,
8401 pub index: u32,
8402}
8403
8404impl Default for ImportMemoryBufferCollectionFUCHSIA {
8405 #[inline]
8406 fn default() -> Self {
8407 Self {
8408 s_type: StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA,
8409 next: ptr::null(),
8410 collection: BufferCollectionFUCHSIA::default(),
8411 index: u32::default(),
8412 }
8413 }
8414}
8415
8416#[repr(C)]
8418#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8419pub struct ImportMemoryFdInfoKHR {
8420 pub s_type: StructureType,
8421 pub next: *const c_void,
8422 pub handle_type: ExternalMemoryHandleTypeFlags,
8423 pub fd: c_int,
8424}
8425
8426impl Default for ImportMemoryFdInfoKHR {
8427 #[inline]
8428 fn default() -> Self {
8429 Self {
8430 s_type: StructureType::IMPORT_MEMORY_FD_INFO_KHR,
8431 next: ptr::null(),
8432 handle_type: ExternalMemoryHandleTypeFlags::default(),
8433 fd: c_int::default(),
8434 }
8435 }
8436}
8437
8438#[repr(C)]
8440#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8441pub struct ImportMemoryHostPointerInfoEXT {
8442 pub s_type: StructureType,
8443 pub next: *const c_void,
8444 pub handle_type: ExternalMemoryHandleTypeFlags,
8445 pub host_pointer: *mut c_void,
8446}
8447
8448impl Default for ImportMemoryHostPointerInfoEXT {
8449 #[inline]
8450 fn default() -> Self {
8451 Self {
8452 s_type: StructureType::IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
8453 next: ptr::null(),
8454 handle_type: ExternalMemoryHandleTypeFlags::default(),
8455 host_pointer: ptr::null_mut(),
8456 }
8457 }
8458}
8459
8460#[repr(C)]
8462#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8463pub struct ImportMemoryMetalHandleInfoEXT {
8464 pub s_type: StructureType,
8465 pub next: *const c_void,
8466 pub handle_type: ExternalMemoryHandleTypeFlags,
8467 pub handle: *mut c_void,
8468}
8469
8470impl Default for ImportMemoryMetalHandleInfoEXT {
8471 #[inline]
8472 fn default() -> Self {
8473 Self {
8474 s_type: StructureType::IMPORT_MEMORY_METAL_HANDLE_INFO_EXT,
8475 next: ptr::null(),
8476 handle_type: ExternalMemoryHandleTypeFlags::default(),
8477 handle: ptr::null_mut(),
8478 }
8479 }
8480}
8481
8482#[repr(C)]
8484#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8485pub struct ImportMemorySciBufInfoNV {
8486 pub s_type: StructureType,
8487 pub next: *const c_void,
8488 pub handle_type: ExternalMemoryHandleTypeFlags,
8489 pub handle: NvSciBufObj,
8490}
8491
8492impl Default for ImportMemorySciBufInfoNV {
8493 #[inline]
8494 fn default() -> Self {
8495 Self {
8496 s_type: StructureType::IMPORT_MEMORY_SCI_BUF_INFO_NV,
8497 next: ptr::null(),
8498 handle_type: ExternalMemoryHandleTypeFlags::default(),
8499 handle: ptr::null_mut(),
8500 }
8501 }
8502}
8503
8504#[repr(C)]
8506#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8507pub struct ImportMemoryWin32HandleInfoKHR {
8508 pub s_type: StructureType,
8509 pub next: *const c_void,
8510 pub handle_type: ExternalMemoryHandleTypeFlags,
8511 pub handle: HANDLE,
8512 pub name: LPCWSTR,
8513}
8514
8515impl Default for ImportMemoryWin32HandleInfoKHR {
8516 #[inline]
8517 fn default() -> Self {
8518 Self {
8519 s_type: StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
8520 next: ptr::null(),
8521 handle_type: ExternalMemoryHandleTypeFlags::default(),
8522 handle: ptr::null_mut(),
8523 name: ptr::null_mut(),
8524 }
8525 }
8526}
8527
8528#[repr(C)]
8530#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8531pub struct ImportMemoryWin32HandleInfoNV {
8532 pub s_type: StructureType,
8533 pub next: *const c_void,
8534 pub handle_type: ExternalMemoryHandleTypeFlagsNV,
8535 pub handle: HANDLE,
8536}
8537
8538impl Default for ImportMemoryWin32HandleInfoNV {
8539 #[inline]
8540 fn default() -> Self {
8541 Self {
8542 s_type: StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
8543 next: ptr::null(),
8544 handle_type: ExternalMemoryHandleTypeFlagsNV::default(),
8545 handle: ptr::null_mut(),
8546 }
8547 }
8548}
8549
8550#[repr(C)]
8552#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8553pub struct ImportMemoryZirconHandleInfoFUCHSIA {
8554 pub s_type: StructureType,
8555 pub next: *const c_void,
8556 pub handle_type: ExternalMemoryHandleTypeFlags,
8557 pub handle: zx_handle_t,
8558}
8559
8560impl Default for ImportMemoryZirconHandleInfoFUCHSIA {
8561 #[inline]
8562 fn default() -> Self {
8563 Self {
8564 s_type: StructureType::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
8565 next: ptr::null(),
8566 handle_type: ExternalMemoryHandleTypeFlags::default(),
8567 handle: zx_handle_t::default(),
8568 }
8569 }
8570}
8571
8572#[repr(C)]
8574#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8575pub struct ImportMetalBufferInfoEXT {
8576 pub s_type: StructureType,
8577 pub next: *const c_void,
8578 pub mtl_buffer: MTLBuffer_id,
8579}
8580
8581impl Default for ImportMetalBufferInfoEXT {
8582 #[inline]
8583 fn default() -> Self {
8584 Self {
8585 s_type: StructureType::IMPORT_METAL_BUFFER_INFO_EXT,
8586 next: ptr::null(),
8587 mtl_buffer: ptr::null_mut(),
8588 }
8589 }
8590}
8591
8592#[repr(C)]
8594#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8595pub struct ImportMetalIOSurfaceInfoEXT {
8596 pub s_type: StructureType,
8597 pub next: *const c_void,
8598 pub io_surface: IOSurfaceRef,
8599}
8600
8601impl Default for ImportMetalIOSurfaceInfoEXT {
8602 #[inline]
8603 fn default() -> Self {
8604 Self {
8605 s_type: StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT,
8606 next: ptr::null(),
8607 io_surface: ptr::null_mut(),
8608 }
8609 }
8610}
8611
8612#[repr(C)]
8614#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8615pub struct ImportMetalSharedEventInfoEXT {
8616 pub s_type: StructureType,
8617 pub next: *const c_void,
8618 pub mtl_shared_event: MTLSharedEvent_id,
8619}
8620
8621impl Default for ImportMetalSharedEventInfoEXT {
8622 #[inline]
8623 fn default() -> Self {
8624 Self {
8625 s_type: StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT,
8626 next: ptr::null(),
8627 mtl_shared_event: ptr::null_mut(),
8628 }
8629 }
8630}
8631
8632#[repr(C)]
8634#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8635pub struct ImportMetalTextureInfoEXT {
8636 pub s_type: StructureType,
8637 pub next: *const c_void,
8638 pub plane: ImageAspectFlags,
8639 pub mtl_texture: MTLTexture_id,
8640}
8641
8642impl Default for ImportMetalTextureInfoEXT {
8643 #[inline]
8644 fn default() -> Self {
8645 Self {
8646 s_type: StructureType::IMPORT_METAL_TEXTURE_INFO_EXT,
8647 next: ptr::null(),
8648 plane: ImageAspectFlags::default(),
8649 mtl_texture: ptr::null_mut(),
8650 }
8651 }
8652}
8653
8654#[repr(C)]
8656#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8657pub struct ImportScreenBufferInfoQNX {
8658 pub s_type: StructureType,
8659 pub next: *const c_void,
8660 pub buffer: *mut _screen_buffer,
8661}
8662
8663impl Default for ImportScreenBufferInfoQNX {
8664 #[inline]
8665 fn default() -> Self {
8666 Self {
8667 s_type: StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX,
8668 next: ptr::null(),
8669 buffer: ptr::null_mut(),
8670 }
8671 }
8672}
8673
8674#[repr(C)]
8676#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8677pub struct ImportSemaphoreFdInfoKHR {
8678 pub s_type: StructureType,
8679 pub next: *const c_void,
8680 pub semaphore: Semaphore,
8681 pub flags: SemaphoreImportFlags,
8682 pub handle_type: ExternalSemaphoreHandleTypeFlags,
8683 pub fd: c_int,
8684}
8685
8686impl Default for ImportSemaphoreFdInfoKHR {
8687 #[inline]
8688 fn default() -> Self {
8689 Self {
8690 s_type: StructureType::IMPORT_SEMAPHORE_FD_INFO_KHR,
8691 next: ptr::null(),
8692 semaphore: Semaphore::default(),
8693 flags: SemaphoreImportFlags::default(),
8694 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
8695 fd: c_int::default(),
8696 }
8697 }
8698}
8699
8700#[repr(C)]
8702#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8703pub struct ImportSemaphoreSciSyncInfoNV {
8704 pub s_type: StructureType,
8705 pub next: *const c_void,
8706 pub semaphore: Semaphore,
8707 pub handle_type: ExternalSemaphoreHandleTypeFlags,
8708 pub handle: *mut c_void,
8709}
8710
8711impl Default for ImportSemaphoreSciSyncInfoNV {
8712 #[inline]
8713 fn default() -> Self {
8714 Self {
8715 s_type: StructureType::IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV,
8716 next: ptr::null(),
8717 semaphore: Semaphore::default(),
8718 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
8719 handle: ptr::null_mut(),
8720 }
8721 }
8722}
8723
8724#[repr(C)]
8726#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8727pub struct ImportSemaphoreWin32HandleInfoKHR {
8728 pub s_type: StructureType,
8729 pub next: *const c_void,
8730 pub semaphore: Semaphore,
8731 pub flags: SemaphoreImportFlags,
8732 pub handle_type: ExternalSemaphoreHandleTypeFlags,
8733 pub handle: HANDLE,
8734 pub name: LPCWSTR,
8735}
8736
8737impl Default for ImportSemaphoreWin32HandleInfoKHR {
8738 #[inline]
8739 fn default() -> Self {
8740 Self {
8741 s_type: StructureType::IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
8742 next: ptr::null(),
8743 semaphore: Semaphore::default(),
8744 flags: SemaphoreImportFlags::default(),
8745 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
8746 handle: ptr::null_mut(),
8747 name: ptr::null_mut(),
8748 }
8749 }
8750}
8751
8752#[repr(C)]
8754#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8755pub struct ImportSemaphoreZirconHandleInfoFUCHSIA {
8756 pub s_type: StructureType,
8757 pub next: *const c_void,
8758 pub semaphore: Semaphore,
8759 pub flags: SemaphoreImportFlags,
8760 pub handle_type: ExternalSemaphoreHandleTypeFlags,
8761 pub zircon_handle: zx_handle_t,
8762}
8763
8764impl Default for ImportSemaphoreZirconHandleInfoFUCHSIA {
8765 #[inline]
8766 fn default() -> Self {
8767 Self {
8768 s_type: StructureType::IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
8769 next: ptr::null(),
8770 semaphore: Semaphore::default(),
8771 flags: SemaphoreImportFlags::default(),
8772 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
8773 zircon_handle: zx_handle_t::default(),
8774 }
8775 }
8776}
8777
8778#[repr(C)]
8780#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
8781pub struct IndirectCommandsExecutionSetTokenEXT {
8782 pub type_: IndirectExecutionSetInfoTypeEXT,
8783 pub shader_stages: ShaderStageFlags,
8784}
8785
8786#[repr(C)]
8788#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
8789pub struct IndirectCommandsIndexBufferTokenEXT {
8790 pub mode: IndirectCommandsInputModeFlagsEXT,
8791}
8792
8793#[repr(C)]
8795#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8796pub struct IndirectCommandsLayoutCreateInfoEXT {
8797 pub s_type: StructureType,
8798 pub next: *const c_void,
8799 pub flags: IndirectCommandsLayoutUsageFlagsEXT,
8800 pub shader_stages: ShaderStageFlags,
8801 pub indirect_stride: u32,
8802 pub pipeline_layout: PipelineLayout,
8803 pub token_count: u32,
8804 pub tokens: *const IndirectCommandsLayoutTokenEXT,
8805}
8806
8807impl Default for IndirectCommandsLayoutCreateInfoEXT {
8808 #[inline]
8809 fn default() -> Self {
8810 Self {
8811 s_type: StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT,
8812 next: ptr::null(),
8813 flags: IndirectCommandsLayoutUsageFlagsEXT::default(),
8814 shader_stages: ShaderStageFlags::default(),
8815 indirect_stride: u32::default(),
8816 pipeline_layout: PipelineLayout::default(),
8817 token_count: u32::default(),
8818 tokens: ptr::null(),
8819 }
8820 }
8821}
8822
8823#[repr(C)]
8825#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8826pub struct IndirectCommandsLayoutCreateInfoNV {
8827 pub s_type: StructureType,
8828 pub next: *const c_void,
8829 pub flags: IndirectCommandsLayoutUsageFlagsNV,
8830 pub pipeline_bind_point: PipelineBindPoint,
8831 pub token_count: u32,
8832 pub tokens: *const IndirectCommandsLayoutTokenNV,
8833 pub stream_count: u32,
8834 pub stream_strides: *const u32,
8835}
8836
8837impl Default for IndirectCommandsLayoutCreateInfoNV {
8838 #[inline]
8839 fn default() -> Self {
8840 Self {
8841 s_type: StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
8842 next: ptr::null(),
8843 flags: IndirectCommandsLayoutUsageFlagsNV::default(),
8844 pipeline_bind_point: PipelineBindPoint::default(),
8845 token_count: u32::default(),
8846 tokens: ptr::null(),
8847 stream_count: u32::default(),
8848 stream_strides: ptr::null(),
8849 }
8850 }
8851}
8852
8853#[repr(C)]
8855#[derive(Copy, Clone, Debug)]
8856pub struct IndirectCommandsLayoutTokenEXT {
8857 pub s_type: StructureType,
8858 pub next: *const c_void,
8859 pub type_: IndirectCommandsTokenTypeEXT,
8860 pub data: IndirectCommandsTokenDataEXT,
8861 pub offset: u32,
8862}
8863
8864impl Default for IndirectCommandsLayoutTokenEXT {
8865 #[inline]
8866 fn default() -> Self {
8867 Self {
8868 s_type: StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT,
8869 next: ptr::null(),
8870 type_: IndirectCommandsTokenTypeEXT::default(),
8871 data: IndirectCommandsTokenDataEXT::default(),
8872 offset: u32::default(),
8873 }
8874 }
8875}
8876
8877#[repr(C)]
8879#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8880pub struct IndirectCommandsLayoutTokenNV {
8881 pub s_type: StructureType,
8882 pub next: *const c_void,
8883 pub token_type: IndirectCommandsTokenTypeNV,
8884 pub stream: u32,
8885 pub offset: u32,
8886 pub vertex_binding_unit: u32,
8887 pub vertex_dynamic_stride: Bool32,
8888 pub pushconstant_pipeline_layout: PipelineLayout,
8889 pub pushconstant_shader_stage_flags: ShaderStageFlags,
8890 pub pushconstant_offset: u32,
8891 pub pushconstant_size: u32,
8892 pub indirect_state_flags: IndirectStateFlagsNV,
8893 pub index_type_count: u32,
8894 pub index_types: *const IndexType,
8895 pub index_type_values: *const u32,
8896}
8897
8898impl Default for IndirectCommandsLayoutTokenNV {
8899 #[inline]
8900 fn default() -> Self {
8901 Self {
8902 s_type: StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
8903 next: ptr::null(),
8904 token_type: IndirectCommandsTokenTypeNV::default(),
8905 stream: u32::default(),
8906 offset: u32::default(),
8907 vertex_binding_unit: u32::default(),
8908 vertex_dynamic_stride: Bool32::default(),
8909 pushconstant_pipeline_layout: PipelineLayout::default(),
8910 pushconstant_shader_stage_flags: ShaderStageFlags::default(),
8911 pushconstant_offset: u32::default(),
8912 pushconstant_size: u32::default(),
8913 indirect_state_flags: IndirectStateFlagsNV::default(),
8914 index_type_count: u32::default(),
8915 index_types: ptr::null(),
8916 index_type_values: ptr::null(),
8917 }
8918 }
8919}
8920
8921#[repr(C)]
8923#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
8924pub struct IndirectCommandsPushConstantTokenEXT {
8925 pub update_range: PushConstantRange,
8926}
8927
8928#[repr(C)]
8930#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
8931pub struct IndirectCommandsStreamNV {
8932 pub buffer: Buffer,
8933 pub offset: DeviceSize,
8934}
8935
8936#[repr(C)]
8938#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
8939pub struct IndirectCommandsVertexBufferTokenEXT {
8940 pub vertex_binding_unit: u32,
8941}
8942
8943#[repr(C)]
8945#[derive(Copy, Clone, Debug)]
8946pub struct IndirectExecutionSetCreateInfoEXT {
8947 pub s_type: StructureType,
8948 pub next: *const c_void,
8949 pub type_: IndirectExecutionSetInfoTypeEXT,
8950 pub info: IndirectExecutionSetInfoEXT,
8951}
8952
8953impl Default for IndirectExecutionSetCreateInfoEXT {
8954 #[inline]
8955 fn default() -> Self {
8956 Self {
8957 s_type: StructureType::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT,
8958 next: ptr::null(),
8959 type_: IndirectExecutionSetInfoTypeEXT::default(),
8960 info: IndirectExecutionSetInfoEXT::default(),
8961 }
8962 }
8963}
8964
8965#[repr(C)]
8967#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8968pub struct IndirectExecutionSetPipelineInfoEXT {
8969 pub s_type: StructureType,
8970 pub next: *const c_void,
8971 pub initial_pipeline: Pipeline,
8972 pub max_pipeline_count: u32,
8973}
8974
8975impl Default for IndirectExecutionSetPipelineInfoEXT {
8976 #[inline]
8977 fn default() -> Self {
8978 Self {
8979 s_type: StructureType::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT,
8980 next: ptr::null(),
8981 initial_pipeline: Pipeline::default(),
8982 max_pipeline_count: u32::default(),
8983 }
8984 }
8985}
8986
8987#[repr(C)]
8989#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
8990pub struct IndirectExecutionSetShaderInfoEXT {
8991 pub s_type: StructureType,
8992 pub next: *const c_void,
8993 pub shader_count: u32,
8994 pub initial_shaders: *const ShaderEXT,
8995 pub set_layout_infos: *const IndirectExecutionSetShaderLayoutInfoEXT,
8996 pub max_shader_count: u32,
8997 pub push_constant_range_count: u32,
8998 pub push_constant_ranges: *const PushConstantRange,
8999}
9000
9001impl Default for IndirectExecutionSetShaderInfoEXT {
9002 #[inline]
9003 fn default() -> Self {
9004 Self {
9005 s_type: StructureType::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT,
9006 next: ptr::null(),
9007 shader_count: u32::default(),
9008 initial_shaders: ptr::null(),
9009 set_layout_infos: ptr::null(),
9010 max_shader_count: u32::default(),
9011 push_constant_range_count: u32::default(),
9012 push_constant_ranges: ptr::null(),
9013 }
9014 }
9015}
9016
9017#[repr(C)]
9019#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9020pub struct IndirectExecutionSetShaderLayoutInfoEXT {
9021 pub s_type: StructureType,
9022 pub next: *const c_void,
9023 pub set_layout_count: u32,
9024 pub set_layouts: *const DescriptorSetLayout,
9025}
9026
9027impl Default for IndirectExecutionSetShaderLayoutInfoEXT {
9028 #[inline]
9029 fn default() -> Self {
9030 Self {
9031 s_type: StructureType::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT,
9032 next: ptr::null(),
9033 set_layout_count: u32::default(),
9034 set_layouts: ptr::null(),
9035 }
9036 }
9037}
9038
9039#[repr(C)]
9041#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9042pub struct InitializePerformanceApiInfoINTEL {
9043 pub s_type: StructureType,
9044 pub next: *const c_void,
9045 pub user_data: *mut c_void,
9046}
9047
9048impl Default for InitializePerformanceApiInfoINTEL {
9049 #[inline]
9050 fn default() -> Self {
9051 Self {
9052 s_type: StructureType::INITIALIZE_PERFORMANCE_API_INFO_INTEL,
9053 next: ptr::null(),
9054 user_data: ptr::null_mut(),
9055 }
9056 }
9057}
9058
9059#[repr(C)]
9061#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
9062pub struct InputAttachmentAspectReference {
9063 pub subpass: u32,
9064 pub input_attachment_index: u32,
9065 pub aspect_mask: ImageAspectFlags,
9066}
9067
9068#[repr(C)]
9070#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9071pub struct InstanceCreateInfo {
9072 pub s_type: StructureType,
9073 pub next: *const c_void,
9074 pub flags: InstanceCreateFlags,
9075 pub application_info: *const ApplicationInfo,
9076 pub enabled_layer_count: u32,
9077 pub enabled_layer_names: *const *const c_char,
9078 pub enabled_extension_count: u32,
9079 pub enabled_extension_names: *const *const c_char,
9080}
9081
9082impl Default for InstanceCreateInfo {
9083 #[inline]
9084 fn default() -> Self {
9085 Self {
9086 s_type: StructureType::INSTANCE_CREATE_INFO,
9087 next: ptr::null(),
9088 flags: InstanceCreateFlags::default(),
9089 application_info: ptr::null(),
9090 enabled_layer_count: u32::default(),
9091 enabled_layer_names: ptr::null(),
9092 enabled_extension_count: u32::default(),
9093 enabled_extension_names: ptr::null(),
9094 }
9095 }
9096}
9097
9098#[repr(C)]
9100#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9101pub struct LatencySleepInfoNV {
9102 pub s_type: StructureType,
9103 pub next: *const c_void,
9104 pub signal_semaphore: Semaphore,
9105 pub value: u64,
9106}
9107
9108impl Default for LatencySleepInfoNV {
9109 #[inline]
9110 fn default() -> Self {
9111 Self {
9112 s_type: StructureType::LATENCY_SLEEP_INFO_NV,
9113 next: ptr::null(),
9114 signal_semaphore: Semaphore::default(),
9115 value: u64::default(),
9116 }
9117 }
9118}
9119
9120#[repr(C)]
9122#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9123pub struct LatencySleepModeInfoNV {
9124 pub s_type: StructureType,
9125 pub next: *const c_void,
9126 pub low_latency_mode: Bool32,
9127 pub low_latency_boost: Bool32,
9128 pub minimum_interval_us: u32,
9129}
9130
9131impl Default for LatencySleepModeInfoNV {
9132 #[inline]
9133 fn default() -> Self {
9134 Self {
9135 s_type: StructureType::LATENCY_SLEEP_MODE_INFO_NV,
9136 next: ptr::null(),
9137 low_latency_mode: Bool32::default(),
9138 low_latency_boost: Bool32::default(),
9139 minimum_interval_us: u32::default(),
9140 }
9141 }
9142}
9143
9144#[repr(C)]
9146#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9147pub struct LatencySubmissionPresentIdNV {
9148 pub s_type: StructureType,
9149 pub next: *const c_void,
9150 pub present_id: u64,
9151}
9152
9153impl Default for LatencySubmissionPresentIdNV {
9154 #[inline]
9155 fn default() -> Self {
9156 Self {
9157 s_type: StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV,
9158 next: ptr::null(),
9159 present_id: u64::default(),
9160 }
9161 }
9162}
9163
9164#[repr(C)]
9166#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9167pub struct LatencySurfaceCapabilitiesNV {
9168 pub s_type: StructureType,
9169 pub next: *const c_void,
9170 pub present_mode_count: u32,
9171 pub present_modes: *mut PresentModeKHR,
9172}
9173
9174impl Default for LatencySurfaceCapabilitiesNV {
9175 #[inline]
9176 fn default() -> Self {
9177 Self {
9178 s_type: StructureType::LATENCY_SURFACE_CAPABILITIES_NV,
9179 next: ptr::null(),
9180 present_mode_count: u32::default(),
9181 present_modes: ptr::null_mut(),
9182 }
9183 }
9184}
9185
9186#[repr(C)]
9188#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9189pub struct LatencyTimingsFrameReportNV {
9190 pub s_type: StructureType,
9191 pub next: *const c_void,
9192 pub present_id: u64,
9193 pub input_sample_time_us: u64,
9194 pub sim_start_time_us: u64,
9195 pub sim_end_time_us: u64,
9196 pub render_submit_start_time_us: u64,
9197 pub render_submit_end_time_us: u64,
9198 pub present_start_time_us: u64,
9199 pub present_end_time_us: u64,
9200 pub driver_start_time_us: u64,
9201 pub driver_end_time_us: u64,
9202 pub os_render_queue_start_time_us: u64,
9203 pub os_render_queue_end_time_us: u64,
9204 pub gpu_render_start_time_us: u64,
9205 pub gpu_render_end_time_us: u64,
9206}
9207
9208impl Default for LatencyTimingsFrameReportNV {
9209 #[inline]
9210 fn default() -> Self {
9211 Self {
9212 s_type: StructureType::LATENCY_TIMINGS_FRAME_REPORT_NV,
9213 next: ptr::null(),
9214 present_id: u64::default(),
9215 input_sample_time_us: u64::default(),
9216 sim_start_time_us: u64::default(),
9217 sim_end_time_us: u64::default(),
9218 render_submit_start_time_us: u64::default(),
9219 render_submit_end_time_us: u64::default(),
9220 present_start_time_us: u64::default(),
9221 present_end_time_us: u64::default(),
9222 driver_start_time_us: u64::default(),
9223 driver_end_time_us: u64::default(),
9224 os_render_queue_start_time_us: u64::default(),
9225 os_render_queue_end_time_us: u64::default(),
9226 gpu_render_start_time_us: u64::default(),
9227 gpu_render_end_time_us: u64::default(),
9228 }
9229 }
9230}
9231
9232#[repr(C)]
9234#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
9235pub struct LayerProperties {
9236 pub layer_name: StringArray<MAX_EXTENSION_NAME_SIZE>,
9237 pub spec_version: u32,
9238 pub implementation_version: u32,
9239 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
9240}
9241
9242#[repr(C)]
9244#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9245pub struct LayerSettingEXT {
9246 pub layer_name: *const c_char,
9247 pub setting_name: *const c_char,
9248 pub type_: LayerSettingTypeEXT,
9249 pub value_count: u32,
9250 pub values: *const c_void,
9251}
9252
9253impl Default for LayerSettingEXT {
9254 #[inline]
9255 fn default() -> Self {
9256 Self {
9257 layer_name: ptr::null(),
9258 setting_name: ptr::null(),
9259 type_: LayerSettingTypeEXT::default(),
9260 value_count: u32::default(),
9261 values: ptr::null(),
9262 }
9263 }
9264}
9265
9266#[repr(C)]
9268#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9269pub struct LayerSettingsCreateInfoEXT {
9270 pub s_type: StructureType,
9271 pub next: *const c_void,
9272 pub setting_count: u32,
9273 pub settings: *const LayerSettingEXT,
9274}
9275
9276impl Default for LayerSettingsCreateInfoEXT {
9277 #[inline]
9278 fn default() -> Self {
9279 Self {
9280 s_type: StructureType::LAYER_SETTINGS_CREATE_INFO_EXT,
9281 next: ptr::null(),
9282 setting_count: u32::default(),
9283 settings: ptr::null(),
9284 }
9285 }
9286}
9287
9288#[repr(C)]
9290#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9291pub struct MacOSSurfaceCreateInfoMVK {
9292 pub s_type: StructureType,
9293 pub next: *const c_void,
9294 pub flags: MacOSSurfaceCreateFlagsMVK,
9295 pub view: *const c_void,
9296}
9297
9298impl Default for MacOSSurfaceCreateInfoMVK {
9299 #[inline]
9300 fn default() -> Self {
9301 Self {
9302 s_type: StructureType::MACOS_SURFACE_CREATE_INFO_MVK,
9303 next: ptr::null(),
9304 flags: MacOSSurfaceCreateFlagsMVK::default(),
9305 view: ptr::null(),
9306 }
9307 }
9308}
9309
9310#[repr(C)]
9312#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9313pub struct MappedMemoryRange {
9314 pub s_type: StructureType,
9315 pub next: *const c_void,
9316 pub memory: DeviceMemory,
9317 pub offset: DeviceSize,
9318 pub size: DeviceSize,
9319}
9320
9321impl Default for MappedMemoryRange {
9322 #[inline]
9323 fn default() -> Self {
9324 Self {
9325 s_type: StructureType::MAPPED_MEMORY_RANGE,
9326 next: ptr::null(),
9327 memory: DeviceMemory::default(),
9328 offset: DeviceSize::default(),
9329 size: DeviceSize::default(),
9330 }
9331 }
9332}
9333
9334#[repr(C)]
9336#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9337pub struct MemoryAllocateFlagsInfo {
9338 pub s_type: StructureType,
9339 pub next: *const c_void,
9340 pub flags: MemoryAllocateFlags,
9341 pub device_mask: u32,
9342}
9343
9344impl Default for MemoryAllocateFlagsInfo {
9345 #[inline]
9346 fn default() -> Self {
9347 Self {
9348 s_type: StructureType::MEMORY_ALLOCATE_FLAGS_INFO,
9349 next: ptr::null(),
9350 flags: MemoryAllocateFlags::default(),
9351 device_mask: u32::default(),
9352 }
9353 }
9354}
9355
9356#[repr(C)]
9358#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9359pub struct MemoryAllocateInfo {
9360 pub s_type: StructureType,
9361 pub next: *const c_void,
9362 pub allocation_size: DeviceSize,
9363 pub memory_type_index: u32,
9364}
9365
9366impl Default for MemoryAllocateInfo {
9367 #[inline]
9368 fn default() -> Self {
9369 Self {
9370 s_type: StructureType::MEMORY_ALLOCATE_INFO,
9371 next: ptr::null(),
9372 allocation_size: DeviceSize::default(),
9373 memory_type_index: u32::default(),
9374 }
9375 }
9376}
9377
9378#[repr(C)]
9380#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9381pub struct MemoryBarrier {
9382 pub s_type: StructureType,
9383 pub next: *const c_void,
9384 pub src_access_mask: AccessFlags,
9385 pub dst_access_mask: AccessFlags,
9386}
9387
9388impl Default for MemoryBarrier {
9389 #[inline]
9390 fn default() -> Self {
9391 Self {
9392 s_type: StructureType::MEMORY_BARRIER,
9393 next: ptr::null(),
9394 src_access_mask: AccessFlags::default(),
9395 dst_access_mask: AccessFlags::default(),
9396 }
9397 }
9398}
9399
9400#[repr(C)]
9402#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9403pub struct MemoryBarrier2 {
9404 pub s_type: StructureType,
9405 pub next: *const c_void,
9406 pub src_stage_mask: PipelineStageFlags2,
9407 pub src_access_mask: AccessFlags2,
9408 pub dst_stage_mask: PipelineStageFlags2,
9409 pub dst_access_mask: AccessFlags2,
9410}
9411
9412impl Default for MemoryBarrier2 {
9413 #[inline]
9414 fn default() -> Self {
9415 Self {
9416 s_type: StructureType::MEMORY_BARRIER_2,
9417 next: ptr::null(),
9418 src_stage_mask: PipelineStageFlags2::default(),
9419 src_access_mask: AccessFlags2::default(),
9420 dst_stage_mask: PipelineStageFlags2::default(),
9421 dst_access_mask: AccessFlags2::default(),
9422 }
9423 }
9424}
9425
9426#[repr(C)]
9428#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9429pub struct MemoryBarrierAccessFlags3KHR {
9430 pub s_type: StructureType,
9431 pub next: *const c_void,
9432 pub src_access_mask3: AccessFlags3KHR,
9433 pub dst_access_mask3: AccessFlags3KHR,
9434}
9435
9436impl Default for MemoryBarrierAccessFlags3KHR {
9437 #[inline]
9438 fn default() -> Self {
9439 Self {
9440 s_type: StructureType::MEMORY_BARRIER_ACCESS_FLAGS_3_KHR,
9441 next: ptr::null(),
9442 src_access_mask3: AccessFlags3KHR::default(),
9443 dst_access_mask3: AccessFlags3KHR::default(),
9444 }
9445 }
9446}
9447
9448#[repr(C)]
9450#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9451pub struct MemoryDedicatedAllocateInfo {
9452 pub s_type: StructureType,
9453 pub next: *const c_void,
9454 pub image: Image,
9455 pub buffer: Buffer,
9456}
9457
9458impl Default for MemoryDedicatedAllocateInfo {
9459 #[inline]
9460 fn default() -> Self {
9461 Self {
9462 s_type: StructureType::MEMORY_DEDICATED_ALLOCATE_INFO,
9463 next: ptr::null(),
9464 image: Image::default(),
9465 buffer: Buffer::default(),
9466 }
9467 }
9468}
9469
9470#[repr(C)]
9472#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9473pub struct MemoryDedicatedRequirements {
9474 pub s_type: StructureType,
9475 pub next: *mut c_void,
9476 pub prefers_dedicated_allocation: Bool32,
9477 pub requires_dedicated_allocation: Bool32,
9478}
9479
9480impl Default for MemoryDedicatedRequirements {
9481 #[inline]
9482 fn default() -> Self {
9483 Self {
9484 s_type: StructureType::MEMORY_DEDICATED_REQUIREMENTS,
9485 next: ptr::null_mut(),
9486 prefers_dedicated_allocation: Bool32::default(),
9487 requires_dedicated_allocation: Bool32::default(),
9488 }
9489 }
9490}
9491
9492#[repr(C)]
9494#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9495pub struct MemoryFdPropertiesKHR {
9496 pub s_type: StructureType,
9497 pub next: *mut c_void,
9498 pub memory_type_bits: u32,
9499}
9500
9501impl Default for MemoryFdPropertiesKHR {
9502 #[inline]
9503 fn default() -> Self {
9504 Self {
9505 s_type: StructureType::MEMORY_FD_PROPERTIES_KHR,
9506 next: ptr::null_mut(),
9507 memory_type_bits: u32::default(),
9508 }
9509 }
9510}
9511
9512#[repr(C)]
9514#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9515pub struct MemoryGetAndroidHardwareBufferInfoANDROID {
9516 pub s_type: StructureType,
9517 pub next: *const c_void,
9518 pub memory: DeviceMemory,
9519}
9520
9521impl Default for MemoryGetAndroidHardwareBufferInfoANDROID {
9522 #[inline]
9523 fn default() -> Self {
9524 Self {
9525 s_type: StructureType::MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
9526 next: ptr::null(),
9527 memory: DeviceMemory::default(),
9528 }
9529 }
9530}
9531
9532#[repr(C)]
9534#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9535pub struct MemoryGetFdInfoKHR {
9536 pub s_type: StructureType,
9537 pub next: *const c_void,
9538 pub memory: DeviceMemory,
9539 pub handle_type: ExternalMemoryHandleTypeFlags,
9540}
9541
9542impl Default for MemoryGetFdInfoKHR {
9543 #[inline]
9544 fn default() -> Self {
9545 Self {
9546 s_type: StructureType::MEMORY_GET_FD_INFO_KHR,
9547 next: ptr::null(),
9548 memory: DeviceMemory::default(),
9549 handle_type: ExternalMemoryHandleTypeFlags::default(),
9550 }
9551 }
9552}
9553
9554#[repr(C)]
9556#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9557pub struct MemoryGetMetalHandleInfoEXT {
9558 pub s_type: StructureType,
9559 pub next: *const c_void,
9560 pub memory: DeviceMemory,
9561 pub handle_type: ExternalMemoryHandleTypeFlags,
9562}
9563
9564impl Default for MemoryGetMetalHandleInfoEXT {
9565 #[inline]
9566 fn default() -> Self {
9567 Self {
9568 s_type: StructureType::MEMORY_GET_METAL_HANDLE_INFO_EXT,
9569 next: ptr::null(),
9570 memory: DeviceMemory::default(),
9571 handle_type: ExternalMemoryHandleTypeFlags::default(),
9572 }
9573 }
9574}
9575
9576#[repr(C)]
9578#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9579pub struct MemoryGetRemoteAddressInfoNV {
9580 pub s_type: StructureType,
9581 pub next: *const c_void,
9582 pub memory: DeviceMemory,
9583 pub handle_type: ExternalMemoryHandleTypeFlags,
9584}
9585
9586impl Default for MemoryGetRemoteAddressInfoNV {
9587 #[inline]
9588 fn default() -> Self {
9589 Self {
9590 s_type: StructureType::MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
9591 next: ptr::null(),
9592 memory: DeviceMemory::default(),
9593 handle_type: ExternalMemoryHandleTypeFlags::default(),
9594 }
9595 }
9596}
9597
9598#[repr(C)]
9600#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9601pub struct MemoryGetSciBufInfoNV {
9602 pub s_type: StructureType,
9603 pub next: *const c_void,
9604 pub memory: DeviceMemory,
9605 pub handle_type: ExternalMemoryHandleTypeFlags,
9606}
9607
9608impl Default for MemoryGetSciBufInfoNV {
9609 #[inline]
9610 fn default() -> Self {
9611 Self {
9612 s_type: StructureType::MEMORY_GET_SCI_BUF_INFO_NV,
9613 next: ptr::null(),
9614 memory: DeviceMemory::default(),
9615 handle_type: ExternalMemoryHandleTypeFlags::default(),
9616 }
9617 }
9618}
9619
9620#[repr(C)]
9622#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9623pub struct MemoryGetWin32HandleInfoKHR {
9624 pub s_type: StructureType,
9625 pub next: *const c_void,
9626 pub memory: DeviceMemory,
9627 pub handle_type: ExternalMemoryHandleTypeFlags,
9628}
9629
9630impl Default for MemoryGetWin32HandleInfoKHR {
9631 #[inline]
9632 fn default() -> Self {
9633 Self {
9634 s_type: StructureType::MEMORY_GET_WIN32_HANDLE_INFO_KHR,
9635 next: ptr::null(),
9636 memory: DeviceMemory::default(),
9637 handle_type: ExternalMemoryHandleTypeFlags::default(),
9638 }
9639 }
9640}
9641
9642#[repr(C)]
9644#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9645pub struct MemoryGetZirconHandleInfoFUCHSIA {
9646 pub s_type: StructureType,
9647 pub next: *const c_void,
9648 pub memory: DeviceMemory,
9649 pub handle_type: ExternalMemoryHandleTypeFlags,
9650}
9651
9652impl Default for MemoryGetZirconHandleInfoFUCHSIA {
9653 #[inline]
9654 fn default() -> Self {
9655 Self {
9656 s_type: StructureType::MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
9657 next: ptr::null(),
9658 memory: DeviceMemory::default(),
9659 handle_type: ExternalMemoryHandleTypeFlags::default(),
9660 }
9661 }
9662}
9663
9664#[repr(C)]
9666#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
9667pub struct MemoryHeap {
9668 pub size: DeviceSize,
9669 pub flags: MemoryHeapFlags,
9670}
9671
9672#[repr(C)]
9674#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9675pub struct MemoryHostPointerPropertiesEXT {
9676 pub s_type: StructureType,
9677 pub next: *mut c_void,
9678 pub memory_type_bits: u32,
9679}
9680
9681impl Default for MemoryHostPointerPropertiesEXT {
9682 #[inline]
9683 fn default() -> Self {
9684 Self {
9685 s_type: StructureType::MEMORY_HOST_POINTER_PROPERTIES_EXT,
9686 next: ptr::null_mut(),
9687 memory_type_bits: u32::default(),
9688 }
9689 }
9690}
9691
9692#[repr(C)]
9694#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9695pub struct MemoryMapInfo {
9696 pub s_type: StructureType,
9697 pub next: *const c_void,
9698 pub flags: MemoryMapFlags,
9699 pub memory: DeviceMemory,
9700 pub offset: DeviceSize,
9701 pub size: DeviceSize,
9702}
9703
9704impl Default for MemoryMapInfo {
9705 #[inline]
9706 fn default() -> Self {
9707 Self {
9708 s_type: StructureType::MEMORY_MAP_INFO,
9709 next: ptr::null(),
9710 flags: MemoryMapFlags::default(),
9711 memory: DeviceMemory::default(),
9712 offset: DeviceSize::default(),
9713 size: DeviceSize::default(),
9714 }
9715 }
9716}
9717
9718#[repr(C)]
9720#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9721pub struct MemoryMapPlacedInfoEXT {
9722 pub s_type: StructureType,
9723 pub next: *const c_void,
9724 pub placed_address: *mut c_void,
9725}
9726
9727impl Default for MemoryMapPlacedInfoEXT {
9728 #[inline]
9729 fn default() -> Self {
9730 Self {
9731 s_type: StructureType::MEMORY_MAP_PLACED_INFO_EXT,
9732 next: ptr::null(),
9733 placed_address: ptr::null_mut(),
9734 }
9735 }
9736}
9737
9738#[repr(C)]
9740#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9741pub struct MemoryMetalHandlePropertiesEXT {
9742 pub s_type: StructureType,
9743 pub next: *mut c_void,
9744 pub memory_type_bits: u32,
9745}
9746
9747impl Default for MemoryMetalHandlePropertiesEXT {
9748 #[inline]
9749 fn default() -> Self {
9750 Self {
9751 s_type: StructureType::MEMORY_METAL_HANDLE_PROPERTIES_EXT,
9752 next: ptr::null_mut(),
9753 memory_type_bits: u32::default(),
9754 }
9755 }
9756}
9757
9758#[repr(C)]
9760#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9761pub struct MemoryOpaqueCaptureAddressAllocateInfo {
9762 pub s_type: StructureType,
9763 pub next: *const c_void,
9764 pub opaque_capture_address: u64,
9765}
9766
9767impl Default for MemoryOpaqueCaptureAddressAllocateInfo {
9768 #[inline]
9769 fn default() -> Self {
9770 Self {
9771 s_type: StructureType::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
9772 next: ptr::null(),
9773 opaque_capture_address: u64::default(),
9774 }
9775 }
9776}
9777
9778#[repr(C)]
9780#[derive(Copy, Clone, Debug, PartialEq)]
9781pub struct MemoryPriorityAllocateInfoEXT {
9782 pub s_type: StructureType,
9783 pub next: *const c_void,
9784 pub priority: f32,
9785}
9786
9787impl Default for MemoryPriorityAllocateInfoEXT {
9788 #[inline]
9789 fn default() -> Self {
9790 Self {
9791 s_type: StructureType::MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
9792 next: ptr::null(),
9793 priority: f32::default(),
9794 }
9795 }
9796}
9797
9798#[repr(C)]
9800#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
9801pub struct MemoryRequirements {
9802 pub size: DeviceSize,
9803 pub alignment: DeviceSize,
9804 pub memory_type_bits: u32,
9805}
9806
9807#[repr(C)]
9809#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9810pub struct MemoryRequirements2 {
9811 pub s_type: StructureType,
9812 pub next: *mut c_void,
9813 pub memory_requirements: MemoryRequirements,
9814}
9815
9816impl Default for MemoryRequirements2 {
9817 #[inline]
9818 fn default() -> Self {
9819 Self {
9820 s_type: StructureType::MEMORY_REQUIREMENTS_2,
9821 next: ptr::null_mut(),
9822 memory_requirements: MemoryRequirements::default(),
9823 }
9824 }
9825}
9826
9827#[repr(C)]
9829#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9830pub struct MemorySciBufPropertiesNV {
9831 pub s_type: StructureType,
9832 pub next: *const c_void,
9833 pub memory_type_bits: u32,
9834}
9835
9836impl Default for MemorySciBufPropertiesNV {
9837 #[inline]
9838 fn default() -> Self {
9839 Self {
9840 s_type: StructureType::MEMORY_SCI_BUF_PROPERTIES_NV,
9841 next: ptr::null(),
9842 memory_type_bits: u32::default(),
9843 }
9844 }
9845}
9846
9847#[repr(C)]
9849#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9850pub struct MemoryToImageCopy {
9851 pub s_type: StructureType,
9852 pub next: *const c_void,
9853 pub host_pointer: *const c_void,
9854 pub memory_row_length: u32,
9855 pub memory_image_height: u32,
9856 pub image_subresource: ImageSubresourceLayers,
9857 pub image_offset: Offset3D,
9858 pub image_extent: Extent3D,
9859}
9860
9861impl Default for MemoryToImageCopy {
9862 #[inline]
9863 fn default() -> Self {
9864 Self {
9865 s_type: StructureType::MEMORY_TO_IMAGE_COPY,
9866 next: ptr::null(),
9867 host_pointer: ptr::null(),
9868 memory_row_length: u32::default(),
9869 memory_image_height: u32::default(),
9870 image_subresource: ImageSubresourceLayers::default(),
9871 image_offset: Offset3D::default(),
9872 image_extent: Extent3D::default(),
9873 }
9874 }
9875}
9876
9877#[repr(C)]
9879#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
9880pub struct MemoryType {
9881 pub property_flags: MemoryPropertyFlags,
9882 pub heap_index: u32,
9883}
9884
9885#[repr(C)]
9887#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9888pub struct MemoryUnmapInfo {
9889 pub s_type: StructureType,
9890 pub next: *const c_void,
9891 pub flags: MemoryUnmapFlags,
9892 pub memory: DeviceMemory,
9893}
9894
9895impl Default for MemoryUnmapInfo {
9896 #[inline]
9897 fn default() -> Self {
9898 Self {
9899 s_type: StructureType::MEMORY_UNMAP_INFO,
9900 next: ptr::null(),
9901 flags: MemoryUnmapFlags::default(),
9902 memory: DeviceMemory::default(),
9903 }
9904 }
9905}
9906
9907#[repr(C)]
9909#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9910pub struct MemoryWin32HandlePropertiesKHR {
9911 pub s_type: StructureType,
9912 pub next: *mut c_void,
9913 pub memory_type_bits: u32,
9914}
9915
9916impl Default for MemoryWin32HandlePropertiesKHR {
9917 #[inline]
9918 fn default() -> Self {
9919 Self {
9920 s_type: StructureType::MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
9921 next: ptr::null_mut(),
9922 memory_type_bits: u32::default(),
9923 }
9924 }
9925}
9926
9927#[repr(C)]
9929#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9930pub struct MemoryZirconHandlePropertiesFUCHSIA {
9931 pub s_type: StructureType,
9932 pub next: *mut c_void,
9933 pub memory_type_bits: u32,
9934}
9935
9936impl Default for MemoryZirconHandlePropertiesFUCHSIA {
9937 #[inline]
9938 fn default() -> Self {
9939 Self {
9940 s_type: StructureType::MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
9941 next: ptr::null_mut(),
9942 memory_type_bits: u32::default(),
9943 }
9944 }
9945}
9946
9947#[repr(C)]
9949#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
9950pub struct MetalSurfaceCreateInfoEXT {
9951 pub s_type: StructureType,
9952 pub next: *const c_void,
9953 pub flags: MetalSurfaceCreateFlagsEXT,
9954 pub layer: *const CAMetalLayer,
9955}
9956
9957impl Default for MetalSurfaceCreateInfoEXT {
9958 #[inline]
9959 fn default() -> Self {
9960 Self {
9961 s_type: StructureType::METAL_SURFACE_CREATE_INFO_EXT,
9962 next: ptr::null(),
9963 flags: MetalSurfaceCreateFlagsEXT::default(),
9964 layer: ptr::null(),
9965 }
9966 }
9967}
9968
9969#[repr(C)]
9971#[derive(Copy, Clone, Debug)]
9972pub struct MicromapBuildInfoEXT {
9973 pub s_type: StructureType,
9974 pub next: *const c_void,
9975 pub type_: MicromapTypeEXT,
9976 pub flags: BuildMicromapFlagsEXT,
9977 pub mode: BuildMicromapModeEXT,
9978 pub dst_micromap: MicromapEXT,
9979 pub usage_counts_count: u32,
9980 pub usage_counts: *const MicromapUsageEXT,
9981 pub pointer_usage_counts: *const *const MicromapUsageEXT,
9982 pub data: DeviceOrHostAddressConstKHR,
9983 pub scratch_data: DeviceOrHostAddressKHR,
9984 pub triangle_array: DeviceOrHostAddressConstKHR,
9985 pub triangle_array_stride: DeviceSize,
9986}
9987
9988impl Default for MicromapBuildInfoEXT {
9989 #[inline]
9990 fn default() -> Self {
9991 Self {
9992 s_type: StructureType::MICROMAP_BUILD_INFO_EXT,
9993 next: ptr::null(),
9994 type_: MicromapTypeEXT::default(),
9995 flags: BuildMicromapFlagsEXT::default(),
9996 mode: BuildMicromapModeEXT::default(),
9997 dst_micromap: MicromapEXT::default(),
9998 usage_counts_count: u32::default(),
9999 usage_counts: ptr::null(),
10000 pointer_usage_counts: ptr::null(),
10001 data: DeviceOrHostAddressConstKHR::default(),
10002 scratch_data: DeviceOrHostAddressKHR::default(),
10003 triangle_array: DeviceOrHostAddressConstKHR::default(),
10004 triangle_array_stride: DeviceSize::default(),
10005 }
10006 }
10007}
10008
10009#[repr(C)]
10011#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10012pub struct MicromapBuildSizesInfoEXT {
10013 pub s_type: StructureType,
10014 pub next: *const c_void,
10015 pub micromap_size: DeviceSize,
10016 pub build_scratch_size: DeviceSize,
10017 pub discardable: Bool32,
10018}
10019
10020impl Default for MicromapBuildSizesInfoEXT {
10021 #[inline]
10022 fn default() -> Self {
10023 Self {
10024 s_type: StructureType::MICROMAP_BUILD_SIZES_INFO_EXT,
10025 next: ptr::null(),
10026 micromap_size: DeviceSize::default(),
10027 build_scratch_size: DeviceSize::default(),
10028 discardable: Bool32::default(),
10029 }
10030 }
10031}
10032
10033#[repr(C)]
10035#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10036pub struct MicromapCreateInfoEXT {
10037 pub s_type: StructureType,
10038 pub next: *const c_void,
10039 pub create_flags: MicromapCreateFlagsEXT,
10040 pub buffer: Buffer,
10041 pub offset: DeviceSize,
10042 pub size: DeviceSize,
10043 pub type_: MicromapTypeEXT,
10044 pub device_address: DeviceAddress,
10045}
10046
10047impl Default for MicromapCreateInfoEXT {
10048 #[inline]
10049 fn default() -> Self {
10050 Self {
10051 s_type: StructureType::MICROMAP_CREATE_INFO_EXT,
10052 next: ptr::null(),
10053 create_flags: MicromapCreateFlagsEXT::default(),
10054 buffer: Buffer::default(),
10055 offset: DeviceSize::default(),
10056 size: DeviceSize::default(),
10057 type_: MicromapTypeEXT::default(),
10058 device_address: DeviceAddress::default(),
10059 }
10060 }
10061}
10062
10063#[repr(C)]
10065#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
10066pub struct MicromapTriangleEXT {
10067 pub data_offset: u32,
10068 pub subdivision_level: u16,
10069 pub format: u16,
10070}
10071
10072#[repr(C)]
10074#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
10075pub struct MicromapUsageEXT {
10076 pub count: u32,
10077 pub subdivision_level: u32,
10078 pub format: u32,
10079}
10080
10081#[repr(C)]
10083#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10084pub struct MicromapVersionInfoEXT {
10085 pub s_type: StructureType,
10086 pub next: *const c_void,
10087 pub version_data: *const u8,
10088}
10089
10090impl Default for MicromapVersionInfoEXT {
10091 #[inline]
10092 fn default() -> Self {
10093 Self {
10094 s_type: StructureType::MICROMAP_VERSION_INFO_EXT,
10095 next: ptr::null(),
10096 version_data: ptr::null(),
10097 }
10098 }
10099}
10100
10101#[repr(C)]
10103#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
10104pub struct MultiDrawIndexedInfoEXT {
10105 pub first_index: u32,
10106 pub index_count: u32,
10107 pub vertex_offset: i32,
10108}
10109
10110#[repr(C)]
10112#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
10113pub struct MultiDrawInfoEXT {
10114 pub first_vertex: u32,
10115 pub vertex_count: u32,
10116}
10117
10118#[repr(C)]
10120#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10121pub struct MultisamplePropertiesEXT {
10122 pub s_type: StructureType,
10123 pub next: *mut c_void,
10124 pub max_sample_location_grid_size: Extent2D,
10125}
10126
10127impl Default for MultisamplePropertiesEXT {
10128 #[inline]
10129 fn default() -> Self {
10130 Self {
10131 s_type: StructureType::MULTISAMPLE_PROPERTIES_EXT,
10132 next: ptr::null_mut(),
10133 max_sample_location_grid_size: Extent2D::default(),
10134 }
10135 }
10136}
10137
10138#[repr(C)]
10140#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10141pub struct MultisampledRenderToSingleSampledInfoEXT {
10142 pub s_type: StructureType,
10143 pub next: *const c_void,
10144 pub multisampled_render_to_single_sampled_enable: Bool32,
10145 pub rasterization_samples: SampleCountFlags,
10146}
10147
10148impl Default for MultisampledRenderToSingleSampledInfoEXT {
10149 #[inline]
10150 fn default() -> Self {
10151 Self {
10152 s_type: StructureType::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT,
10153 next: ptr::null(),
10154 multisampled_render_to_single_sampled_enable: Bool32::default(),
10155 rasterization_samples: SampleCountFlags::default(),
10156 }
10157 }
10158}
10159
10160#[repr(C)]
10162#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10163pub struct MultiviewPerViewAttributesInfoNVX {
10164 pub s_type: StructureType,
10165 pub next: *const c_void,
10166 pub per_view_attributes: Bool32,
10167 pub per_view_attributes_position_x_only: Bool32,
10168}
10169
10170impl Default for MultiviewPerViewAttributesInfoNVX {
10171 #[inline]
10172 fn default() -> Self {
10173 Self {
10174 s_type: StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
10175 next: ptr::null(),
10176 per_view_attributes: Bool32::default(),
10177 per_view_attributes_position_x_only: Bool32::default(),
10178 }
10179 }
10180}
10181
10182#[repr(C)]
10184#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10185pub struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
10186 pub s_type: StructureType,
10187 pub next: *const c_void,
10188 pub per_view_render_area_count: u32,
10189 pub per_view_render_areas: *const Rect2D,
10190}
10191
10192impl Default for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
10193 #[inline]
10194 fn default() -> Self {
10195 Self {
10196 s_type: StructureType::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM,
10197 next: ptr::null(),
10198 per_view_render_area_count: u32::default(),
10199 per_view_render_areas: ptr::null(),
10200 }
10201 }
10202}
10203
10204#[repr(C)]
10206#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10207pub struct MutableDescriptorTypeCreateInfoEXT {
10208 pub s_type: StructureType,
10209 pub next: *const c_void,
10210 pub mutable_descriptor_type_list_count: u32,
10211 pub mutable_descriptor_type_lists: *const MutableDescriptorTypeListEXT,
10212}
10213
10214impl Default for MutableDescriptorTypeCreateInfoEXT {
10215 #[inline]
10216 fn default() -> Self {
10217 Self {
10218 s_type: StructureType::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
10219 next: ptr::null(),
10220 mutable_descriptor_type_list_count: u32::default(),
10221 mutable_descriptor_type_lists: ptr::null(),
10222 }
10223 }
10224}
10225
10226#[repr(C)]
10228#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10229pub struct MutableDescriptorTypeListEXT {
10230 pub descriptor_type_count: u32,
10231 pub descriptor_types: *const DescriptorType,
10232}
10233
10234impl Default for MutableDescriptorTypeListEXT {
10235 #[inline]
10236 fn default() -> Self {
10237 Self {
10238 descriptor_type_count: u32::default(),
10239 descriptor_types: ptr::null(),
10240 }
10241 }
10242}
10243
10244#[repr(C)]
10246#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
10247pub struct Offset2D {
10248 pub x: i32,
10249 pub y: i32,
10250}
10251
10252#[repr(C)]
10254#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
10255pub struct Offset3D {
10256 pub x: i32,
10257 pub y: i32,
10258 pub z: i32,
10259}
10260
10261#[repr(C)]
10263#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10264pub struct OpaqueCaptureDescriptorDataCreateInfoEXT {
10265 pub s_type: StructureType,
10266 pub next: *const c_void,
10267 pub opaque_capture_descriptor_data: *const c_void,
10268}
10269
10270impl Default for OpaqueCaptureDescriptorDataCreateInfoEXT {
10271 #[inline]
10272 fn default() -> Self {
10273 Self {
10274 s_type: StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT,
10275 next: ptr::null(),
10276 opaque_capture_descriptor_data: ptr::null(),
10277 }
10278 }
10279}
10280
10281#[repr(C)]
10283#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10284pub struct OpticalFlowExecuteInfoNV {
10285 pub s_type: StructureType,
10286 pub next: *mut c_void,
10287 pub flags: OpticalFlowExecuteFlagsNV,
10288 pub region_count: u32,
10289 pub regions: *const Rect2D,
10290}
10291
10292impl Default for OpticalFlowExecuteInfoNV {
10293 #[inline]
10294 fn default() -> Self {
10295 Self {
10296 s_type: StructureType::OPTICAL_FLOW_EXECUTE_INFO_NV,
10297 next: ptr::null_mut(),
10298 flags: OpticalFlowExecuteFlagsNV::default(),
10299 region_count: u32::default(),
10300 regions: ptr::null(),
10301 }
10302 }
10303}
10304
10305#[repr(C)]
10307#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10308pub struct OpticalFlowImageFormatInfoNV {
10309 pub s_type: StructureType,
10310 pub next: *const c_void,
10311 pub usage: OpticalFlowUsageFlagsNV,
10312}
10313
10314impl Default for OpticalFlowImageFormatInfoNV {
10315 #[inline]
10316 fn default() -> Self {
10317 Self {
10318 s_type: StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV,
10319 next: ptr::null(),
10320 usage: OpticalFlowUsageFlagsNV::default(),
10321 }
10322 }
10323}
10324
10325#[repr(C)]
10327#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10328pub struct OpticalFlowImageFormatPropertiesNV {
10329 pub s_type: StructureType,
10330 pub next: *const c_void,
10331 pub format: Format,
10332}
10333
10334impl Default for OpticalFlowImageFormatPropertiesNV {
10335 #[inline]
10336 fn default() -> Self {
10337 Self {
10338 s_type: StructureType::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV,
10339 next: ptr::null(),
10340 format: Format::default(),
10341 }
10342 }
10343}
10344
10345#[repr(C)]
10347#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10348pub struct OpticalFlowSessionCreateInfoNV {
10349 pub s_type: StructureType,
10350 pub next: *mut c_void,
10351 pub width: u32,
10352 pub height: u32,
10353 pub image_format: Format,
10354 pub flow_vector_format: Format,
10355 pub cost_format: Format,
10356 pub output_grid_size: OpticalFlowGridSizeFlagsNV,
10357 pub hint_grid_size: OpticalFlowGridSizeFlagsNV,
10358 pub performance_level: OpticalFlowPerformanceLevelNV,
10359 pub flags: OpticalFlowSessionCreateFlagsNV,
10360}
10361
10362impl Default for OpticalFlowSessionCreateInfoNV {
10363 #[inline]
10364 fn default() -> Self {
10365 Self {
10366 s_type: StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV,
10367 next: ptr::null_mut(),
10368 width: u32::default(),
10369 height: u32::default(),
10370 image_format: Format::default(),
10371 flow_vector_format: Format::default(),
10372 cost_format: Format::default(),
10373 output_grid_size: OpticalFlowGridSizeFlagsNV::default(),
10374 hint_grid_size: OpticalFlowGridSizeFlagsNV::default(),
10375 performance_level: OpticalFlowPerformanceLevelNV::default(),
10376 flags: OpticalFlowSessionCreateFlagsNV::default(),
10377 }
10378 }
10379}
10380
10381#[repr(C)]
10383#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10384pub struct OpticalFlowSessionCreatePrivateDataInfoNV {
10385 pub s_type: StructureType,
10386 pub next: *mut c_void,
10387 pub id: u32,
10388 pub size: u32,
10389 pub private_data: *const c_void,
10390}
10391
10392impl Default for OpticalFlowSessionCreatePrivateDataInfoNV {
10393 #[inline]
10394 fn default() -> Self {
10395 Self {
10396 s_type: StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV,
10397 next: ptr::null_mut(),
10398 id: u32::default(),
10399 size: u32::default(),
10400 private_data: ptr::null(),
10401 }
10402 }
10403}
10404
10405#[repr(C)]
10407#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10408pub struct OutOfBandQueueTypeInfoNV {
10409 pub s_type: StructureType,
10410 pub next: *const c_void,
10411 pub queue_type: OutOfBandQueueTypeNV,
10412}
10413
10414impl Default for OutOfBandQueueTypeInfoNV {
10415 #[inline]
10416 fn default() -> Self {
10417 Self {
10418 s_type: StructureType::OUT_OF_BAND_QUEUE_TYPE_INFO_NV,
10419 next: ptr::null(),
10420 queue_type: OutOfBandQueueTypeNV::default(),
10421 }
10422 }
10423}
10424
10425#[repr(C)]
10427#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10428pub struct PartitionedAccelerationStructureFlagsNV {
10429 pub s_type: StructureType,
10430 pub next: *mut c_void,
10431 pub enable_partition_translation: Bool32,
10432}
10433
10434impl Default for PartitionedAccelerationStructureFlagsNV {
10435 #[inline]
10436 fn default() -> Self {
10437 Self {
10438 s_type: StructureType::PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV,
10439 next: ptr::null_mut(),
10440 enable_partition_translation: Bool32::default(),
10441 }
10442 }
10443}
10444
10445#[repr(C)]
10447#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10448pub struct PartitionedAccelerationStructureInstancesInputNV {
10449 pub s_type: StructureType,
10450 pub next: *mut c_void,
10451 pub flags: BuildAccelerationStructureFlagsKHR,
10452 pub instance_count: u32,
10453 pub max_instance_per_partition_count: u32,
10454 pub partition_count: u32,
10455 pub max_instance_in_global_partition_count: u32,
10456}
10457
10458impl Default for PartitionedAccelerationStructureInstancesInputNV {
10459 #[inline]
10460 fn default() -> Self {
10461 Self {
10462 s_type: StructureType::PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV,
10463 next: ptr::null_mut(),
10464 flags: BuildAccelerationStructureFlagsKHR::default(),
10465 instance_count: u32::default(),
10466 max_instance_per_partition_count: u32::default(),
10467 partition_count: u32::default(),
10468 max_instance_in_global_partition_count: u32::default(),
10469 }
10470 }
10471}
10472
10473#[repr(C)]
10475#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
10476pub struct PartitionedAccelerationStructureUpdateInstanceDataNV {
10477 pub instance_index: u32,
10478 pub instance_contribution_to_hit_group_index: u32,
10479 pub acceleration_structure: DeviceAddress,
10480}
10481
10482#[repr(C)]
10484#[derive(Copy, Clone, Default, Debug, PartialEq)]
10485pub struct PartitionedAccelerationStructureWriteInstanceDataNV {
10486 pub transform: TransformMatrixKHR,
10487 pub explicit_aabb: [f32; 6],
10488 pub instance_id: u32,
10489 pub instance_mask: u32,
10490 pub instance_contribution_to_hit_group_index: u32,
10491 pub instance_flags: PartitionedAccelerationStructureInstanceFlagsNV,
10492 pub instance_index: u32,
10493 pub partition_index: u32,
10494 pub acceleration_structure: DeviceAddress,
10495}
10496
10497#[repr(C)]
10499#[derive(Copy, Clone, Default, Debug, PartialEq)]
10500pub struct PartitionedAccelerationStructureWritePartitionTranslationDataNV {
10501 pub partition_index: u32,
10502 pub partition_translation: [f32; 3],
10503}
10504
10505#[repr(C)]
10507#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
10508pub struct PastPresentationTimingGOOGLE {
10509 pub present_id: u32,
10510 pub desired_present_time: u64,
10511 pub actual_present_time: u64,
10512 pub earliest_present_time: u64,
10513 pub present_margin: u64,
10514}
10515
10516#[repr(C)]
10518#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10519pub struct PerformanceConfigurationAcquireInfoINTEL {
10520 pub s_type: StructureType,
10521 pub next: *const c_void,
10522 pub type_: PerformanceConfigurationTypeINTEL,
10523}
10524
10525impl Default for PerformanceConfigurationAcquireInfoINTEL {
10526 #[inline]
10527 fn default() -> Self {
10528 Self {
10529 s_type: StructureType::PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
10530 next: ptr::null(),
10531 type_: PerformanceConfigurationTypeINTEL::default(),
10532 }
10533 }
10534}
10535
10536#[repr(C)]
10538#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10539pub struct PerformanceCounterDescriptionKHR {
10540 pub s_type: StructureType,
10541 pub next: *mut c_void,
10542 pub flags: PerformanceCounterDescriptionFlagsKHR,
10543 pub name: StringArray<MAX_DESCRIPTION_SIZE>,
10544 pub category: StringArray<MAX_DESCRIPTION_SIZE>,
10545 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
10546}
10547
10548impl Default for PerformanceCounterDescriptionKHR {
10549 #[inline]
10550 fn default() -> Self {
10551 Self {
10552 s_type: StructureType::PERFORMANCE_COUNTER_DESCRIPTION_KHR,
10553 next: ptr::null_mut(),
10554 flags: PerformanceCounterDescriptionFlagsKHR::default(),
10555 name: StringArray::default(),
10556 category: StringArray::default(),
10557 description: StringArray::default(),
10558 }
10559 }
10560}
10561
10562#[repr(C)]
10564#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10565pub struct PerformanceCounterKHR {
10566 pub s_type: StructureType,
10567 pub next: *mut c_void,
10568 pub unit: PerformanceCounterUnitKHR,
10569 pub scope: PerformanceCounterScopeKHR,
10570 pub storage: PerformanceCounterStorageKHR,
10571 pub uuid: ByteArray<UUID_SIZE>,
10572}
10573
10574impl Default for PerformanceCounterKHR {
10575 #[inline]
10576 fn default() -> Self {
10577 Self {
10578 s_type: StructureType::PERFORMANCE_COUNTER_KHR,
10579 next: ptr::null_mut(),
10580 unit: PerformanceCounterUnitKHR::default(),
10581 scope: PerformanceCounterScopeKHR::default(),
10582 storage: PerformanceCounterStorageKHR::default(),
10583 uuid: ByteArray::default(),
10584 }
10585 }
10586}
10587
10588#[repr(C)]
10590#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10591pub struct PerformanceMarkerInfoINTEL {
10592 pub s_type: StructureType,
10593 pub next: *const c_void,
10594 pub marker: u64,
10595}
10596
10597impl Default for PerformanceMarkerInfoINTEL {
10598 #[inline]
10599 fn default() -> Self {
10600 Self {
10601 s_type: StructureType::PERFORMANCE_MARKER_INFO_INTEL,
10602 next: ptr::null(),
10603 marker: u64::default(),
10604 }
10605 }
10606}
10607
10608#[repr(C)]
10610#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10611pub struct PerformanceOverrideInfoINTEL {
10612 pub s_type: StructureType,
10613 pub next: *const c_void,
10614 pub type_: PerformanceOverrideTypeINTEL,
10615 pub enable: Bool32,
10616 pub parameter: u64,
10617}
10618
10619impl Default for PerformanceOverrideInfoINTEL {
10620 #[inline]
10621 fn default() -> Self {
10622 Self {
10623 s_type: StructureType::PERFORMANCE_OVERRIDE_INFO_INTEL,
10624 next: ptr::null(),
10625 type_: PerformanceOverrideTypeINTEL::default(),
10626 enable: Bool32::default(),
10627 parameter: u64::default(),
10628 }
10629 }
10630}
10631
10632#[repr(C)]
10634#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10635pub struct PerformanceQueryReservationInfoKHR {
10636 pub s_type: StructureType,
10637 pub next: *const c_void,
10638 pub max_performance_queries_per_pool: u32,
10639}
10640
10641impl Default for PerformanceQueryReservationInfoKHR {
10642 #[inline]
10643 fn default() -> Self {
10644 Self {
10645 s_type: StructureType::PERFORMANCE_QUERY_RESERVATION_INFO_KHR,
10646 next: ptr::null(),
10647 max_performance_queries_per_pool: u32::default(),
10648 }
10649 }
10650}
10651
10652#[repr(C)]
10654#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10655pub struct PerformanceQuerySubmitInfoKHR {
10656 pub s_type: StructureType,
10657 pub next: *const c_void,
10658 pub counter_pass_index: u32,
10659}
10660
10661impl Default for PerformanceQuerySubmitInfoKHR {
10662 #[inline]
10663 fn default() -> Self {
10664 Self {
10665 s_type: StructureType::PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
10666 next: ptr::null(),
10667 counter_pass_index: u32::default(),
10668 }
10669 }
10670}
10671
10672#[repr(C)]
10674#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10675pub struct PerformanceStreamMarkerInfoINTEL {
10676 pub s_type: StructureType,
10677 pub next: *const c_void,
10678 pub marker: u32,
10679}
10680
10681impl Default for PerformanceStreamMarkerInfoINTEL {
10682 #[inline]
10683 fn default() -> Self {
10684 Self {
10685 s_type: StructureType::PERFORMANCE_STREAM_MARKER_INFO_INTEL,
10686 next: ptr::null(),
10687 marker: u32::default(),
10688 }
10689 }
10690}
10691
10692#[repr(C)]
10694#[derive(Copy, Clone, Default, Debug)]
10695pub struct PerformanceValueINTEL {
10696 pub type_: PerformanceValueTypeINTEL,
10697 pub data: PerformanceValueDataINTEL,
10698}
10699
10700#[repr(C)]
10702#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10703pub struct PhysicalDevice16BitStorageFeatures {
10704 pub s_type: StructureType,
10705 pub next: *mut c_void,
10706 pub storage_buffer_16bit_access: Bool32,
10707 pub uniform_and_storage_buffer_16bit_access: Bool32,
10708 pub storage_push_constant16: Bool32,
10709 pub storage_input_output16: Bool32,
10710}
10711
10712impl Default for PhysicalDevice16BitStorageFeatures {
10713 #[inline]
10714 fn default() -> Self {
10715 Self {
10716 s_type: StructureType::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
10717 next: ptr::null_mut(),
10718 storage_buffer_16bit_access: Bool32::default(),
10719 uniform_and_storage_buffer_16bit_access: Bool32::default(),
10720 storage_push_constant16: Bool32::default(),
10721 storage_input_output16: Bool32::default(),
10722 }
10723 }
10724}
10725
10726#[repr(C)]
10728#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10729pub struct PhysicalDevice4444FormatsFeaturesEXT {
10730 pub s_type: StructureType,
10731 pub next: *mut c_void,
10732 pub format_a4_r4_g4_b4: Bool32,
10733 pub format_a4_b4_g4_r4: Bool32,
10734}
10735
10736impl Default for PhysicalDevice4444FormatsFeaturesEXT {
10737 #[inline]
10738 fn default() -> Self {
10739 Self {
10740 s_type: StructureType::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
10741 next: ptr::null_mut(),
10742 format_a4_r4_g4_b4: Bool32::default(),
10743 format_a4_b4_g4_r4: Bool32::default(),
10744 }
10745 }
10746}
10747
10748#[repr(C)]
10750#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10751pub struct PhysicalDevice8BitStorageFeatures {
10752 pub s_type: StructureType,
10753 pub next: *mut c_void,
10754 pub storage_buffer_8bit_access: Bool32,
10755 pub uniform_and_storage_buffer_8bit_access: Bool32,
10756 pub storage_push_constant8: Bool32,
10757}
10758
10759impl Default for PhysicalDevice8BitStorageFeatures {
10760 #[inline]
10761 fn default() -> Self {
10762 Self {
10763 s_type: StructureType::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
10764 next: ptr::null_mut(),
10765 storage_buffer_8bit_access: Bool32::default(),
10766 uniform_and_storage_buffer_8bit_access: Bool32::default(),
10767 storage_push_constant8: Bool32::default(),
10768 }
10769 }
10770}
10771
10772#[repr(C)]
10774#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10775pub struct PhysicalDeviceASTCDecodeFeaturesEXT {
10776 pub s_type: StructureType,
10777 pub next: *mut c_void,
10778 pub decode_mode_shared_exponent: Bool32,
10779}
10780
10781impl Default for PhysicalDeviceASTCDecodeFeaturesEXT {
10782 #[inline]
10783 fn default() -> Self {
10784 Self {
10785 s_type: StructureType::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
10786 next: ptr::null_mut(),
10787 decode_mode_shared_exponent: Bool32::default(),
10788 }
10789 }
10790}
10791
10792#[repr(C)]
10794#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10795pub struct PhysicalDeviceAccelerationStructureFeaturesKHR {
10796 pub s_type: StructureType,
10797 pub next: *mut c_void,
10798 pub acceleration_structure: Bool32,
10799 pub acceleration_structure_capture_replay: Bool32,
10800 pub acceleration_structure_indirect_build: Bool32,
10801 pub acceleration_structure_host_commands: Bool32,
10802 pub descriptor_binding_acceleration_structure_update_after_bind: Bool32,
10803}
10804
10805impl Default for PhysicalDeviceAccelerationStructureFeaturesKHR {
10806 #[inline]
10807 fn default() -> Self {
10808 Self {
10809 s_type: StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
10810 next: ptr::null_mut(),
10811 acceleration_structure: Bool32::default(),
10812 acceleration_structure_capture_replay: Bool32::default(),
10813 acceleration_structure_indirect_build: Bool32::default(),
10814 acceleration_structure_host_commands: Bool32::default(),
10815 descriptor_binding_acceleration_structure_update_after_bind: Bool32::default(),
10816 }
10817 }
10818}
10819
10820#[repr(C)]
10822#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10823pub struct PhysicalDeviceAccelerationStructurePropertiesKHR {
10824 pub s_type: StructureType,
10825 pub next: *mut c_void,
10826 pub max_geometry_count: u64,
10827 pub max_instance_count: u64,
10828 pub max_primitive_count: u64,
10829 pub max_per_stage_descriptor_acceleration_structures: u32,
10830 pub max_per_stage_descriptor_update_after_bind_acceleration_structures: u32,
10831 pub max_descriptor_set_acceleration_structures: u32,
10832 pub max_descriptor_set_update_after_bind_acceleration_structures: u32,
10833 pub min_acceleration_structure_scratch_offset_alignment: u32,
10834}
10835
10836impl Default for PhysicalDeviceAccelerationStructurePropertiesKHR {
10837 #[inline]
10838 fn default() -> Self {
10839 Self {
10840 s_type: StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
10841 next: ptr::null_mut(),
10842 max_geometry_count: u64::default(),
10843 max_instance_count: u64::default(),
10844 max_primitive_count: u64::default(),
10845 max_per_stage_descriptor_acceleration_structures: u32::default(),
10846 max_per_stage_descriptor_update_after_bind_acceleration_structures: u32::default(),
10847 max_descriptor_set_acceleration_structures: u32::default(),
10848 max_descriptor_set_update_after_bind_acceleration_structures: u32::default(),
10849 min_acceleration_structure_scratch_offset_alignment: u32::default(),
10850 }
10851 }
10852}
10853
10854#[repr(C)]
10856#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10857pub struct PhysicalDeviceAddressBindingReportFeaturesEXT {
10858 pub s_type: StructureType,
10859 pub next: *mut c_void,
10860 pub report_address_binding: Bool32,
10861}
10862
10863impl Default for PhysicalDeviceAddressBindingReportFeaturesEXT {
10864 #[inline]
10865 fn default() -> Self {
10866 Self {
10867 s_type: StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT,
10868 next: ptr::null_mut(),
10869 report_address_binding: Bool32::default(),
10870 }
10871 }
10872}
10873
10874#[repr(C)]
10876#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10877pub struct PhysicalDeviceAmigoProfilingFeaturesSEC {
10878 pub s_type: StructureType,
10879 pub next: *mut c_void,
10880 pub amigo_profiling: Bool32,
10881}
10882
10883impl Default for PhysicalDeviceAmigoProfilingFeaturesSEC {
10884 #[inline]
10885 fn default() -> Self {
10886 Self {
10887 s_type: StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC,
10888 next: ptr::null_mut(),
10889 amigo_profiling: Bool32::default(),
10890 }
10891 }
10892}
10893
10894#[repr(C)]
10896#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10897pub struct PhysicalDeviceAntiLagFeaturesAMD {
10898 pub s_type: StructureType,
10899 pub next: *mut c_void,
10900 pub anti_lag: Bool32,
10901}
10902
10903impl Default for PhysicalDeviceAntiLagFeaturesAMD {
10904 #[inline]
10905 fn default() -> Self {
10906 Self {
10907 s_type: StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD,
10908 next: ptr::null_mut(),
10909 anti_lag: Bool32::default(),
10910 }
10911 }
10912}
10913
10914#[repr(C)]
10916#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10917pub struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
10918 pub s_type: StructureType,
10919 pub next: *mut c_void,
10920 pub attachment_feedback_loop_dynamic_state: Bool32,
10921}
10922
10923impl Default for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
10924 #[inline]
10925 fn default() -> Self {
10926 Self {
10927 s_type:
10928 StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT,
10929 next: ptr::null_mut(),
10930 attachment_feedback_loop_dynamic_state: Bool32::default(),
10931 }
10932 }
10933}
10934
10935#[repr(C)]
10937#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10938pub struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
10939 pub s_type: StructureType,
10940 pub next: *mut c_void,
10941 pub attachment_feedback_loop_layout: Bool32,
10942}
10943
10944impl Default for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
10945 #[inline]
10946 fn default() -> Self {
10947 Self {
10948 s_type: StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,
10949 next: ptr::null_mut(),
10950 attachment_feedback_loop_layout: Bool32::default(),
10951 }
10952 }
10953}
10954
10955#[repr(C)]
10957#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10958pub struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
10959 pub s_type: StructureType,
10960 pub next: *mut c_void,
10961 pub advanced_blend_coherent_operations: Bool32,
10962}
10963
10964impl Default for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
10965 #[inline]
10966 fn default() -> Self {
10967 Self {
10968 s_type: StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
10969 next: ptr::null_mut(),
10970 advanced_blend_coherent_operations: Bool32::default(),
10971 }
10972 }
10973}
10974
10975#[repr(C)]
10977#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
10978pub struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
10979 pub s_type: StructureType,
10980 pub next: *mut c_void,
10981 pub advanced_blend_max_color_attachments: u32,
10982 pub advanced_blend_independent_blend: Bool32,
10983 pub advanced_blend_non_premultiplied_src_color: Bool32,
10984 pub advanced_blend_non_premultiplied_dst_color: Bool32,
10985 pub advanced_blend_correlated_overlap: Bool32,
10986 pub advanced_blend_all_operations: Bool32,
10987}
10988
10989impl Default for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
10990 #[inline]
10991 fn default() -> Self {
10992 Self {
10993 s_type: StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
10994 next: ptr::null_mut(),
10995 advanced_blend_max_color_attachments: u32::default(),
10996 advanced_blend_independent_blend: Bool32::default(),
10997 advanced_blend_non_premultiplied_src_color: Bool32::default(),
10998 advanced_blend_non_premultiplied_dst_color: Bool32::default(),
10999 advanced_blend_correlated_overlap: Bool32::default(),
11000 advanced_blend_all_operations: Bool32::default(),
11001 }
11002 }
11003}
11004
11005#[repr(C)]
11007#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11008pub struct PhysicalDeviceBorderColorSwizzleFeaturesEXT {
11009 pub s_type: StructureType,
11010 pub next: *mut c_void,
11011 pub border_color_swizzle: Bool32,
11012 pub border_color_swizzle_from_image: Bool32,
11013}
11014
11015impl Default for PhysicalDeviceBorderColorSwizzleFeaturesEXT {
11016 #[inline]
11017 fn default() -> Self {
11018 Self {
11019 s_type: StructureType::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,
11020 next: ptr::null_mut(),
11021 border_color_swizzle: Bool32::default(),
11022 border_color_swizzle_from_image: Bool32::default(),
11023 }
11024 }
11025}
11026
11027#[repr(C)]
11029#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11030pub struct PhysicalDeviceBufferDeviceAddressFeatures {
11031 pub s_type: StructureType,
11032 pub next: *mut c_void,
11033 pub buffer_device_address: Bool32,
11034 pub buffer_device_address_capture_replay: Bool32,
11035 pub buffer_device_address_multi_device: Bool32,
11036}
11037
11038impl Default for PhysicalDeviceBufferDeviceAddressFeatures {
11039 #[inline]
11040 fn default() -> Self {
11041 Self {
11042 s_type: StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
11043 next: ptr::null_mut(),
11044 buffer_device_address: Bool32::default(),
11045 buffer_device_address_capture_replay: Bool32::default(),
11046 buffer_device_address_multi_device: Bool32::default(),
11047 }
11048 }
11049}
11050
11051#[repr(C)]
11053#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11054pub struct PhysicalDeviceBufferDeviceAddressFeaturesEXT {
11055 pub s_type: StructureType,
11056 pub next: *mut c_void,
11057 pub buffer_device_address: Bool32,
11058 pub buffer_device_address_capture_replay: Bool32,
11059 pub buffer_device_address_multi_device: Bool32,
11060}
11061
11062impl Default for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
11063 #[inline]
11064 fn default() -> Self {
11065 Self {
11066 s_type: StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
11067 next: ptr::null_mut(),
11068 buffer_device_address: Bool32::default(),
11069 buffer_device_address_capture_replay: Bool32::default(),
11070 buffer_device_address_multi_device: Bool32::default(),
11071 }
11072 }
11073}
11074
11075#[repr(C)]
11077#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11078pub struct PhysicalDeviceClusterAccelerationStructureFeaturesNV {
11079 pub s_type: StructureType,
11080 pub next: *mut c_void,
11081 pub cluster_acceleration_structure: Bool32,
11082}
11083
11084impl Default for PhysicalDeviceClusterAccelerationStructureFeaturesNV {
11085 #[inline]
11086 fn default() -> Self {
11087 Self {
11088 s_type: StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV,
11089 next: ptr::null_mut(),
11090 cluster_acceleration_structure: Bool32::default(),
11091 }
11092 }
11093}
11094
11095#[repr(C)]
11097#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11098pub struct PhysicalDeviceClusterAccelerationStructurePropertiesNV {
11099 pub s_type: StructureType,
11100 pub next: *mut c_void,
11101 pub max_vertices_per_cluster: u32,
11102 pub max_triangles_per_cluster: u32,
11103 pub cluster_scratch_byte_alignment: u32,
11104 pub cluster_byte_alignment: u32,
11105 pub cluster_template_byte_alignment: u32,
11106 pub cluster_bottom_level_byte_alignment: u32,
11107 pub cluster_template_bounds_byte_alignment: u32,
11108 pub max_cluster_geometry_index: u32,
11109}
11110
11111impl Default for PhysicalDeviceClusterAccelerationStructurePropertiesNV {
11112 #[inline]
11113 fn default() -> Self {
11114 Self {
11115 s_type: StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV,
11116 next: ptr::null_mut(),
11117 max_vertices_per_cluster: u32::default(),
11118 max_triangles_per_cluster: u32::default(),
11119 cluster_scratch_byte_alignment: u32::default(),
11120 cluster_byte_alignment: u32::default(),
11121 cluster_template_byte_alignment: u32::default(),
11122 cluster_bottom_level_byte_alignment: u32::default(),
11123 cluster_template_bounds_byte_alignment: u32::default(),
11124 max_cluster_geometry_index: u32::default(),
11125 }
11126 }
11127}
11128
11129#[repr(C)]
11131#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11132pub struct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
11133 pub s_type: StructureType,
11134 pub next: *mut c_void,
11135 pub clusterculling_shader: Bool32,
11136 pub multiview_cluster_culling_shader: Bool32,
11137}
11138
11139impl Default for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
11140 #[inline]
11141 fn default() -> Self {
11142 Self {
11143 s_type: StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI,
11144 next: ptr::null_mut(),
11145 clusterculling_shader: Bool32::default(),
11146 multiview_cluster_culling_shader: Bool32::default(),
11147 }
11148 }
11149}
11150
11151#[repr(C)]
11153#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11154pub struct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
11155 pub s_type: StructureType,
11156 pub next: *mut c_void,
11157 pub max_work_group_count: [u32; 3],
11158 pub max_work_group_size: [u32; 3],
11159 pub max_output_cluster_count: u32,
11160 pub indirect_buffer_offset_alignment: DeviceSize,
11161}
11162
11163impl Default for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
11164 #[inline]
11165 fn default() -> Self {
11166 Self {
11167 s_type: StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI,
11168 next: ptr::null_mut(),
11169 max_work_group_count: [u32::default(); 3],
11170 max_work_group_size: [u32::default(); 3],
11171 max_output_cluster_count: u32::default(),
11172 indirect_buffer_offset_alignment: DeviceSize::default(),
11173 }
11174 }
11175}
11176
11177#[repr(C)]
11179#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11180pub struct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
11181 pub s_type: StructureType,
11182 pub next: *mut c_void,
11183 pub cluster_shading_rate: Bool32,
11184}
11185
11186impl Default for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
11187 #[inline]
11188 fn default() -> Self {
11189 Self {
11190 s_type: StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI,
11191 next: ptr::null_mut(),
11192 cluster_shading_rate: Bool32::default(),
11193 }
11194 }
11195}
11196
11197#[repr(C)]
11199#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11200pub struct PhysicalDeviceCoherentMemoryFeaturesAMD {
11201 pub s_type: StructureType,
11202 pub next: *mut c_void,
11203 pub device_coherent_memory: Bool32,
11204}
11205
11206impl Default for PhysicalDeviceCoherentMemoryFeaturesAMD {
11207 #[inline]
11208 fn default() -> Self {
11209 Self {
11210 s_type: StructureType::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
11211 next: ptr::null_mut(),
11212 device_coherent_memory: Bool32::default(),
11213 }
11214 }
11215}
11216
11217#[repr(C)]
11219#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11220pub struct PhysicalDeviceColorWriteEnableFeaturesEXT {
11221 pub s_type: StructureType,
11222 pub next: *mut c_void,
11223 pub color_write_enable: Bool32,
11224}
11225
11226impl Default for PhysicalDeviceColorWriteEnableFeaturesEXT {
11227 #[inline]
11228 fn default() -> Self {
11229 Self {
11230 s_type: StructureType::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
11231 next: ptr::null_mut(),
11232 color_write_enable: Bool32::default(),
11233 }
11234 }
11235}
11236
11237#[repr(C)]
11239#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11240pub struct PhysicalDeviceCommandBufferInheritanceFeaturesNV {
11241 pub s_type: StructureType,
11242 pub next: *mut c_void,
11243 pub command_buffer_inheritance: Bool32,
11244}
11245
11246impl Default for PhysicalDeviceCommandBufferInheritanceFeaturesNV {
11247 #[inline]
11248 fn default() -> Self {
11249 Self {
11250 s_type: StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV,
11251 next: ptr::null_mut(),
11252 command_buffer_inheritance: Bool32::default(),
11253 }
11254 }
11255}
11256
11257#[repr(C)]
11259#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11260pub struct PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
11261 pub s_type: StructureType,
11262 pub next: *mut c_void,
11263 pub compute_derivative_group_quads: Bool32,
11264 pub compute_derivative_group_linear: Bool32,
11265}
11266
11267impl Default for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
11268 #[inline]
11269 fn default() -> Self {
11270 Self {
11271 s_type: StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
11272 next: ptr::null_mut(),
11273 compute_derivative_group_quads: Bool32::default(),
11274 compute_derivative_group_linear: Bool32::default(),
11275 }
11276 }
11277}
11278
11279#[repr(C)]
11281#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11282pub struct PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
11283 pub s_type: StructureType,
11284 pub next: *mut c_void,
11285 pub mesh_and_task_shader_derivatives: Bool32,
11286}
11287
11288impl Default for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
11289 #[inline]
11290 fn default() -> Self {
11291 Self {
11292 s_type: StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR,
11293 next: ptr::null_mut(),
11294 mesh_and_task_shader_derivatives: Bool32::default(),
11295 }
11296 }
11297}
11298
11299#[repr(C)]
11301#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11302pub struct PhysicalDeviceConditionalRenderingFeaturesEXT {
11303 pub s_type: StructureType,
11304 pub next: *mut c_void,
11305 pub conditional_rendering: Bool32,
11306 pub inherited_conditional_rendering: Bool32,
11307}
11308
11309impl Default for PhysicalDeviceConditionalRenderingFeaturesEXT {
11310 #[inline]
11311 fn default() -> Self {
11312 Self {
11313 s_type: StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
11314 next: ptr::null_mut(),
11315 conditional_rendering: Bool32::default(),
11316 inherited_conditional_rendering: Bool32::default(),
11317 }
11318 }
11319}
11320
11321#[repr(C)]
11323#[derive(Copy, Clone, Debug, PartialEq)]
11324pub struct PhysicalDeviceConservativeRasterizationPropertiesEXT {
11325 pub s_type: StructureType,
11326 pub next: *mut c_void,
11327 pub primitive_overestimation_size: f32,
11328 pub max_extra_primitive_overestimation_size: f32,
11329 pub extra_primitive_overestimation_size_granularity: f32,
11330 pub primitive_underestimation: Bool32,
11331 pub conservative_point_and_line_rasterization: Bool32,
11332 pub degenerate_triangles_rasterized: Bool32,
11333 pub degenerate_lines_rasterized: Bool32,
11334 pub fully_covered_fragment_shader_input_variable: Bool32,
11335 pub conservative_rasterization_post_depth_coverage: Bool32,
11336}
11337
11338impl Default for PhysicalDeviceConservativeRasterizationPropertiesEXT {
11339 #[inline]
11340 fn default() -> Self {
11341 Self {
11342 s_type: StructureType::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
11343 next: ptr::null_mut(),
11344 primitive_overestimation_size: f32::default(),
11345 max_extra_primitive_overestimation_size: f32::default(),
11346 extra_primitive_overestimation_size_granularity: f32::default(),
11347 primitive_underestimation: Bool32::default(),
11348 conservative_point_and_line_rasterization: Bool32::default(),
11349 degenerate_triangles_rasterized: Bool32::default(),
11350 degenerate_lines_rasterized: Bool32::default(),
11351 fully_covered_fragment_shader_input_variable: Bool32::default(),
11352 conservative_rasterization_post_depth_coverage: Bool32::default(),
11353 }
11354 }
11355}
11356
11357#[repr(C)]
11359#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11360pub struct PhysicalDeviceCooperativeMatrix2FeaturesNV {
11361 pub s_type: StructureType,
11362 pub next: *mut c_void,
11363 pub cooperative_matrix_workgroup_scope: Bool32,
11364 pub cooperative_matrix_flexible_dimensions: Bool32,
11365 pub cooperative_matrix_reductions: Bool32,
11366 pub cooperative_matrix_conversions: Bool32,
11367 pub cooperative_matrix_per_element_operations: Bool32,
11368 pub cooperative_matrix_tensor_addressing: Bool32,
11369 pub cooperative_matrix_block_loads: Bool32,
11370}
11371
11372impl Default for PhysicalDeviceCooperativeMatrix2FeaturesNV {
11373 #[inline]
11374 fn default() -> Self {
11375 Self {
11376 s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV,
11377 next: ptr::null_mut(),
11378 cooperative_matrix_workgroup_scope: Bool32::default(),
11379 cooperative_matrix_flexible_dimensions: Bool32::default(),
11380 cooperative_matrix_reductions: Bool32::default(),
11381 cooperative_matrix_conversions: Bool32::default(),
11382 cooperative_matrix_per_element_operations: Bool32::default(),
11383 cooperative_matrix_tensor_addressing: Bool32::default(),
11384 cooperative_matrix_block_loads: Bool32::default(),
11385 }
11386 }
11387}
11388
11389#[repr(C)]
11391#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11392pub struct PhysicalDeviceCooperativeMatrix2PropertiesNV {
11393 pub s_type: StructureType,
11394 pub next: *mut c_void,
11395 pub cooperative_matrix_workgroup_scope_max_workgroup_size: u32,
11396 pub cooperative_matrix_flexible_dimensions_max_dimension: u32,
11397 pub cooperative_matrix_workgroup_scope_reserved_shared_memory: u32,
11398}
11399
11400impl Default for PhysicalDeviceCooperativeMatrix2PropertiesNV {
11401 #[inline]
11402 fn default() -> Self {
11403 Self {
11404 s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV,
11405 next: ptr::null_mut(),
11406 cooperative_matrix_workgroup_scope_max_workgroup_size: u32::default(),
11407 cooperative_matrix_flexible_dimensions_max_dimension: u32::default(),
11408 cooperative_matrix_workgroup_scope_reserved_shared_memory: u32::default(),
11409 }
11410 }
11411}
11412
11413#[repr(C)]
11415#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11416pub struct PhysicalDeviceCooperativeMatrixFeaturesKHR {
11417 pub s_type: StructureType,
11418 pub next: *mut c_void,
11419 pub cooperative_matrix: Bool32,
11420 pub cooperative_matrix_robust_buffer_access: Bool32,
11421}
11422
11423impl Default for PhysicalDeviceCooperativeMatrixFeaturesKHR {
11424 #[inline]
11425 fn default() -> Self {
11426 Self {
11427 s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR,
11428 next: ptr::null_mut(),
11429 cooperative_matrix: Bool32::default(),
11430 cooperative_matrix_robust_buffer_access: Bool32::default(),
11431 }
11432 }
11433}
11434
11435#[repr(C)]
11437#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11438pub struct PhysicalDeviceCooperativeMatrixFeaturesNV {
11439 pub s_type: StructureType,
11440 pub next: *mut c_void,
11441 pub cooperative_matrix: Bool32,
11442 pub cooperative_matrix_robust_buffer_access: Bool32,
11443}
11444
11445impl Default for PhysicalDeviceCooperativeMatrixFeaturesNV {
11446 #[inline]
11447 fn default() -> Self {
11448 Self {
11449 s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
11450 next: ptr::null_mut(),
11451 cooperative_matrix: Bool32::default(),
11452 cooperative_matrix_robust_buffer_access: Bool32::default(),
11453 }
11454 }
11455}
11456
11457#[repr(C)]
11459#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11460pub struct PhysicalDeviceCooperativeMatrixPropertiesKHR {
11461 pub s_type: StructureType,
11462 pub next: *mut c_void,
11463 pub cooperative_matrix_supported_stages: ShaderStageFlags,
11464}
11465
11466impl Default for PhysicalDeviceCooperativeMatrixPropertiesKHR {
11467 #[inline]
11468 fn default() -> Self {
11469 Self {
11470 s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR,
11471 next: ptr::null_mut(),
11472 cooperative_matrix_supported_stages: ShaderStageFlags::default(),
11473 }
11474 }
11475}
11476
11477#[repr(C)]
11479#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11480pub struct PhysicalDeviceCooperativeMatrixPropertiesNV {
11481 pub s_type: StructureType,
11482 pub next: *mut c_void,
11483 pub cooperative_matrix_supported_stages: ShaderStageFlags,
11484}
11485
11486impl Default for PhysicalDeviceCooperativeMatrixPropertiesNV {
11487 #[inline]
11488 fn default() -> Self {
11489 Self {
11490 s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
11491 next: ptr::null_mut(),
11492 cooperative_matrix_supported_stages: ShaderStageFlags::default(),
11493 }
11494 }
11495}
11496
11497#[repr(C)]
11499#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11500pub struct PhysicalDeviceCooperativeVectorFeaturesNV {
11501 pub s_type: StructureType,
11502 pub next: *mut c_void,
11503 pub cooperative_vector: Bool32,
11504 pub cooperative_vector_training: Bool32,
11505}
11506
11507impl Default for PhysicalDeviceCooperativeVectorFeaturesNV {
11508 #[inline]
11509 fn default() -> Self {
11510 Self {
11511 s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV,
11512 next: ptr::null_mut(),
11513 cooperative_vector: Bool32::default(),
11514 cooperative_vector_training: Bool32::default(),
11515 }
11516 }
11517}
11518
11519#[repr(C)]
11521#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11522pub struct PhysicalDeviceCooperativeVectorPropertiesNV {
11523 pub s_type: StructureType,
11524 pub next: *mut c_void,
11525 pub cooperative_vector_supported_stages: ShaderStageFlags,
11526 pub cooperative_vector_training_float16_accumulation: Bool32,
11527 pub cooperative_vector_training_float32_accumulation: Bool32,
11528 pub max_cooperative_vector_components: u32,
11529}
11530
11531impl Default for PhysicalDeviceCooperativeVectorPropertiesNV {
11532 #[inline]
11533 fn default() -> Self {
11534 Self {
11535 s_type: StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV,
11536 next: ptr::null_mut(),
11537 cooperative_vector_supported_stages: ShaderStageFlags::default(),
11538 cooperative_vector_training_float16_accumulation: Bool32::default(),
11539 cooperative_vector_training_float32_accumulation: Bool32::default(),
11540 max_cooperative_vector_components: u32::default(),
11541 }
11542 }
11543}
11544
11545#[repr(C)]
11547#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11548pub struct PhysicalDeviceCopyMemoryIndirectFeaturesNV {
11549 pub s_type: StructureType,
11550 pub next: *mut c_void,
11551 pub indirect_copy: Bool32,
11552}
11553
11554impl Default for PhysicalDeviceCopyMemoryIndirectFeaturesNV {
11555 #[inline]
11556 fn default() -> Self {
11557 Self {
11558 s_type: StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV,
11559 next: ptr::null_mut(),
11560 indirect_copy: Bool32::default(),
11561 }
11562 }
11563}
11564
11565#[repr(C)]
11567#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11568pub struct PhysicalDeviceCopyMemoryIndirectPropertiesNV {
11569 pub s_type: StructureType,
11570 pub next: *mut c_void,
11571 pub supported_queues: QueueFlags,
11572}
11573
11574impl Default for PhysicalDeviceCopyMemoryIndirectPropertiesNV {
11575 #[inline]
11576 fn default() -> Self {
11577 Self {
11578 s_type: StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV,
11579 next: ptr::null_mut(),
11580 supported_queues: QueueFlags::default(),
11581 }
11582 }
11583}
11584
11585#[repr(C)]
11587#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11588pub struct PhysicalDeviceCornerSampledImageFeaturesNV {
11589 pub s_type: StructureType,
11590 pub next: *mut c_void,
11591 pub corner_sampled_image: Bool32,
11592}
11593
11594impl Default for PhysicalDeviceCornerSampledImageFeaturesNV {
11595 #[inline]
11596 fn default() -> Self {
11597 Self {
11598 s_type: StructureType::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
11599 next: ptr::null_mut(),
11600 corner_sampled_image: Bool32::default(),
11601 }
11602 }
11603}
11604
11605#[repr(C)]
11607#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11608pub struct PhysicalDeviceCoverageReductionModeFeaturesNV {
11609 pub s_type: StructureType,
11610 pub next: *mut c_void,
11611 pub coverage_reduction_mode: Bool32,
11612}
11613
11614impl Default for PhysicalDeviceCoverageReductionModeFeaturesNV {
11615 #[inline]
11616 fn default() -> Self {
11617 Self {
11618 s_type: StructureType::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
11619 next: ptr::null_mut(),
11620 coverage_reduction_mode: Bool32::default(),
11621 }
11622 }
11623}
11624
11625#[repr(C)]
11627#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11628pub struct PhysicalDeviceCubicClampFeaturesQCOM {
11629 pub s_type: StructureType,
11630 pub next: *mut c_void,
11631 pub cubic_range_clamp: Bool32,
11632}
11633
11634impl Default for PhysicalDeviceCubicClampFeaturesQCOM {
11635 #[inline]
11636 fn default() -> Self {
11637 Self {
11638 s_type: StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM,
11639 next: ptr::null_mut(),
11640 cubic_range_clamp: Bool32::default(),
11641 }
11642 }
11643}
11644
11645#[repr(C)]
11647#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11648pub struct PhysicalDeviceCubicWeightsFeaturesQCOM {
11649 pub s_type: StructureType,
11650 pub next: *mut c_void,
11651 pub selectable_cubic_weights: Bool32,
11652}
11653
11654impl Default for PhysicalDeviceCubicWeightsFeaturesQCOM {
11655 #[inline]
11656 fn default() -> Self {
11657 Self {
11658 s_type: StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM,
11659 next: ptr::null_mut(),
11660 selectable_cubic_weights: Bool32::default(),
11661 }
11662 }
11663}
11664
11665#[repr(C)]
11667#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11668pub struct PhysicalDeviceCudaKernelLaunchFeaturesNV {
11669 pub s_type: StructureType,
11670 pub next: *mut c_void,
11671 pub cuda_kernel_launch_features: Bool32,
11672}
11673
11674impl Default for PhysicalDeviceCudaKernelLaunchFeaturesNV {
11675 #[inline]
11676 fn default() -> Self {
11677 Self {
11678 s_type: StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV,
11679 next: ptr::null_mut(),
11680 cuda_kernel_launch_features: Bool32::default(),
11681 }
11682 }
11683}
11684
11685#[repr(C)]
11687#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11688pub struct PhysicalDeviceCudaKernelLaunchPropertiesNV {
11689 pub s_type: StructureType,
11690 pub next: *mut c_void,
11691 pub compute_capability_minor: u32,
11692 pub compute_capability_major: u32,
11693}
11694
11695impl Default for PhysicalDeviceCudaKernelLaunchPropertiesNV {
11696 #[inline]
11697 fn default() -> Self {
11698 Self {
11699 s_type: StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV,
11700 next: ptr::null_mut(),
11701 compute_capability_minor: u32::default(),
11702 compute_capability_major: u32::default(),
11703 }
11704 }
11705}
11706
11707#[repr(C)]
11709#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11710pub struct PhysicalDeviceCustomBorderColorFeaturesEXT {
11711 pub s_type: StructureType,
11712 pub next: *mut c_void,
11713 pub custom_border_colors: Bool32,
11714 pub custom_border_color_without_format: Bool32,
11715}
11716
11717impl Default for PhysicalDeviceCustomBorderColorFeaturesEXT {
11718 #[inline]
11719 fn default() -> Self {
11720 Self {
11721 s_type: StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
11722 next: ptr::null_mut(),
11723 custom_border_colors: Bool32::default(),
11724 custom_border_color_without_format: Bool32::default(),
11725 }
11726 }
11727}
11728
11729#[repr(C)]
11731#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11732pub struct PhysicalDeviceCustomBorderColorPropertiesEXT {
11733 pub s_type: StructureType,
11734 pub next: *mut c_void,
11735 pub max_custom_border_color_samplers: u32,
11736}
11737
11738impl Default for PhysicalDeviceCustomBorderColorPropertiesEXT {
11739 #[inline]
11740 fn default() -> Self {
11741 Self {
11742 s_type: StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
11743 next: ptr::null_mut(),
11744 max_custom_border_color_samplers: u32::default(),
11745 }
11746 }
11747}
11748
11749#[repr(C)]
11751#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11752pub struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
11753 pub s_type: StructureType,
11754 pub next: *mut c_void,
11755 pub dedicated_allocation_image_aliasing: Bool32,
11756}
11757
11758impl Default for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
11759 #[inline]
11760 fn default() -> Self {
11761 Self {
11762 s_type: StructureType::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
11763 next: ptr::null_mut(),
11764 dedicated_allocation_image_aliasing: Bool32::default(),
11765 }
11766 }
11767}
11768
11769#[repr(C)]
11771#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11772pub struct PhysicalDeviceDepthBiasControlFeaturesEXT {
11773 pub s_type: StructureType,
11774 pub next: *mut c_void,
11775 pub depth_bias_control: Bool32,
11776 pub least_representable_value_force_unorm_representation: Bool32,
11777 pub float_representation: Bool32,
11778 pub depth_bias_exact: Bool32,
11779}
11780
11781impl Default for PhysicalDeviceDepthBiasControlFeaturesEXT {
11782 #[inline]
11783 fn default() -> Self {
11784 Self {
11785 s_type: StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT,
11786 next: ptr::null_mut(),
11787 depth_bias_control: Bool32::default(),
11788 least_representable_value_force_unorm_representation: Bool32::default(),
11789 float_representation: Bool32::default(),
11790 depth_bias_exact: Bool32::default(),
11791 }
11792 }
11793}
11794
11795#[repr(C)]
11797#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11798pub struct PhysicalDeviceDepthClampControlFeaturesEXT {
11799 pub s_type: StructureType,
11800 pub next: *mut c_void,
11801 pub depth_clamp_control: Bool32,
11802}
11803
11804impl Default for PhysicalDeviceDepthClampControlFeaturesEXT {
11805 #[inline]
11806 fn default() -> Self {
11807 Self {
11808 s_type: StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT,
11809 next: ptr::null_mut(),
11810 depth_clamp_control: Bool32::default(),
11811 }
11812 }
11813}
11814
11815#[repr(C)]
11817#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11818pub struct PhysicalDeviceDepthClampZeroOneFeaturesKHR {
11819 pub s_type: StructureType,
11820 pub next: *mut c_void,
11821 pub depth_clamp_zero_one: Bool32,
11822}
11823
11824impl Default for PhysicalDeviceDepthClampZeroOneFeaturesKHR {
11825 #[inline]
11826 fn default() -> Self {
11827 Self {
11828 s_type: StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
11829 next: ptr::null_mut(),
11830 depth_clamp_zero_one: Bool32::default(),
11831 }
11832 }
11833}
11834
11835#[repr(C)]
11837#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11838pub struct PhysicalDeviceDepthClipControlFeaturesEXT {
11839 pub s_type: StructureType,
11840 pub next: *mut c_void,
11841 pub depth_clip_control: Bool32,
11842}
11843
11844impl Default for PhysicalDeviceDepthClipControlFeaturesEXT {
11845 #[inline]
11846 fn default() -> Self {
11847 Self {
11848 s_type: StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT,
11849 next: ptr::null_mut(),
11850 depth_clip_control: Bool32::default(),
11851 }
11852 }
11853}
11854
11855#[repr(C)]
11857#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11858pub struct PhysicalDeviceDepthClipEnableFeaturesEXT {
11859 pub s_type: StructureType,
11860 pub next: *mut c_void,
11861 pub depth_clip_enable: Bool32,
11862}
11863
11864impl Default for PhysicalDeviceDepthClipEnableFeaturesEXT {
11865 #[inline]
11866 fn default() -> Self {
11867 Self {
11868 s_type: StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
11869 next: ptr::null_mut(),
11870 depth_clip_enable: Bool32::default(),
11871 }
11872 }
11873}
11874
11875#[repr(C)]
11877#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11878pub struct PhysicalDeviceDepthStencilResolveProperties {
11879 pub s_type: StructureType,
11880 pub next: *mut c_void,
11881 pub supported_depth_resolve_modes: ResolveModeFlags,
11882 pub supported_stencil_resolve_modes: ResolveModeFlags,
11883 pub independent_resolve_none: Bool32,
11884 pub independent_resolve: Bool32,
11885}
11886
11887impl Default for PhysicalDeviceDepthStencilResolveProperties {
11888 #[inline]
11889 fn default() -> Self {
11890 Self {
11891 s_type: StructureType::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
11892 next: ptr::null_mut(),
11893 supported_depth_resolve_modes: ResolveModeFlags::default(),
11894 supported_stencil_resolve_modes: ResolveModeFlags::default(),
11895 independent_resolve_none: Bool32::default(),
11896 independent_resolve: Bool32::default(),
11897 }
11898 }
11899}
11900
11901#[repr(C)]
11903#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11904pub struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
11905 pub s_type: StructureType,
11906 pub next: *mut c_void,
11907 pub combined_image_sampler_density_map_descriptor_size: usize,
11908}
11909
11910impl Default for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
11911 #[inline]
11912 fn default() -> Self {
11913 Self {
11914 s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT,
11915 next: ptr::null_mut(),
11916 combined_image_sampler_density_map_descriptor_size: usize::default(),
11917 }
11918 }
11919}
11920
11921#[repr(C)]
11923#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11924pub struct PhysicalDeviceDescriptorBufferFeaturesEXT {
11925 pub s_type: StructureType,
11926 pub next: *mut c_void,
11927 pub descriptor_buffer: Bool32,
11928 pub descriptor_buffer_capture_replay: Bool32,
11929 pub descriptor_buffer_image_layout_ignored: Bool32,
11930 pub descriptor_buffer_push_descriptors: Bool32,
11931}
11932
11933impl Default for PhysicalDeviceDescriptorBufferFeaturesEXT {
11934 #[inline]
11935 fn default() -> Self {
11936 Self {
11937 s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
11938 next: ptr::null_mut(),
11939 descriptor_buffer: Bool32::default(),
11940 descriptor_buffer_capture_replay: Bool32::default(),
11941 descriptor_buffer_image_layout_ignored: Bool32::default(),
11942 descriptor_buffer_push_descriptors: Bool32::default(),
11943 }
11944 }
11945}
11946
11947#[repr(C)]
11949#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
11950pub struct PhysicalDeviceDescriptorBufferPropertiesEXT {
11951 pub s_type: StructureType,
11952 pub next: *mut c_void,
11953 pub combined_image_sampler_descriptor_single_array: Bool32,
11954 pub bufferless_push_descriptors: Bool32,
11955 pub allow_sampler_image_view_post_submit_creation: Bool32,
11956 pub descriptor_buffer_offset_alignment: DeviceSize,
11957 pub max_descriptor_buffer_bindings: u32,
11958 pub max_resource_descriptor_buffer_bindings: u32,
11959 pub max_sampler_descriptor_buffer_bindings: u32,
11960 pub max_embedded_immutable_sampler_bindings: u32,
11961 pub max_embedded_immutable_samplers: u32,
11962 pub buffer_capture_replay_descriptor_data_size: usize,
11963 pub image_capture_replay_descriptor_data_size: usize,
11964 pub image_view_capture_replay_descriptor_data_size: usize,
11965 pub sampler_capture_replay_descriptor_data_size: usize,
11966 pub acceleration_structure_capture_replay_descriptor_data_size: usize,
11967 pub sampler_descriptor_size: usize,
11968 pub combined_image_sampler_descriptor_size: usize,
11969 pub sampled_image_descriptor_size: usize,
11970 pub storage_image_descriptor_size: usize,
11971 pub uniform_texel_buffer_descriptor_size: usize,
11972 pub robust_uniform_texel_buffer_descriptor_size: usize,
11973 pub storage_texel_buffer_descriptor_size: usize,
11974 pub robust_storage_texel_buffer_descriptor_size: usize,
11975 pub uniform_buffer_descriptor_size: usize,
11976 pub robust_uniform_buffer_descriptor_size: usize,
11977 pub storage_buffer_descriptor_size: usize,
11978 pub robust_storage_buffer_descriptor_size: usize,
11979 pub input_attachment_descriptor_size: usize,
11980 pub acceleration_structure_descriptor_size: usize,
11981 pub max_sampler_descriptor_buffer_range: DeviceSize,
11982 pub max_resource_descriptor_buffer_range: DeviceSize,
11983 pub sampler_descriptor_buffer_address_space_size: DeviceSize,
11984 pub resource_descriptor_buffer_address_space_size: DeviceSize,
11985 pub descriptor_buffer_address_space_size: DeviceSize,
11986}
11987
11988impl Default for PhysicalDeviceDescriptorBufferPropertiesEXT {
11989 #[inline]
11990 fn default() -> Self {
11991 Self {
11992 s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT,
11993 next: ptr::null_mut(),
11994 combined_image_sampler_descriptor_single_array: Bool32::default(),
11995 bufferless_push_descriptors: Bool32::default(),
11996 allow_sampler_image_view_post_submit_creation: Bool32::default(),
11997 descriptor_buffer_offset_alignment: DeviceSize::default(),
11998 max_descriptor_buffer_bindings: u32::default(),
11999 max_resource_descriptor_buffer_bindings: u32::default(),
12000 max_sampler_descriptor_buffer_bindings: u32::default(),
12001 max_embedded_immutable_sampler_bindings: u32::default(),
12002 max_embedded_immutable_samplers: u32::default(),
12003 buffer_capture_replay_descriptor_data_size: usize::default(),
12004 image_capture_replay_descriptor_data_size: usize::default(),
12005 image_view_capture_replay_descriptor_data_size: usize::default(),
12006 sampler_capture_replay_descriptor_data_size: usize::default(),
12007 acceleration_structure_capture_replay_descriptor_data_size: usize::default(),
12008 sampler_descriptor_size: usize::default(),
12009 combined_image_sampler_descriptor_size: usize::default(),
12010 sampled_image_descriptor_size: usize::default(),
12011 storage_image_descriptor_size: usize::default(),
12012 uniform_texel_buffer_descriptor_size: usize::default(),
12013 robust_uniform_texel_buffer_descriptor_size: usize::default(),
12014 storage_texel_buffer_descriptor_size: usize::default(),
12015 robust_storage_texel_buffer_descriptor_size: usize::default(),
12016 uniform_buffer_descriptor_size: usize::default(),
12017 robust_uniform_buffer_descriptor_size: usize::default(),
12018 storage_buffer_descriptor_size: usize::default(),
12019 robust_storage_buffer_descriptor_size: usize::default(),
12020 input_attachment_descriptor_size: usize::default(),
12021 acceleration_structure_descriptor_size: usize::default(),
12022 max_sampler_descriptor_buffer_range: DeviceSize::default(),
12023 max_resource_descriptor_buffer_range: DeviceSize::default(),
12024 sampler_descriptor_buffer_address_space_size: DeviceSize::default(),
12025 resource_descriptor_buffer_address_space_size: DeviceSize::default(),
12026 descriptor_buffer_address_space_size: DeviceSize::default(),
12027 }
12028 }
12029}
12030
12031#[repr(C)]
12033#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12034pub struct PhysicalDeviceDescriptorIndexingFeatures {
12035 pub s_type: StructureType,
12036 pub next: *mut c_void,
12037 pub shader_input_attachment_array_dynamic_indexing: Bool32,
12038 pub shader_uniform_texel_buffer_array_dynamic_indexing: Bool32,
12039 pub shader_storage_texel_buffer_array_dynamic_indexing: Bool32,
12040 pub shader_uniform_buffer_array_non_uniform_indexing: Bool32,
12041 pub shader_sampled_image_array_non_uniform_indexing: Bool32,
12042 pub shader_storage_buffer_array_non_uniform_indexing: Bool32,
12043 pub shader_storage_image_array_non_uniform_indexing: Bool32,
12044 pub shader_input_attachment_array_non_uniform_indexing: Bool32,
12045 pub shader_uniform_texel_buffer_array_non_uniform_indexing: Bool32,
12046 pub shader_storage_texel_buffer_array_non_uniform_indexing: Bool32,
12047 pub descriptor_binding_uniform_buffer_update_after_bind: Bool32,
12048 pub descriptor_binding_sampled_image_update_after_bind: Bool32,
12049 pub descriptor_binding_storage_image_update_after_bind: Bool32,
12050 pub descriptor_binding_storage_buffer_update_after_bind: Bool32,
12051 pub descriptor_binding_uniform_texel_buffer_update_after_bind: Bool32,
12052 pub descriptor_binding_storage_texel_buffer_update_after_bind: Bool32,
12053 pub descriptor_binding_update_unused_while_pending: Bool32,
12054 pub descriptor_binding_partially_bound: Bool32,
12055 pub descriptor_binding_variable_descriptor_count: Bool32,
12056 pub runtime_descriptor_array: Bool32,
12057}
12058
12059impl Default for PhysicalDeviceDescriptorIndexingFeatures {
12060 #[inline]
12061 fn default() -> Self {
12062 Self {
12063 s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
12064 next: ptr::null_mut(),
12065 shader_input_attachment_array_dynamic_indexing: Bool32::default(),
12066 shader_uniform_texel_buffer_array_dynamic_indexing: Bool32::default(),
12067 shader_storage_texel_buffer_array_dynamic_indexing: Bool32::default(),
12068 shader_uniform_buffer_array_non_uniform_indexing: Bool32::default(),
12069 shader_sampled_image_array_non_uniform_indexing: Bool32::default(),
12070 shader_storage_buffer_array_non_uniform_indexing: Bool32::default(),
12071 shader_storage_image_array_non_uniform_indexing: Bool32::default(),
12072 shader_input_attachment_array_non_uniform_indexing: Bool32::default(),
12073 shader_uniform_texel_buffer_array_non_uniform_indexing: Bool32::default(),
12074 shader_storage_texel_buffer_array_non_uniform_indexing: Bool32::default(),
12075 descriptor_binding_uniform_buffer_update_after_bind: Bool32::default(),
12076 descriptor_binding_sampled_image_update_after_bind: Bool32::default(),
12077 descriptor_binding_storage_image_update_after_bind: Bool32::default(),
12078 descriptor_binding_storage_buffer_update_after_bind: Bool32::default(),
12079 descriptor_binding_uniform_texel_buffer_update_after_bind: Bool32::default(),
12080 descriptor_binding_storage_texel_buffer_update_after_bind: Bool32::default(),
12081 descriptor_binding_update_unused_while_pending: Bool32::default(),
12082 descriptor_binding_partially_bound: Bool32::default(),
12083 descriptor_binding_variable_descriptor_count: Bool32::default(),
12084 runtime_descriptor_array: Bool32::default(),
12085 }
12086 }
12087}
12088
12089#[repr(C)]
12091#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12092pub struct PhysicalDeviceDescriptorIndexingProperties {
12093 pub s_type: StructureType,
12094 pub next: *mut c_void,
12095 pub max_update_after_bind_descriptors_in_all_pools: u32,
12096 pub shader_uniform_buffer_array_non_uniform_indexing_native: Bool32,
12097 pub shader_sampled_image_array_non_uniform_indexing_native: Bool32,
12098 pub shader_storage_buffer_array_non_uniform_indexing_native: Bool32,
12099 pub shader_storage_image_array_non_uniform_indexing_native: Bool32,
12100 pub shader_input_attachment_array_non_uniform_indexing_native: Bool32,
12101 pub robust_buffer_access_update_after_bind: Bool32,
12102 pub quad_divergent_implicit_lod: Bool32,
12103 pub max_per_stage_descriptor_update_after_bind_samplers: u32,
12104 pub max_per_stage_descriptor_update_after_bind_uniform_buffers: u32,
12105 pub max_per_stage_descriptor_update_after_bind_storage_buffers: u32,
12106 pub max_per_stage_descriptor_update_after_bind_sampled_images: u32,
12107 pub max_per_stage_descriptor_update_after_bind_storage_images: u32,
12108 pub max_per_stage_descriptor_update_after_bind_input_attachments: u32,
12109 pub max_per_stage_update_after_bind_resources: u32,
12110 pub max_descriptor_set_update_after_bind_samplers: u32,
12111 pub max_descriptor_set_update_after_bind_uniform_buffers: u32,
12112 pub max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32,
12113 pub max_descriptor_set_update_after_bind_storage_buffers: u32,
12114 pub max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32,
12115 pub max_descriptor_set_update_after_bind_sampled_images: u32,
12116 pub max_descriptor_set_update_after_bind_storage_images: u32,
12117 pub max_descriptor_set_update_after_bind_input_attachments: u32,
12118}
12119
12120impl Default for PhysicalDeviceDescriptorIndexingProperties {
12121 #[inline]
12122 fn default() -> Self {
12123 Self {
12124 s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
12125 next: ptr::null_mut(),
12126 max_update_after_bind_descriptors_in_all_pools: u32::default(),
12127 shader_uniform_buffer_array_non_uniform_indexing_native: Bool32::default(),
12128 shader_sampled_image_array_non_uniform_indexing_native: Bool32::default(),
12129 shader_storage_buffer_array_non_uniform_indexing_native: Bool32::default(),
12130 shader_storage_image_array_non_uniform_indexing_native: Bool32::default(),
12131 shader_input_attachment_array_non_uniform_indexing_native: Bool32::default(),
12132 robust_buffer_access_update_after_bind: Bool32::default(),
12133 quad_divergent_implicit_lod: Bool32::default(),
12134 max_per_stage_descriptor_update_after_bind_samplers: u32::default(),
12135 max_per_stage_descriptor_update_after_bind_uniform_buffers: u32::default(),
12136 max_per_stage_descriptor_update_after_bind_storage_buffers: u32::default(),
12137 max_per_stage_descriptor_update_after_bind_sampled_images: u32::default(),
12138 max_per_stage_descriptor_update_after_bind_storage_images: u32::default(),
12139 max_per_stage_descriptor_update_after_bind_input_attachments: u32::default(),
12140 max_per_stage_update_after_bind_resources: u32::default(),
12141 max_descriptor_set_update_after_bind_samplers: u32::default(),
12142 max_descriptor_set_update_after_bind_uniform_buffers: u32::default(),
12143 max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32::default(),
12144 max_descriptor_set_update_after_bind_storage_buffers: u32::default(),
12145 max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32::default(),
12146 max_descriptor_set_update_after_bind_sampled_images: u32::default(),
12147 max_descriptor_set_update_after_bind_storage_images: u32::default(),
12148 max_descriptor_set_update_after_bind_input_attachments: u32::default(),
12149 }
12150 }
12151}
12152
12153#[repr(C)]
12155#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12156pub struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
12157 pub s_type: StructureType,
12158 pub next: *mut c_void,
12159 pub descriptor_pool_overallocation: Bool32,
12160}
12161
12162impl Default for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
12163 #[inline]
12164 fn default() -> Self {
12165 Self {
12166 s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV,
12167 next: ptr::null_mut(),
12168 descriptor_pool_overallocation: Bool32::default(),
12169 }
12170 }
12171}
12172
12173#[repr(C)]
12175#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12176pub struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
12177 pub s_type: StructureType,
12178 pub next: *mut c_void,
12179 pub descriptor_set_host_mapping: Bool32,
12180}
12181
12182impl Default for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
12183 #[inline]
12184 fn default() -> Self {
12185 Self {
12186 s_type: StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE,
12187 next: ptr::null_mut(),
12188 descriptor_set_host_mapping: Bool32::default(),
12189 }
12190 }
12191}
12192
12193#[repr(C)]
12195#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12196pub struct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
12197 pub s_type: StructureType,
12198 pub next: *mut c_void,
12199 pub device_generated_compute: Bool32,
12200 pub device_generated_compute_pipelines: Bool32,
12201 pub device_generated_compute_capture_replay: Bool32,
12202}
12203
12204impl Default for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
12205 #[inline]
12206 fn default() -> Self {
12207 Self {
12208 s_type: StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV,
12209 next: ptr::null_mut(),
12210 device_generated_compute: Bool32::default(),
12211 device_generated_compute_pipelines: Bool32::default(),
12212 device_generated_compute_capture_replay: Bool32::default(),
12213 }
12214 }
12215}
12216
12217#[repr(C)]
12219#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12220pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
12221 pub s_type: StructureType,
12222 pub next: *mut c_void,
12223 pub device_generated_commands: Bool32,
12224 pub dynamic_generated_pipeline_layout: Bool32,
12225}
12226
12227impl Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
12228 #[inline]
12229 fn default() -> Self {
12230 Self {
12231 s_type: StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT,
12232 next: ptr::null_mut(),
12233 device_generated_commands: Bool32::default(),
12234 dynamic_generated_pipeline_layout: Bool32::default(),
12235 }
12236 }
12237}
12238
12239#[repr(C)]
12241#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12242pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
12243 pub s_type: StructureType,
12244 pub next: *mut c_void,
12245 pub device_generated_commands: Bool32,
12246}
12247
12248impl Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
12249 #[inline]
12250 fn default() -> Self {
12251 Self {
12252 s_type: StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
12253 next: ptr::null_mut(),
12254 device_generated_commands: Bool32::default(),
12255 }
12256 }
12257}
12258
12259#[repr(C)]
12261#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12262pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
12263 pub s_type: StructureType,
12264 pub next: *mut c_void,
12265 pub max_indirect_pipeline_count: u32,
12266 pub max_indirect_shader_object_count: u32,
12267 pub max_indirect_sequence_count: u32,
12268 pub max_indirect_commands_token_count: u32,
12269 pub max_indirect_commands_token_offset: u32,
12270 pub max_indirect_commands_indirect_stride: u32,
12271 pub supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT,
12272 pub supported_indirect_commands_shader_stages: ShaderStageFlags,
12273 pub supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags,
12274 pub supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags,
12275 pub device_generated_commands_transform_feedback: Bool32,
12276 pub device_generated_commands_multi_draw_indirect_count: Bool32,
12277}
12278
12279impl Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
12280 #[inline]
12281 fn default() -> Self {
12282 Self {
12283 s_type: StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT,
12284 next: ptr::null_mut(),
12285 max_indirect_pipeline_count: u32::default(),
12286 max_indirect_shader_object_count: u32::default(),
12287 max_indirect_sequence_count: u32::default(),
12288 max_indirect_commands_token_count: u32::default(),
12289 max_indirect_commands_token_offset: u32::default(),
12290 max_indirect_commands_indirect_stride: u32::default(),
12291 supported_indirect_commands_input_modes: IndirectCommandsInputModeFlagsEXT::default(),
12292 supported_indirect_commands_shader_stages: ShaderStageFlags::default(),
12293 supported_indirect_commands_shader_stages_pipeline_binding: ShaderStageFlags::default(),
12294 supported_indirect_commands_shader_stages_shader_binding: ShaderStageFlags::default(),
12295 device_generated_commands_transform_feedback: Bool32::default(),
12296 device_generated_commands_multi_draw_indirect_count: Bool32::default(),
12297 }
12298 }
12299}
12300
12301#[repr(C)]
12303#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12304pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
12305 pub s_type: StructureType,
12306 pub next: *mut c_void,
12307 pub max_graphics_shader_group_count: u32,
12308 pub max_indirect_sequence_count: u32,
12309 pub max_indirect_commands_token_count: u32,
12310 pub max_indirect_commands_stream_count: u32,
12311 pub max_indirect_commands_token_offset: u32,
12312 pub max_indirect_commands_stream_stride: u32,
12313 pub min_sequences_count_buffer_offset_alignment: u32,
12314 pub min_sequences_index_buffer_offset_alignment: u32,
12315 pub min_indirect_commands_buffer_offset_alignment: u32,
12316}
12317
12318impl Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
12319 #[inline]
12320 fn default() -> Self {
12321 Self {
12322 s_type: StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
12323 next: ptr::null_mut(),
12324 max_graphics_shader_group_count: u32::default(),
12325 max_indirect_sequence_count: u32::default(),
12326 max_indirect_commands_token_count: u32::default(),
12327 max_indirect_commands_stream_count: u32::default(),
12328 max_indirect_commands_token_offset: u32::default(),
12329 max_indirect_commands_stream_stride: u32::default(),
12330 min_sequences_count_buffer_offset_alignment: u32::default(),
12331 min_sequences_index_buffer_offset_alignment: u32::default(),
12332 min_indirect_commands_buffer_offset_alignment: u32::default(),
12333 }
12334 }
12335}
12336
12337#[repr(C)]
12339#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12340pub struct PhysicalDeviceDeviceMemoryReportFeaturesEXT {
12341 pub s_type: StructureType,
12342 pub next: *mut c_void,
12343 pub device_memory_report: Bool32,
12344}
12345
12346impl Default for PhysicalDeviceDeviceMemoryReportFeaturesEXT {
12347 #[inline]
12348 fn default() -> Self {
12349 Self {
12350 s_type: StructureType::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
12351 next: ptr::null_mut(),
12352 device_memory_report: Bool32::default(),
12353 }
12354 }
12355}
12356
12357#[repr(C)]
12359#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12360pub struct PhysicalDeviceDiagnosticsConfigFeaturesNV {
12361 pub s_type: StructureType,
12362 pub next: *mut c_void,
12363 pub diagnostics_config: Bool32,
12364}
12365
12366impl Default for PhysicalDeviceDiagnosticsConfigFeaturesNV {
12367 #[inline]
12368 fn default() -> Self {
12369 Self {
12370 s_type: StructureType::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
12371 next: ptr::null_mut(),
12372 diagnostics_config: Bool32::default(),
12373 }
12374 }
12375}
12376
12377#[repr(C)]
12379#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12380pub struct PhysicalDeviceDiscardRectanglePropertiesEXT {
12381 pub s_type: StructureType,
12382 pub next: *mut c_void,
12383 pub max_discard_rectangles: u32,
12384}
12385
12386impl Default for PhysicalDeviceDiscardRectanglePropertiesEXT {
12387 #[inline]
12388 fn default() -> Self {
12389 Self {
12390 s_type: StructureType::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
12391 next: ptr::null_mut(),
12392 max_discard_rectangles: u32::default(),
12393 }
12394 }
12395}
12396
12397#[repr(C)]
12399#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12400pub struct PhysicalDeviceDisplacementMicromapFeaturesNV {
12401 pub s_type: StructureType,
12402 pub next: *mut c_void,
12403 pub displacement_micromap: Bool32,
12404}
12405
12406impl Default for PhysicalDeviceDisplacementMicromapFeaturesNV {
12407 #[inline]
12408 fn default() -> Self {
12409 Self {
12410 s_type: StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV,
12411 next: ptr::null_mut(),
12412 displacement_micromap: Bool32::default(),
12413 }
12414 }
12415}
12416
12417#[repr(C)]
12419#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12420pub struct PhysicalDeviceDisplacementMicromapPropertiesNV {
12421 pub s_type: StructureType,
12422 pub next: *mut c_void,
12423 pub max_displacement_micromap_subdivision_level: u32,
12424}
12425
12426impl Default for PhysicalDeviceDisplacementMicromapPropertiesNV {
12427 #[inline]
12428 fn default() -> Self {
12429 Self {
12430 s_type: StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV,
12431 next: ptr::null_mut(),
12432 max_displacement_micromap_subdivision_level: u32::default(),
12433 }
12434 }
12435}
12436
12437#[repr(C)]
12439#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12440pub struct PhysicalDeviceDriverProperties {
12441 pub s_type: StructureType,
12442 pub next: *mut c_void,
12443 pub driver_id: DriverId,
12444 pub driver_name: StringArray<MAX_DRIVER_NAME_SIZE>,
12445 pub driver_info: StringArray<MAX_DRIVER_INFO_SIZE>,
12446 pub conformance_version: ConformanceVersion,
12447}
12448
12449impl Default for PhysicalDeviceDriverProperties {
12450 #[inline]
12451 fn default() -> Self {
12452 Self {
12453 s_type: StructureType::PHYSICAL_DEVICE_DRIVER_PROPERTIES,
12454 next: ptr::null_mut(),
12455 driver_id: DriverId::default(),
12456 driver_name: StringArray::default(),
12457 driver_info: StringArray::default(),
12458 conformance_version: ConformanceVersion::default(),
12459 }
12460 }
12461}
12462
12463#[repr(C)]
12465#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12466pub struct PhysicalDeviceDrmPropertiesEXT {
12467 pub s_type: StructureType,
12468 pub next: *mut c_void,
12469 pub has_primary: Bool32,
12470 pub has_render: Bool32,
12471 pub primary_major: i64,
12472 pub primary_minor: i64,
12473 pub render_major: i64,
12474 pub render_minor: i64,
12475}
12476
12477impl Default for PhysicalDeviceDrmPropertiesEXT {
12478 #[inline]
12479 fn default() -> Self {
12480 Self {
12481 s_type: StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
12482 next: ptr::null_mut(),
12483 has_primary: Bool32::default(),
12484 has_render: Bool32::default(),
12485 primary_major: i64::default(),
12486 primary_minor: i64::default(),
12487 render_major: i64::default(),
12488 render_minor: i64::default(),
12489 }
12490 }
12491}
12492
12493#[repr(C)]
12495#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12496pub struct PhysicalDeviceDynamicRenderingFeatures {
12497 pub s_type: StructureType,
12498 pub next: *mut c_void,
12499 pub dynamic_rendering: Bool32,
12500}
12501
12502impl Default for PhysicalDeviceDynamicRenderingFeatures {
12503 #[inline]
12504 fn default() -> Self {
12505 Self {
12506 s_type: StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
12507 next: ptr::null_mut(),
12508 dynamic_rendering: Bool32::default(),
12509 }
12510 }
12511}
12512
12513#[repr(C)]
12515#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12516pub struct PhysicalDeviceDynamicRenderingLocalReadFeatures {
12517 pub s_type: StructureType,
12518 pub next: *mut c_void,
12519 pub dynamic_rendering_local_read: Bool32,
12520}
12521
12522impl Default for PhysicalDeviceDynamicRenderingLocalReadFeatures {
12523 #[inline]
12524 fn default() -> Self {
12525 Self {
12526 s_type: StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
12527 next: ptr::null_mut(),
12528 dynamic_rendering_local_read: Bool32::default(),
12529 }
12530 }
12531}
12532
12533#[repr(C)]
12535#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12536pub struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
12537 pub s_type: StructureType,
12538 pub next: *mut c_void,
12539 pub dynamic_rendering_unused_attachments: Bool32,
12540}
12541
12542impl Default for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
12543 #[inline]
12544 fn default() -> Self {
12545 Self {
12546 s_type:
12547 StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT,
12548 next: ptr::null_mut(),
12549 dynamic_rendering_unused_attachments: Bool32::default(),
12550 }
12551 }
12552}
12553
12554#[repr(C)]
12556#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12557pub struct PhysicalDeviceExclusiveScissorFeaturesNV {
12558 pub s_type: StructureType,
12559 pub next: *mut c_void,
12560 pub exclusive_scissor: Bool32,
12561}
12562
12563impl Default for PhysicalDeviceExclusiveScissorFeaturesNV {
12564 #[inline]
12565 fn default() -> Self {
12566 Self {
12567 s_type: StructureType::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
12568 next: ptr::null_mut(),
12569 exclusive_scissor: Bool32::default(),
12570 }
12571 }
12572}
12573
12574#[repr(C)]
12576#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12577pub struct PhysicalDeviceExtendedDynamicState2FeaturesEXT {
12578 pub s_type: StructureType,
12579 pub next: *mut c_void,
12580 pub extended_dynamic_state2: Bool32,
12581 pub extended_dynamic_state2_logic_op: Bool32,
12582 pub extended_dynamic_state2_patch_control_points: Bool32,
12583}
12584
12585impl Default for PhysicalDeviceExtendedDynamicState2FeaturesEXT {
12586 #[inline]
12587 fn default() -> Self {
12588 Self {
12589 s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
12590 next: ptr::null_mut(),
12591 extended_dynamic_state2: Bool32::default(),
12592 extended_dynamic_state2_logic_op: Bool32::default(),
12593 extended_dynamic_state2_patch_control_points: Bool32::default(),
12594 }
12595 }
12596}
12597
12598#[repr(C)]
12600#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12601pub struct PhysicalDeviceExtendedDynamicState3FeaturesEXT {
12602 pub s_type: StructureType,
12603 pub next: *mut c_void,
12604 pub extended_dynamic_state3_tessellation_domain_origin: Bool32,
12605 pub extended_dynamic_state_3depth_clamp_enable: Bool32,
12606 pub extended_dynamic_state3_polygon_mode: Bool32,
12607 pub extended_dynamic_state3_rasterization_samples: Bool32,
12608 pub extended_dynamic_state3_sample_mask: Bool32,
12609 pub extended_dynamic_state3_alpha_to_coverage_enable: Bool32,
12610 pub extended_dynamic_state3_alpha_to_one_enable: Bool32,
12611 pub extended_dynamic_state3_logic_op_enable: Bool32,
12612 pub extended_dynamic_state3_color_blend_enable: Bool32,
12613 pub extended_dynamic_state3_color_blend_equation: Bool32,
12614 pub extended_dynamic_state3_color_write_mask: Bool32,
12615 pub extended_dynamic_state3_rasterization_stream: Bool32,
12616 pub extended_dynamic_state3_conservative_rasterization_mode: Bool32,
12617 pub extended_dynamic_state3_extra_primitive_overestimation_size: Bool32,
12618 pub extended_dynamic_state_3depth_clip_enable: Bool32,
12619 pub extended_dynamic_state3_sample_locations_enable: Bool32,
12620 pub extended_dynamic_state3_color_blend_advanced: Bool32,
12621 pub extended_dynamic_state3_provoking_vertex_mode: Bool32,
12622 pub extended_dynamic_state3_line_rasterization_mode: Bool32,
12623 pub extended_dynamic_state3_line_stipple_enable: Bool32,
12624 pub extended_dynamic_state_3depth_clip_negative_one_to_one: Bool32,
12625 pub extended_dynamic_state3_viewport_w_scaling_enable: Bool32,
12626 pub extended_dynamic_state3_viewport_swizzle: Bool32,
12627 pub extended_dynamic_state3_coverage_to_color_enable: Bool32,
12628 pub extended_dynamic_state3_coverage_to_color_location: Bool32,
12629 pub extended_dynamic_state3_coverage_modulation_mode: Bool32,
12630 pub extended_dynamic_state3_coverage_modulation_table_enable: Bool32,
12631 pub extended_dynamic_state3_coverage_modulation_table: Bool32,
12632 pub extended_dynamic_state3_coverage_reduction_mode: Bool32,
12633 pub extended_dynamic_state3_representative_fragment_test_enable: Bool32,
12634 pub extended_dynamic_state3_shading_rate_image_enable: Bool32,
12635}
12636
12637impl Default for PhysicalDeviceExtendedDynamicState3FeaturesEXT {
12638 #[inline]
12639 fn default() -> Self {
12640 Self {
12641 s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT,
12642 next: ptr::null_mut(),
12643 extended_dynamic_state3_tessellation_domain_origin: Bool32::default(),
12644 extended_dynamic_state_3depth_clamp_enable: Bool32::default(),
12645 extended_dynamic_state3_polygon_mode: Bool32::default(),
12646 extended_dynamic_state3_rasterization_samples: Bool32::default(),
12647 extended_dynamic_state3_sample_mask: Bool32::default(),
12648 extended_dynamic_state3_alpha_to_coverage_enable: Bool32::default(),
12649 extended_dynamic_state3_alpha_to_one_enable: Bool32::default(),
12650 extended_dynamic_state3_logic_op_enable: Bool32::default(),
12651 extended_dynamic_state3_color_blend_enable: Bool32::default(),
12652 extended_dynamic_state3_color_blend_equation: Bool32::default(),
12653 extended_dynamic_state3_color_write_mask: Bool32::default(),
12654 extended_dynamic_state3_rasterization_stream: Bool32::default(),
12655 extended_dynamic_state3_conservative_rasterization_mode: Bool32::default(),
12656 extended_dynamic_state3_extra_primitive_overestimation_size: Bool32::default(),
12657 extended_dynamic_state_3depth_clip_enable: Bool32::default(),
12658 extended_dynamic_state3_sample_locations_enable: Bool32::default(),
12659 extended_dynamic_state3_color_blend_advanced: Bool32::default(),
12660 extended_dynamic_state3_provoking_vertex_mode: Bool32::default(),
12661 extended_dynamic_state3_line_rasterization_mode: Bool32::default(),
12662 extended_dynamic_state3_line_stipple_enable: Bool32::default(),
12663 extended_dynamic_state_3depth_clip_negative_one_to_one: Bool32::default(),
12664 extended_dynamic_state3_viewport_w_scaling_enable: Bool32::default(),
12665 extended_dynamic_state3_viewport_swizzle: Bool32::default(),
12666 extended_dynamic_state3_coverage_to_color_enable: Bool32::default(),
12667 extended_dynamic_state3_coverage_to_color_location: Bool32::default(),
12668 extended_dynamic_state3_coverage_modulation_mode: Bool32::default(),
12669 extended_dynamic_state3_coverage_modulation_table_enable: Bool32::default(),
12670 extended_dynamic_state3_coverage_modulation_table: Bool32::default(),
12671 extended_dynamic_state3_coverage_reduction_mode: Bool32::default(),
12672 extended_dynamic_state3_representative_fragment_test_enable: Bool32::default(),
12673 extended_dynamic_state3_shading_rate_image_enable: Bool32::default(),
12674 }
12675 }
12676}
12677
12678#[repr(C)]
12680#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12681pub struct PhysicalDeviceExtendedDynamicState3PropertiesEXT {
12682 pub s_type: StructureType,
12683 pub next: *mut c_void,
12684 pub dynamic_primitive_topology_unrestricted: Bool32,
12685}
12686
12687impl Default for PhysicalDeviceExtendedDynamicState3PropertiesEXT {
12688 #[inline]
12689 fn default() -> Self {
12690 Self {
12691 s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT,
12692 next: ptr::null_mut(),
12693 dynamic_primitive_topology_unrestricted: Bool32::default(),
12694 }
12695 }
12696}
12697
12698#[repr(C)]
12700#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12701pub struct PhysicalDeviceExtendedDynamicStateFeaturesEXT {
12702 pub s_type: StructureType,
12703 pub next: *mut c_void,
12704 pub extended_dynamic_state: Bool32,
12705}
12706
12707impl Default for PhysicalDeviceExtendedDynamicStateFeaturesEXT {
12708 #[inline]
12709 fn default() -> Self {
12710 Self {
12711 s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
12712 next: ptr::null_mut(),
12713 extended_dynamic_state: Bool32::default(),
12714 }
12715 }
12716}
12717
12718#[repr(C)]
12720#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12721pub struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
12722 pub s_type: StructureType,
12723 pub next: *mut c_void,
12724 pub extended_sparse_address_space: Bool32,
12725}
12726
12727impl Default for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
12728 #[inline]
12729 fn default() -> Self {
12730 Self {
12731 s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV,
12732 next: ptr::null_mut(),
12733 extended_sparse_address_space: Bool32::default(),
12734 }
12735 }
12736}
12737
12738#[repr(C)]
12740#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12741pub struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
12742 pub s_type: StructureType,
12743 pub next: *mut c_void,
12744 pub extended_sparse_address_space_size: DeviceSize,
12745 pub extended_sparse_image_usage_flags: ImageUsageFlags,
12746 pub extended_sparse_buffer_usage_flags: BufferUsageFlags,
12747}
12748
12749impl Default for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
12750 #[inline]
12751 fn default() -> Self {
12752 Self {
12753 s_type: StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV,
12754 next: ptr::null_mut(),
12755 extended_sparse_address_space_size: DeviceSize::default(),
12756 extended_sparse_image_usage_flags: ImageUsageFlags::default(),
12757 extended_sparse_buffer_usage_flags: BufferUsageFlags::default(),
12758 }
12759 }
12760}
12761
12762#[repr(C)]
12764#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12765pub struct PhysicalDeviceExternalBufferInfo {
12766 pub s_type: StructureType,
12767 pub next: *const c_void,
12768 pub flags: BufferCreateFlags,
12769 pub usage: BufferUsageFlags,
12770 pub handle_type: ExternalMemoryHandleTypeFlags,
12771}
12772
12773impl Default for PhysicalDeviceExternalBufferInfo {
12774 #[inline]
12775 fn default() -> Self {
12776 Self {
12777 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
12778 next: ptr::null(),
12779 flags: BufferCreateFlags::default(),
12780 usage: BufferUsageFlags::default(),
12781 handle_type: ExternalMemoryHandleTypeFlags::default(),
12782 }
12783 }
12784}
12785
12786#[repr(C)]
12788#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12789pub struct PhysicalDeviceExternalFenceInfo {
12790 pub s_type: StructureType,
12791 pub next: *const c_void,
12792 pub handle_type: ExternalFenceHandleTypeFlags,
12793}
12794
12795impl Default for PhysicalDeviceExternalFenceInfo {
12796 #[inline]
12797 fn default() -> Self {
12798 Self {
12799 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
12800 next: ptr::null(),
12801 handle_type: ExternalFenceHandleTypeFlags::default(),
12802 }
12803 }
12804}
12805
12806#[repr(C)]
12808#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12809pub struct PhysicalDeviceExternalFormatResolveFeaturesANDROID {
12810 pub s_type: StructureType,
12811 pub next: *mut c_void,
12812 pub external_format_resolve: Bool32,
12813}
12814
12815impl Default for PhysicalDeviceExternalFormatResolveFeaturesANDROID {
12816 #[inline]
12817 fn default() -> Self {
12818 Self {
12819 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID,
12820 next: ptr::null_mut(),
12821 external_format_resolve: Bool32::default(),
12822 }
12823 }
12824}
12825
12826#[repr(C)]
12828#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12829pub struct PhysicalDeviceExternalFormatResolvePropertiesANDROID {
12830 pub s_type: StructureType,
12831 pub next: *mut c_void,
12832 pub null_color_attachment_with_external_format_resolve: Bool32,
12833 pub external_format_resolve_chroma_offset_x: ChromaLocation,
12834 pub external_format_resolve_chroma_offset_y: ChromaLocation,
12835}
12836
12837impl Default for PhysicalDeviceExternalFormatResolvePropertiesANDROID {
12838 #[inline]
12839 fn default() -> Self {
12840 Self {
12841 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID,
12842 next: ptr::null_mut(),
12843 null_color_attachment_with_external_format_resolve: Bool32::default(),
12844 external_format_resolve_chroma_offset_x: ChromaLocation::default(),
12845 external_format_resolve_chroma_offset_y: ChromaLocation::default(),
12846 }
12847 }
12848}
12849
12850#[repr(C)]
12852#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12853pub struct PhysicalDeviceExternalImageFormatInfo {
12854 pub s_type: StructureType,
12855 pub next: *const c_void,
12856 pub handle_type: ExternalMemoryHandleTypeFlags,
12857}
12858
12859impl Default for PhysicalDeviceExternalImageFormatInfo {
12860 #[inline]
12861 fn default() -> Self {
12862 Self {
12863 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
12864 next: ptr::null(),
12865 handle_type: ExternalMemoryHandleTypeFlags::default(),
12866 }
12867 }
12868}
12869
12870#[repr(C)]
12872#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12873pub struct PhysicalDeviceExternalMemoryHostPropertiesEXT {
12874 pub s_type: StructureType,
12875 pub next: *mut c_void,
12876 pub min_imported_host_pointer_alignment: DeviceSize,
12877}
12878
12879impl Default for PhysicalDeviceExternalMemoryHostPropertiesEXT {
12880 #[inline]
12881 fn default() -> Self {
12882 Self {
12883 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
12884 next: ptr::null_mut(),
12885 min_imported_host_pointer_alignment: DeviceSize::default(),
12886 }
12887 }
12888}
12889
12890#[repr(C)]
12892#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12893pub struct PhysicalDeviceExternalMemoryRDMAFeaturesNV {
12894 pub s_type: StructureType,
12895 pub next: *mut c_void,
12896 pub external_memory_rdma: Bool32,
12897}
12898
12899impl Default for PhysicalDeviceExternalMemoryRDMAFeaturesNV {
12900 #[inline]
12901 fn default() -> Self {
12902 Self {
12903 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
12904 next: ptr::null_mut(),
12905 external_memory_rdma: Bool32::default(),
12906 }
12907 }
12908}
12909
12910#[repr(C)]
12912#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12913pub struct PhysicalDeviceExternalMemorySciBufFeaturesNV {
12914 pub s_type: StructureType,
12915 pub next: *mut c_void,
12916 pub sci_buf_import: Bool32,
12917 pub sci_buf_export: Bool32,
12918}
12919
12920impl Default for PhysicalDeviceExternalMemorySciBufFeaturesNV {
12921 #[inline]
12922 fn default() -> Self {
12923 Self {
12924 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV,
12925 next: ptr::null_mut(),
12926 sci_buf_import: Bool32::default(),
12927 sci_buf_export: Bool32::default(),
12928 }
12929 }
12930}
12931
12932#[repr(C)]
12934#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12935pub struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
12936 pub s_type: StructureType,
12937 pub next: *mut c_void,
12938 pub screen_buffer_import: Bool32,
12939}
12940
12941impl Default for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
12942 #[inline]
12943 fn default() -> Self {
12944 Self {
12945 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX,
12946 next: ptr::null_mut(),
12947 screen_buffer_import: Bool32::default(),
12948 }
12949 }
12950}
12951
12952#[repr(C)]
12954#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12955pub struct PhysicalDeviceExternalSciSync2FeaturesNV {
12956 pub s_type: StructureType,
12957 pub next: *mut c_void,
12958 pub sci_sync_fence: Bool32,
12959 pub sci_sync_semaphore2: Bool32,
12960 pub sci_sync_import: Bool32,
12961 pub sci_sync_export: Bool32,
12962}
12963
12964impl Default for PhysicalDeviceExternalSciSync2FeaturesNV {
12965 #[inline]
12966 fn default() -> Self {
12967 Self {
12968 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV,
12969 next: ptr::null_mut(),
12970 sci_sync_fence: Bool32::default(),
12971 sci_sync_semaphore2: Bool32::default(),
12972 sci_sync_import: Bool32::default(),
12973 sci_sync_export: Bool32::default(),
12974 }
12975 }
12976}
12977
12978#[repr(C)]
12980#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
12981pub struct PhysicalDeviceExternalSciSyncFeaturesNV {
12982 pub s_type: StructureType,
12983 pub next: *mut c_void,
12984 pub sci_sync_fence: Bool32,
12985 pub sci_sync_semaphore: Bool32,
12986 pub sci_sync_import: Bool32,
12987 pub sci_sync_export: Bool32,
12988}
12989
12990impl Default for PhysicalDeviceExternalSciSyncFeaturesNV {
12991 #[inline]
12992 fn default() -> Self {
12993 Self {
12994 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV,
12995 next: ptr::null_mut(),
12996 sci_sync_fence: Bool32::default(),
12997 sci_sync_semaphore: Bool32::default(),
12998 sci_sync_import: Bool32::default(),
12999 sci_sync_export: Bool32::default(),
13000 }
13001 }
13002}
13003
13004#[repr(C)]
13006#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13007pub struct PhysicalDeviceExternalSemaphoreInfo {
13008 pub s_type: StructureType,
13009 pub next: *const c_void,
13010 pub handle_type: ExternalSemaphoreHandleTypeFlags,
13011}
13012
13013impl Default for PhysicalDeviceExternalSemaphoreInfo {
13014 #[inline]
13015 fn default() -> Self {
13016 Self {
13017 s_type: StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
13018 next: ptr::null(),
13019 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
13020 }
13021 }
13022}
13023
13024#[repr(C)]
13026#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13027pub struct PhysicalDeviceFaultFeaturesEXT {
13028 pub s_type: StructureType,
13029 pub next: *mut c_void,
13030 pub device_fault: Bool32,
13031 pub device_fault_vendor_binary: Bool32,
13032}
13033
13034impl Default for PhysicalDeviceFaultFeaturesEXT {
13035 #[inline]
13036 fn default() -> Self {
13037 Self {
13038 s_type: StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT,
13039 next: ptr::null_mut(),
13040 device_fault: Bool32::default(),
13041 device_fault_vendor_binary: Bool32::default(),
13042 }
13043 }
13044}
13045
13046#[repr(C)]
13048#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
13049pub struct PhysicalDeviceFeatures {
13050 pub robust_buffer_access: Bool32,
13051 pub full_draw_index_uint32: Bool32,
13052 pub image_cube_array: Bool32,
13053 pub independent_blend: Bool32,
13054 pub geometry_shader: Bool32,
13055 pub tessellation_shader: Bool32,
13056 pub sample_rate_shading: Bool32,
13057 pub dual_src_blend: Bool32,
13058 pub logic_op: Bool32,
13059 pub multi_draw_indirect: Bool32,
13060 pub draw_indirect_first_instance: Bool32,
13061 pub depth_clamp: Bool32,
13062 pub depth_bias_clamp: Bool32,
13063 pub fill_mode_non_solid: Bool32,
13064 pub depth_bounds: Bool32,
13065 pub wide_lines: Bool32,
13066 pub large_points: Bool32,
13067 pub alpha_to_one: Bool32,
13068 pub multi_viewport: Bool32,
13069 pub sampler_anisotropy: Bool32,
13070 pub texture_compression_etc2: Bool32,
13071 pub texture_compression_astc_ldr: Bool32,
13072 pub texture_compression_bc: Bool32,
13073 pub occlusion_query_precise: Bool32,
13074 pub pipeline_statistics_query: Bool32,
13075 pub vertex_pipeline_stores_and_atomics: Bool32,
13076 pub fragment_stores_and_atomics: Bool32,
13077 pub shader_tessellation_and_geometry_point_size: Bool32,
13078 pub shader_image_gather_extended: Bool32,
13079 pub shader_storage_image_extended_formats: Bool32,
13080 pub shader_storage_image_multisample: Bool32,
13081 pub shader_storage_image_read_without_format: Bool32,
13082 pub shader_storage_image_write_without_format: Bool32,
13083 pub shader_uniform_buffer_array_dynamic_indexing: Bool32,
13084 pub shader_sampled_image_array_dynamic_indexing: Bool32,
13085 pub shader_storage_buffer_array_dynamic_indexing: Bool32,
13086 pub shader_storage_image_array_dynamic_indexing: Bool32,
13087 pub shader_clip_distance: Bool32,
13088 pub shader_cull_distance: Bool32,
13089 pub shader_float64: Bool32,
13090 pub shader_int64: Bool32,
13091 pub shader_int16: Bool32,
13092 pub shader_resource_residency: Bool32,
13093 pub shader_resource_min_lod: Bool32,
13094 pub sparse_binding: Bool32,
13095 pub sparse_residency_buffer: Bool32,
13096 pub sparse_residency_image_2d: Bool32,
13097 pub sparse_residency_image_3d: Bool32,
13098 pub sparse_residency2_samples: Bool32,
13099 pub sparse_residency4_samples: Bool32,
13100 pub sparse_residency8_samples: Bool32,
13101 pub sparse_residency16_samples: Bool32,
13102 pub sparse_residency_aliased: Bool32,
13103 pub variable_multisample_rate: Bool32,
13104 pub inherited_queries: Bool32,
13105}
13106
13107#[repr(C)]
13109#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13110pub struct PhysicalDeviceFeatures2 {
13111 pub s_type: StructureType,
13112 pub next: *mut c_void,
13113 pub features: PhysicalDeviceFeatures,
13114}
13115
13116impl Default for PhysicalDeviceFeatures2 {
13117 #[inline]
13118 fn default() -> Self {
13119 Self {
13120 s_type: StructureType::PHYSICAL_DEVICE_FEATURES_2,
13121 next: ptr::null_mut(),
13122 features: PhysicalDeviceFeatures::default(),
13123 }
13124 }
13125}
13126
13127#[repr(C)]
13129#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13130pub struct PhysicalDeviceFloatControlsProperties {
13131 pub s_type: StructureType,
13132 pub next: *mut c_void,
13133 pub denorm_behavior_independence: ShaderFloatControlsIndependence,
13134 pub rounding_mode_independence: ShaderFloatControlsIndependence,
13135 pub shader_signed_zero_inf_nan_preserve_float16: Bool32,
13136 pub shader_signed_zero_inf_nan_preserve_float32: Bool32,
13137 pub shader_signed_zero_inf_nan_preserve_float64: Bool32,
13138 pub shader_denorm_preserve_float16: Bool32,
13139 pub shader_denorm_preserve_float32: Bool32,
13140 pub shader_denorm_preserve_float64: Bool32,
13141 pub shader_denorm_flush_to_zero_float16: Bool32,
13142 pub shader_denorm_flush_to_zero_float32: Bool32,
13143 pub shader_denorm_flush_to_zero_float64: Bool32,
13144 pub shader_rounding_mode_rte_float16: Bool32,
13145 pub shader_rounding_mode_rte_float32: Bool32,
13146 pub shader_rounding_mode_rte_float64: Bool32,
13147 pub shader_rounding_mode_rtz_float16: Bool32,
13148 pub shader_rounding_mode_rtz_float32: Bool32,
13149 pub shader_rounding_mode_rtz_float64: Bool32,
13150}
13151
13152impl Default for PhysicalDeviceFloatControlsProperties {
13153 #[inline]
13154 fn default() -> Self {
13155 Self {
13156 s_type: StructureType::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
13157 next: ptr::null_mut(),
13158 denorm_behavior_independence: ShaderFloatControlsIndependence::default(),
13159 rounding_mode_independence: ShaderFloatControlsIndependence::default(),
13160 shader_signed_zero_inf_nan_preserve_float16: Bool32::default(),
13161 shader_signed_zero_inf_nan_preserve_float32: Bool32::default(),
13162 shader_signed_zero_inf_nan_preserve_float64: Bool32::default(),
13163 shader_denorm_preserve_float16: Bool32::default(),
13164 shader_denorm_preserve_float32: Bool32::default(),
13165 shader_denorm_preserve_float64: Bool32::default(),
13166 shader_denorm_flush_to_zero_float16: Bool32::default(),
13167 shader_denorm_flush_to_zero_float32: Bool32::default(),
13168 shader_denorm_flush_to_zero_float64: Bool32::default(),
13169 shader_rounding_mode_rte_float16: Bool32::default(),
13170 shader_rounding_mode_rte_float32: Bool32::default(),
13171 shader_rounding_mode_rte_float64: Bool32::default(),
13172 shader_rounding_mode_rtz_float16: Bool32::default(),
13173 shader_rounding_mode_rtz_float32: Bool32::default(),
13174 shader_rounding_mode_rtz_float64: Bool32::default(),
13175 }
13176 }
13177}
13178
13179#[repr(C)]
13181#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13182pub struct PhysicalDeviceFragmentDensityMap2FeaturesEXT {
13183 pub s_type: StructureType,
13184 pub next: *mut c_void,
13185 pub fragment_density_map_deferred: Bool32,
13186}
13187
13188impl Default for PhysicalDeviceFragmentDensityMap2FeaturesEXT {
13189 #[inline]
13190 fn default() -> Self {
13191 Self {
13192 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
13193 next: ptr::null_mut(),
13194 fragment_density_map_deferred: Bool32::default(),
13195 }
13196 }
13197}
13198
13199#[repr(C)]
13201#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13202pub struct PhysicalDeviceFragmentDensityMap2PropertiesEXT {
13203 pub s_type: StructureType,
13204 pub next: *mut c_void,
13205 pub subsampled_loads: Bool32,
13206 pub subsampled_coarse_reconstruction_early_access: Bool32,
13207 pub max_subsampled_array_layers: u32,
13208 pub max_descriptor_set_subsampled_samplers: u32,
13209}
13210
13211impl Default for PhysicalDeviceFragmentDensityMap2PropertiesEXT {
13212 #[inline]
13213 fn default() -> Self {
13214 Self {
13215 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
13216 next: ptr::null_mut(),
13217 subsampled_loads: Bool32::default(),
13218 subsampled_coarse_reconstruction_early_access: Bool32::default(),
13219 max_subsampled_array_layers: u32::default(),
13220 max_descriptor_set_subsampled_samplers: u32::default(),
13221 }
13222 }
13223}
13224
13225#[repr(C)]
13227#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13228pub struct PhysicalDeviceFragmentDensityMapFeaturesEXT {
13229 pub s_type: StructureType,
13230 pub next: *mut c_void,
13231 pub fragment_density_map: Bool32,
13232 pub fragment_density_map_dynamic: Bool32,
13233 pub fragment_density_map_non_subsampled_images: Bool32,
13234}
13235
13236impl Default for PhysicalDeviceFragmentDensityMapFeaturesEXT {
13237 #[inline]
13238 fn default() -> Self {
13239 Self {
13240 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
13241 next: ptr::null_mut(),
13242 fragment_density_map: Bool32::default(),
13243 fragment_density_map_dynamic: Bool32::default(),
13244 fragment_density_map_non_subsampled_images: Bool32::default(),
13245 }
13246 }
13247}
13248
13249#[repr(C)]
13251#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13252pub struct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
13253 pub s_type: StructureType,
13254 pub next: *mut c_void,
13255 pub fragment_density_map_offset: Bool32,
13256}
13257
13258impl Default for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
13259 #[inline]
13260 fn default() -> Self {
13261 Self {
13262 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM,
13263 next: ptr::null_mut(),
13264 fragment_density_map_offset: Bool32::default(),
13265 }
13266 }
13267}
13268
13269#[repr(C)]
13271#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13272pub struct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
13273 pub s_type: StructureType,
13274 pub next: *mut c_void,
13275 pub fragment_density_offset_granularity: Extent2D,
13276}
13277
13278impl Default for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
13279 #[inline]
13280 fn default() -> Self {
13281 Self {
13282 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM,
13283 next: ptr::null_mut(),
13284 fragment_density_offset_granularity: Extent2D::default(),
13285 }
13286 }
13287}
13288
13289#[repr(C)]
13291#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13292pub struct PhysicalDeviceFragmentDensityMapPropertiesEXT {
13293 pub s_type: StructureType,
13294 pub next: *mut c_void,
13295 pub min_fragment_density_texel_size: Extent2D,
13296 pub max_fragment_density_texel_size: Extent2D,
13297 pub fragment_density_invocations: Bool32,
13298}
13299
13300impl Default for PhysicalDeviceFragmentDensityMapPropertiesEXT {
13301 #[inline]
13302 fn default() -> Self {
13303 Self {
13304 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
13305 next: ptr::null_mut(),
13306 min_fragment_density_texel_size: Extent2D::default(),
13307 max_fragment_density_texel_size: Extent2D::default(),
13308 fragment_density_invocations: Bool32::default(),
13309 }
13310 }
13311}
13312
13313#[repr(C)]
13315#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13316pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
13317 pub s_type: StructureType,
13318 pub next: *mut c_void,
13319 pub fragment_shader_barycentric: Bool32,
13320}
13321
13322impl Default for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
13323 #[inline]
13324 fn default() -> Self {
13325 Self {
13326 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
13327 next: ptr::null_mut(),
13328 fragment_shader_barycentric: Bool32::default(),
13329 }
13330 }
13331}
13332
13333#[repr(C)]
13335#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13336pub struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
13337 pub s_type: StructureType,
13338 pub next: *mut c_void,
13339 pub tri_strip_vertex_order_independent_of_provoking_vertex: Bool32,
13340}
13341
13342impl Default for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
13343 #[inline]
13344 fn default() -> Self {
13345 Self {
13346 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,
13347 next: ptr::null_mut(),
13348 tri_strip_vertex_order_independent_of_provoking_vertex: Bool32::default(),
13349 }
13350 }
13351}
13352
13353#[repr(C)]
13355#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13356pub struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
13357 pub s_type: StructureType,
13358 pub next: *mut c_void,
13359 pub fragment_shader_sample_interlock: Bool32,
13360 pub fragment_shader_pixel_interlock: Bool32,
13361 pub fragment_shader_shading_rate_interlock: Bool32,
13362}
13363
13364impl Default for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
13365 #[inline]
13366 fn default() -> Self {
13367 Self {
13368 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
13369 next: ptr::null_mut(),
13370 fragment_shader_sample_interlock: Bool32::default(),
13371 fragment_shader_pixel_interlock: Bool32::default(),
13372 fragment_shader_shading_rate_interlock: Bool32::default(),
13373 }
13374 }
13375}
13376
13377#[repr(C)]
13379#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13380pub struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
13381 pub s_type: StructureType,
13382 pub next: *mut c_void,
13383 pub fragment_shading_rate_enums: Bool32,
13384 pub supersample_fragment_shading_rates: Bool32,
13385 pub no_invocation_fragment_shading_rates: Bool32,
13386}
13387
13388impl Default for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
13389 #[inline]
13390 fn default() -> Self {
13391 Self {
13392 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
13393 next: ptr::null_mut(),
13394 fragment_shading_rate_enums: Bool32::default(),
13395 supersample_fragment_shading_rates: Bool32::default(),
13396 no_invocation_fragment_shading_rates: Bool32::default(),
13397 }
13398 }
13399}
13400
13401#[repr(C)]
13403#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13404pub struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
13405 pub s_type: StructureType,
13406 pub next: *mut c_void,
13407 pub max_fragment_shading_rate_invocation_count: SampleCountFlags,
13408}
13409
13410impl Default for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
13411 #[inline]
13412 fn default() -> Self {
13413 Self {
13414 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
13415 next: ptr::null_mut(),
13416 max_fragment_shading_rate_invocation_count: SampleCountFlags::default(),
13417 }
13418 }
13419}
13420
13421#[repr(C)]
13423#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13424pub struct PhysicalDeviceFragmentShadingRateFeaturesKHR {
13425 pub s_type: StructureType,
13426 pub next: *mut c_void,
13427 pub pipeline_fragment_shading_rate: Bool32,
13428 pub primitive_fragment_shading_rate: Bool32,
13429 pub attachment_fragment_shading_rate: Bool32,
13430}
13431
13432impl Default for PhysicalDeviceFragmentShadingRateFeaturesKHR {
13433 #[inline]
13434 fn default() -> Self {
13435 Self {
13436 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
13437 next: ptr::null_mut(),
13438 pipeline_fragment_shading_rate: Bool32::default(),
13439 primitive_fragment_shading_rate: Bool32::default(),
13440 attachment_fragment_shading_rate: Bool32::default(),
13441 }
13442 }
13443}
13444
13445#[repr(C)]
13447#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13448pub struct PhysicalDeviceFragmentShadingRateKHR {
13449 pub s_type: StructureType,
13450 pub next: *mut c_void,
13451 pub sample_counts: SampleCountFlags,
13452 pub fragment_size: Extent2D,
13453}
13454
13455impl Default for PhysicalDeviceFragmentShadingRateKHR {
13456 #[inline]
13457 fn default() -> Self {
13458 Self {
13459 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
13460 next: ptr::null_mut(),
13461 sample_counts: SampleCountFlags::default(),
13462 fragment_size: Extent2D::default(),
13463 }
13464 }
13465}
13466
13467#[repr(C)]
13469#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13470pub struct PhysicalDeviceFragmentShadingRatePropertiesKHR {
13471 pub s_type: StructureType,
13472 pub next: *mut c_void,
13473 pub min_fragment_shading_rate_attachment_texel_size: Extent2D,
13474 pub max_fragment_shading_rate_attachment_texel_size: Extent2D,
13475 pub max_fragment_shading_rate_attachment_texel_size_aspect_ratio: u32,
13476 pub primitive_fragment_shading_rate_with_multiple_viewports: Bool32,
13477 pub layered_shading_rate_attachments: Bool32,
13478 pub fragment_shading_rate_non_trivial_combiner_ops: Bool32,
13479 pub max_fragment_size: Extent2D,
13480 pub max_fragment_size_aspect_ratio: u32,
13481 pub max_fragment_shading_rate_coverage_samples: u32,
13482 pub max_fragment_shading_rate_rasterization_samples: SampleCountFlags,
13483 pub fragment_shading_rate_with_shader_depth_stencil_writes: Bool32,
13484 pub fragment_shading_rate_with_sample_mask: Bool32,
13485 pub fragment_shading_rate_with_shader_sample_mask: Bool32,
13486 pub fragment_shading_rate_with_conservative_rasterization: Bool32,
13487 pub fragment_shading_rate_with_fragment_shader_interlock: Bool32,
13488 pub fragment_shading_rate_with_custom_sample_locations: Bool32,
13489 pub fragment_shading_rate_strict_multiply_combiner: Bool32,
13490}
13491
13492impl Default for PhysicalDeviceFragmentShadingRatePropertiesKHR {
13493 #[inline]
13494 fn default() -> Self {
13495 Self {
13496 s_type: StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
13497 next: ptr::null_mut(),
13498 min_fragment_shading_rate_attachment_texel_size: Extent2D::default(),
13499 max_fragment_shading_rate_attachment_texel_size: Extent2D::default(),
13500 max_fragment_shading_rate_attachment_texel_size_aspect_ratio: u32::default(),
13501 primitive_fragment_shading_rate_with_multiple_viewports: Bool32::default(),
13502 layered_shading_rate_attachments: Bool32::default(),
13503 fragment_shading_rate_non_trivial_combiner_ops: Bool32::default(),
13504 max_fragment_size: Extent2D::default(),
13505 max_fragment_size_aspect_ratio: u32::default(),
13506 max_fragment_shading_rate_coverage_samples: u32::default(),
13507 max_fragment_shading_rate_rasterization_samples: SampleCountFlags::default(),
13508 fragment_shading_rate_with_shader_depth_stencil_writes: Bool32::default(),
13509 fragment_shading_rate_with_sample_mask: Bool32::default(),
13510 fragment_shading_rate_with_shader_sample_mask: Bool32::default(),
13511 fragment_shading_rate_with_conservative_rasterization: Bool32::default(),
13512 fragment_shading_rate_with_fragment_shader_interlock: Bool32::default(),
13513 fragment_shading_rate_with_custom_sample_locations: Bool32::default(),
13514 fragment_shading_rate_strict_multiply_combiner: Bool32::default(),
13515 }
13516 }
13517}
13518
13519#[repr(C)]
13521#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13522pub struct PhysicalDeviceFrameBoundaryFeaturesEXT {
13523 pub s_type: StructureType,
13524 pub next: *mut c_void,
13525 pub frame_boundary: Bool32,
13526}
13527
13528impl Default for PhysicalDeviceFrameBoundaryFeaturesEXT {
13529 #[inline]
13530 fn default() -> Self {
13531 Self {
13532 s_type: StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT,
13533 next: ptr::null_mut(),
13534 frame_boundary: Bool32::default(),
13535 }
13536 }
13537}
13538
13539#[repr(C)]
13541#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13542pub struct PhysicalDeviceGlobalPriorityQueryFeatures {
13543 pub s_type: StructureType,
13544 pub next: *mut c_void,
13545 pub global_priority_query: Bool32,
13546}
13547
13548impl Default for PhysicalDeviceGlobalPriorityQueryFeatures {
13549 #[inline]
13550 fn default() -> Self {
13551 Self {
13552 s_type: StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
13553 next: ptr::null_mut(),
13554 global_priority_query: Bool32::default(),
13555 }
13556 }
13557}
13558
13559#[repr(C)]
13561#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13562pub struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
13563 pub s_type: StructureType,
13564 pub next: *mut c_void,
13565 pub graphics_pipeline_library: Bool32,
13566}
13567
13568impl Default for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
13569 #[inline]
13570 fn default() -> Self {
13571 Self {
13572 s_type: StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT,
13573 next: ptr::null_mut(),
13574 graphics_pipeline_library: Bool32::default(),
13575 }
13576 }
13577}
13578
13579#[repr(C)]
13581#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13582pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
13583 pub s_type: StructureType,
13584 pub next: *mut c_void,
13585 pub graphics_pipeline_library_fast_linking: Bool32,
13586 pub graphics_pipeline_library_independent_interpolation_decoration: Bool32,
13587}
13588
13589impl Default for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
13590 #[inline]
13591 fn default() -> Self {
13592 Self {
13593 s_type: StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT,
13594 next: ptr::null_mut(),
13595 graphics_pipeline_library_fast_linking: Bool32::default(),
13596 graphics_pipeline_library_independent_interpolation_decoration: Bool32::default(),
13597 }
13598 }
13599}
13600
13601#[repr(C)]
13603#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13604pub struct PhysicalDeviceGroupProperties {
13605 pub s_type: StructureType,
13606 pub next: *mut c_void,
13607 pub physical_device_count: u32,
13608 pub physical_devices: [PhysicalDevice; MAX_DEVICE_GROUP_SIZE],
13609 pub subset_allocation: Bool32,
13610}
13611
13612impl Default for PhysicalDeviceGroupProperties {
13613 #[inline]
13614 fn default() -> Self {
13615 Self {
13616 s_type: StructureType::PHYSICAL_DEVICE_GROUP_PROPERTIES,
13617 next: ptr::null_mut(),
13618 physical_device_count: u32::default(),
13619 physical_devices: [PhysicalDevice::default(); MAX_DEVICE_GROUP_SIZE],
13620 subset_allocation: Bool32::default(),
13621 }
13622 }
13623}
13624
13625#[repr(C)]
13627#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13628pub struct PhysicalDeviceHdrVividFeaturesHUAWEI {
13629 pub s_type: StructureType,
13630 pub next: *mut c_void,
13631 pub hdr_vivid: Bool32,
13632}
13633
13634impl Default for PhysicalDeviceHdrVividFeaturesHUAWEI {
13635 #[inline]
13636 fn default() -> Self {
13637 Self {
13638 s_type: StructureType::PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI,
13639 next: ptr::null_mut(),
13640 hdr_vivid: Bool32::default(),
13641 }
13642 }
13643}
13644
13645#[repr(C)]
13647#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13648pub struct PhysicalDeviceHostImageCopyFeatures {
13649 pub s_type: StructureType,
13650 pub next: *mut c_void,
13651 pub host_image_copy: Bool32,
13652}
13653
13654impl Default for PhysicalDeviceHostImageCopyFeatures {
13655 #[inline]
13656 fn default() -> Self {
13657 Self {
13658 s_type: StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
13659 next: ptr::null_mut(),
13660 host_image_copy: Bool32::default(),
13661 }
13662 }
13663}
13664
13665#[repr(C)]
13667#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13668pub struct PhysicalDeviceHostImageCopyProperties {
13669 pub s_type: StructureType,
13670 pub next: *mut c_void,
13671 pub copy_src_layout_count: u32,
13672 pub copy_src_layouts: *mut ImageLayout,
13673 pub copy_dst_layout_count: u32,
13674 pub copy_dst_layouts: *mut ImageLayout,
13675 pub optimal_tiling_layout_uuid: ByteArray<UUID_SIZE>,
13676 pub identical_memory_type_requirements: Bool32,
13677}
13678
13679impl Default for PhysicalDeviceHostImageCopyProperties {
13680 #[inline]
13681 fn default() -> Self {
13682 Self {
13683 s_type: StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
13684 next: ptr::null_mut(),
13685 copy_src_layout_count: u32::default(),
13686 copy_src_layouts: ptr::null_mut(),
13687 copy_dst_layout_count: u32::default(),
13688 copy_dst_layouts: ptr::null_mut(),
13689 optimal_tiling_layout_uuid: ByteArray::default(),
13690 identical_memory_type_requirements: Bool32::default(),
13691 }
13692 }
13693}
13694
13695#[repr(C)]
13697#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13698pub struct PhysicalDeviceHostQueryResetFeatures {
13699 pub s_type: StructureType,
13700 pub next: *mut c_void,
13701 pub host_query_reset: Bool32,
13702}
13703
13704impl Default for PhysicalDeviceHostQueryResetFeatures {
13705 #[inline]
13706 fn default() -> Self {
13707 Self {
13708 s_type: StructureType::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
13709 next: ptr::null_mut(),
13710 host_query_reset: Bool32::default(),
13711 }
13712 }
13713}
13714
13715#[repr(C)]
13717#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13718pub struct PhysicalDeviceIDProperties {
13719 pub s_type: StructureType,
13720 pub next: *mut c_void,
13721 pub device_uuid: ByteArray<UUID_SIZE>,
13722 pub driver_uuid: ByteArray<UUID_SIZE>,
13723 pub device_luid: ByteArray<LUID_SIZE>,
13724 pub device_node_mask: u32,
13725 pub device_luid_valid: Bool32,
13726}
13727
13728impl Default for PhysicalDeviceIDProperties {
13729 #[inline]
13730 fn default() -> Self {
13731 Self {
13732 s_type: StructureType::PHYSICAL_DEVICE_ID_PROPERTIES,
13733 next: ptr::null_mut(),
13734 device_uuid: ByteArray::default(),
13735 driver_uuid: ByteArray::default(),
13736 device_luid: ByteArray::default(),
13737 device_node_mask: u32::default(),
13738 device_luid_valid: Bool32::default(),
13739 }
13740 }
13741}
13742
13743#[repr(C)]
13745#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13746pub struct PhysicalDeviceImage2DViewOf3DFeaturesEXT {
13747 pub s_type: StructureType,
13748 pub next: *mut c_void,
13749 pub image_2d_view_of_3d: Bool32,
13750 pub sampler_2d_view_of_3d: Bool32,
13751}
13752
13753impl Default for PhysicalDeviceImage2DViewOf3DFeaturesEXT {
13754 #[inline]
13755 fn default() -> Self {
13756 Self {
13757 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT,
13758 next: ptr::null_mut(),
13759 image_2d_view_of_3d: Bool32::default(),
13760 sampler_2d_view_of_3d: Bool32::default(),
13761 }
13762 }
13763}
13764
13765#[repr(C)]
13767#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13768pub struct PhysicalDeviceImageAlignmentControlFeaturesMESA {
13769 pub s_type: StructureType,
13770 pub next: *mut c_void,
13771 pub image_alignment_control: Bool32,
13772}
13773
13774impl Default for PhysicalDeviceImageAlignmentControlFeaturesMESA {
13775 #[inline]
13776 fn default() -> Self {
13777 Self {
13778 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA,
13779 next: ptr::null_mut(),
13780 image_alignment_control: Bool32::default(),
13781 }
13782 }
13783}
13784
13785#[repr(C)]
13787#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13788pub struct PhysicalDeviceImageAlignmentControlPropertiesMESA {
13789 pub s_type: StructureType,
13790 pub next: *mut c_void,
13791 pub supported_image_alignment_mask: u32,
13792}
13793
13794impl Default for PhysicalDeviceImageAlignmentControlPropertiesMESA {
13795 #[inline]
13796 fn default() -> Self {
13797 Self {
13798 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA,
13799 next: ptr::null_mut(),
13800 supported_image_alignment_mask: u32::default(),
13801 }
13802 }
13803}
13804
13805#[repr(C)]
13807#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13808pub struct PhysicalDeviceImageCompressionControlFeaturesEXT {
13809 pub s_type: StructureType,
13810 pub next: *mut c_void,
13811 pub image_compression_control: Bool32,
13812}
13813
13814impl Default for PhysicalDeviceImageCompressionControlFeaturesEXT {
13815 #[inline]
13816 fn default() -> Self {
13817 Self {
13818 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,
13819 next: ptr::null_mut(),
13820 image_compression_control: Bool32::default(),
13821 }
13822 }
13823}
13824
13825#[repr(C)]
13827#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13828pub struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
13829 pub s_type: StructureType,
13830 pub next: *mut c_void,
13831 pub image_compression_control_swapchain: Bool32,
13832}
13833
13834impl Default for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
13835 #[inline]
13836 fn default() -> Self {
13837 Self {
13838 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT,
13839 next: ptr::null_mut(),
13840 image_compression_control_swapchain: Bool32::default(),
13841 }
13842 }
13843}
13844
13845#[repr(C)]
13847#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13848pub struct PhysicalDeviceImageDrmFormatModifierInfoEXT {
13849 pub s_type: StructureType,
13850 pub next: *const c_void,
13851 pub drm_format_modifier: u64,
13852 pub sharing_mode: SharingMode,
13853 pub queue_family_index_count: u32,
13854 pub queue_family_indices: *const u32,
13855}
13856
13857impl Default for PhysicalDeviceImageDrmFormatModifierInfoEXT {
13858 #[inline]
13859 fn default() -> Self {
13860 Self {
13861 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
13862 next: ptr::null(),
13863 drm_format_modifier: u64::default(),
13864 sharing_mode: SharingMode::default(),
13865 queue_family_index_count: u32::default(),
13866 queue_family_indices: ptr::null(),
13867 }
13868 }
13869}
13870
13871#[repr(C)]
13873#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13874pub struct PhysicalDeviceImageFormatInfo2 {
13875 pub s_type: StructureType,
13876 pub next: *const c_void,
13877 pub format: Format,
13878 pub type_: ImageType,
13879 pub tiling: ImageTiling,
13880 pub usage: ImageUsageFlags,
13881 pub flags: ImageCreateFlags,
13882}
13883
13884impl Default for PhysicalDeviceImageFormatInfo2 {
13885 #[inline]
13886 fn default() -> Self {
13887 Self {
13888 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
13889 next: ptr::null(),
13890 format: Format::default(),
13891 type_: ImageType::default(),
13892 tiling: ImageTiling::default(),
13893 usage: ImageUsageFlags::default(),
13894 flags: ImageCreateFlags::default(),
13895 }
13896 }
13897}
13898
13899#[repr(C)]
13901#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13902pub struct PhysicalDeviceImageProcessing2FeaturesQCOM {
13903 pub s_type: StructureType,
13904 pub next: *mut c_void,
13905 pub texture_block_match2: Bool32,
13906}
13907
13908impl Default for PhysicalDeviceImageProcessing2FeaturesQCOM {
13909 #[inline]
13910 fn default() -> Self {
13911 Self {
13912 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM,
13913 next: ptr::null_mut(),
13914 texture_block_match2: Bool32::default(),
13915 }
13916 }
13917}
13918
13919#[repr(C)]
13921#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13922pub struct PhysicalDeviceImageProcessing2PropertiesQCOM {
13923 pub s_type: StructureType,
13924 pub next: *mut c_void,
13925 pub max_block_match_window: Extent2D,
13926}
13927
13928impl Default for PhysicalDeviceImageProcessing2PropertiesQCOM {
13929 #[inline]
13930 fn default() -> Self {
13931 Self {
13932 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM,
13933 next: ptr::null_mut(),
13934 max_block_match_window: Extent2D::default(),
13935 }
13936 }
13937}
13938
13939#[repr(C)]
13941#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13942pub struct PhysicalDeviceImageProcessingFeaturesQCOM {
13943 pub s_type: StructureType,
13944 pub next: *mut c_void,
13945 pub texture_sample_weighted: Bool32,
13946 pub texture_box_filter: Bool32,
13947 pub texture_block_match: Bool32,
13948}
13949
13950impl Default for PhysicalDeviceImageProcessingFeaturesQCOM {
13951 #[inline]
13952 fn default() -> Self {
13953 Self {
13954 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,
13955 next: ptr::null_mut(),
13956 texture_sample_weighted: Bool32::default(),
13957 texture_box_filter: Bool32::default(),
13958 texture_block_match: Bool32::default(),
13959 }
13960 }
13961}
13962
13963#[repr(C)]
13965#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13966pub struct PhysicalDeviceImageProcessingPropertiesQCOM {
13967 pub s_type: StructureType,
13968 pub next: *mut c_void,
13969 pub max_weight_filter_phases: u32,
13970 pub max_weight_filter_dimension: Extent2D,
13971 pub max_block_match_region: Extent2D,
13972 pub max_box_filter_block_size: Extent2D,
13973}
13974
13975impl Default for PhysicalDeviceImageProcessingPropertiesQCOM {
13976 #[inline]
13977 fn default() -> Self {
13978 Self {
13979 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,
13980 next: ptr::null_mut(),
13981 max_weight_filter_phases: u32::default(),
13982 max_weight_filter_dimension: Extent2D::default(),
13983 max_block_match_region: Extent2D::default(),
13984 max_box_filter_block_size: Extent2D::default(),
13985 }
13986 }
13987}
13988
13989#[repr(C)]
13991#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
13992pub struct PhysicalDeviceImageRobustnessFeatures {
13993 pub s_type: StructureType,
13994 pub next: *mut c_void,
13995 pub robust_image_access: Bool32,
13996}
13997
13998impl Default for PhysicalDeviceImageRobustnessFeatures {
13999 #[inline]
14000 fn default() -> Self {
14001 Self {
14002 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
14003 next: ptr::null_mut(),
14004 robust_image_access: Bool32::default(),
14005 }
14006 }
14007}
14008
14009#[repr(C)]
14011#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14012pub struct PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
14013 pub s_type: StructureType,
14014 pub next: *mut c_void,
14015 pub image_sliced_view_of_3d: Bool32,
14016}
14017
14018impl Default for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
14019 #[inline]
14020 fn default() -> Self {
14021 Self {
14022 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT,
14023 next: ptr::null_mut(),
14024 image_sliced_view_of_3d: Bool32::default(),
14025 }
14026 }
14027}
14028
14029#[repr(C)]
14031#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14032pub struct PhysicalDeviceImageViewImageFormatInfoEXT {
14033 pub s_type: StructureType,
14034 pub next: *mut c_void,
14035 pub image_view_type: ImageViewType,
14036}
14037
14038impl Default for PhysicalDeviceImageViewImageFormatInfoEXT {
14039 #[inline]
14040 fn default() -> Self {
14041 Self {
14042 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
14043 next: ptr::null_mut(),
14044 image_view_type: ImageViewType::default(),
14045 }
14046 }
14047}
14048
14049#[repr(C)]
14051#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14052pub struct PhysicalDeviceImageViewMinLodFeaturesEXT {
14053 pub s_type: StructureType,
14054 pub next: *mut c_void,
14055 pub min_lod: Bool32,
14056}
14057
14058impl Default for PhysicalDeviceImageViewMinLodFeaturesEXT {
14059 #[inline]
14060 fn default() -> Self {
14061 Self {
14062 s_type: StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,
14063 next: ptr::null_mut(),
14064 min_lod: Bool32::default(),
14065 }
14066 }
14067}
14068
14069#[repr(C)]
14071#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14072pub struct PhysicalDeviceImagelessFramebufferFeatures {
14073 pub s_type: StructureType,
14074 pub next: *mut c_void,
14075 pub imageless_framebuffer: Bool32,
14076}
14077
14078impl Default for PhysicalDeviceImagelessFramebufferFeatures {
14079 #[inline]
14080 fn default() -> Self {
14081 Self {
14082 s_type: StructureType::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
14083 next: ptr::null_mut(),
14084 imageless_framebuffer: Bool32::default(),
14085 }
14086 }
14087}
14088
14089#[repr(C)]
14091#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14092pub struct PhysicalDeviceIndexTypeUint8Features {
14093 pub s_type: StructureType,
14094 pub next: *mut c_void,
14095 pub index_type_uint8: Bool32,
14096}
14097
14098impl Default for PhysicalDeviceIndexTypeUint8Features {
14099 #[inline]
14100 fn default() -> Self {
14101 Self {
14102 s_type: StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
14103 next: ptr::null_mut(),
14104 index_type_uint8: Bool32::default(),
14105 }
14106 }
14107}
14108
14109#[repr(C)]
14111#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14112pub struct PhysicalDeviceInheritedViewportScissorFeaturesNV {
14113 pub s_type: StructureType,
14114 pub next: *mut c_void,
14115 pub inherited_viewport_scissor_2d: Bool32,
14116}
14117
14118impl Default for PhysicalDeviceInheritedViewportScissorFeaturesNV {
14119 #[inline]
14120 fn default() -> Self {
14121 Self {
14122 s_type: StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
14123 next: ptr::null_mut(),
14124 inherited_viewport_scissor_2d: Bool32::default(),
14125 }
14126 }
14127}
14128
14129#[repr(C)]
14131#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14132pub struct PhysicalDeviceInlineUniformBlockFeatures {
14133 pub s_type: StructureType,
14134 pub next: *mut c_void,
14135 pub inline_uniform_block: Bool32,
14136 pub descriptor_binding_inline_uniform_block_update_after_bind: Bool32,
14137}
14138
14139impl Default for PhysicalDeviceInlineUniformBlockFeatures {
14140 #[inline]
14141 fn default() -> Self {
14142 Self {
14143 s_type: StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
14144 next: ptr::null_mut(),
14145 inline_uniform_block: Bool32::default(),
14146 descriptor_binding_inline_uniform_block_update_after_bind: Bool32::default(),
14147 }
14148 }
14149}
14150
14151#[repr(C)]
14153#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14154pub struct PhysicalDeviceInlineUniformBlockProperties {
14155 pub s_type: StructureType,
14156 pub next: *mut c_void,
14157 pub max_inline_uniform_block_size: u32,
14158 pub max_per_stage_descriptor_inline_uniform_blocks: u32,
14159 pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
14160 pub max_descriptor_set_inline_uniform_blocks: u32,
14161 pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
14162}
14163
14164impl Default for PhysicalDeviceInlineUniformBlockProperties {
14165 #[inline]
14166 fn default() -> Self {
14167 Self {
14168 s_type: StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
14169 next: ptr::null_mut(),
14170 max_inline_uniform_block_size: u32::default(),
14171 max_per_stage_descriptor_inline_uniform_blocks: u32::default(),
14172 max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32::default(),
14173 max_descriptor_set_inline_uniform_blocks: u32::default(),
14174 max_descriptor_set_update_after_bind_inline_uniform_blocks: u32::default(),
14175 }
14176 }
14177}
14178
14179#[repr(C)]
14181#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14182pub struct PhysicalDeviceInvocationMaskFeaturesHUAWEI {
14183 pub s_type: StructureType,
14184 pub next: *mut c_void,
14185 pub invocation_mask: Bool32,
14186}
14187
14188impl Default for PhysicalDeviceInvocationMaskFeaturesHUAWEI {
14189 #[inline]
14190 fn default() -> Self {
14191 Self {
14192 s_type: StructureType::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,
14193 next: ptr::null_mut(),
14194 invocation_mask: Bool32::default(),
14195 }
14196 }
14197}
14198
14199#[repr(C)]
14201#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14202pub struct PhysicalDeviceLayeredApiPropertiesKHR {
14203 pub s_type: StructureType,
14204 pub next: *mut c_void,
14205 pub vendor_id: u32,
14206 pub device_id: u32,
14207 pub layered_api: PhysicalDeviceLayeredApiKHR,
14208 pub device_name: StringArray<MAX_PHYSICAL_DEVICE_NAME_SIZE>,
14209}
14210
14211impl Default for PhysicalDeviceLayeredApiPropertiesKHR {
14212 #[inline]
14213 fn default() -> Self {
14214 Self {
14215 s_type: StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR,
14216 next: ptr::null_mut(),
14217 vendor_id: u32::default(),
14218 device_id: u32::default(),
14219 layered_api: PhysicalDeviceLayeredApiKHR::default(),
14220 device_name: StringArray::default(),
14221 }
14222 }
14223}
14224
14225#[repr(C)]
14227#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14228pub struct PhysicalDeviceLayeredApiPropertiesListKHR {
14229 pub s_type: StructureType,
14230 pub next: *mut c_void,
14231 pub layered_api_count: u32,
14232 pub layered_apis: *mut PhysicalDeviceLayeredApiPropertiesKHR,
14233}
14234
14235impl Default for PhysicalDeviceLayeredApiPropertiesListKHR {
14236 #[inline]
14237 fn default() -> Self {
14238 Self {
14239 s_type: StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR,
14240 next: ptr::null_mut(),
14241 layered_api_count: u32::default(),
14242 layered_apis: ptr::null_mut(),
14243 }
14244 }
14245}
14246
14247#[repr(C)]
14249#[derive(Copy, Clone, Debug, PartialEq)]
14250pub struct PhysicalDeviceLayeredApiVulkanPropertiesKHR {
14251 pub s_type: StructureType,
14252 pub next: *mut c_void,
14253 pub properties: PhysicalDeviceProperties2,
14254}
14255
14256impl Default for PhysicalDeviceLayeredApiVulkanPropertiesKHR {
14257 #[inline]
14258 fn default() -> Self {
14259 Self {
14260 s_type: StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR,
14261 next: ptr::null_mut(),
14262 properties: PhysicalDeviceProperties2::default(),
14263 }
14264 }
14265}
14266
14267#[repr(C)]
14269#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14270pub struct PhysicalDeviceLayeredDriverPropertiesMSFT {
14271 pub s_type: StructureType,
14272 pub next: *mut c_void,
14273 pub underlying_api: LayeredDriverUnderlyingApiMSFT,
14274}
14275
14276impl Default for PhysicalDeviceLayeredDriverPropertiesMSFT {
14277 #[inline]
14278 fn default() -> Self {
14279 Self {
14280 s_type: StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT,
14281 next: ptr::null_mut(),
14282 underlying_api: LayeredDriverUnderlyingApiMSFT::default(),
14283 }
14284 }
14285}
14286
14287#[repr(C)]
14289#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14290pub struct PhysicalDeviceLegacyDitheringFeaturesEXT {
14291 pub s_type: StructureType,
14292 pub next: *mut c_void,
14293 pub legacy_dithering: Bool32,
14294}
14295
14296impl Default for PhysicalDeviceLegacyDitheringFeaturesEXT {
14297 #[inline]
14298 fn default() -> Self {
14299 Self {
14300 s_type: StructureType::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT,
14301 next: ptr::null_mut(),
14302 legacy_dithering: Bool32::default(),
14303 }
14304 }
14305}
14306
14307#[repr(C)]
14309#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14310pub struct PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
14311 pub s_type: StructureType,
14312 pub next: *mut c_void,
14313 pub legacy_vertex_attributes: Bool32,
14314}
14315
14316impl Default for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
14317 #[inline]
14318 fn default() -> Self {
14319 Self {
14320 s_type: StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT,
14321 next: ptr::null_mut(),
14322 legacy_vertex_attributes: Bool32::default(),
14323 }
14324 }
14325}
14326
14327#[repr(C)]
14329#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14330pub struct PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
14331 pub s_type: StructureType,
14332 pub next: *mut c_void,
14333 pub native_unaligned_performance: Bool32,
14334}
14335
14336impl Default for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
14337 #[inline]
14338 fn default() -> Self {
14339 Self {
14340 s_type: StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT,
14341 next: ptr::null_mut(),
14342 native_unaligned_performance: Bool32::default(),
14343 }
14344 }
14345}
14346
14347#[repr(C)]
14349#[derive(Copy, Clone, Default, Debug, PartialEq)]
14350pub struct PhysicalDeviceLimits {
14351 pub max_image_dimension_1d: u32,
14352 pub max_image_dimension_2d: u32,
14353 pub max_image_dimension_3d: u32,
14354 pub max_image_dimension_cube: u32,
14355 pub max_image_array_layers: u32,
14356 pub max_texel_buffer_elements: u32,
14357 pub max_uniform_buffer_range: u32,
14358 pub max_storage_buffer_range: u32,
14359 pub max_push_constants_size: u32,
14360 pub max_memory_allocation_count: u32,
14361 pub max_sampler_allocation_count: u32,
14362 pub buffer_image_granularity: DeviceSize,
14363 pub sparse_address_space_size: DeviceSize,
14364 pub max_bound_descriptor_sets: u32,
14365 pub max_per_stage_descriptor_samplers: u32,
14366 pub max_per_stage_descriptor_uniform_buffers: u32,
14367 pub max_per_stage_descriptor_storage_buffers: u32,
14368 pub max_per_stage_descriptor_sampled_images: u32,
14369 pub max_per_stage_descriptor_storage_images: u32,
14370 pub max_per_stage_descriptor_input_attachments: u32,
14371 pub max_per_stage_resources: u32,
14372 pub max_descriptor_set_samplers: u32,
14373 pub max_descriptor_set_uniform_buffers: u32,
14374 pub max_descriptor_set_uniform_buffers_dynamic: u32,
14375 pub max_descriptor_set_storage_buffers: u32,
14376 pub max_descriptor_set_storage_buffers_dynamic: u32,
14377 pub max_descriptor_set_sampled_images: u32,
14378 pub max_descriptor_set_storage_images: u32,
14379 pub max_descriptor_set_input_attachments: u32,
14380 pub max_vertex_input_attributes: u32,
14381 pub max_vertex_input_bindings: u32,
14382 pub max_vertex_input_attribute_offset: u32,
14383 pub max_vertex_input_binding_stride: u32,
14384 pub max_vertex_output_components: u32,
14385 pub max_tessellation_generation_level: u32,
14386 pub max_tessellation_patch_size: u32,
14387 pub max_tessellation_control_per_vertex_input_components: u32,
14388 pub max_tessellation_control_per_vertex_output_components: u32,
14389 pub max_tessellation_control_per_patch_output_components: u32,
14390 pub max_tessellation_control_total_output_components: u32,
14391 pub max_tessellation_evaluation_input_components: u32,
14392 pub max_tessellation_evaluation_output_components: u32,
14393 pub max_geometry_shader_invocations: u32,
14394 pub max_geometry_input_components: u32,
14395 pub max_geometry_output_components: u32,
14396 pub max_geometry_output_vertices: u32,
14397 pub max_geometry_total_output_components: u32,
14398 pub max_fragment_input_components: u32,
14399 pub max_fragment_output_attachments: u32,
14400 pub max_fragment_dual_src_attachments: u32,
14401 pub max_fragment_combined_output_resources: u32,
14402 pub max_compute_shared_memory_size: u32,
14403 pub max_compute_work_group_count: [u32; 3],
14404 pub max_compute_work_group_invocations: u32,
14405 pub max_compute_work_group_size: [u32; 3],
14406 pub sub_pixel_precision_bits: u32,
14407 pub sub_texel_precision_bits: u32,
14408 pub mipmap_precision_bits: u32,
14409 pub max_draw_indexed_index_value: u32,
14410 pub max_draw_indirect_count: u32,
14411 pub max_sampler_lod_bias: f32,
14412 pub max_sampler_anisotropy: f32,
14413 pub max_viewports: u32,
14414 pub max_viewport_dimensions: [u32; 2],
14415 pub viewport_bounds_range: [f32; 2],
14416 pub viewport_sub_pixel_bits: u32,
14417 pub min_memory_map_alignment: usize,
14418 pub min_texel_buffer_offset_alignment: DeviceSize,
14419 pub min_uniform_buffer_offset_alignment: DeviceSize,
14420 pub min_storage_buffer_offset_alignment: DeviceSize,
14421 pub min_texel_offset: i32,
14422 pub max_texel_offset: u32,
14423 pub min_texel_gather_offset: i32,
14424 pub max_texel_gather_offset: u32,
14425 pub min_interpolation_offset: f32,
14426 pub max_interpolation_offset: f32,
14427 pub sub_pixel_interpolation_offset_bits: u32,
14428 pub max_framebuffer_width: u32,
14429 pub max_framebuffer_height: u32,
14430 pub max_framebuffer_layers: u32,
14431 pub framebuffer_color_sample_counts: SampleCountFlags,
14432 pub framebuffer_depth_sample_counts: SampleCountFlags,
14433 pub framebuffer_stencil_sample_counts: SampleCountFlags,
14434 pub framebuffer_no_attachments_sample_counts: SampleCountFlags,
14435 pub max_color_attachments: u32,
14436 pub sampled_image_color_sample_counts: SampleCountFlags,
14437 pub sampled_image_integer_sample_counts: SampleCountFlags,
14438 pub sampled_image_depth_sample_counts: SampleCountFlags,
14439 pub sampled_image_stencil_sample_counts: SampleCountFlags,
14440 pub storage_image_sample_counts: SampleCountFlags,
14441 pub max_sample_mask_words: u32,
14442 pub timestamp_compute_and_graphics: Bool32,
14443 pub timestamp_period: f32,
14444 pub max_clip_distances: u32,
14445 pub max_cull_distances: u32,
14446 pub max_combined_clip_and_cull_distances: u32,
14447 pub discrete_queue_priorities: u32,
14448 pub point_size_range: [f32; 2],
14449 pub line_width_range: [f32; 2],
14450 pub point_size_granularity: f32,
14451 pub line_width_granularity: f32,
14452 pub strict_lines: Bool32,
14453 pub standard_sample_locations: Bool32,
14454 pub optimal_buffer_copy_offset_alignment: DeviceSize,
14455 pub optimal_buffer_copy_row_pitch_alignment: DeviceSize,
14456 pub non_coherent_atom_size: DeviceSize,
14457}
14458
14459#[repr(C)]
14461#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14462pub struct PhysicalDeviceLineRasterizationFeatures {
14463 pub s_type: StructureType,
14464 pub next: *mut c_void,
14465 pub rectangular_lines: Bool32,
14466 pub bresenham_lines: Bool32,
14467 pub smooth_lines: Bool32,
14468 pub stippled_rectangular_lines: Bool32,
14469 pub stippled_bresenham_lines: Bool32,
14470 pub stippled_smooth_lines: Bool32,
14471}
14472
14473impl Default for PhysicalDeviceLineRasterizationFeatures {
14474 #[inline]
14475 fn default() -> Self {
14476 Self {
14477 s_type: StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
14478 next: ptr::null_mut(),
14479 rectangular_lines: Bool32::default(),
14480 bresenham_lines: Bool32::default(),
14481 smooth_lines: Bool32::default(),
14482 stippled_rectangular_lines: Bool32::default(),
14483 stippled_bresenham_lines: Bool32::default(),
14484 stippled_smooth_lines: Bool32::default(),
14485 }
14486 }
14487}
14488
14489#[repr(C)]
14491#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14492pub struct PhysicalDeviceLineRasterizationProperties {
14493 pub s_type: StructureType,
14494 pub next: *mut c_void,
14495 pub line_sub_pixel_precision_bits: u32,
14496}
14497
14498impl Default for PhysicalDeviceLineRasterizationProperties {
14499 #[inline]
14500 fn default() -> Self {
14501 Self {
14502 s_type: StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
14503 next: ptr::null_mut(),
14504 line_sub_pixel_precision_bits: u32::default(),
14505 }
14506 }
14507}
14508
14509#[repr(C)]
14511#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14512pub struct PhysicalDeviceLinearColorAttachmentFeaturesNV {
14513 pub s_type: StructureType,
14514 pub next: *mut c_void,
14515 pub linear_color_attachment: Bool32,
14516}
14517
14518impl Default for PhysicalDeviceLinearColorAttachmentFeaturesNV {
14519 #[inline]
14520 fn default() -> Self {
14521 Self {
14522 s_type: StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV,
14523 next: ptr::null_mut(),
14524 linear_color_attachment: Bool32::default(),
14525 }
14526 }
14527}
14528
14529#[repr(C)]
14531#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14532pub struct PhysicalDeviceMaintenance3Properties {
14533 pub s_type: StructureType,
14534 pub next: *mut c_void,
14535 pub max_per_set_descriptors: u32,
14536 pub max_memory_allocation_size: DeviceSize,
14537}
14538
14539impl Default for PhysicalDeviceMaintenance3Properties {
14540 #[inline]
14541 fn default() -> Self {
14542 Self {
14543 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
14544 next: ptr::null_mut(),
14545 max_per_set_descriptors: u32::default(),
14546 max_memory_allocation_size: DeviceSize::default(),
14547 }
14548 }
14549}
14550
14551#[repr(C)]
14553#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14554pub struct PhysicalDeviceMaintenance4Features {
14555 pub s_type: StructureType,
14556 pub next: *mut c_void,
14557 pub maintenance4: Bool32,
14558}
14559
14560impl Default for PhysicalDeviceMaintenance4Features {
14561 #[inline]
14562 fn default() -> Self {
14563 Self {
14564 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
14565 next: ptr::null_mut(),
14566 maintenance4: Bool32::default(),
14567 }
14568 }
14569}
14570
14571#[repr(C)]
14573#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14574pub struct PhysicalDeviceMaintenance4Properties {
14575 pub s_type: StructureType,
14576 pub next: *mut c_void,
14577 pub max_buffer_size: DeviceSize,
14578}
14579
14580impl Default for PhysicalDeviceMaintenance4Properties {
14581 #[inline]
14582 fn default() -> Self {
14583 Self {
14584 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
14585 next: ptr::null_mut(),
14586 max_buffer_size: DeviceSize::default(),
14587 }
14588 }
14589}
14590
14591#[repr(C)]
14593#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14594pub struct PhysicalDeviceMaintenance5Features {
14595 pub s_type: StructureType,
14596 pub next: *mut c_void,
14597 pub maintenance5: Bool32,
14598}
14599
14600impl Default for PhysicalDeviceMaintenance5Features {
14601 #[inline]
14602 fn default() -> Self {
14603 Self {
14604 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
14605 next: ptr::null_mut(),
14606 maintenance5: Bool32::default(),
14607 }
14608 }
14609}
14610
14611#[repr(C)]
14613#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14614pub struct PhysicalDeviceMaintenance5Properties {
14615 pub s_type: StructureType,
14616 pub next: *mut c_void,
14617 pub early_fragment_multisample_coverage_after_sample_counting: Bool32,
14618 pub early_fragment_sample_mask_test_before_sample_counting: Bool32,
14619 pub depth_stencil_swizzle_one_support: Bool32,
14620 pub polygon_mode_point_size: Bool32,
14621 pub non_strict_single_pixel_wide_lines_use_parallelogram: Bool32,
14622 pub non_strict_wide_lines_use_parallelogram: Bool32,
14623}
14624
14625impl Default for PhysicalDeviceMaintenance5Properties {
14626 #[inline]
14627 fn default() -> Self {
14628 Self {
14629 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
14630 next: ptr::null_mut(),
14631 early_fragment_multisample_coverage_after_sample_counting: Bool32::default(),
14632 early_fragment_sample_mask_test_before_sample_counting: Bool32::default(),
14633 depth_stencil_swizzle_one_support: Bool32::default(),
14634 polygon_mode_point_size: Bool32::default(),
14635 non_strict_single_pixel_wide_lines_use_parallelogram: Bool32::default(),
14636 non_strict_wide_lines_use_parallelogram: Bool32::default(),
14637 }
14638 }
14639}
14640
14641#[repr(C)]
14643#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14644pub struct PhysicalDeviceMaintenance6Features {
14645 pub s_type: StructureType,
14646 pub next: *mut c_void,
14647 pub maintenance6: Bool32,
14648}
14649
14650impl Default for PhysicalDeviceMaintenance6Features {
14651 #[inline]
14652 fn default() -> Self {
14653 Self {
14654 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
14655 next: ptr::null_mut(),
14656 maintenance6: Bool32::default(),
14657 }
14658 }
14659}
14660
14661#[repr(C)]
14663#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14664pub struct PhysicalDeviceMaintenance6Properties {
14665 pub s_type: StructureType,
14666 pub next: *mut c_void,
14667 pub block_texel_view_compatible_multiple_layers: Bool32,
14668 pub max_combined_image_sampler_descriptor_count: u32,
14669 pub fragment_shading_rate_clamp_combiner_inputs: Bool32,
14670}
14671
14672impl Default for PhysicalDeviceMaintenance6Properties {
14673 #[inline]
14674 fn default() -> Self {
14675 Self {
14676 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
14677 next: ptr::null_mut(),
14678 block_texel_view_compatible_multiple_layers: Bool32::default(),
14679 max_combined_image_sampler_descriptor_count: u32::default(),
14680 fragment_shading_rate_clamp_combiner_inputs: Bool32::default(),
14681 }
14682 }
14683}
14684
14685#[repr(C)]
14687#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14688pub struct PhysicalDeviceMaintenance7FeaturesKHR {
14689 pub s_type: StructureType,
14690 pub next: *mut c_void,
14691 pub maintenance7: Bool32,
14692}
14693
14694impl Default for PhysicalDeviceMaintenance7FeaturesKHR {
14695 #[inline]
14696 fn default() -> Self {
14697 Self {
14698 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR,
14699 next: ptr::null_mut(),
14700 maintenance7: Bool32::default(),
14701 }
14702 }
14703}
14704
14705#[repr(C)]
14707#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14708pub struct PhysicalDeviceMaintenance7PropertiesKHR {
14709 pub s_type: StructureType,
14710 pub next: *mut c_void,
14711 pub robust_fragment_shading_rate_attachment_access: Bool32,
14712 pub separate_depth_stencil_attachment_access: Bool32,
14713 pub max_descriptor_set_total_uniform_buffers_dynamic: u32,
14714 pub max_descriptor_set_total_storage_buffers_dynamic: u32,
14715 pub max_descriptor_set_total_buffers_dynamic: u32,
14716 pub max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32,
14717 pub max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32,
14718 pub max_descriptor_set_update_after_bind_total_buffers_dynamic: u32,
14719}
14720
14721impl Default for PhysicalDeviceMaintenance7PropertiesKHR {
14722 #[inline]
14723 fn default() -> Self {
14724 Self {
14725 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR,
14726 next: ptr::null_mut(),
14727 robust_fragment_shading_rate_attachment_access: Bool32::default(),
14728 separate_depth_stencil_attachment_access: Bool32::default(),
14729 max_descriptor_set_total_uniform_buffers_dynamic: u32::default(),
14730 max_descriptor_set_total_storage_buffers_dynamic: u32::default(),
14731 max_descriptor_set_total_buffers_dynamic: u32::default(),
14732 max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic: u32::default(),
14733 max_descriptor_set_update_after_bind_total_storage_buffers_dynamic: u32::default(),
14734 max_descriptor_set_update_after_bind_total_buffers_dynamic: u32::default(),
14735 }
14736 }
14737}
14738
14739#[repr(C)]
14741#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14742pub struct PhysicalDeviceMaintenance8FeaturesKHR {
14743 pub s_type: StructureType,
14744 pub next: *mut c_void,
14745 pub maintenance8: Bool32,
14746}
14747
14748impl Default for PhysicalDeviceMaintenance8FeaturesKHR {
14749 #[inline]
14750 fn default() -> Self {
14751 Self {
14752 s_type: StructureType::PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR,
14753 next: ptr::null_mut(),
14754 maintenance8: Bool32::default(),
14755 }
14756 }
14757}
14758
14759#[repr(C)]
14761#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14762pub struct PhysicalDeviceMapMemoryPlacedFeaturesEXT {
14763 pub s_type: StructureType,
14764 pub next: *mut c_void,
14765 pub memory_map_placed: Bool32,
14766 pub memory_map_range_placed: Bool32,
14767 pub memory_unmap_reserve: Bool32,
14768}
14769
14770impl Default for PhysicalDeviceMapMemoryPlacedFeaturesEXT {
14771 #[inline]
14772 fn default() -> Self {
14773 Self {
14774 s_type: StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT,
14775 next: ptr::null_mut(),
14776 memory_map_placed: Bool32::default(),
14777 memory_map_range_placed: Bool32::default(),
14778 memory_unmap_reserve: Bool32::default(),
14779 }
14780 }
14781}
14782
14783#[repr(C)]
14785#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14786pub struct PhysicalDeviceMapMemoryPlacedPropertiesEXT {
14787 pub s_type: StructureType,
14788 pub next: *mut c_void,
14789 pub min_placed_memory_map_alignment: DeviceSize,
14790}
14791
14792impl Default for PhysicalDeviceMapMemoryPlacedPropertiesEXT {
14793 #[inline]
14794 fn default() -> Self {
14795 Self {
14796 s_type: StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT,
14797 next: ptr::null_mut(),
14798 min_placed_memory_map_alignment: DeviceSize::default(),
14799 }
14800 }
14801}
14802
14803#[repr(C)]
14805#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14806pub struct PhysicalDeviceMemoryBudgetPropertiesEXT {
14807 pub s_type: StructureType,
14808 pub next: *mut c_void,
14809 pub heap_budget: [DeviceSize; MAX_MEMORY_HEAPS],
14810 pub heap_usage: [DeviceSize; MAX_MEMORY_HEAPS],
14811}
14812
14813impl Default for PhysicalDeviceMemoryBudgetPropertiesEXT {
14814 #[inline]
14815 fn default() -> Self {
14816 Self {
14817 s_type: StructureType::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
14818 next: ptr::null_mut(),
14819 heap_budget: [DeviceSize::default(); MAX_MEMORY_HEAPS],
14820 heap_usage: [DeviceSize::default(); MAX_MEMORY_HEAPS],
14821 }
14822 }
14823}
14824
14825#[repr(C)]
14827#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14828pub struct PhysicalDeviceMemoryDecompressionFeaturesNV {
14829 pub s_type: StructureType,
14830 pub next: *mut c_void,
14831 pub memory_decompression: Bool32,
14832}
14833
14834impl Default for PhysicalDeviceMemoryDecompressionFeaturesNV {
14835 #[inline]
14836 fn default() -> Self {
14837 Self {
14838 s_type: StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV,
14839 next: ptr::null_mut(),
14840 memory_decompression: Bool32::default(),
14841 }
14842 }
14843}
14844
14845#[repr(C)]
14847#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14848pub struct PhysicalDeviceMemoryDecompressionPropertiesNV {
14849 pub s_type: StructureType,
14850 pub next: *mut c_void,
14851 pub decompression_methods: MemoryDecompressionMethodFlagsNV,
14852 pub max_decompression_indirect_count: u64,
14853}
14854
14855impl Default for PhysicalDeviceMemoryDecompressionPropertiesNV {
14856 #[inline]
14857 fn default() -> Self {
14858 Self {
14859 s_type: StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV,
14860 next: ptr::null_mut(),
14861 decompression_methods: MemoryDecompressionMethodFlagsNV::default(),
14862 max_decompression_indirect_count: u64::default(),
14863 }
14864 }
14865}
14866
14867#[repr(C)]
14869#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14870pub struct PhysicalDeviceMemoryPriorityFeaturesEXT {
14871 pub s_type: StructureType,
14872 pub next: *mut c_void,
14873 pub memory_priority: Bool32,
14874}
14875
14876impl Default for PhysicalDeviceMemoryPriorityFeaturesEXT {
14877 #[inline]
14878 fn default() -> Self {
14879 Self {
14880 s_type: StructureType::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
14881 next: ptr::null_mut(),
14882 memory_priority: Bool32::default(),
14883 }
14884 }
14885}
14886
14887#[repr(C)]
14889#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
14890pub struct PhysicalDeviceMemoryProperties {
14891 pub memory_type_count: u32,
14892 pub memory_types: [MemoryType; MAX_MEMORY_TYPES],
14893 pub memory_heap_count: u32,
14894 pub memory_heaps: [MemoryHeap; MAX_MEMORY_HEAPS],
14895}
14896
14897#[repr(C)]
14899#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14900pub struct PhysicalDeviceMemoryProperties2 {
14901 pub s_type: StructureType,
14902 pub next: *mut c_void,
14903 pub memory_properties: PhysicalDeviceMemoryProperties,
14904}
14905
14906impl Default for PhysicalDeviceMemoryProperties2 {
14907 #[inline]
14908 fn default() -> Self {
14909 Self {
14910 s_type: StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
14911 next: ptr::null_mut(),
14912 memory_properties: PhysicalDeviceMemoryProperties::default(),
14913 }
14914 }
14915}
14916
14917#[repr(C)]
14919#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14920pub struct PhysicalDeviceMeshShaderFeaturesEXT {
14921 pub s_type: StructureType,
14922 pub next: *mut c_void,
14923 pub task_shader: Bool32,
14924 pub mesh_shader: Bool32,
14925 pub multiview_mesh_shader: Bool32,
14926 pub primitive_fragment_shading_rate_mesh_shader: Bool32,
14927 pub mesh_shader_queries: Bool32,
14928}
14929
14930impl Default for PhysicalDeviceMeshShaderFeaturesEXT {
14931 #[inline]
14932 fn default() -> Self {
14933 Self {
14934 s_type: StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,
14935 next: ptr::null_mut(),
14936 task_shader: Bool32::default(),
14937 mesh_shader: Bool32::default(),
14938 multiview_mesh_shader: Bool32::default(),
14939 primitive_fragment_shading_rate_mesh_shader: Bool32::default(),
14940 mesh_shader_queries: Bool32::default(),
14941 }
14942 }
14943}
14944
14945#[repr(C)]
14947#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14948pub struct PhysicalDeviceMeshShaderFeaturesNV {
14949 pub s_type: StructureType,
14950 pub next: *mut c_void,
14951 pub task_shader: Bool32,
14952 pub mesh_shader: Bool32,
14953}
14954
14955impl Default for PhysicalDeviceMeshShaderFeaturesNV {
14956 #[inline]
14957 fn default() -> Self {
14958 Self {
14959 s_type: StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
14960 next: ptr::null_mut(),
14961 task_shader: Bool32::default(),
14962 mesh_shader: Bool32::default(),
14963 }
14964 }
14965}
14966
14967#[repr(C)]
14969#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
14970pub struct PhysicalDeviceMeshShaderPropertiesEXT {
14971 pub s_type: StructureType,
14972 pub next: *mut c_void,
14973 pub max_task_work_group_total_count: u32,
14974 pub max_task_work_group_count: [u32; 3],
14975 pub max_task_work_group_invocations: u32,
14976 pub max_task_work_group_size: [u32; 3],
14977 pub max_task_payload_size: u32,
14978 pub max_task_shared_memory_size: u32,
14979 pub max_task_payload_and_shared_memory_size: u32,
14980 pub max_mesh_work_group_total_count: u32,
14981 pub max_mesh_work_group_count: [u32; 3],
14982 pub max_mesh_work_group_invocations: u32,
14983 pub max_mesh_work_group_size: [u32; 3],
14984 pub max_mesh_shared_memory_size: u32,
14985 pub max_mesh_payload_and_shared_memory_size: u32,
14986 pub max_mesh_output_memory_size: u32,
14987 pub max_mesh_payload_and_output_memory_size: u32,
14988 pub max_mesh_output_components: u32,
14989 pub max_mesh_output_vertices: u32,
14990 pub max_mesh_output_primitives: u32,
14991 pub max_mesh_output_layers: u32,
14992 pub max_mesh_multiview_view_count: u32,
14993 pub mesh_output_per_vertex_granularity: u32,
14994 pub mesh_output_per_primitive_granularity: u32,
14995 pub max_preferred_task_work_group_invocations: u32,
14996 pub max_preferred_mesh_work_group_invocations: u32,
14997 pub prefers_local_invocation_vertex_output: Bool32,
14998 pub prefers_local_invocation_primitive_output: Bool32,
14999 pub prefers_compact_vertex_output: Bool32,
15000 pub prefers_compact_primitive_output: Bool32,
15001}
15002
15003impl Default for PhysicalDeviceMeshShaderPropertiesEXT {
15004 #[inline]
15005 fn default() -> Self {
15006 Self {
15007 s_type: StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,
15008 next: ptr::null_mut(),
15009 max_task_work_group_total_count: u32::default(),
15010 max_task_work_group_count: [u32::default(); 3],
15011 max_task_work_group_invocations: u32::default(),
15012 max_task_work_group_size: [u32::default(); 3],
15013 max_task_payload_size: u32::default(),
15014 max_task_shared_memory_size: u32::default(),
15015 max_task_payload_and_shared_memory_size: u32::default(),
15016 max_mesh_work_group_total_count: u32::default(),
15017 max_mesh_work_group_count: [u32::default(); 3],
15018 max_mesh_work_group_invocations: u32::default(),
15019 max_mesh_work_group_size: [u32::default(); 3],
15020 max_mesh_shared_memory_size: u32::default(),
15021 max_mesh_payload_and_shared_memory_size: u32::default(),
15022 max_mesh_output_memory_size: u32::default(),
15023 max_mesh_payload_and_output_memory_size: u32::default(),
15024 max_mesh_output_components: u32::default(),
15025 max_mesh_output_vertices: u32::default(),
15026 max_mesh_output_primitives: u32::default(),
15027 max_mesh_output_layers: u32::default(),
15028 max_mesh_multiview_view_count: u32::default(),
15029 mesh_output_per_vertex_granularity: u32::default(),
15030 mesh_output_per_primitive_granularity: u32::default(),
15031 max_preferred_task_work_group_invocations: u32::default(),
15032 max_preferred_mesh_work_group_invocations: u32::default(),
15033 prefers_local_invocation_vertex_output: Bool32::default(),
15034 prefers_local_invocation_primitive_output: Bool32::default(),
15035 prefers_compact_vertex_output: Bool32::default(),
15036 prefers_compact_primitive_output: Bool32::default(),
15037 }
15038 }
15039}
15040
15041#[repr(C)]
15043#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15044pub struct PhysicalDeviceMeshShaderPropertiesNV {
15045 pub s_type: StructureType,
15046 pub next: *mut c_void,
15047 pub max_draw_mesh_tasks_count: u32,
15048 pub max_task_work_group_invocations: u32,
15049 pub max_task_work_group_size: [u32; 3],
15050 pub max_task_total_memory_size: u32,
15051 pub max_task_output_count: u32,
15052 pub max_mesh_work_group_invocations: u32,
15053 pub max_mesh_work_group_size: [u32; 3],
15054 pub max_mesh_total_memory_size: u32,
15055 pub max_mesh_output_vertices: u32,
15056 pub max_mesh_output_primitives: u32,
15057 pub max_mesh_multiview_view_count: u32,
15058 pub mesh_output_per_vertex_granularity: u32,
15059 pub mesh_output_per_primitive_granularity: u32,
15060}
15061
15062impl Default for PhysicalDeviceMeshShaderPropertiesNV {
15063 #[inline]
15064 fn default() -> Self {
15065 Self {
15066 s_type: StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
15067 next: ptr::null_mut(),
15068 max_draw_mesh_tasks_count: u32::default(),
15069 max_task_work_group_invocations: u32::default(),
15070 max_task_work_group_size: [u32::default(); 3],
15071 max_task_total_memory_size: u32::default(),
15072 max_task_output_count: u32::default(),
15073 max_mesh_work_group_invocations: u32::default(),
15074 max_mesh_work_group_size: [u32::default(); 3],
15075 max_mesh_total_memory_size: u32::default(),
15076 max_mesh_output_vertices: u32::default(),
15077 max_mesh_output_primitives: u32::default(),
15078 max_mesh_multiview_view_count: u32::default(),
15079 mesh_output_per_vertex_granularity: u32::default(),
15080 mesh_output_per_primitive_granularity: u32::default(),
15081 }
15082 }
15083}
15084
15085#[repr(C)]
15087#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15088pub struct PhysicalDeviceMultiDrawFeaturesEXT {
15089 pub s_type: StructureType,
15090 pub next: *mut c_void,
15091 pub multi_draw: Bool32,
15092}
15093
15094impl Default for PhysicalDeviceMultiDrawFeaturesEXT {
15095 #[inline]
15096 fn default() -> Self {
15097 Self {
15098 s_type: StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
15099 next: ptr::null_mut(),
15100 multi_draw: Bool32::default(),
15101 }
15102 }
15103}
15104
15105#[repr(C)]
15107#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15108pub struct PhysicalDeviceMultiDrawPropertiesEXT {
15109 pub s_type: StructureType,
15110 pub next: *mut c_void,
15111 pub max_multi_draw_count: u32,
15112}
15113
15114impl Default for PhysicalDeviceMultiDrawPropertiesEXT {
15115 #[inline]
15116 fn default() -> Self {
15117 Self {
15118 s_type: StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
15119 next: ptr::null_mut(),
15120 max_multi_draw_count: u32::default(),
15121 }
15122 }
15123}
15124
15125#[repr(C)]
15127#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15128pub struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
15129 pub s_type: StructureType,
15130 pub next: *mut c_void,
15131 pub multisampled_render_to_single_sampled: Bool32,
15132}
15133
15134impl Default for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
15135 #[inline]
15136 fn default() -> Self {
15137 Self {
15138 s_type:
15139 StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT,
15140 next: ptr::null_mut(),
15141 multisampled_render_to_single_sampled: Bool32::default(),
15142 }
15143 }
15144}
15145
15146#[repr(C)]
15148#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15149pub struct PhysicalDeviceMultiviewFeatures {
15150 pub s_type: StructureType,
15151 pub next: *mut c_void,
15152 pub multiview: Bool32,
15153 pub multiview_geometry_shader: Bool32,
15154 pub multiview_tessellation_shader: Bool32,
15155}
15156
15157impl Default for PhysicalDeviceMultiviewFeatures {
15158 #[inline]
15159 fn default() -> Self {
15160 Self {
15161 s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
15162 next: ptr::null_mut(),
15163 multiview: Bool32::default(),
15164 multiview_geometry_shader: Bool32::default(),
15165 multiview_tessellation_shader: Bool32::default(),
15166 }
15167 }
15168}
15169
15170#[repr(C)]
15172#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15173pub struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
15174 pub s_type: StructureType,
15175 pub next: *mut c_void,
15176 pub per_view_position_all_components: Bool32,
15177}
15178
15179impl Default for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
15180 #[inline]
15181 fn default() -> Self {
15182 Self {
15183 s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
15184 next: ptr::null_mut(),
15185 per_view_position_all_components: Bool32::default(),
15186 }
15187 }
15188}
15189
15190#[repr(C)]
15192#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15193pub struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
15194 pub s_type: StructureType,
15195 pub next: *mut c_void,
15196 pub multiview_per_view_render_areas: Bool32,
15197}
15198
15199impl Default for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
15200 #[inline]
15201 fn default() -> Self {
15202 Self {
15203 s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM,
15204 next: ptr::null_mut(),
15205 multiview_per_view_render_areas: Bool32::default(),
15206 }
15207 }
15208}
15209
15210#[repr(C)]
15212#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15213pub struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
15214 pub s_type: StructureType,
15215 pub next: *mut c_void,
15216 pub multiview_per_view_viewports: Bool32,
15217}
15218
15219impl Default for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
15220 #[inline]
15221 fn default() -> Self {
15222 Self {
15223 s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM,
15224 next: ptr::null_mut(),
15225 multiview_per_view_viewports: Bool32::default(),
15226 }
15227 }
15228}
15229
15230#[repr(C)]
15232#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15233pub struct PhysicalDeviceMultiviewProperties {
15234 pub s_type: StructureType,
15235 pub next: *mut c_void,
15236 pub max_multiview_view_count: u32,
15237 pub max_multiview_instance_index: u32,
15238}
15239
15240impl Default for PhysicalDeviceMultiviewProperties {
15241 #[inline]
15242 fn default() -> Self {
15243 Self {
15244 s_type: StructureType::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
15245 next: ptr::null_mut(),
15246 max_multiview_view_count: u32::default(),
15247 max_multiview_instance_index: u32::default(),
15248 }
15249 }
15250}
15251
15252#[repr(C)]
15254#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15255pub struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
15256 pub s_type: StructureType,
15257 pub next: *mut c_void,
15258 pub mutable_descriptor_type: Bool32,
15259}
15260
15261impl Default for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
15262 #[inline]
15263 fn default() -> Self {
15264 Self {
15265 s_type: StructureType::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
15266 next: ptr::null_mut(),
15267 mutable_descriptor_type: Bool32::default(),
15268 }
15269 }
15270}
15271
15272#[repr(C)]
15274#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15275pub struct PhysicalDeviceNestedCommandBufferFeaturesEXT {
15276 pub s_type: StructureType,
15277 pub next: *mut c_void,
15278 pub nested_command_buffer: Bool32,
15279 pub nested_command_buffer_rendering: Bool32,
15280 pub nested_command_buffer_simultaneous_use: Bool32,
15281}
15282
15283impl Default for PhysicalDeviceNestedCommandBufferFeaturesEXT {
15284 #[inline]
15285 fn default() -> Self {
15286 Self {
15287 s_type: StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT,
15288 next: ptr::null_mut(),
15289 nested_command_buffer: Bool32::default(),
15290 nested_command_buffer_rendering: Bool32::default(),
15291 nested_command_buffer_simultaneous_use: Bool32::default(),
15292 }
15293 }
15294}
15295
15296#[repr(C)]
15298#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15299pub struct PhysicalDeviceNestedCommandBufferPropertiesEXT {
15300 pub s_type: StructureType,
15301 pub next: *mut c_void,
15302 pub max_command_buffer_nesting_level: u32,
15303}
15304
15305impl Default for PhysicalDeviceNestedCommandBufferPropertiesEXT {
15306 #[inline]
15307 fn default() -> Self {
15308 Self {
15309 s_type: StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT,
15310 next: ptr::null_mut(),
15311 max_command_buffer_nesting_level: u32::default(),
15312 }
15313 }
15314}
15315
15316#[repr(C)]
15318#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15319pub struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
15320 pub s_type: StructureType,
15321 pub next: *mut c_void,
15322 pub non_seamless_cube_map: Bool32,
15323}
15324
15325impl Default for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
15326 #[inline]
15327 fn default() -> Self {
15328 Self {
15329 s_type: StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT,
15330 next: ptr::null_mut(),
15331 non_seamless_cube_map: Bool32::default(),
15332 }
15333 }
15334}
15335
15336#[repr(C)]
15338#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15339pub struct PhysicalDeviceOpacityMicromapFeaturesEXT {
15340 pub s_type: StructureType,
15341 pub next: *mut c_void,
15342 pub micromap: Bool32,
15343 pub micromap_capture_replay: Bool32,
15344 pub micromap_host_commands: Bool32,
15345}
15346
15347impl Default for PhysicalDeviceOpacityMicromapFeaturesEXT {
15348 #[inline]
15349 fn default() -> Self {
15350 Self {
15351 s_type: StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT,
15352 next: ptr::null_mut(),
15353 micromap: Bool32::default(),
15354 micromap_capture_replay: Bool32::default(),
15355 micromap_host_commands: Bool32::default(),
15356 }
15357 }
15358}
15359
15360#[repr(C)]
15362#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15363pub struct PhysicalDeviceOpacityMicromapPropertiesEXT {
15364 pub s_type: StructureType,
15365 pub next: *mut c_void,
15366 pub max_opacity2_state_subdivision_level: u32,
15367 pub max_opacity4_state_subdivision_level: u32,
15368}
15369
15370impl Default for PhysicalDeviceOpacityMicromapPropertiesEXT {
15371 #[inline]
15372 fn default() -> Self {
15373 Self {
15374 s_type: StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT,
15375 next: ptr::null_mut(),
15376 max_opacity2_state_subdivision_level: u32::default(),
15377 max_opacity4_state_subdivision_level: u32::default(),
15378 }
15379 }
15380}
15381
15382#[repr(C)]
15384#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15385pub struct PhysicalDeviceOpticalFlowFeaturesNV {
15386 pub s_type: StructureType,
15387 pub next: *mut c_void,
15388 pub optical_flow: Bool32,
15389}
15390
15391impl Default for PhysicalDeviceOpticalFlowFeaturesNV {
15392 #[inline]
15393 fn default() -> Self {
15394 Self {
15395 s_type: StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV,
15396 next: ptr::null_mut(),
15397 optical_flow: Bool32::default(),
15398 }
15399 }
15400}
15401
15402#[repr(C)]
15404#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15405pub struct PhysicalDeviceOpticalFlowPropertiesNV {
15406 pub s_type: StructureType,
15407 pub next: *mut c_void,
15408 pub supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV,
15409 pub supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV,
15410 pub hint_supported: Bool32,
15411 pub cost_supported: Bool32,
15412 pub bidirectional_flow_supported: Bool32,
15413 pub global_flow_supported: Bool32,
15414 pub min_width: u32,
15415 pub min_height: u32,
15416 pub max_width: u32,
15417 pub max_height: u32,
15418 pub max_num_regions_of_interest: u32,
15419}
15420
15421impl Default for PhysicalDeviceOpticalFlowPropertiesNV {
15422 #[inline]
15423 fn default() -> Self {
15424 Self {
15425 s_type: StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV,
15426 next: ptr::null_mut(),
15427 supported_output_grid_sizes: OpticalFlowGridSizeFlagsNV::default(),
15428 supported_hint_grid_sizes: OpticalFlowGridSizeFlagsNV::default(),
15429 hint_supported: Bool32::default(),
15430 cost_supported: Bool32::default(),
15431 bidirectional_flow_supported: Bool32::default(),
15432 global_flow_supported: Bool32::default(),
15433 min_width: u32::default(),
15434 min_height: u32::default(),
15435 max_width: u32::default(),
15436 max_height: u32::default(),
15437 max_num_regions_of_interest: u32::default(),
15438 }
15439 }
15440}
15441
15442#[repr(C)]
15444#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15445pub struct PhysicalDevicePCIBusInfoPropertiesEXT {
15446 pub s_type: StructureType,
15447 pub next: *mut c_void,
15448 pub pci_domain: u32,
15449 pub pci_bus: u32,
15450 pub pci_device: u32,
15451 pub pci_function: u32,
15452}
15453
15454impl Default for PhysicalDevicePCIBusInfoPropertiesEXT {
15455 #[inline]
15456 fn default() -> Self {
15457 Self {
15458 s_type: StructureType::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
15459 next: ptr::null_mut(),
15460 pci_domain: u32::default(),
15461 pci_bus: u32::default(),
15462 pci_device: u32::default(),
15463 pci_function: u32::default(),
15464 }
15465 }
15466}
15467
15468#[repr(C)]
15470#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15471pub struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
15472 pub s_type: StructureType,
15473 pub next: *mut c_void,
15474 pub pageable_device_local_memory: Bool32,
15475}
15476
15477impl Default for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
15478 #[inline]
15479 fn default() -> Self {
15480 Self {
15481 s_type: StructureType::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,
15482 next: ptr::null_mut(),
15483 pageable_device_local_memory: Bool32::default(),
15484 }
15485 }
15486}
15487
15488#[repr(C)]
15490#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15491pub struct PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
15492 pub s_type: StructureType,
15493 pub next: *mut c_void,
15494 pub partitioned_acceleration_structure: Bool32,
15495}
15496
15497impl Default for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
15498 #[inline]
15499 fn default() -> Self {
15500 Self {
15501 s_type: StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV,
15502 next: ptr::null_mut(),
15503 partitioned_acceleration_structure: Bool32::default(),
15504 }
15505 }
15506}
15507
15508#[repr(C)]
15510#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15511pub struct PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
15512 pub s_type: StructureType,
15513 pub next: *mut c_void,
15514 pub max_partition_count: u32,
15515}
15516
15517impl Default for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
15518 #[inline]
15519 fn default() -> Self {
15520 Self {
15521 s_type: StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV,
15522 next: ptr::null_mut(),
15523 max_partition_count: u32::default(),
15524 }
15525 }
15526}
15527
15528#[repr(C)]
15530#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15531pub struct PhysicalDevicePerStageDescriptorSetFeaturesNV {
15532 pub s_type: StructureType,
15533 pub next: *mut c_void,
15534 pub per_stage_descriptor_set: Bool32,
15535 pub dynamic_pipeline_layout: Bool32,
15536}
15537
15538impl Default for PhysicalDevicePerStageDescriptorSetFeaturesNV {
15539 #[inline]
15540 fn default() -> Self {
15541 Self {
15542 s_type: StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV,
15543 next: ptr::null_mut(),
15544 per_stage_descriptor_set: Bool32::default(),
15545 dynamic_pipeline_layout: Bool32::default(),
15546 }
15547 }
15548}
15549
15550#[repr(C)]
15552#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15553pub struct PhysicalDevicePerformanceQueryFeaturesKHR {
15554 pub s_type: StructureType,
15555 pub next: *mut c_void,
15556 pub performance_counter_query_pools: Bool32,
15557 pub performance_counter_multiple_query_pools: Bool32,
15558}
15559
15560impl Default for PhysicalDevicePerformanceQueryFeaturesKHR {
15561 #[inline]
15562 fn default() -> Self {
15563 Self {
15564 s_type: StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
15565 next: ptr::null_mut(),
15566 performance_counter_query_pools: Bool32::default(),
15567 performance_counter_multiple_query_pools: Bool32::default(),
15568 }
15569 }
15570}
15571
15572#[repr(C)]
15574#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15575pub struct PhysicalDevicePerformanceQueryPropertiesKHR {
15576 pub s_type: StructureType,
15577 pub next: *mut c_void,
15578 pub allow_command_buffer_query_copies: Bool32,
15579}
15580
15581impl Default for PhysicalDevicePerformanceQueryPropertiesKHR {
15582 #[inline]
15583 fn default() -> Self {
15584 Self {
15585 s_type: StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
15586 next: ptr::null_mut(),
15587 allow_command_buffer_query_copies: Bool32::default(),
15588 }
15589 }
15590}
15591
15592#[repr(C)]
15594#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15595pub struct PhysicalDevicePipelineBinaryFeaturesKHR {
15596 pub s_type: StructureType,
15597 pub next: *mut c_void,
15598 pub pipeline_binaries: Bool32,
15599}
15600
15601impl Default for PhysicalDevicePipelineBinaryFeaturesKHR {
15602 #[inline]
15603 fn default() -> Self {
15604 Self {
15605 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR,
15606 next: ptr::null_mut(),
15607 pipeline_binaries: Bool32::default(),
15608 }
15609 }
15610}
15611
15612#[repr(C)]
15614#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15615pub struct PhysicalDevicePipelineBinaryPropertiesKHR {
15616 pub s_type: StructureType,
15617 pub next: *mut c_void,
15618 pub pipeline_binary_internal_cache: Bool32,
15619 pub pipeline_binary_internal_cache_control: Bool32,
15620 pub pipeline_binary_prefers_internal_cache: Bool32,
15621 pub pipeline_binary_precompiled_internal_cache: Bool32,
15622 pub pipeline_binary_compressed_data: Bool32,
15623}
15624
15625impl Default for PhysicalDevicePipelineBinaryPropertiesKHR {
15626 #[inline]
15627 fn default() -> Self {
15628 Self {
15629 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR,
15630 next: ptr::null_mut(),
15631 pipeline_binary_internal_cache: Bool32::default(),
15632 pipeline_binary_internal_cache_control: Bool32::default(),
15633 pipeline_binary_prefers_internal_cache: Bool32::default(),
15634 pipeline_binary_precompiled_internal_cache: Bool32::default(),
15635 pipeline_binary_compressed_data: Bool32::default(),
15636 }
15637 }
15638}
15639
15640#[repr(C)]
15642#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15643pub struct PhysicalDevicePipelineCreationCacheControlFeatures {
15644 pub s_type: StructureType,
15645 pub next: *mut c_void,
15646 pub pipeline_creation_cache_control: Bool32,
15647}
15648
15649impl Default for PhysicalDevicePipelineCreationCacheControlFeatures {
15650 #[inline]
15651 fn default() -> Self {
15652 Self {
15653 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
15654 next: ptr::null_mut(),
15655 pipeline_creation_cache_control: Bool32::default(),
15656 }
15657 }
15658}
15659
15660#[repr(C)]
15662#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15663pub struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
15664 pub s_type: StructureType,
15665 pub next: *mut c_void,
15666 pub pipeline_executable_info: Bool32,
15667}
15668
15669impl Default for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
15670 #[inline]
15671 fn default() -> Self {
15672 Self {
15673 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
15674 next: ptr::null_mut(),
15675 pipeline_executable_info: Bool32::default(),
15676 }
15677 }
15678}
15679
15680#[repr(C)]
15682#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15683pub struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
15684 pub s_type: StructureType,
15685 pub next: *mut c_void,
15686 pub pipeline_library_group_handles: Bool32,
15687}
15688
15689impl Default for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
15690 #[inline]
15691 fn default() -> Self {
15692 Self {
15693 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT,
15694 next: ptr::null_mut(),
15695 pipeline_library_group_handles: Bool32::default(),
15696 }
15697 }
15698}
15699
15700#[repr(C)]
15702#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15703pub struct PhysicalDevicePipelineOpacityMicromapFeaturesARM {
15704 pub s_type: StructureType,
15705 pub next: *mut c_void,
15706 pub pipeline_opacity_micromap: Bool32,
15707}
15708
15709impl Default for PhysicalDevicePipelineOpacityMicromapFeaturesARM {
15710 #[inline]
15711 fn default() -> Self {
15712 Self {
15713 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM,
15714 next: ptr::null_mut(),
15715 pipeline_opacity_micromap: Bool32::default(),
15716 }
15717 }
15718}
15719
15720#[repr(C)]
15722#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15723pub struct PhysicalDevicePipelinePropertiesFeaturesEXT {
15724 pub s_type: StructureType,
15725 pub next: *mut c_void,
15726 pub pipeline_properties_identifier: Bool32,
15727}
15728
15729impl Default for PhysicalDevicePipelinePropertiesFeaturesEXT {
15730 #[inline]
15731 fn default() -> Self {
15732 Self {
15733 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT,
15734 next: ptr::null_mut(),
15735 pipeline_properties_identifier: Bool32::default(),
15736 }
15737 }
15738}
15739
15740#[repr(C)]
15742#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15743pub struct PhysicalDevicePipelineProtectedAccessFeatures {
15744 pub s_type: StructureType,
15745 pub next: *mut c_void,
15746 pub pipeline_protected_access: Bool32,
15747}
15748
15749impl Default for PhysicalDevicePipelineProtectedAccessFeatures {
15750 #[inline]
15751 fn default() -> Self {
15752 Self {
15753 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
15754 next: ptr::null_mut(),
15755 pipeline_protected_access: Bool32::default(),
15756 }
15757 }
15758}
15759
15760#[repr(C)]
15762#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15763pub struct PhysicalDevicePipelineRobustnessFeatures {
15764 pub s_type: StructureType,
15765 pub next: *mut c_void,
15766 pub pipeline_robustness: Bool32,
15767}
15768
15769impl Default for PhysicalDevicePipelineRobustnessFeatures {
15770 #[inline]
15771 fn default() -> Self {
15772 Self {
15773 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
15774 next: ptr::null_mut(),
15775 pipeline_robustness: Bool32::default(),
15776 }
15777 }
15778}
15779
15780#[repr(C)]
15782#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15783pub struct PhysicalDevicePipelineRobustnessProperties {
15784 pub s_type: StructureType,
15785 pub next: *mut c_void,
15786 pub default_robustness_storage_buffers: PipelineRobustnessBufferBehavior,
15787 pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior,
15788 pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior,
15789 pub default_robustness_images: PipelineRobustnessImageBehavior,
15790}
15791
15792impl Default for PhysicalDevicePipelineRobustnessProperties {
15793 #[inline]
15794 fn default() -> Self {
15795 Self {
15796 s_type: StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
15797 next: ptr::null_mut(),
15798 default_robustness_storage_buffers: PipelineRobustnessBufferBehavior::default(),
15799 default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior::default(),
15800 default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior::default(),
15801 default_robustness_images: PipelineRobustnessImageBehavior::default(),
15802 }
15803 }
15804}
15805
15806#[repr(C)]
15808#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15809pub struct PhysicalDevicePointClippingProperties {
15810 pub s_type: StructureType,
15811 pub next: *mut c_void,
15812 pub point_clipping_behavior: PointClippingBehavior,
15813}
15814
15815impl Default for PhysicalDevicePointClippingProperties {
15816 #[inline]
15817 fn default() -> Self {
15818 Self {
15819 s_type: StructureType::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
15820 next: ptr::null_mut(),
15821 point_clipping_behavior: PointClippingBehavior::default(),
15822 }
15823 }
15824}
15825
15826#[repr(C)]
15828#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15829pub struct PhysicalDevicePortabilitySubsetFeaturesKHR {
15830 pub s_type: StructureType,
15831 pub next: *mut c_void,
15832 pub constant_alpha_color_blend_factors: Bool32,
15833 pub events: Bool32,
15834 pub image_view_format_reinterpretation: Bool32,
15835 pub image_view_format_swizzle: Bool32,
15836 pub image_view_2d_on_3d_image: Bool32,
15837 pub multisample_array_image: Bool32,
15838 pub mutable_comparison_samplers: Bool32,
15839 pub point_polygons: Bool32,
15840 pub sampler_mip_lod_bias: Bool32,
15841 pub separate_stencil_mask_ref: Bool32,
15842 pub shader_sample_rate_interpolation_functions: Bool32,
15843 pub tessellation_isolines: Bool32,
15844 pub tessellation_point_mode: Bool32,
15845 pub triangle_fans: Bool32,
15846 pub vertex_attribute_access_beyond_stride: Bool32,
15847}
15848
15849impl Default for PhysicalDevicePortabilitySubsetFeaturesKHR {
15850 #[inline]
15851 fn default() -> Self {
15852 Self {
15853 s_type: StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
15854 next: ptr::null_mut(),
15855 constant_alpha_color_blend_factors: Bool32::default(),
15856 events: Bool32::default(),
15857 image_view_format_reinterpretation: Bool32::default(),
15858 image_view_format_swizzle: Bool32::default(),
15859 image_view_2d_on_3d_image: Bool32::default(),
15860 multisample_array_image: Bool32::default(),
15861 mutable_comparison_samplers: Bool32::default(),
15862 point_polygons: Bool32::default(),
15863 sampler_mip_lod_bias: Bool32::default(),
15864 separate_stencil_mask_ref: Bool32::default(),
15865 shader_sample_rate_interpolation_functions: Bool32::default(),
15866 tessellation_isolines: Bool32::default(),
15867 tessellation_point_mode: Bool32::default(),
15868 triangle_fans: Bool32::default(),
15869 vertex_attribute_access_beyond_stride: Bool32::default(),
15870 }
15871 }
15872}
15873
15874#[repr(C)]
15876#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15877pub struct PhysicalDevicePortabilitySubsetPropertiesKHR {
15878 pub s_type: StructureType,
15879 pub next: *mut c_void,
15880 pub min_vertex_input_binding_stride_alignment: u32,
15881}
15882
15883impl Default for PhysicalDevicePortabilitySubsetPropertiesKHR {
15884 #[inline]
15885 fn default() -> Self {
15886 Self {
15887 s_type: StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
15888 next: ptr::null_mut(),
15889 min_vertex_input_binding_stride_alignment: u32::default(),
15890 }
15891 }
15892}
15893
15894#[repr(C)]
15896#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15897pub struct PhysicalDevicePresentBarrierFeaturesNV {
15898 pub s_type: StructureType,
15899 pub next: *mut c_void,
15900 pub present_barrier: Bool32,
15901}
15902
15903impl Default for PhysicalDevicePresentBarrierFeaturesNV {
15904 #[inline]
15905 fn default() -> Self {
15906 Self {
15907 s_type: StructureType::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV,
15908 next: ptr::null_mut(),
15909 present_barrier: Bool32::default(),
15910 }
15911 }
15912}
15913
15914#[repr(C)]
15916#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15917pub struct PhysicalDevicePresentIdFeaturesKHR {
15918 pub s_type: StructureType,
15919 pub next: *mut c_void,
15920 pub present_id: Bool32,
15921}
15922
15923impl Default for PhysicalDevicePresentIdFeaturesKHR {
15924 #[inline]
15925 fn default() -> Self {
15926 Self {
15927 s_type: StructureType::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
15928 next: ptr::null_mut(),
15929 present_id: Bool32::default(),
15930 }
15931 }
15932}
15933
15934#[repr(C)]
15936#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15937pub struct PhysicalDevicePresentMeteringFeaturesNV {
15938 pub s_type: StructureType,
15939 pub next: *mut c_void,
15940 pub present_metering: Bool32,
15941}
15942
15943impl Default for PhysicalDevicePresentMeteringFeaturesNV {
15944 #[inline]
15945 fn default() -> Self {
15946 Self {
15947 s_type: StructureType::PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV,
15948 next: ptr::null_mut(),
15949 present_metering: Bool32::default(),
15950 }
15951 }
15952}
15953
15954#[repr(C)]
15956#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15957pub struct PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT {
15958 pub s_type: StructureType,
15959 pub next: *mut c_void,
15960 pub present_mode_fifo_latest_ready: Bool32,
15961}
15962
15963impl Default for PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT {
15964 #[inline]
15965 fn default() -> Self {
15966 Self {
15967 s_type: StructureType::PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT,
15968 next: ptr::null_mut(),
15969 present_mode_fifo_latest_ready: Bool32::default(),
15970 }
15971 }
15972}
15973
15974#[repr(C)]
15976#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15977pub struct PhysicalDevicePresentWaitFeaturesKHR {
15978 pub s_type: StructureType,
15979 pub next: *mut c_void,
15980 pub present_wait: Bool32,
15981}
15982
15983impl Default for PhysicalDevicePresentWaitFeaturesKHR {
15984 #[inline]
15985 fn default() -> Self {
15986 Self {
15987 s_type: StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
15988 next: ptr::null_mut(),
15989 present_wait: Bool32::default(),
15990 }
15991 }
15992}
15993
15994#[repr(C)]
15996#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
15997pub struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
15998 pub s_type: StructureType,
15999 pub next: *mut c_void,
16000 pub primitive_topology_list_restart: Bool32,
16001 pub primitive_topology_patch_list_restart: Bool32,
16002}
16003
16004impl Default for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
16005 #[inline]
16006 fn default() -> Self {
16007 Self {
16008 s_type: StructureType::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
16009 next: ptr::null_mut(),
16010 primitive_topology_list_restart: Bool32::default(),
16011 primitive_topology_patch_list_restart: Bool32::default(),
16012 }
16013 }
16014}
16015
16016#[repr(C)]
16018#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16019pub struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
16020 pub s_type: StructureType,
16021 pub next: *mut c_void,
16022 pub primitives_generated_query: Bool32,
16023 pub primitives_generated_query_with_rasterizer_discard: Bool32,
16024 pub primitives_generated_query_with_non_zero_streams: Bool32,
16025}
16026
16027impl Default for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
16028 #[inline]
16029 fn default() -> Self {
16030 Self {
16031 s_type: StructureType::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT,
16032 next: ptr::null_mut(),
16033 primitives_generated_query: Bool32::default(),
16034 primitives_generated_query_with_rasterizer_discard: Bool32::default(),
16035 primitives_generated_query_with_non_zero_streams: Bool32::default(),
16036 }
16037 }
16038}
16039
16040#[repr(C)]
16042#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16043pub struct PhysicalDevicePrivateDataFeatures {
16044 pub s_type: StructureType,
16045 pub next: *mut c_void,
16046 pub private_data: Bool32,
16047}
16048
16049impl Default for PhysicalDevicePrivateDataFeatures {
16050 #[inline]
16051 fn default() -> Self {
16052 Self {
16053 s_type: StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
16054 next: ptr::null_mut(),
16055 private_data: Bool32::default(),
16056 }
16057 }
16058}
16059
16060#[repr(C)]
16062#[derive(Copy, Clone, Default, Debug, PartialEq)]
16063pub struct PhysicalDeviceProperties {
16064 pub api_version: u32,
16065 pub driver_version: u32,
16066 pub vendor_id: u32,
16067 pub device_id: u32,
16068 pub device_type: PhysicalDeviceType,
16069 pub device_name: StringArray<MAX_PHYSICAL_DEVICE_NAME_SIZE>,
16070 pub pipeline_cache_uuid: ByteArray<UUID_SIZE>,
16071 pub limits: PhysicalDeviceLimits,
16072 pub sparse_properties: PhysicalDeviceSparseProperties,
16073}
16074
16075#[repr(C)]
16077#[derive(Copy, Clone, Debug, PartialEq)]
16078pub struct PhysicalDeviceProperties2 {
16079 pub s_type: StructureType,
16080 pub next: *mut c_void,
16081 pub properties: PhysicalDeviceProperties,
16082}
16083
16084impl Default for PhysicalDeviceProperties2 {
16085 #[inline]
16086 fn default() -> Self {
16087 Self {
16088 s_type: StructureType::PHYSICAL_DEVICE_PROPERTIES_2,
16089 next: ptr::null_mut(),
16090 properties: PhysicalDeviceProperties::default(),
16091 }
16092 }
16093}
16094
16095#[repr(C)]
16097#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16098pub struct PhysicalDeviceProtectedMemoryFeatures {
16099 pub s_type: StructureType,
16100 pub next: *mut c_void,
16101 pub protected_memory: Bool32,
16102}
16103
16104impl Default for PhysicalDeviceProtectedMemoryFeatures {
16105 #[inline]
16106 fn default() -> Self {
16107 Self {
16108 s_type: StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
16109 next: ptr::null_mut(),
16110 protected_memory: Bool32::default(),
16111 }
16112 }
16113}
16114
16115#[repr(C)]
16117#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16118pub struct PhysicalDeviceProtectedMemoryProperties {
16119 pub s_type: StructureType,
16120 pub next: *mut c_void,
16121 pub protected_no_fault: Bool32,
16122}
16123
16124impl Default for PhysicalDeviceProtectedMemoryProperties {
16125 #[inline]
16126 fn default() -> Self {
16127 Self {
16128 s_type: StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
16129 next: ptr::null_mut(),
16130 protected_no_fault: Bool32::default(),
16131 }
16132 }
16133}
16134
16135#[repr(C)]
16137#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16138pub struct PhysicalDeviceProvokingVertexFeaturesEXT {
16139 pub s_type: StructureType,
16140 pub next: *mut c_void,
16141 pub provoking_vertex_last: Bool32,
16142 pub transform_feedback_preserves_provoking_vertex: Bool32,
16143}
16144
16145impl Default for PhysicalDeviceProvokingVertexFeaturesEXT {
16146 #[inline]
16147 fn default() -> Self {
16148 Self {
16149 s_type: StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
16150 next: ptr::null_mut(),
16151 provoking_vertex_last: Bool32::default(),
16152 transform_feedback_preserves_provoking_vertex: Bool32::default(),
16153 }
16154 }
16155}
16156
16157#[repr(C)]
16159#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16160pub struct PhysicalDeviceProvokingVertexPropertiesEXT {
16161 pub s_type: StructureType,
16162 pub next: *mut c_void,
16163 pub provoking_vertex_mode_per_pipeline: Bool32,
16164 pub transform_feedback_preserves_triangle_fan_provoking_vertex: Bool32,
16165}
16166
16167impl Default for PhysicalDeviceProvokingVertexPropertiesEXT {
16168 #[inline]
16169 fn default() -> Self {
16170 Self {
16171 s_type: StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
16172 next: ptr::null_mut(),
16173 provoking_vertex_mode_per_pipeline: Bool32::default(),
16174 transform_feedback_preserves_triangle_fan_provoking_vertex: Bool32::default(),
16175 }
16176 }
16177}
16178
16179#[repr(C)]
16181#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16182pub struct PhysicalDevicePushDescriptorProperties {
16183 pub s_type: StructureType,
16184 pub next: *mut c_void,
16185 pub max_push_descriptors: u32,
16186}
16187
16188impl Default for PhysicalDevicePushDescriptorProperties {
16189 #[inline]
16190 fn default() -> Self {
16191 Self {
16192 s_type: StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
16193 next: ptr::null_mut(),
16194 max_push_descriptors: u32::default(),
16195 }
16196 }
16197}
16198
16199#[repr(C)]
16201#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16202pub struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
16203 pub s_type: StructureType,
16204 pub next: *mut c_void,
16205 pub format_rgba10x6_without_y_cb_cr_sampler: Bool32,
16206}
16207
16208impl Default for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
16209 #[inline]
16210 fn default() -> Self {
16211 Self {
16212 s_type: StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
16213 next: ptr::null_mut(),
16214 format_rgba10x6_without_y_cb_cr_sampler: Bool32::default(),
16215 }
16216 }
16217}
16218
16219#[repr(C)]
16221#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16222pub struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
16223 pub s_type: StructureType,
16224 pub next: *mut c_void,
16225 pub rasterization_order_color_attachment_access: Bool32,
16226 pub rasterization_order_depth_attachment_access: Bool32,
16227 pub rasterization_order_stencil_attachment_access: Bool32,
16228}
16229
16230impl Default for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
16231 #[inline]
16232 fn default() -> Self {
16233 Self {
16234 s_type:
16235 StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
16236 next: ptr::null_mut(),
16237 rasterization_order_color_attachment_access: Bool32::default(),
16238 rasterization_order_depth_attachment_access: Bool32::default(),
16239 rasterization_order_stencil_attachment_access: Bool32::default(),
16240 }
16241 }
16242}
16243
16244#[repr(C)]
16246#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16247pub struct PhysicalDeviceRawAccessChainsFeaturesNV {
16248 pub s_type: StructureType,
16249 pub next: *mut c_void,
16250 pub shader_raw_access_chains: Bool32,
16251}
16252
16253impl Default for PhysicalDeviceRawAccessChainsFeaturesNV {
16254 #[inline]
16255 fn default() -> Self {
16256 Self {
16257 s_type: StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV,
16258 next: ptr::null_mut(),
16259 shader_raw_access_chains: Bool32::default(),
16260 }
16261 }
16262}
16263
16264#[repr(C)]
16266#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16267pub struct PhysicalDeviceRayQueryFeaturesKHR {
16268 pub s_type: StructureType,
16269 pub next: *mut c_void,
16270 pub ray_query: Bool32,
16271}
16272
16273impl Default for PhysicalDeviceRayQueryFeaturesKHR {
16274 #[inline]
16275 fn default() -> Self {
16276 Self {
16277 s_type: StructureType::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
16278 next: ptr::null_mut(),
16279 ray_query: Bool32::default(),
16280 }
16281 }
16282}
16283
16284#[repr(C)]
16286#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16287pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
16288 pub s_type: StructureType,
16289 pub next: *mut c_void,
16290 pub ray_tracing_invocation_reorder: Bool32,
16291}
16292
16293impl Default for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
16294 #[inline]
16295 fn default() -> Self {
16296 Self {
16297 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV,
16298 next: ptr::null_mut(),
16299 ray_tracing_invocation_reorder: Bool32::default(),
16300 }
16301 }
16302}
16303
16304#[repr(C)]
16306#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16307pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
16308 pub s_type: StructureType,
16309 pub next: *mut c_void,
16310 pub ray_tracing_invocation_reorder_reordering_hint: RayTracingInvocationReorderModeNV,
16311}
16312
16313impl Default for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
16314 #[inline]
16315 fn default() -> Self {
16316 Self {
16317 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV,
16318 next: ptr::null_mut(),
16319 ray_tracing_invocation_reorder_reordering_hint:
16320 RayTracingInvocationReorderModeNV::default(),
16321 }
16322 }
16323}
16324
16325#[repr(C)]
16327#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16328pub struct PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
16329 pub s_type: StructureType,
16330 pub next: *mut c_void,
16331 pub spheres: Bool32,
16332 pub linear_swept_spheres: Bool32,
16333}
16334
16335impl Default for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
16336 #[inline]
16337 fn default() -> Self {
16338 Self {
16339 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV,
16340 next: ptr::null_mut(),
16341 spheres: Bool32::default(),
16342 linear_swept_spheres: Bool32::default(),
16343 }
16344 }
16345}
16346
16347#[repr(C)]
16349#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16350pub struct PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
16351 pub s_type: StructureType,
16352 pub next: *mut c_void,
16353 pub ray_tracing_maintenance1: Bool32,
16354 pub ray_tracing_pipeline_trace_rays_indirect2: Bool32,
16355}
16356
16357impl Default for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
16358 #[inline]
16359 fn default() -> Self {
16360 Self {
16361 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR,
16362 next: ptr::null_mut(),
16363 ray_tracing_maintenance1: Bool32::default(),
16364 ray_tracing_pipeline_trace_rays_indirect2: Bool32::default(),
16365 }
16366 }
16367}
16368
16369#[repr(C)]
16371#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16372pub struct PhysicalDeviceRayTracingMotionBlurFeaturesNV {
16373 pub s_type: StructureType,
16374 pub next: *mut c_void,
16375 pub ray_tracing_motion_blur: Bool32,
16376 pub ray_tracing_motion_blur_pipeline_trace_rays_indirect: Bool32,
16377}
16378
16379impl Default for PhysicalDeviceRayTracingMotionBlurFeaturesNV {
16380 #[inline]
16381 fn default() -> Self {
16382 Self {
16383 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
16384 next: ptr::null_mut(),
16385 ray_tracing_motion_blur: Bool32::default(),
16386 ray_tracing_motion_blur_pipeline_trace_rays_indirect: Bool32::default(),
16387 }
16388 }
16389}
16390
16391#[repr(C)]
16393#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16394pub struct PhysicalDeviceRayTracingPipelineFeaturesKHR {
16395 pub s_type: StructureType,
16396 pub next: *mut c_void,
16397 pub ray_tracing_pipeline: Bool32,
16398 pub ray_tracing_pipeline_shader_group_handle_capture_replay: Bool32,
16399 pub ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: Bool32,
16400 pub ray_tracing_pipeline_trace_rays_indirect: Bool32,
16401 pub ray_traversal_primitive_culling: Bool32,
16402}
16403
16404impl Default for PhysicalDeviceRayTracingPipelineFeaturesKHR {
16405 #[inline]
16406 fn default() -> Self {
16407 Self {
16408 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
16409 next: ptr::null_mut(),
16410 ray_tracing_pipeline: Bool32::default(),
16411 ray_tracing_pipeline_shader_group_handle_capture_replay: Bool32::default(),
16412 ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: Bool32::default(),
16413 ray_tracing_pipeline_trace_rays_indirect: Bool32::default(),
16414 ray_traversal_primitive_culling: Bool32::default(),
16415 }
16416 }
16417}
16418
16419#[repr(C)]
16421#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16422pub struct PhysicalDeviceRayTracingPipelinePropertiesKHR {
16423 pub s_type: StructureType,
16424 pub next: *mut c_void,
16425 pub shader_group_handle_size: u32,
16426 pub max_ray_recursion_depth: u32,
16427 pub max_shader_group_stride: u32,
16428 pub shader_group_base_alignment: u32,
16429 pub shader_group_handle_capture_replay_size: u32,
16430 pub max_ray_dispatch_invocation_count: u32,
16431 pub shader_group_handle_alignment: u32,
16432 pub max_ray_hit_attribute_size: u32,
16433}
16434
16435impl Default for PhysicalDeviceRayTracingPipelinePropertiesKHR {
16436 #[inline]
16437 fn default() -> Self {
16438 Self {
16439 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
16440 next: ptr::null_mut(),
16441 shader_group_handle_size: u32::default(),
16442 max_ray_recursion_depth: u32::default(),
16443 max_shader_group_stride: u32::default(),
16444 shader_group_base_alignment: u32::default(),
16445 shader_group_handle_capture_replay_size: u32::default(),
16446 max_ray_dispatch_invocation_count: u32::default(),
16447 shader_group_handle_alignment: u32::default(),
16448 max_ray_hit_attribute_size: u32::default(),
16449 }
16450 }
16451}
16452
16453#[repr(C)]
16455#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16456pub struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
16457 pub s_type: StructureType,
16458 pub next: *mut c_void,
16459 pub ray_tracing_position_fetch: Bool32,
16460}
16461
16462impl Default for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
16463 #[inline]
16464 fn default() -> Self {
16465 Self {
16466 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR,
16467 next: ptr::null_mut(),
16468 ray_tracing_position_fetch: Bool32::default(),
16469 }
16470 }
16471}
16472
16473#[repr(C)]
16475#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16476pub struct PhysicalDeviceRayTracingPropertiesNV {
16477 pub s_type: StructureType,
16478 pub next: *mut c_void,
16479 pub shader_group_handle_size: u32,
16480 pub max_recursion_depth: u32,
16481 pub max_shader_group_stride: u32,
16482 pub shader_group_base_alignment: u32,
16483 pub max_geometry_count: u64,
16484 pub max_instance_count: u64,
16485 pub max_triangle_count: u64,
16486 pub max_descriptor_set_acceleration_structures: u32,
16487}
16488
16489impl Default for PhysicalDeviceRayTracingPropertiesNV {
16490 #[inline]
16491 fn default() -> Self {
16492 Self {
16493 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
16494 next: ptr::null_mut(),
16495 shader_group_handle_size: u32::default(),
16496 max_recursion_depth: u32::default(),
16497 max_shader_group_stride: u32::default(),
16498 shader_group_base_alignment: u32::default(),
16499 max_geometry_count: u64::default(),
16500 max_instance_count: u64::default(),
16501 max_triangle_count: u64::default(),
16502 max_descriptor_set_acceleration_structures: u32::default(),
16503 }
16504 }
16505}
16506
16507#[repr(C)]
16509#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16510pub struct PhysicalDeviceRayTracingValidationFeaturesNV {
16511 pub s_type: StructureType,
16512 pub next: *mut c_void,
16513 pub ray_tracing_validation: Bool32,
16514}
16515
16516impl Default for PhysicalDeviceRayTracingValidationFeaturesNV {
16517 #[inline]
16518 fn default() -> Self {
16519 Self {
16520 s_type: StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV,
16521 next: ptr::null_mut(),
16522 ray_tracing_validation: Bool32::default(),
16523 }
16524 }
16525}
16526
16527#[repr(C)]
16529#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16530pub struct PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
16531 pub s_type: StructureType,
16532 pub next: *mut c_void,
16533 pub relaxed_line_rasterization: Bool32,
16534}
16535
16536impl Default for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
16537 #[inline]
16538 fn default() -> Self {
16539 Self {
16540 s_type: StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG,
16541 next: ptr::null_mut(),
16542 relaxed_line_rasterization: Bool32::default(),
16543 }
16544 }
16545}
16546
16547#[repr(C)]
16549#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16550pub struct PhysicalDeviceRenderPassStripedFeaturesARM {
16551 pub s_type: StructureType,
16552 pub next: *mut c_void,
16553 pub render_pass_striped: Bool32,
16554}
16555
16556impl Default for PhysicalDeviceRenderPassStripedFeaturesARM {
16557 #[inline]
16558 fn default() -> Self {
16559 Self {
16560 s_type: StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM,
16561 next: ptr::null_mut(),
16562 render_pass_striped: Bool32::default(),
16563 }
16564 }
16565}
16566
16567#[repr(C)]
16569#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16570pub struct PhysicalDeviceRenderPassStripedPropertiesARM {
16571 pub s_type: StructureType,
16572 pub next: *mut c_void,
16573 pub render_pass_stripe_granularity: Extent2D,
16574 pub max_render_pass_stripes: u32,
16575}
16576
16577impl Default for PhysicalDeviceRenderPassStripedPropertiesARM {
16578 #[inline]
16579 fn default() -> Self {
16580 Self {
16581 s_type: StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM,
16582 next: ptr::null_mut(),
16583 render_pass_stripe_granularity: Extent2D::default(),
16584 max_render_pass_stripes: u32::default(),
16585 }
16586 }
16587}
16588
16589#[repr(C)]
16591#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16592pub struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16593 pub s_type: StructureType,
16594 pub next: *mut c_void,
16595 pub representative_fragment_test: Bool32,
16596}
16597
16598impl Default for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16599 #[inline]
16600 fn default() -> Self {
16601 Self {
16602 s_type: StructureType::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
16603 next: ptr::null_mut(),
16604 representative_fragment_test: Bool32::default(),
16605 }
16606 }
16607}
16608
16609#[repr(C)]
16611#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16612pub struct PhysicalDeviceRobustness2FeaturesEXT {
16613 pub s_type: StructureType,
16614 pub next: *mut c_void,
16615 pub robust_buffer_access2: Bool32,
16616 pub robust_image_access2: Bool32,
16617 pub null_descriptor: Bool32,
16618}
16619
16620impl Default for PhysicalDeviceRobustness2FeaturesEXT {
16621 #[inline]
16622 fn default() -> Self {
16623 Self {
16624 s_type: StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
16625 next: ptr::null_mut(),
16626 robust_buffer_access2: Bool32::default(),
16627 robust_image_access2: Bool32::default(),
16628 null_descriptor: Bool32::default(),
16629 }
16630 }
16631}
16632
16633#[repr(C)]
16635#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16636pub struct PhysicalDeviceRobustness2PropertiesEXT {
16637 pub s_type: StructureType,
16638 pub next: *mut c_void,
16639 pub robust_storage_buffer_access_size_alignment: DeviceSize,
16640 pub robust_uniform_buffer_access_size_alignment: DeviceSize,
16641}
16642
16643impl Default for PhysicalDeviceRobustness2PropertiesEXT {
16644 #[inline]
16645 fn default() -> Self {
16646 Self {
16647 s_type: StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
16648 next: ptr::null_mut(),
16649 robust_storage_buffer_access_size_alignment: DeviceSize::default(),
16650 robust_uniform_buffer_access_size_alignment: DeviceSize::default(),
16651 }
16652 }
16653}
16654
16655#[repr(C)]
16657#[derive(Copy, Clone, Debug, PartialEq)]
16658pub struct PhysicalDeviceSampleLocationsPropertiesEXT {
16659 pub s_type: StructureType,
16660 pub next: *mut c_void,
16661 pub sample_location_sample_counts: SampleCountFlags,
16662 pub max_sample_location_grid_size: Extent2D,
16663 pub sample_location_coordinate_range: [f32; 2],
16664 pub sample_location_sub_pixel_bits: u32,
16665 pub variable_sample_locations: Bool32,
16666}
16667
16668impl Default for PhysicalDeviceSampleLocationsPropertiesEXT {
16669 #[inline]
16670 fn default() -> Self {
16671 Self {
16672 s_type: StructureType::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
16673 next: ptr::null_mut(),
16674 sample_location_sample_counts: SampleCountFlags::default(),
16675 max_sample_location_grid_size: Extent2D::default(),
16676 sample_location_coordinate_range: [f32::default(); 2],
16677 sample_location_sub_pixel_bits: u32::default(),
16678 variable_sample_locations: Bool32::default(),
16679 }
16680 }
16681}
16682
16683#[repr(C)]
16685#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16686pub struct PhysicalDeviceSamplerFilterMinmaxProperties {
16687 pub s_type: StructureType,
16688 pub next: *mut c_void,
16689 pub filter_minmax_single_component_formats: Bool32,
16690 pub filter_minmax_image_component_mapping: Bool32,
16691}
16692
16693impl Default for PhysicalDeviceSamplerFilterMinmaxProperties {
16694 #[inline]
16695 fn default() -> Self {
16696 Self {
16697 s_type: StructureType::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
16698 next: ptr::null_mut(),
16699 filter_minmax_single_component_formats: Bool32::default(),
16700 filter_minmax_image_component_mapping: Bool32::default(),
16701 }
16702 }
16703}
16704
16705#[repr(C)]
16707#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16708pub struct PhysicalDeviceSamplerYcbcrConversionFeatures {
16709 pub s_type: StructureType,
16710 pub next: *mut c_void,
16711 pub sampler_ycbcr_conversion: Bool32,
16712}
16713
16714impl Default for PhysicalDeviceSamplerYcbcrConversionFeatures {
16715 #[inline]
16716 fn default() -> Self {
16717 Self {
16718 s_type: StructureType::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
16719 next: ptr::null_mut(),
16720 sampler_ycbcr_conversion: Bool32::default(),
16721 }
16722 }
16723}
16724
16725#[repr(C)]
16727#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16728pub struct PhysicalDeviceScalarBlockLayoutFeatures {
16729 pub s_type: StructureType,
16730 pub next: *mut c_void,
16731 pub scalar_block_layout: Bool32,
16732}
16733
16734impl Default for PhysicalDeviceScalarBlockLayoutFeatures {
16735 #[inline]
16736 fn default() -> Self {
16737 Self {
16738 s_type: StructureType::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
16739 next: ptr::null_mut(),
16740 scalar_block_layout: Bool32::default(),
16741 }
16742 }
16743}
16744
16745#[repr(C)]
16747#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16748pub struct PhysicalDeviceSchedulingControlsFeaturesARM {
16749 pub s_type: StructureType,
16750 pub next: *mut c_void,
16751 pub scheduling_controls: Bool32,
16752}
16753
16754impl Default for PhysicalDeviceSchedulingControlsFeaturesARM {
16755 #[inline]
16756 fn default() -> Self {
16757 Self {
16758 s_type: StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM,
16759 next: ptr::null_mut(),
16760 scheduling_controls: Bool32::default(),
16761 }
16762 }
16763}
16764
16765#[repr(C)]
16767#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16768pub struct PhysicalDeviceSchedulingControlsPropertiesARM {
16769 pub s_type: StructureType,
16770 pub next: *mut c_void,
16771 pub scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM,
16772}
16773
16774impl Default for PhysicalDeviceSchedulingControlsPropertiesARM {
16775 #[inline]
16776 fn default() -> Self {
16777 Self {
16778 s_type: StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM,
16779 next: ptr::null_mut(),
16780 scheduling_controls_flags: PhysicalDeviceSchedulingControlsFlagsARM::default(),
16781 }
16782 }
16783}
16784
16785#[repr(C)]
16787#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16788pub struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
16789 pub s_type: StructureType,
16790 pub next: *mut c_void,
16791 pub separate_depth_stencil_layouts: Bool32,
16792}
16793
16794impl Default for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
16795 #[inline]
16796 fn default() -> Self {
16797 Self {
16798 s_type: StructureType::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
16799 next: ptr::null_mut(),
16800 separate_depth_stencil_layouts: Bool32::default(),
16801 }
16802 }
16803}
16804
16805#[repr(C)]
16807#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16808pub struct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
16809 pub s_type: StructureType,
16810 pub next: *mut c_void,
16811 pub shader_float16_vector_atomics: Bool32,
16812}
16813
16814impl Default for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
16815 #[inline]
16816 fn default() -> Self {
16817 Self {
16818 s_type: StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV,
16819 next: ptr::null_mut(),
16820 shader_float16_vector_atomics: Bool32::default(),
16821 }
16822 }
16823}
16824
16825#[repr(C)]
16827#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16828pub struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
16829 pub s_type: StructureType,
16830 pub next: *mut c_void,
16831 pub shader_buffer_float16_atomics: Bool32,
16832 pub shader_buffer_float16_atomic_add: Bool32,
16833 pub shader_buffer_float16_atomic_min_max: Bool32,
16834 pub shader_buffer_float32_atomic_min_max: Bool32,
16835 pub shader_buffer_float64_atomic_min_max: Bool32,
16836 pub shader_shared_float16_atomics: Bool32,
16837 pub shader_shared_float16_atomic_add: Bool32,
16838 pub shader_shared_float16_atomic_min_max: Bool32,
16839 pub shader_shared_float32_atomic_min_max: Bool32,
16840 pub shader_shared_float64_atomic_min_max: Bool32,
16841 pub shader_image_float32_atomic_min_max: Bool32,
16842 pub sparse_image_float32_atomic_min_max: Bool32,
16843}
16844
16845impl Default for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
16846 #[inline]
16847 fn default() -> Self {
16848 Self {
16849 s_type: StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
16850 next: ptr::null_mut(),
16851 shader_buffer_float16_atomics: Bool32::default(),
16852 shader_buffer_float16_atomic_add: Bool32::default(),
16853 shader_buffer_float16_atomic_min_max: Bool32::default(),
16854 shader_buffer_float32_atomic_min_max: Bool32::default(),
16855 shader_buffer_float64_atomic_min_max: Bool32::default(),
16856 shader_shared_float16_atomics: Bool32::default(),
16857 shader_shared_float16_atomic_add: Bool32::default(),
16858 shader_shared_float16_atomic_min_max: Bool32::default(),
16859 shader_shared_float32_atomic_min_max: Bool32::default(),
16860 shader_shared_float64_atomic_min_max: Bool32::default(),
16861 shader_image_float32_atomic_min_max: Bool32::default(),
16862 sparse_image_float32_atomic_min_max: Bool32::default(),
16863 }
16864 }
16865}
16866
16867#[repr(C)]
16869#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16870pub struct PhysicalDeviceShaderAtomicFloatFeaturesEXT {
16871 pub s_type: StructureType,
16872 pub next: *mut c_void,
16873 pub shader_buffer_float32_atomics: Bool32,
16874 pub shader_buffer_float32_atomic_add: Bool32,
16875 pub shader_buffer_float64_atomics: Bool32,
16876 pub shader_buffer_float64_atomic_add: Bool32,
16877 pub shader_shared_float32_atomics: Bool32,
16878 pub shader_shared_float32_atomic_add: Bool32,
16879 pub shader_shared_float64_atomics: Bool32,
16880 pub shader_shared_float64_atomic_add: Bool32,
16881 pub shader_image_float32_atomics: Bool32,
16882 pub shader_image_float32_atomic_add: Bool32,
16883 pub sparse_image_float32_atomics: Bool32,
16884 pub sparse_image_float32_atomic_add: Bool32,
16885}
16886
16887impl Default for PhysicalDeviceShaderAtomicFloatFeaturesEXT {
16888 #[inline]
16889 fn default() -> Self {
16890 Self {
16891 s_type: StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
16892 next: ptr::null_mut(),
16893 shader_buffer_float32_atomics: Bool32::default(),
16894 shader_buffer_float32_atomic_add: Bool32::default(),
16895 shader_buffer_float64_atomics: Bool32::default(),
16896 shader_buffer_float64_atomic_add: Bool32::default(),
16897 shader_shared_float32_atomics: Bool32::default(),
16898 shader_shared_float32_atomic_add: Bool32::default(),
16899 shader_shared_float64_atomics: Bool32::default(),
16900 shader_shared_float64_atomic_add: Bool32::default(),
16901 shader_image_float32_atomics: Bool32::default(),
16902 shader_image_float32_atomic_add: Bool32::default(),
16903 sparse_image_float32_atomics: Bool32::default(),
16904 sparse_image_float32_atomic_add: Bool32::default(),
16905 }
16906 }
16907}
16908
16909#[repr(C)]
16911#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16912pub struct PhysicalDeviceShaderAtomicInt64Features {
16913 pub s_type: StructureType,
16914 pub next: *mut c_void,
16915 pub shader_buffer_int64_atomics: Bool32,
16916 pub shader_shared_int64_atomics: Bool32,
16917}
16918
16919impl Default for PhysicalDeviceShaderAtomicInt64Features {
16920 #[inline]
16921 fn default() -> Self {
16922 Self {
16923 s_type: StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
16924 next: ptr::null_mut(),
16925 shader_buffer_int64_atomics: Bool32::default(),
16926 shader_shared_int64_atomics: Bool32::default(),
16927 }
16928 }
16929}
16930
16931#[repr(C)]
16933#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16934pub struct PhysicalDeviceShaderClockFeaturesKHR {
16935 pub s_type: StructureType,
16936 pub next: *mut c_void,
16937 pub shader_subgroup_clock: Bool32,
16938 pub shader_device_clock: Bool32,
16939}
16940
16941impl Default for PhysicalDeviceShaderClockFeaturesKHR {
16942 #[inline]
16943 fn default() -> Self {
16944 Self {
16945 s_type: StructureType::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
16946 next: ptr::null_mut(),
16947 shader_subgroup_clock: Bool32::default(),
16948 shader_device_clock: Bool32::default(),
16949 }
16950 }
16951}
16952
16953#[repr(C)]
16955#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16956pub struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
16957 pub s_type: StructureType,
16958 pub next: *mut c_void,
16959 pub shader_core_builtins: Bool32,
16960}
16961
16962impl Default for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
16963 #[inline]
16964 fn default() -> Self {
16965 Self {
16966 s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM,
16967 next: ptr::null_mut(),
16968 shader_core_builtins: Bool32::default(),
16969 }
16970 }
16971}
16972
16973#[repr(C)]
16975#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
16976pub struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
16977 pub s_type: StructureType,
16978 pub next: *mut c_void,
16979 pub shader_core_mask: u64,
16980 pub shader_core_count: u32,
16981 pub shader_warps_per_core: u32,
16982}
16983
16984impl Default for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
16985 #[inline]
16986 fn default() -> Self {
16987 Self {
16988 s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM,
16989 next: ptr::null_mut(),
16990 shader_core_mask: u64::default(),
16991 shader_core_count: u32::default(),
16992 shader_warps_per_core: u32::default(),
16993 }
16994 }
16995}
16996
16997#[repr(C)]
16999#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17000pub struct PhysicalDeviceShaderCoreProperties2AMD {
17001 pub s_type: StructureType,
17002 pub next: *mut c_void,
17003 pub shader_core_features: ShaderCorePropertiesFlagsAMD,
17004 pub active_compute_unit_count: u32,
17005}
17006
17007impl Default for PhysicalDeviceShaderCoreProperties2AMD {
17008 #[inline]
17009 fn default() -> Self {
17010 Self {
17011 s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
17012 next: ptr::null_mut(),
17013 shader_core_features: ShaderCorePropertiesFlagsAMD::default(),
17014 active_compute_unit_count: u32::default(),
17015 }
17016 }
17017}
17018
17019#[repr(C)]
17021#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17022pub struct PhysicalDeviceShaderCorePropertiesAMD {
17023 pub s_type: StructureType,
17024 pub next: *mut c_void,
17025 pub shader_engine_count: u32,
17026 pub shader_arrays_per_engine_count: u32,
17027 pub compute_units_per_shader_array: u32,
17028 pub simd_per_compute_unit: u32,
17029 pub wavefronts_per_simd: u32,
17030 pub wavefront_size: u32,
17031 pub sgprs_per_simd: u32,
17032 pub min_sgpr_allocation: u32,
17033 pub max_sgpr_allocation: u32,
17034 pub sgpr_allocation_granularity: u32,
17035 pub vgprs_per_simd: u32,
17036 pub min_vgpr_allocation: u32,
17037 pub max_vgpr_allocation: u32,
17038 pub vgpr_allocation_granularity: u32,
17039}
17040
17041impl Default for PhysicalDeviceShaderCorePropertiesAMD {
17042 #[inline]
17043 fn default() -> Self {
17044 Self {
17045 s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
17046 next: ptr::null_mut(),
17047 shader_engine_count: u32::default(),
17048 shader_arrays_per_engine_count: u32::default(),
17049 compute_units_per_shader_array: u32::default(),
17050 simd_per_compute_unit: u32::default(),
17051 wavefronts_per_simd: u32::default(),
17052 wavefront_size: u32::default(),
17053 sgprs_per_simd: u32::default(),
17054 min_sgpr_allocation: u32::default(),
17055 max_sgpr_allocation: u32::default(),
17056 sgpr_allocation_granularity: u32::default(),
17057 vgprs_per_simd: u32::default(),
17058 min_vgpr_allocation: u32::default(),
17059 max_vgpr_allocation: u32::default(),
17060 vgpr_allocation_granularity: u32::default(),
17061 }
17062 }
17063}
17064
17065#[repr(C)]
17067#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17068pub struct PhysicalDeviceShaderCorePropertiesARM {
17069 pub s_type: StructureType,
17070 pub next: *mut c_void,
17071 pub pixel_rate: u32,
17072 pub texel_rate: u32,
17073 pub fma_rate: u32,
17074}
17075
17076impl Default for PhysicalDeviceShaderCorePropertiesARM {
17077 #[inline]
17078 fn default() -> Self {
17079 Self {
17080 s_type: StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM,
17081 next: ptr::null_mut(),
17082 pixel_rate: u32::default(),
17083 texel_rate: u32::default(),
17084 fma_rate: u32::default(),
17085 }
17086 }
17087}
17088
17089#[repr(C)]
17091#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17092pub struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
17093 pub s_type: StructureType,
17094 pub next: *mut c_void,
17095 pub shader_demote_to_helper_invocation: Bool32,
17096}
17097
17098impl Default for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
17099 #[inline]
17100 fn default() -> Self {
17101 Self {
17102 s_type: StructureType::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
17103 next: ptr::null_mut(),
17104 shader_demote_to_helper_invocation: Bool32::default(),
17105 }
17106 }
17107}
17108
17109#[repr(C)]
17111#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17112pub struct PhysicalDeviceShaderDrawParametersFeatures {
17113 pub s_type: StructureType,
17114 pub next: *mut c_void,
17115 pub shader_draw_parameters: Bool32,
17116}
17117
17118impl Default for PhysicalDeviceShaderDrawParametersFeatures {
17119 #[inline]
17120 fn default() -> Self {
17121 Self {
17122 s_type: StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
17123 next: ptr::null_mut(),
17124 shader_draw_parameters: Bool32::default(),
17125 }
17126 }
17127}
17128
17129#[repr(C)]
17131#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17132pub struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
17133 pub s_type: StructureType,
17134 pub next: *mut c_void,
17135 pub shader_early_and_late_fragment_tests: Bool32,
17136}
17137
17138impl Default for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
17139 #[inline]
17140 fn default() -> Self {
17141 Self {
17142 s_type:
17143 StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD,
17144 next: ptr::null_mut(),
17145 shader_early_and_late_fragment_tests: Bool32::default(),
17146 }
17147 }
17148}
17149
17150#[repr(C)]
17152#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17153pub struct PhysicalDeviceShaderEnqueueFeaturesAMDX {
17154 pub s_type: StructureType,
17155 pub next: *mut c_void,
17156 pub shader_enqueue: Bool32,
17157 pub shader_mesh_enqueue: Bool32,
17158}
17159
17160impl Default for PhysicalDeviceShaderEnqueueFeaturesAMDX {
17161 #[inline]
17162 fn default() -> Self {
17163 Self {
17164 s_type: StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX,
17165 next: ptr::null_mut(),
17166 shader_enqueue: Bool32::default(),
17167 shader_mesh_enqueue: Bool32::default(),
17168 }
17169 }
17170}
17171
17172#[repr(C)]
17174#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17175pub struct PhysicalDeviceShaderEnqueuePropertiesAMDX {
17176 pub s_type: StructureType,
17177 pub next: *mut c_void,
17178 pub max_execution_graph_depth: u32,
17179 pub max_execution_graph_shader_output_nodes: u32,
17180 pub max_execution_graph_shader_payload_size: u32,
17181 pub max_execution_graph_shader_payload_count: u32,
17182 pub execution_graph_dispatch_address_alignment: u32,
17183 pub max_execution_graph_workgroup_count: [u32; 3],
17184 pub max_execution_graph_workgroups: u32,
17185}
17186
17187impl Default for PhysicalDeviceShaderEnqueuePropertiesAMDX {
17188 #[inline]
17189 fn default() -> Self {
17190 Self {
17191 s_type: StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX,
17192 next: ptr::null_mut(),
17193 max_execution_graph_depth: u32::default(),
17194 max_execution_graph_shader_output_nodes: u32::default(),
17195 max_execution_graph_shader_payload_size: u32::default(),
17196 max_execution_graph_shader_payload_count: u32::default(),
17197 execution_graph_dispatch_address_alignment: u32::default(),
17198 max_execution_graph_workgroup_count: [u32::default(); 3],
17199 max_execution_graph_workgroups: u32::default(),
17200 }
17201 }
17202}
17203
17204#[repr(C)]
17206#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17207pub struct PhysicalDeviceShaderExpectAssumeFeatures {
17208 pub s_type: StructureType,
17209 pub next: *mut c_void,
17210 pub shader_expect_assume: Bool32,
17211}
17212
17213impl Default for PhysicalDeviceShaderExpectAssumeFeatures {
17214 #[inline]
17215 fn default() -> Self {
17216 Self {
17217 s_type: StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
17218 next: ptr::null_mut(),
17219 shader_expect_assume: Bool32::default(),
17220 }
17221 }
17222}
17223
17224#[repr(C)]
17226#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17227pub struct PhysicalDeviceShaderFloat16Int8Features {
17228 pub s_type: StructureType,
17229 pub next: *mut c_void,
17230 pub shader_float16: Bool32,
17231 pub shader_int8: Bool32,
17232}
17233
17234impl Default for PhysicalDeviceShaderFloat16Int8Features {
17235 #[inline]
17236 fn default() -> Self {
17237 Self {
17238 s_type: StructureType::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
17239 next: ptr::null_mut(),
17240 shader_float16: Bool32::default(),
17241 shader_int8: Bool32::default(),
17242 }
17243 }
17244}
17245
17246#[repr(C)]
17248#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17249pub struct PhysicalDeviceShaderFloatControls2Features {
17250 pub s_type: StructureType,
17251 pub next: *mut c_void,
17252 pub shader_float_controls2: Bool32,
17253}
17254
17255impl Default for PhysicalDeviceShaderFloatControls2Features {
17256 #[inline]
17257 fn default() -> Self {
17258 Self {
17259 s_type: StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
17260 next: ptr::null_mut(),
17261 shader_float_controls2: Bool32::default(),
17262 }
17263 }
17264}
17265
17266#[repr(C)]
17268#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17269pub struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
17270 pub s_type: StructureType,
17271 pub next: *mut c_void,
17272 pub shader_image_int64_atomics: Bool32,
17273 pub sparse_image_int64_atomics: Bool32,
17274}
17275
17276impl Default for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
17277 #[inline]
17278 fn default() -> Self {
17279 Self {
17280 s_type: StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
17281 next: ptr::null_mut(),
17282 shader_image_int64_atomics: Bool32::default(),
17283 sparse_image_int64_atomics: Bool32::default(),
17284 }
17285 }
17286}
17287
17288#[repr(C)]
17290#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17291pub struct PhysicalDeviceShaderImageFootprintFeaturesNV {
17292 pub s_type: StructureType,
17293 pub next: *mut c_void,
17294 pub image_footprint: Bool32,
17295}
17296
17297impl Default for PhysicalDeviceShaderImageFootprintFeaturesNV {
17298 #[inline]
17299 fn default() -> Self {
17300 Self {
17301 s_type: StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
17302 next: ptr::null_mut(),
17303 image_footprint: Bool32::default(),
17304 }
17305 }
17306}
17307
17308#[repr(C)]
17310#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17311pub struct PhysicalDeviceShaderIntegerDotProductFeatures {
17312 pub s_type: StructureType,
17313 pub next: *mut c_void,
17314 pub shader_integer_dot_product: Bool32,
17315}
17316
17317impl Default for PhysicalDeviceShaderIntegerDotProductFeatures {
17318 #[inline]
17319 fn default() -> Self {
17320 Self {
17321 s_type: StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
17322 next: ptr::null_mut(),
17323 shader_integer_dot_product: Bool32::default(),
17324 }
17325 }
17326}
17327
17328#[repr(C)]
17330#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17331pub struct PhysicalDeviceShaderIntegerDotProductProperties {
17332 pub s_type: StructureType,
17333 pub next: *mut c_void,
17334 pub integer_dot_product_8bit_unsigned_accelerated: Bool32,
17335 pub integer_dot_product_8bit_signed_accelerated: Bool32,
17336 pub integer_dot_product_8bit_mixed_signedness_accelerated: Bool32,
17337 pub integer_dot_product4x_8bit_packed_unsigned_accelerated: Bool32,
17338 pub integer_dot_product4x_8bit_packed_signed_accelerated: Bool32,
17339 pub integer_dot_product4x_8bit_packed_mixed_signedness_accelerated: Bool32,
17340 pub integer_dot_product_16bit_unsigned_accelerated: Bool32,
17341 pub integer_dot_product_16bit_signed_accelerated: Bool32,
17342 pub integer_dot_product_16bit_mixed_signedness_accelerated: Bool32,
17343 pub integer_dot_product_32bit_unsigned_accelerated: Bool32,
17344 pub integer_dot_product_32bit_signed_accelerated: Bool32,
17345 pub integer_dot_product_32bit_mixed_signedness_accelerated: Bool32,
17346 pub integer_dot_product_64bit_unsigned_accelerated: Bool32,
17347 pub integer_dot_product_64bit_signed_accelerated: Bool32,
17348 pub integer_dot_product_64bit_mixed_signedness_accelerated: Bool32,
17349 pub integer_dot_product_accumulating_saturating_8bit_unsigned_accelerated: Bool32,
17350 pub integer_dot_product_accumulating_saturating_8bit_signed_accelerated: Bool32,
17351 pub integer_dot_product_accumulating_saturating_8bit_mixed_signedness_accelerated: Bool32,
17352 pub integer_dot_product_accumulating_saturating4x_8bit_packed_unsigned_accelerated: Bool32,
17353 pub integer_dot_product_accumulating_saturating4x_8bit_packed_signed_accelerated: Bool32,
17354 pub integer_dot_product_accumulating_saturating4x_8bit_packed_mixed_signedness_accelerated:
17355 Bool32,
17356 pub integer_dot_product_accumulating_saturating_16bit_unsigned_accelerated: Bool32,
17357 pub integer_dot_product_accumulating_saturating_16bit_signed_accelerated: Bool32,
17358 pub integer_dot_product_accumulating_saturating_16bit_mixed_signedness_accelerated: Bool32,
17359 pub integer_dot_product_accumulating_saturating_32bit_unsigned_accelerated: Bool32,
17360 pub integer_dot_product_accumulating_saturating_32bit_signed_accelerated: Bool32,
17361 pub integer_dot_product_accumulating_saturating_32bit_mixed_signedness_accelerated: Bool32,
17362 pub integer_dot_product_accumulating_saturating_64bit_unsigned_accelerated: Bool32,
17363 pub integer_dot_product_accumulating_saturating_64bit_signed_accelerated: Bool32,
17364 pub integer_dot_product_accumulating_saturating_64bit_mixed_signedness_accelerated: Bool32,
17365}
17366
17367impl Default for PhysicalDeviceShaderIntegerDotProductProperties {
17368 #[inline]
17369 fn default() -> Self {
17370 Self { s_type: StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, next: ptr::null_mut(), integer_dot_product_8bit_unsigned_accelerated: Bool32::default(), integer_dot_product_8bit_signed_accelerated: Bool32::default(), integer_dot_product_8bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_unsigned_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_signed_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_16bit_unsigned_accelerated: Bool32::default(), integer_dot_product_16bit_signed_accelerated: Bool32::default(), integer_dot_product_16bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_32bit_unsigned_accelerated: Bool32::default(), integer_dot_product_32bit_signed_accelerated: Bool32::default(), integer_dot_product_32bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_64bit_unsigned_accelerated: Bool32::default(), integer_dot_product_64bit_signed_accelerated: Bool32::default(), integer_dot_product_64bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_mixed_signedness_accelerated: Bool32::default() }
17371 }
17372}
17373
17374#[repr(C)]
17376#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17377pub struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
17378 pub s_type: StructureType,
17379 pub next: *mut c_void,
17380 pub shader_integer_functions2: Bool32,
17381}
17382
17383impl Default for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
17384 #[inline]
17385 fn default() -> Self {
17386 Self {
17387 s_type: StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
17388 next: ptr::null_mut(),
17389 shader_integer_functions2: Bool32::default(),
17390 }
17391 }
17392}
17393
17394#[repr(C)]
17396#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17397pub struct PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
17398 pub s_type: StructureType,
17399 pub next: *mut c_void,
17400 pub shader_maximal_reconvergence: Bool32,
17401}
17402
17403impl Default for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
17404 #[inline]
17405 fn default() -> Self {
17406 Self {
17407 s_type: StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR,
17408 next: ptr::null_mut(),
17409 shader_maximal_reconvergence: Bool32::default(),
17410 }
17411 }
17412}
17413
17414#[repr(C)]
17416#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17417pub struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
17418 pub s_type: StructureType,
17419 pub next: *mut c_void,
17420 pub shader_module_identifier: Bool32,
17421}
17422
17423impl Default for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
17424 #[inline]
17425 fn default() -> Self {
17426 Self {
17427 s_type: StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT,
17428 next: ptr::null_mut(),
17429 shader_module_identifier: Bool32::default(),
17430 }
17431 }
17432}
17433
17434#[repr(C)]
17436#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17437pub struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
17438 pub s_type: StructureType,
17439 pub next: *mut c_void,
17440 pub shader_module_identifier_algorithm_uuid: ByteArray<UUID_SIZE>,
17441}
17442
17443impl Default for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
17444 #[inline]
17445 fn default() -> Self {
17446 Self {
17447 s_type: StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT,
17448 next: ptr::null_mut(),
17449 shader_module_identifier_algorithm_uuid: ByteArray::default(),
17450 }
17451 }
17452}
17453
17454#[repr(C)]
17456#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17457pub struct PhysicalDeviceShaderObjectFeaturesEXT {
17458 pub s_type: StructureType,
17459 pub next: *mut c_void,
17460 pub shader_object: Bool32,
17461}
17462
17463impl Default for PhysicalDeviceShaderObjectFeaturesEXT {
17464 #[inline]
17465 fn default() -> Self {
17466 Self {
17467 s_type: StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT,
17468 next: ptr::null_mut(),
17469 shader_object: Bool32::default(),
17470 }
17471 }
17472}
17473
17474#[repr(C)]
17476#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17477pub struct PhysicalDeviceShaderObjectPropertiesEXT {
17478 pub s_type: StructureType,
17479 pub next: *mut c_void,
17480 pub shader_binary_uuid: ByteArray<UUID_SIZE>,
17481 pub shader_binary_version: u32,
17482}
17483
17484impl Default for PhysicalDeviceShaderObjectPropertiesEXT {
17485 #[inline]
17486 fn default() -> Self {
17487 Self {
17488 s_type: StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT,
17489 next: ptr::null_mut(),
17490 shader_binary_uuid: ByteArray::default(),
17491 shader_binary_version: u32::default(),
17492 }
17493 }
17494}
17495
17496#[repr(C)]
17498#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17499pub struct PhysicalDeviceShaderQuadControlFeaturesKHR {
17500 pub s_type: StructureType,
17501 pub next: *mut c_void,
17502 pub shader_quad_control: Bool32,
17503}
17504
17505impl Default for PhysicalDeviceShaderQuadControlFeaturesKHR {
17506 #[inline]
17507 fn default() -> Self {
17508 Self {
17509 s_type: StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR,
17510 next: ptr::null_mut(),
17511 shader_quad_control: Bool32::default(),
17512 }
17513 }
17514}
17515
17516#[repr(C)]
17518#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17519pub struct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
17520 pub s_type: StructureType,
17521 pub next: *mut c_void,
17522 pub shader_relaxed_extended_instruction: Bool32,
17523}
17524
17525impl Default for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
17526 #[inline]
17527 fn default() -> Self {
17528 Self {
17529 s_type: StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR,
17530 next: ptr::null_mut(),
17531 shader_relaxed_extended_instruction: Bool32::default(),
17532 }
17533 }
17534}
17535
17536#[repr(C)]
17538#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17539pub struct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
17540 pub s_type: StructureType,
17541 pub next: *mut c_void,
17542 pub shader_replicated_composites: Bool32,
17543}
17544
17545impl Default for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
17546 #[inline]
17547 fn default() -> Self {
17548 Self {
17549 s_type: StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT,
17550 next: ptr::null_mut(),
17551 shader_replicated_composites: Bool32::default(),
17552 }
17553 }
17554}
17555
17556#[repr(C)]
17558#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17559pub struct PhysicalDeviceShaderSMBuiltinsFeaturesNV {
17560 pub s_type: StructureType,
17561 pub next: *mut c_void,
17562 pub shader_sm_builtins: Bool32,
17563}
17564
17565impl Default for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
17566 #[inline]
17567 fn default() -> Self {
17568 Self {
17569 s_type: StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
17570 next: ptr::null_mut(),
17571 shader_sm_builtins: Bool32::default(),
17572 }
17573 }
17574}
17575
17576#[repr(C)]
17578#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17579pub struct PhysicalDeviceShaderSMBuiltinsPropertiesNV {
17580 pub s_type: StructureType,
17581 pub next: *mut c_void,
17582 pub shader_sm_count: u32,
17583 pub shader_warps_per_sm: u32,
17584}
17585
17586impl Default for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
17587 #[inline]
17588 fn default() -> Self {
17589 Self {
17590 s_type: StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
17591 next: ptr::null_mut(),
17592 shader_sm_count: u32::default(),
17593 shader_warps_per_sm: u32::default(),
17594 }
17595 }
17596}
17597
17598#[repr(C)]
17600#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17601pub struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
17602 pub s_type: StructureType,
17603 pub next: *mut c_void,
17604 pub shader_subgroup_extended_types: Bool32,
17605}
17606
17607impl Default for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
17608 #[inline]
17609 fn default() -> Self {
17610 Self {
17611 s_type: StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
17612 next: ptr::null_mut(),
17613 shader_subgroup_extended_types: Bool32::default(),
17614 }
17615 }
17616}
17617
17618#[repr(C)]
17620#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17621pub struct PhysicalDeviceShaderSubgroupRotateFeatures {
17622 pub s_type: StructureType,
17623 pub next: *mut c_void,
17624 pub shader_subgroup_rotate: Bool32,
17625 pub shader_subgroup_rotate_clustered: Bool32,
17626}
17627
17628impl Default for PhysicalDeviceShaderSubgroupRotateFeatures {
17629 #[inline]
17630 fn default() -> Self {
17631 Self {
17632 s_type: StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
17633 next: ptr::null_mut(),
17634 shader_subgroup_rotate: Bool32::default(),
17635 shader_subgroup_rotate_clustered: Bool32::default(),
17636 }
17637 }
17638}
17639
17640#[repr(C)]
17642#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17643pub struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
17644 pub s_type: StructureType,
17645 pub next: *mut c_void,
17646 pub shader_subgroup_uniform_control_flow: Bool32,
17647}
17648
17649impl Default for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
17650 #[inline]
17651 fn default() -> Self {
17652 Self {
17653 s_type:
17654 StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
17655 next: ptr::null_mut(),
17656 shader_subgroup_uniform_control_flow: Bool32::default(),
17657 }
17658 }
17659}
17660
17661#[repr(C)]
17663#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17664pub struct PhysicalDeviceShaderTerminateInvocationFeatures {
17665 pub s_type: StructureType,
17666 pub next: *mut c_void,
17667 pub shader_terminate_invocation: Bool32,
17668}
17669
17670impl Default for PhysicalDeviceShaderTerminateInvocationFeatures {
17671 #[inline]
17672 fn default() -> Self {
17673 Self {
17674 s_type: StructureType::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
17675 next: ptr::null_mut(),
17676 shader_terminate_invocation: Bool32::default(),
17677 }
17678 }
17679}
17680
17681#[repr(C)]
17683#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17684pub struct PhysicalDeviceShaderTileImageFeaturesEXT {
17685 pub s_type: StructureType,
17686 pub next: *mut c_void,
17687 pub shader_tile_image_color_read_access: Bool32,
17688 pub shader_tile_image_depth_read_access: Bool32,
17689 pub shader_tile_image_stencil_read_access: Bool32,
17690}
17691
17692impl Default for PhysicalDeviceShaderTileImageFeaturesEXT {
17693 #[inline]
17694 fn default() -> Self {
17695 Self {
17696 s_type: StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT,
17697 next: ptr::null_mut(),
17698 shader_tile_image_color_read_access: Bool32::default(),
17699 shader_tile_image_depth_read_access: Bool32::default(),
17700 shader_tile_image_stencil_read_access: Bool32::default(),
17701 }
17702 }
17703}
17704
17705#[repr(C)]
17707#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17708pub struct PhysicalDeviceShaderTileImagePropertiesEXT {
17709 pub s_type: StructureType,
17710 pub next: *mut c_void,
17711 pub shader_tile_image_coherent_read_accelerated: Bool32,
17712 pub shader_tile_image_read_sample_from_pixel_rate_invocation: Bool32,
17713 pub shader_tile_image_read_from_helper_invocation: Bool32,
17714}
17715
17716impl Default for PhysicalDeviceShaderTileImagePropertiesEXT {
17717 #[inline]
17718 fn default() -> Self {
17719 Self {
17720 s_type: StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT,
17721 next: ptr::null_mut(),
17722 shader_tile_image_coherent_read_accelerated: Bool32::default(),
17723 shader_tile_image_read_sample_from_pixel_rate_invocation: Bool32::default(),
17724 shader_tile_image_read_from_helper_invocation: Bool32::default(),
17725 }
17726 }
17727}
17728
17729#[repr(C)]
17731#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17732pub struct PhysicalDeviceShadingRateImageFeaturesNV {
17733 pub s_type: StructureType,
17734 pub next: *mut c_void,
17735 pub shading_rate_image: Bool32,
17736 pub shading_rate_coarse_sample_order: Bool32,
17737}
17738
17739impl Default for PhysicalDeviceShadingRateImageFeaturesNV {
17740 #[inline]
17741 fn default() -> Self {
17742 Self {
17743 s_type: StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
17744 next: ptr::null_mut(),
17745 shading_rate_image: Bool32::default(),
17746 shading_rate_coarse_sample_order: Bool32::default(),
17747 }
17748 }
17749}
17750
17751#[repr(C)]
17753#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17754pub struct PhysicalDeviceShadingRateImagePropertiesNV {
17755 pub s_type: StructureType,
17756 pub next: *mut c_void,
17757 pub shading_rate_texel_size: Extent2D,
17758 pub shading_rate_palette_size: u32,
17759 pub shading_rate_max_coarse_samples: u32,
17760}
17761
17762impl Default for PhysicalDeviceShadingRateImagePropertiesNV {
17763 #[inline]
17764 fn default() -> Self {
17765 Self {
17766 s_type: StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
17767 next: ptr::null_mut(),
17768 shading_rate_texel_size: Extent2D::default(),
17769 shading_rate_palette_size: u32::default(),
17770 shading_rate_max_coarse_samples: u32::default(),
17771 }
17772 }
17773}
17774
17775#[repr(C)]
17777#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17778pub struct PhysicalDeviceSparseImageFormatInfo2 {
17779 pub s_type: StructureType,
17780 pub next: *const c_void,
17781 pub format: Format,
17782 pub type_: ImageType,
17783 pub samples: SampleCountFlags,
17784 pub usage: ImageUsageFlags,
17785 pub tiling: ImageTiling,
17786}
17787
17788impl Default for PhysicalDeviceSparseImageFormatInfo2 {
17789 #[inline]
17790 fn default() -> Self {
17791 Self {
17792 s_type: StructureType::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
17793 next: ptr::null(),
17794 format: Format::default(),
17795 type_: ImageType::default(),
17796 samples: SampleCountFlags::default(),
17797 usage: ImageUsageFlags::default(),
17798 tiling: ImageTiling::default(),
17799 }
17800 }
17801}
17802
17803#[repr(C)]
17805#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
17806pub struct PhysicalDeviceSparseProperties {
17807 pub residency_standard_2d_block_shape: Bool32,
17808 pub residency_standard_2d_multisample_block_shape: Bool32,
17809 pub residency_standard_3d_block_shape: Bool32,
17810 pub residency_aligned_mip_size: Bool32,
17811 pub residency_non_resident_strict: Bool32,
17812}
17813
17814#[repr(C)]
17816#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17817pub struct PhysicalDeviceSubgroupProperties {
17818 pub s_type: StructureType,
17819 pub next: *mut c_void,
17820 pub subgroup_size: u32,
17821 pub supported_stages: ShaderStageFlags,
17822 pub supported_operations: SubgroupFeatureFlags,
17823 pub quad_operations_in_all_stages: Bool32,
17824}
17825
17826impl Default for PhysicalDeviceSubgroupProperties {
17827 #[inline]
17828 fn default() -> Self {
17829 Self {
17830 s_type: StructureType::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
17831 next: ptr::null_mut(),
17832 subgroup_size: u32::default(),
17833 supported_stages: ShaderStageFlags::default(),
17834 supported_operations: SubgroupFeatureFlags::default(),
17835 quad_operations_in_all_stages: Bool32::default(),
17836 }
17837 }
17838}
17839
17840#[repr(C)]
17842#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17843pub struct PhysicalDeviceSubgroupSizeControlFeatures {
17844 pub s_type: StructureType,
17845 pub next: *mut c_void,
17846 pub subgroup_size_control: Bool32,
17847 pub compute_full_subgroups: Bool32,
17848}
17849
17850impl Default for PhysicalDeviceSubgroupSizeControlFeatures {
17851 #[inline]
17852 fn default() -> Self {
17853 Self {
17854 s_type: StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
17855 next: ptr::null_mut(),
17856 subgroup_size_control: Bool32::default(),
17857 compute_full_subgroups: Bool32::default(),
17858 }
17859 }
17860}
17861
17862#[repr(C)]
17864#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17865pub struct PhysicalDeviceSubgroupSizeControlProperties {
17866 pub s_type: StructureType,
17867 pub next: *mut c_void,
17868 pub min_subgroup_size: u32,
17869 pub max_subgroup_size: u32,
17870 pub max_compute_workgroup_subgroups: u32,
17871 pub required_subgroup_size_stages: ShaderStageFlags,
17872}
17873
17874impl Default for PhysicalDeviceSubgroupSizeControlProperties {
17875 #[inline]
17876 fn default() -> Self {
17877 Self {
17878 s_type: StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
17879 next: ptr::null_mut(),
17880 min_subgroup_size: u32::default(),
17881 max_subgroup_size: u32::default(),
17882 max_compute_workgroup_subgroups: u32::default(),
17883 required_subgroup_size_stages: ShaderStageFlags::default(),
17884 }
17885 }
17886}
17887
17888#[repr(C)]
17890#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17891pub struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
17892 pub s_type: StructureType,
17893 pub next: *mut c_void,
17894 pub subpass_merge_feedback: Bool32,
17895}
17896
17897impl Default for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
17898 #[inline]
17899 fn default() -> Self {
17900 Self {
17901 s_type: StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,
17902 next: ptr::null_mut(),
17903 subpass_merge_feedback: Bool32::default(),
17904 }
17905 }
17906}
17907
17908#[repr(C)]
17910#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17911pub struct PhysicalDeviceSubpassShadingFeaturesHUAWEI {
17912 pub s_type: StructureType,
17913 pub next: *mut c_void,
17914 pub subpass_shading: Bool32,
17915}
17916
17917impl Default for PhysicalDeviceSubpassShadingFeaturesHUAWEI {
17918 #[inline]
17919 fn default() -> Self {
17920 Self {
17921 s_type: StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
17922 next: ptr::null_mut(),
17923 subpass_shading: Bool32::default(),
17924 }
17925 }
17926}
17927
17928#[repr(C)]
17930#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17931pub struct PhysicalDeviceSubpassShadingPropertiesHUAWEI {
17932 pub s_type: StructureType,
17933 pub next: *mut c_void,
17934 pub max_subpass_shading_workgroup_size_aspect_ratio: u32,
17935}
17936
17937impl Default for PhysicalDeviceSubpassShadingPropertiesHUAWEI {
17938 #[inline]
17939 fn default() -> Self {
17940 Self {
17941 s_type: StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
17942 next: ptr::null_mut(),
17943 max_subpass_shading_workgroup_size_aspect_ratio: u32::default(),
17944 }
17945 }
17946}
17947
17948#[repr(C)]
17950#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17951pub struct PhysicalDeviceSurfaceInfo2KHR {
17952 pub s_type: StructureType,
17953 pub next: *const c_void,
17954 pub surface: SurfaceKHR,
17955}
17956
17957impl Default for PhysicalDeviceSurfaceInfo2KHR {
17958 #[inline]
17959 fn default() -> Self {
17960 Self {
17961 s_type: StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
17962 next: ptr::null(),
17963 surface: SurfaceKHR::default(),
17964 }
17965 }
17966}
17967
17968#[repr(C)]
17970#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17971pub struct PhysicalDeviceSwapchainMaintenance1FeaturesEXT {
17972 pub s_type: StructureType,
17973 pub next: *mut c_void,
17974 pub swapchain_maintenance1: Bool32,
17975}
17976
17977impl Default for PhysicalDeviceSwapchainMaintenance1FeaturesEXT {
17978 #[inline]
17979 fn default() -> Self {
17980 Self {
17981 s_type: StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
17982 next: ptr::null_mut(),
17983 swapchain_maintenance1: Bool32::default(),
17984 }
17985 }
17986}
17987
17988#[repr(C)]
17990#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
17991pub struct PhysicalDeviceSynchronization2Features {
17992 pub s_type: StructureType,
17993 pub next: *mut c_void,
17994 pub synchronization2: Bool32,
17995}
17996
17997impl Default for PhysicalDeviceSynchronization2Features {
17998 #[inline]
17999 fn default() -> Self {
18000 Self {
18001 s_type: StructureType::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
18002 next: ptr::null_mut(),
18003 synchronization2: Bool32::default(),
18004 }
18005 }
18006}
18007
18008#[repr(C)]
18010#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18011pub struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
18012 pub s_type: StructureType,
18013 pub next: *mut c_void,
18014 pub texel_buffer_alignment: Bool32,
18015}
18016
18017impl Default for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
18018 #[inline]
18019 fn default() -> Self {
18020 Self {
18021 s_type: StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
18022 next: ptr::null_mut(),
18023 texel_buffer_alignment: Bool32::default(),
18024 }
18025 }
18026}
18027
18028#[repr(C)]
18030#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18031pub struct PhysicalDeviceTexelBufferAlignmentProperties {
18032 pub s_type: StructureType,
18033 pub next: *mut c_void,
18034 pub storage_texel_buffer_offset_alignment_bytes: DeviceSize,
18035 pub storage_texel_buffer_offset_single_texel_alignment: Bool32,
18036 pub uniform_texel_buffer_offset_alignment_bytes: DeviceSize,
18037 pub uniform_texel_buffer_offset_single_texel_alignment: Bool32,
18038}
18039
18040impl Default for PhysicalDeviceTexelBufferAlignmentProperties {
18041 #[inline]
18042 fn default() -> Self {
18043 Self {
18044 s_type: StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
18045 next: ptr::null_mut(),
18046 storage_texel_buffer_offset_alignment_bytes: DeviceSize::default(),
18047 storage_texel_buffer_offset_single_texel_alignment: Bool32::default(),
18048 uniform_texel_buffer_offset_alignment_bytes: DeviceSize::default(),
18049 uniform_texel_buffer_offset_single_texel_alignment: Bool32::default(),
18050 }
18051 }
18052}
18053
18054#[repr(C)]
18056#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18057pub struct PhysicalDeviceTextureCompressionASTCHDRFeatures {
18058 pub s_type: StructureType,
18059 pub next: *mut c_void,
18060 pub texture_compression_astc_hdr: Bool32,
18061}
18062
18063impl Default for PhysicalDeviceTextureCompressionASTCHDRFeatures {
18064 #[inline]
18065 fn default() -> Self {
18066 Self {
18067 s_type: StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
18068 next: ptr::null_mut(),
18069 texture_compression_astc_hdr: Bool32::default(),
18070 }
18071 }
18072}
18073
18074#[repr(C)]
18076#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18077pub struct PhysicalDeviceTilePropertiesFeaturesQCOM {
18078 pub s_type: StructureType,
18079 pub next: *mut c_void,
18080 pub tile_properties: Bool32,
18081}
18082
18083impl Default for PhysicalDeviceTilePropertiesFeaturesQCOM {
18084 #[inline]
18085 fn default() -> Self {
18086 Self {
18087 s_type: StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM,
18088 next: ptr::null_mut(),
18089 tile_properties: Bool32::default(),
18090 }
18091 }
18092}
18093
18094#[repr(C)]
18096#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18097pub struct PhysicalDeviceTimelineSemaphoreFeatures {
18098 pub s_type: StructureType,
18099 pub next: *mut c_void,
18100 pub timeline_semaphore: Bool32,
18101}
18102
18103impl Default for PhysicalDeviceTimelineSemaphoreFeatures {
18104 #[inline]
18105 fn default() -> Self {
18106 Self {
18107 s_type: StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
18108 next: ptr::null_mut(),
18109 timeline_semaphore: Bool32::default(),
18110 }
18111 }
18112}
18113
18114#[repr(C)]
18116#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18117pub struct PhysicalDeviceTimelineSemaphoreProperties {
18118 pub s_type: StructureType,
18119 pub next: *mut c_void,
18120 pub max_timeline_semaphore_value_difference: u64,
18121}
18122
18123impl Default for PhysicalDeviceTimelineSemaphoreProperties {
18124 #[inline]
18125 fn default() -> Self {
18126 Self {
18127 s_type: StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
18128 next: ptr::null_mut(),
18129 max_timeline_semaphore_value_difference: u64::default(),
18130 }
18131 }
18132}
18133
18134#[repr(C)]
18136#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18137pub struct PhysicalDeviceToolProperties {
18138 pub s_type: StructureType,
18139 pub next: *mut c_void,
18140 pub name: StringArray<MAX_EXTENSION_NAME_SIZE>,
18141 pub version: StringArray<MAX_EXTENSION_NAME_SIZE>,
18142 pub purposes: ToolPurposeFlags,
18143 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
18144 pub layer: StringArray<MAX_EXTENSION_NAME_SIZE>,
18145}
18146
18147impl Default for PhysicalDeviceToolProperties {
18148 #[inline]
18149 fn default() -> Self {
18150 Self {
18151 s_type: StructureType::PHYSICAL_DEVICE_TOOL_PROPERTIES,
18152 next: ptr::null_mut(),
18153 name: StringArray::default(),
18154 version: StringArray::default(),
18155 purposes: ToolPurposeFlags::default(),
18156 description: StringArray::default(),
18157 layer: StringArray::default(),
18158 }
18159 }
18160}
18161
18162#[repr(C)]
18164#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18165pub struct PhysicalDeviceTransformFeedbackFeaturesEXT {
18166 pub s_type: StructureType,
18167 pub next: *mut c_void,
18168 pub transform_feedback: Bool32,
18169 pub geometry_streams: Bool32,
18170}
18171
18172impl Default for PhysicalDeviceTransformFeedbackFeaturesEXT {
18173 #[inline]
18174 fn default() -> Self {
18175 Self {
18176 s_type: StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
18177 next: ptr::null_mut(),
18178 transform_feedback: Bool32::default(),
18179 geometry_streams: Bool32::default(),
18180 }
18181 }
18182}
18183
18184#[repr(C)]
18186#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18187pub struct PhysicalDeviceTransformFeedbackPropertiesEXT {
18188 pub s_type: StructureType,
18189 pub next: *mut c_void,
18190 pub max_transform_feedback_streams: u32,
18191 pub max_transform_feedback_buffers: u32,
18192 pub max_transform_feedback_buffer_size: DeviceSize,
18193 pub max_transform_feedback_stream_data_size: u32,
18194 pub max_transform_feedback_buffer_data_size: u32,
18195 pub max_transform_feedback_buffer_data_stride: u32,
18196 pub transform_feedback_queries: Bool32,
18197 pub transform_feedback_streams_lines_triangles: Bool32,
18198 pub transform_feedback_rasterization_stream_select: Bool32,
18199 pub transform_feedback_draw: Bool32,
18200}
18201
18202impl Default for PhysicalDeviceTransformFeedbackPropertiesEXT {
18203 #[inline]
18204 fn default() -> Self {
18205 Self {
18206 s_type: StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
18207 next: ptr::null_mut(),
18208 max_transform_feedback_streams: u32::default(),
18209 max_transform_feedback_buffers: u32::default(),
18210 max_transform_feedback_buffer_size: DeviceSize::default(),
18211 max_transform_feedback_stream_data_size: u32::default(),
18212 max_transform_feedback_buffer_data_size: u32::default(),
18213 max_transform_feedback_buffer_data_stride: u32::default(),
18214 transform_feedback_queries: Bool32::default(),
18215 transform_feedback_streams_lines_triangles: Bool32::default(),
18216 transform_feedback_rasterization_stream_select: Bool32::default(),
18217 transform_feedback_draw: Bool32::default(),
18218 }
18219 }
18220}
18221
18222#[repr(C)]
18224#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18225pub struct PhysicalDeviceUniformBufferStandardLayoutFeatures {
18226 pub s_type: StructureType,
18227 pub next: *mut c_void,
18228 pub uniform_buffer_standard_layout: Bool32,
18229}
18230
18231impl Default for PhysicalDeviceUniformBufferStandardLayoutFeatures {
18232 #[inline]
18233 fn default() -> Self {
18234 Self {
18235 s_type: StructureType::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
18236 next: ptr::null_mut(),
18237 uniform_buffer_standard_layout: Bool32::default(),
18238 }
18239 }
18240}
18241
18242#[repr(C)]
18244#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18245pub struct PhysicalDeviceVariablePointersFeatures {
18246 pub s_type: StructureType,
18247 pub next: *mut c_void,
18248 pub variable_pointers_storage_buffer: Bool32,
18249 pub variable_pointers: Bool32,
18250}
18251
18252impl Default for PhysicalDeviceVariablePointersFeatures {
18253 #[inline]
18254 fn default() -> Self {
18255 Self {
18256 s_type: StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
18257 next: ptr::null_mut(),
18258 variable_pointers_storage_buffer: Bool32::default(),
18259 variable_pointers: Bool32::default(),
18260 }
18261 }
18262}
18263
18264#[repr(C)]
18266#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18267pub struct PhysicalDeviceVertexAttributeDivisorFeatures {
18268 pub s_type: StructureType,
18269 pub next: *mut c_void,
18270 pub vertex_attribute_instance_rate_divisor: Bool32,
18271 pub vertex_attribute_instance_rate_zero_divisor: Bool32,
18272}
18273
18274impl Default for PhysicalDeviceVertexAttributeDivisorFeatures {
18275 #[inline]
18276 fn default() -> Self {
18277 Self {
18278 s_type: StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
18279 next: ptr::null_mut(),
18280 vertex_attribute_instance_rate_divisor: Bool32::default(),
18281 vertex_attribute_instance_rate_zero_divisor: Bool32::default(),
18282 }
18283 }
18284}
18285
18286#[repr(C)]
18288#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18289pub struct PhysicalDeviceVertexAttributeDivisorProperties {
18290 pub s_type: StructureType,
18291 pub next: *mut c_void,
18292 pub max_vertex_attrib_divisor: u32,
18293 pub supports_non_zero_first_instance: Bool32,
18294}
18295
18296impl Default for PhysicalDeviceVertexAttributeDivisorProperties {
18297 #[inline]
18298 fn default() -> Self {
18299 Self {
18300 s_type: StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
18301 next: ptr::null_mut(),
18302 max_vertex_attrib_divisor: u32::default(),
18303 supports_non_zero_first_instance: Bool32::default(),
18304 }
18305 }
18306}
18307
18308#[repr(C)]
18310#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18311pub struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
18312 pub s_type: StructureType,
18313 pub next: *mut c_void,
18314 pub max_vertex_attrib_divisor: u32,
18315}
18316
18317impl Default for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
18318 #[inline]
18319 fn default() -> Self {
18320 Self {
18321 s_type: StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
18322 next: ptr::null_mut(),
18323 max_vertex_attrib_divisor: u32::default(),
18324 }
18325 }
18326}
18327
18328#[repr(C)]
18330#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18331pub struct PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
18332 pub s_type: StructureType,
18333 pub next: *mut c_void,
18334 pub vertex_attribute_robustness: Bool32,
18335}
18336
18337impl Default for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
18338 #[inline]
18339 fn default() -> Self {
18340 Self {
18341 s_type: StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT,
18342 next: ptr::null_mut(),
18343 vertex_attribute_robustness: Bool32::default(),
18344 }
18345 }
18346}
18347
18348#[repr(C)]
18350#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18351pub struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
18352 pub s_type: StructureType,
18353 pub next: *mut c_void,
18354 pub vertex_input_dynamic_state: Bool32,
18355}
18356
18357impl Default for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
18358 #[inline]
18359 fn default() -> Self {
18360 Self {
18361 s_type: StructureType::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
18362 next: ptr::null_mut(),
18363 vertex_input_dynamic_state: Bool32::default(),
18364 }
18365 }
18366}
18367
18368#[repr(C)]
18370#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18371pub struct PhysicalDeviceVideoEncodeAV1FeaturesKHR {
18372 pub s_type: StructureType,
18373 pub next: *mut c_void,
18374 pub video_encode_av1: Bool32,
18375}
18376
18377impl Default for PhysicalDeviceVideoEncodeAV1FeaturesKHR {
18378 #[inline]
18379 fn default() -> Self {
18380 Self {
18381 s_type: StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR,
18382 next: ptr::null_mut(),
18383 video_encode_av1: Bool32::default(),
18384 }
18385 }
18386}
18387
18388#[repr(C)]
18390#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18391pub struct PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
18392 pub s_type: StructureType,
18393 pub next: *const c_void,
18394 pub video_profile: *const VideoProfileInfoKHR,
18395 pub quality_level: u32,
18396}
18397
18398impl Default for PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
18399 #[inline]
18400 fn default() -> Self {
18401 Self {
18402 s_type: StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
18403 next: ptr::null(),
18404 video_profile: ptr::null(),
18405 quality_level: u32::default(),
18406 }
18407 }
18408}
18409
18410#[repr(C)]
18412#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18413pub struct PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
18414 pub s_type: StructureType,
18415 pub next: *mut c_void,
18416 pub video_encode_quantization_map: Bool32,
18417}
18418
18419impl Default for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
18420 #[inline]
18421 fn default() -> Self {
18422 Self {
18423 s_type: StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR,
18424 next: ptr::null_mut(),
18425 video_encode_quantization_map: Bool32::default(),
18426 }
18427 }
18428}
18429
18430#[repr(C)]
18432#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18433pub struct PhysicalDeviceVideoFormatInfoKHR {
18434 pub s_type: StructureType,
18435 pub next: *const c_void,
18436 pub image_usage: ImageUsageFlags,
18437}
18438
18439impl Default for PhysicalDeviceVideoFormatInfoKHR {
18440 #[inline]
18441 fn default() -> Self {
18442 Self {
18443 s_type: StructureType::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR,
18444 next: ptr::null(),
18445 image_usage: ImageUsageFlags::default(),
18446 }
18447 }
18448}
18449
18450#[repr(C)]
18452#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18453pub struct PhysicalDeviceVideoMaintenance1FeaturesKHR {
18454 pub s_type: StructureType,
18455 pub next: *mut c_void,
18456 pub video_maintenance1: Bool32,
18457}
18458
18459impl Default for PhysicalDeviceVideoMaintenance1FeaturesKHR {
18460 #[inline]
18461 fn default() -> Self {
18462 Self {
18463 s_type: StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR,
18464 next: ptr::null_mut(),
18465 video_maintenance1: Bool32::default(),
18466 }
18467 }
18468}
18469
18470#[repr(C)]
18472#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18473pub struct PhysicalDeviceVideoMaintenance2FeaturesKHR {
18474 pub s_type: StructureType,
18475 pub next: *mut c_void,
18476 pub video_maintenance2: Bool32,
18477}
18478
18479impl Default for PhysicalDeviceVideoMaintenance2FeaturesKHR {
18480 #[inline]
18481 fn default() -> Self {
18482 Self {
18483 s_type: StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR,
18484 next: ptr::null_mut(),
18485 video_maintenance2: Bool32::default(),
18486 }
18487 }
18488}
18489
18490#[repr(C)]
18492#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18493pub struct PhysicalDeviceVulkan11Features {
18494 pub s_type: StructureType,
18495 pub next: *mut c_void,
18496 pub storage_buffer_16bit_access: Bool32,
18497 pub uniform_and_storage_buffer_16bit_access: Bool32,
18498 pub storage_push_constant16: Bool32,
18499 pub storage_input_output16: Bool32,
18500 pub multiview: Bool32,
18501 pub multiview_geometry_shader: Bool32,
18502 pub multiview_tessellation_shader: Bool32,
18503 pub variable_pointers_storage_buffer: Bool32,
18504 pub variable_pointers: Bool32,
18505 pub protected_memory: Bool32,
18506 pub sampler_ycbcr_conversion: Bool32,
18507 pub shader_draw_parameters: Bool32,
18508}
18509
18510impl Default for PhysicalDeviceVulkan11Features {
18511 #[inline]
18512 fn default() -> Self {
18513 Self {
18514 s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
18515 next: ptr::null_mut(),
18516 storage_buffer_16bit_access: Bool32::default(),
18517 uniform_and_storage_buffer_16bit_access: Bool32::default(),
18518 storage_push_constant16: Bool32::default(),
18519 storage_input_output16: Bool32::default(),
18520 multiview: Bool32::default(),
18521 multiview_geometry_shader: Bool32::default(),
18522 multiview_tessellation_shader: Bool32::default(),
18523 variable_pointers_storage_buffer: Bool32::default(),
18524 variable_pointers: Bool32::default(),
18525 protected_memory: Bool32::default(),
18526 sampler_ycbcr_conversion: Bool32::default(),
18527 shader_draw_parameters: Bool32::default(),
18528 }
18529 }
18530}
18531
18532#[repr(C)]
18534#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18535pub struct PhysicalDeviceVulkan11Properties {
18536 pub s_type: StructureType,
18537 pub next: *mut c_void,
18538 pub device_uuid: ByteArray<UUID_SIZE>,
18539 pub driver_uuid: ByteArray<UUID_SIZE>,
18540 pub device_luid: ByteArray<LUID_SIZE>,
18541 pub device_node_mask: u32,
18542 pub device_luid_valid: Bool32,
18543 pub subgroup_size: u32,
18544 pub subgroup_supported_stages: ShaderStageFlags,
18545 pub subgroup_supported_operations: SubgroupFeatureFlags,
18546 pub subgroup_quad_operations_in_all_stages: Bool32,
18547 pub point_clipping_behavior: PointClippingBehavior,
18548 pub max_multiview_view_count: u32,
18549 pub max_multiview_instance_index: u32,
18550 pub protected_no_fault: Bool32,
18551 pub max_per_set_descriptors: u32,
18552 pub max_memory_allocation_size: DeviceSize,
18553}
18554
18555impl Default for PhysicalDeviceVulkan11Properties {
18556 #[inline]
18557 fn default() -> Self {
18558 Self {
18559 s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
18560 next: ptr::null_mut(),
18561 device_uuid: ByteArray::default(),
18562 driver_uuid: ByteArray::default(),
18563 device_luid: ByteArray::default(),
18564 device_node_mask: u32::default(),
18565 device_luid_valid: Bool32::default(),
18566 subgroup_size: u32::default(),
18567 subgroup_supported_stages: ShaderStageFlags::default(),
18568 subgroup_supported_operations: SubgroupFeatureFlags::default(),
18569 subgroup_quad_operations_in_all_stages: Bool32::default(),
18570 point_clipping_behavior: PointClippingBehavior::default(),
18571 max_multiview_view_count: u32::default(),
18572 max_multiview_instance_index: u32::default(),
18573 protected_no_fault: Bool32::default(),
18574 max_per_set_descriptors: u32::default(),
18575 max_memory_allocation_size: DeviceSize::default(),
18576 }
18577 }
18578}
18579
18580#[repr(C)]
18582#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18583pub struct PhysicalDeviceVulkan12Features {
18584 pub s_type: StructureType,
18585 pub next: *mut c_void,
18586 pub sampler_mirror_clamp_to_edge: Bool32,
18587 pub draw_indirect_count: Bool32,
18588 pub storage_buffer_8bit_access: Bool32,
18589 pub uniform_and_storage_buffer_8bit_access: Bool32,
18590 pub storage_push_constant8: Bool32,
18591 pub shader_buffer_int64_atomics: Bool32,
18592 pub shader_shared_int64_atomics: Bool32,
18593 pub shader_float16: Bool32,
18594 pub shader_int8: Bool32,
18595 pub descriptor_indexing: Bool32,
18596 pub shader_input_attachment_array_dynamic_indexing: Bool32,
18597 pub shader_uniform_texel_buffer_array_dynamic_indexing: Bool32,
18598 pub shader_storage_texel_buffer_array_dynamic_indexing: Bool32,
18599 pub shader_uniform_buffer_array_non_uniform_indexing: Bool32,
18600 pub shader_sampled_image_array_non_uniform_indexing: Bool32,
18601 pub shader_storage_buffer_array_non_uniform_indexing: Bool32,
18602 pub shader_storage_image_array_non_uniform_indexing: Bool32,
18603 pub shader_input_attachment_array_non_uniform_indexing: Bool32,
18604 pub shader_uniform_texel_buffer_array_non_uniform_indexing: Bool32,
18605 pub shader_storage_texel_buffer_array_non_uniform_indexing: Bool32,
18606 pub descriptor_binding_uniform_buffer_update_after_bind: Bool32,
18607 pub descriptor_binding_sampled_image_update_after_bind: Bool32,
18608 pub descriptor_binding_storage_image_update_after_bind: Bool32,
18609 pub descriptor_binding_storage_buffer_update_after_bind: Bool32,
18610 pub descriptor_binding_uniform_texel_buffer_update_after_bind: Bool32,
18611 pub descriptor_binding_storage_texel_buffer_update_after_bind: Bool32,
18612 pub descriptor_binding_update_unused_while_pending: Bool32,
18613 pub descriptor_binding_partially_bound: Bool32,
18614 pub descriptor_binding_variable_descriptor_count: Bool32,
18615 pub runtime_descriptor_array: Bool32,
18616 pub sampler_filter_minmax: Bool32,
18617 pub scalar_block_layout: Bool32,
18618 pub imageless_framebuffer: Bool32,
18619 pub uniform_buffer_standard_layout: Bool32,
18620 pub shader_subgroup_extended_types: Bool32,
18621 pub separate_depth_stencil_layouts: Bool32,
18622 pub host_query_reset: Bool32,
18623 pub timeline_semaphore: Bool32,
18624 pub buffer_device_address: Bool32,
18625 pub buffer_device_address_capture_replay: Bool32,
18626 pub buffer_device_address_multi_device: Bool32,
18627 pub vulkan_memory_model: Bool32,
18628 pub vulkan_memory_model_device_scope: Bool32,
18629 pub vulkan_memory_model_availability_visibility_chains: Bool32,
18630 pub shader_output_viewport_index: Bool32,
18631 pub shader_output_layer: Bool32,
18632 pub subgroup_broadcast_dynamic_id: Bool32,
18633}
18634
18635impl Default for PhysicalDeviceVulkan12Features {
18636 #[inline]
18637 fn default() -> Self {
18638 Self {
18639 s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
18640 next: ptr::null_mut(),
18641 sampler_mirror_clamp_to_edge: Bool32::default(),
18642 draw_indirect_count: Bool32::default(),
18643 storage_buffer_8bit_access: Bool32::default(),
18644 uniform_and_storage_buffer_8bit_access: Bool32::default(),
18645 storage_push_constant8: Bool32::default(),
18646 shader_buffer_int64_atomics: Bool32::default(),
18647 shader_shared_int64_atomics: Bool32::default(),
18648 shader_float16: Bool32::default(),
18649 shader_int8: Bool32::default(),
18650 descriptor_indexing: Bool32::default(),
18651 shader_input_attachment_array_dynamic_indexing: Bool32::default(),
18652 shader_uniform_texel_buffer_array_dynamic_indexing: Bool32::default(),
18653 shader_storage_texel_buffer_array_dynamic_indexing: Bool32::default(),
18654 shader_uniform_buffer_array_non_uniform_indexing: Bool32::default(),
18655 shader_sampled_image_array_non_uniform_indexing: Bool32::default(),
18656 shader_storage_buffer_array_non_uniform_indexing: Bool32::default(),
18657 shader_storage_image_array_non_uniform_indexing: Bool32::default(),
18658 shader_input_attachment_array_non_uniform_indexing: Bool32::default(),
18659 shader_uniform_texel_buffer_array_non_uniform_indexing: Bool32::default(),
18660 shader_storage_texel_buffer_array_non_uniform_indexing: Bool32::default(),
18661 descriptor_binding_uniform_buffer_update_after_bind: Bool32::default(),
18662 descriptor_binding_sampled_image_update_after_bind: Bool32::default(),
18663 descriptor_binding_storage_image_update_after_bind: Bool32::default(),
18664 descriptor_binding_storage_buffer_update_after_bind: Bool32::default(),
18665 descriptor_binding_uniform_texel_buffer_update_after_bind: Bool32::default(),
18666 descriptor_binding_storage_texel_buffer_update_after_bind: Bool32::default(),
18667 descriptor_binding_update_unused_while_pending: Bool32::default(),
18668 descriptor_binding_partially_bound: Bool32::default(),
18669 descriptor_binding_variable_descriptor_count: Bool32::default(),
18670 runtime_descriptor_array: Bool32::default(),
18671 sampler_filter_minmax: Bool32::default(),
18672 scalar_block_layout: Bool32::default(),
18673 imageless_framebuffer: Bool32::default(),
18674 uniform_buffer_standard_layout: Bool32::default(),
18675 shader_subgroup_extended_types: Bool32::default(),
18676 separate_depth_stencil_layouts: Bool32::default(),
18677 host_query_reset: Bool32::default(),
18678 timeline_semaphore: Bool32::default(),
18679 buffer_device_address: Bool32::default(),
18680 buffer_device_address_capture_replay: Bool32::default(),
18681 buffer_device_address_multi_device: Bool32::default(),
18682 vulkan_memory_model: Bool32::default(),
18683 vulkan_memory_model_device_scope: Bool32::default(),
18684 vulkan_memory_model_availability_visibility_chains: Bool32::default(),
18685 shader_output_viewport_index: Bool32::default(),
18686 shader_output_layer: Bool32::default(),
18687 subgroup_broadcast_dynamic_id: Bool32::default(),
18688 }
18689 }
18690}
18691
18692#[repr(C)]
18694#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18695pub struct PhysicalDeviceVulkan12Properties {
18696 pub s_type: StructureType,
18697 pub next: *mut c_void,
18698 pub driver_id: DriverId,
18699 pub driver_name: StringArray<MAX_DRIVER_NAME_SIZE>,
18700 pub driver_info: StringArray<MAX_DRIVER_INFO_SIZE>,
18701 pub conformance_version: ConformanceVersion,
18702 pub denorm_behavior_independence: ShaderFloatControlsIndependence,
18703 pub rounding_mode_independence: ShaderFloatControlsIndependence,
18704 pub shader_signed_zero_inf_nan_preserve_float16: Bool32,
18705 pub shader_signed_zero_inf_nan_preserve_float32: Bool32,
18706 pub shader_signed_zero_inf_nan_preserve_float64: Bool32,
18707 pub shader_denorm_preserve_float16: Bool32,
18708 pub shader_denorm_preserve_float32: Bool32,
18709 pub shader_denorm_preserve_float64: Bool32,
18710 pub shader_denorm_flush_to_zero_float16: Bool32,
18711 pub shader_denorm_flush_to_zero_float32: Bool32,
18712 pub shader_denorm_flush_to_zero_float64: Bool32,
18713 pub shader_rounding_mode_rte_float16: Bool32,
18714 pub shader_rounding_mode_rte_float32: Bool32,
18715 pub shader_rounding_mode_rte_float64: Bool32,
18716 pub shader_rounding_mode_rtz_float16: Bool32,
18717 pub shader_rounding_mode_rtz_float32: Bool32,
18718 pub shader_rounding_mode_rtz_float64: Bool32,
18719 pub max_update_after_bind_descriptors_in_all_pools: u32,
18720 pub shader_uniform_buffer_array_non_uniform_indexing_native: Bool32,
18721 pub shader_sampled_image_array_non_uniform_indexing_native: Bool32,
18722 pub shader_storage_buffer_array_non_uniform_indexing_native: Bool32,
18723 pub shader_storage_image_array_non_uniform_indexing_native: Bool32,
18724 pub shader_input_attachment_array_non_uniform_indexing_native: Bool32,
18725 pub robust_buffer_access_update_after_bind: Bool32,
18726 pub quad_divergent_implicit_lod: Bool32,
18727 pub max_per_stage_descriptor_update_after_bind_samplers: u32,
18728 pub max_per_stage_descriptor_update_after_bind_uniform_buffers: u32,
18729 pub max_per_stage_descriptor_update_after_bind_storage_buffers: u32,
18730 pub max_per_stage_descriptor_update_after_bind_sampled_images: u32,
18731 pub max_per_stage_descriptor_update_after_bind_storage_images: u32,
18732 pub max_per_stage_descriptor_update_after_bind_input_attachments: u32,
18733 pub max_per_stage_update_after_bind_resources: u32,
18734 pub max_descriptor_set_update_after_bind_samplers: u32,
18735 pub max_descriptor_set_update_after_bind_uniform_buffers: u32,
18736 pub max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32,
18737 pub max_descriptor_set_update_after_bind_storage_buffers: u32,
18738 pub max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32,
18739 pub max_descriptor_set_update_after_bind_sampled_images: u32,
18740 pub max_descriptor_set_update_after_bind_storage_images: u32,
18741 pub max_descriptor_set_update_after_bind_input_attachments: u32,
18742 pub supported_depth_resolve_modes: ResolveModeFlags,
18743 pub supported_stencil_resolve_modes: ResolveModeFlags,
18744 pub independent_resolve_none: Bool32,
18745 pub independent_resolve: Bool32,
18746 pub filter_minmax_single_component_formats: Bool32,
18747 pub filter_minmax_image_component_mapping: Bool32,
18748 pub max_timeline_semaphore_value_difference: u64,
18749 pub framebuffer_integer_color_sample_counts: SampleCountFlags,
18750}
18751
18752impl Default for PhysicalDeviceVulkan12Properties {
18753 #[inline]
18754 fn default() -> Self {
18755 Self {
18756 s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
18757 next: ptr::null_mut(),
18758 driver_id: DriverId::default(),
18759 driver_name: StringArray::default(),
18760 driver_info: StringArray::default(),
18761 conformance_version: ConformanceVersion::default(),
18762 denorm_behavior_independence: ShaderFloatControlsIndependence::default(),
18763 rounding_mode_independence: ShaderFloatControlsIndependence::default(),
18764 shader_signed_zero_inf_nan_preserve_float16: Bool32::default(),
18765 shader_signed_zero_inf_nan_preserve_float32: Bool32::default(),
18766 shader_signed_zero_inf_nan_preserve_float64: Bool32::default(),
18767 shader_denorm_preserve_float16: Bool32::default(),
18768 shader_denorm_preserve_float32: Bool32::default(),
18769 shader_denorm_preserve_float64: Bool32::default(),
18770 shader_denorm_flush_to_zero_float16: Bool32::default(),
18771 shader_denorm_flush_to_zero_float32: Bool32::default(),
18772 shader_denorm_flush_to_zero_float64: Bool32::default(),
18773 shader_rounding_mode_rte_float16: Bool32::default(),
18774 shader_rounding_mode_rte_float32: Bool32::default(),
18775 shader_rounding_mode_rte_float64: Bool32::default(),
18776 shader_rounding_mode_rtz_float16: Bool32::default(),
18777 shader_rounding_mode_rtz_float32: Bool32::default(),
18778 shader_rounding_mode_rtz_float64: Bool32::default(),
18779 max_update_after_bind_descriptors_in_all_pools: u32::default(),
18780 shader_uniform_buffer_array_non_uniform_indexing_native: Bool32::default(),
18781 shader_sampled_image_array_non_uniform_indexing_native: Bool32::default(),
18782 shader_storage_buffer_array_non_uniform_indexing_native: Bool32::default(),
18783 shader_storage_image_array_non_uniform_indexing_native: Bool32::default(),
18784 shader_input_attachment_array_non_uniform_indexing_native: Bool32::default(),
18785 robust_buffer_access_update_after_bind: Bool32::default(),
18786 quad_divergent_implicit_lod: Bool32::default(),
18787 max_per_stage_descriptor_update_after_bind_samplers: u32::default(),
18788 max_per_stage_descriptor_update_after_bind_uniform_buffers: u32::default(),
18789 max_per_stage_descriptor_update_after_bind_storage_buffers: u32::default(),
18790 max_per_stage_descriptor_update_after_bind_sampled_images: u32::default(),
18791 max_per_stage_descriptor_update_after_bind_storage_images: u32::default(),
18792 max_per_stage_descriptor_update_after_bind_input_attachments: u32::default(),
18793 max_per_stage_update_after_bind_resources: u32::default(),
18794 max_descriptor_set_update_after_bind_samplers: u32::default(),
18795 max_descriptor_set_update_after_bind_uniform_buffers: u32::default(),
18796 max_descriptor_set_update_after_bind_uniform_buffers_dynamic: u32::default(),
18797 max_descriptor_set_update_after_bind_storage_buffers: u32::default(),
18798 max_descriptor_set_update_after_bind_storage_buffers_dynamic: u32::default(),
18799 max_descriptor_set_update_after_bind_sampled_images: u32::default(),
18800 max_descriptor_set_update_after_bind_storage_images: u32::default(),
18801 max_descriptor_set_update_after_bind_input_attachments: u32::default(),
18802 supported_depth_resolve_modes: ResolveModeFlags::default(),
18803 supported_stencil_resolve_modes: ResolveModeFlags::default(),
18804 independent_resolve_none: Bool32::default(),
18805 independent_resolve: Bool32::default(),
18806 filter_minmax_single_component_formats: Bool32::default(),
18807 filter_minmax_image_component_mapping: Bool32::default(),
18808 max_timeline_semaphore_value_difference: u64::default(),
18809 framebuffer_integer_color_sample_counts: SampleCountFlags::default(),
18810 }
18811 }
18812}
18813
18814#[repr(C)]
18816#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18817pub struct PhysicalDeviceVulkan13Features {
18818 pub s_type: StructureType,
18819 pub next: *mut c_void,
18820 pub robust_image_access: Bool32,
18821 pub inline_uniform_block: Bool32,
18822 pub descriptor_binding_inline_uniform_block_update_after_bind: Bool32,
18823 pub pipeline_creation_cache_control: Bool32,
18824 pub private_data: Bool32,
18825 pub shader_demote_to_helper_invocation: Bool32,
18826 pub shader_terminate_invocation: Bool32,
18827 pub subgroup_size_control: Bool32,
18828 pub compute_full_subgroups: Bool32,
18829 pub synchronization2: Bool32,
18830 pub texture_compression_astc_hdr: Bool32,
18831 pub shader_zero_initialize_workgroup_memory: Bool32,
18832 pub dynamic_rendering: Bool32,
18833 pub shader_integer_dot_product: Bool32,
18834 pub maintenance4: Bool32,
18835}
18836
18837impl Default for PhysicalDeviceVulkan13Features {
18838 #[inline]
18839 fn default() -> Self {
18840 Self {
18841 s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES,
18842 next: ptr::null_mut(),
18843 robust_image_access: Bool32::default(),
18844 inline_uniform_block: Bool32::default(),
18845 descriptor_binding_inline_uniform_block_update_after_bind: Bool32::default(),
18846 pipeline_creation_cache_control: Bool32::default(),
18847 private_data: Bool32::default(),
18848 shader_demote_to_helper_invocation: Bool32::default(),
18849 shader_terminate_invocation: Bool32::default(),
18850 subgroup_size_control: Bool32::default(),
18851 compute_full_subgroups: Bool32::default(),
18852 synchronization2: Bool32::default(),
18853 texture_compression_astc_hdr: Bool32::default(),
18854 shader_zero_initialize_workgroup_memory: Bool32::default(),
18855 dynamic_rendering: Bool32::default(),
18856 shader_integer_dot_product: Bool32::default(),
18857 maintenance4: Bool32::default(),
18858 }
18859 }
18860}
18861
18862#[repr(C)]
18864#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18865pub struct PhysicalDeviceVulkan13Properties {
18866 pub s_type: StructureType,
18867 pub next: *mut c_void,
18868 pub min_subgroup_size: u32,
18869 pub max_subgroup_size: u32,
18870 pub max_compute_workgroup_subgroups: u32,
18871 pub required_subgroup_size_stages: ShaderStageFlags,
18872 pub max_inline_uniform_block_size: u32,
18873 pub max_per_stage_descriptor_inline_uniform_blocks: u32,
18874 pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
18875 pub max_descriptor_set_inline_uniform_blocks: u32,
18876 pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
18877 pub max_inline_uniform_total_size: u32,
18878 pub integer_dot_product_8bit_unsigned_accelerated: Bool32,
18879 pub integer_dot_product_8bit_signed_accelerated: Bool32,
18880 pub integer_dot_product_8bit_mixed_signedness_accelerated: Bool32,
18881 pub integer_dot_product4x_8bit_packed_unsigned_accelerated: Bool32,
18882 pub integer_dot_product4x_8bit_packed_signed_accelerated: Bool32,
18883 pub integer_dot_product4x_8bit_packed_mixed_signedness_accelerated: Bool32,
18884 pub integer_dot_product_16bit_unsigned_accelerated: Bool32,
18885 pub integer_dot_product_16bit_signed_accelerated: Bool32,
18886 pub integer_dot_product_16bit_mixed_signedness_accelerated: Bool32,
18887 pub integer_dot_product_32bit_unsigned_accelerated: Bool32,
18888 pub integer_dot_product_32bit_signed_accelerated: Bool32,
18889 pub integer_dot_product_32bit_mixed_signedness_accelerated: Bool32,
18890 pub integer_dot_product_64bit_unsigned_accelerated: Bool32,
18891 pub integer_dot_product_64bit_signed_accelerated: Bool32,
18892 pub integer_dot_product_64bit_mixed_signedness_accelerated: Bool32,
18893 pub integer_dot_product_accumulating_saturating_8bit_unsigned_accelerated: Bool32,
18894 pub integer_dot_product_accumulating_saturating_8bit_signed_accelerated: Bool32,
18895 pub integer_dot_product_accumulating_saturating_8bit_mixed_signedness_accelerated: Bool32,
18896 pub integer_dot_product_accumulating_saturating4x_8bit_packed_unsigned_accelerated: Bool32,
18897 pub integer_dot_product_accumulating_saturating4x_8bit_packed_signed_accelerated: Bool32,
18898 pub integer_dot_product_accumulating_saturating4x_8bit_packed_mixed_signedness_accelerated:
18899 Bool32,
18900 pub integer_dot_product_accumulating_saturating_16bit_unsigned_accelerated: Bool32,
18901 pub integer_dot_product_accumulating_saturating_16bit_signed_accelerated: Bool32,
18902 pub integer_dot_product_accumulating_saturating_16bit_mixed_signedness_accelerated: Bool32,
18903 pub integer_dot_product_accumulating_saturating_32bit_unsigned_accelerated: Bool32,
18904 pub integer_dot_product_accumulating_saturating_32bit_signed_accelerated: Bool32,
18905 pub integer_dot_product_accumulating_saturating_32bit_mixed_signedness_accelerated: Bool32,
18906 pub integer_dot_product_accumulating_saturating_64bit_unsigned_accelerated: Bool32,
18907 pub integer_dot_product_accumulating_saturating_64bit_signed_accelerated: Bool32,
18908 pub integer_dot_product_accumulating_saturating_64bit_mixed_signedness_accelerated: Bool32,
18909 pub storage_texel_buffer_offset_alignment_bytes: DeviceSize,
18910 pub storage_texel_buffer_offset_single_texel_alignment: Bool32,
18911 pub uniform_texel_buffer_offset_alignment_bytes: DeviceSize,
18912 pub uniform_texel_buffer_offset_single_texel_alignment: Bool32,
18913 pub max_buffer_size: DeviceSize,
18914}
18915
18916impl Default for PhysicalDeviceVulkan13Properties {
18917 #[inline]
18918 fn default() -> Self {
18919 Self { s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES, next: ptr::null_mut(), min_subgroup_size: u32::default(), max_subgroup_size: u32::default(), max_compute_workgroup_subgroups: u32::default(), required_subgroup_size_stages: ShaderStageFlags::default(), max_inline_uniform_block_size: u32::default(), max_per_stage_descriptor_inline_uniform_blocks: u32::default(), max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32::default(), max_descriptor_set_inline_uniform_blocks: u32::default(), max_descriptor_set_update_after_bind_inline_uniform_blocks: u32::default(), max_inline_uniform_total_size: u32::default(), integer_dot_product_8bit_unsigned_accelerated: Bool32::default(), integer_dot_product_8bit_signed_accelerated: Bool32::default(), integer_dot_product_8bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_unsigned_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_signed_accelerated: Bool32::default(), integer_dot_product4x_8bit_packed_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_16bit_unsigned_accelerated: Bool32::default(), integer_dot_product_16bit_signed_accelerated: Bool32::default(), integer_dot_product_16bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_32bit_unsigned_accelerated: Bool32::default(), integer_dot_product_32bit_signed_accelerated: Bool32::default(), integer_dot_product_32bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_64bit_unsigned_accelerated: Bool32::default(), integer_dot_product_64bit_signed_accelerated: Bool32::default(), integer_dot_product_64bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_8bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating4x_8bit_packed_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_16bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_32bit_mixed_signedness_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_unsigned_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_signed_accelerated: Bool32::default(), integer_dot_product_accumulating_saturating_64bit_mixed_signedness_accelerated: Bool32::default(), storage_texel_buffer_offset_alignment_bytes: DeviceSize::default(), storage_texel_buffer_offset_single_texel_alignment: Bool32::default(), uniform_texel_buffer_offset_alignment_bytes: DeviceSize::default(), uniform_texel_buffer_offset_single_texel_alignment: Bool32::default(), max_buffer_size: DeviceSize::default() }
18920 }
18921}
18922
18923#[repr(C)]
18925#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18926pub struct PhysicalDeviceVulkan14Features {
18927 pub s_type: StructureType,
18928 pub next: *mut c_void,
18929 pub global_priority_query: Bool32,
18930 pub shader_subgroup_rotate: Bool32,
18931 pub shader_subgroup_rotate_clustered: Bool32,
18932 pub shader_float_controls2: Bool32,
18933 pub shader_expect_assume: Bool32,
18934 pub rectangular_lines: Bool32,
18935 pub bresenham_lines: Bool32,
18936 pub smooth_lines: Bool32,
18937 pub stippled_rectangular_lines: Bool32,
18938 pub stippled_bresenham_lines: Bool32,
18939 pub stippled_smooth_lines: Bool32,
18940 pub vertex_attribute_instance_rate_divisor: Bool32,
18941 pub vertex_attribute_instance_rate_zero_divisor: Bool32,
18942 pub index_type_uint8: Bool32,
18943 pub dynamic_rendering_local_read: Bool32,
18944 pub maintenance5: Bool32,
18945 pub maintenance6: Bool32,
18946 pub pipeline_protected_access: Bool32,
18947 pub pipeline_robustness: Bool32,
18948 pub host_image_copy: Bool32,
18949 pub push_descriptor: Bool32,
18950}
18951
18952impl Default for PhysicalDeviceVulkan14Features {
18953 #[inline]
18954 fn default() -> Self {
18955 Self {
18956 s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_4_FEATURES,
18957 next: ptr::null_mut(),
18958 global_priority_query: Bool32::default(),
18959 shader_subgroup_rotate: Bool32::default(),
18960 shader_subgroup_rotate_clustered: Bool32::default(),
18961 shader_float_controls2: Bool32::default(),
18962 shader_expect_assume: Bool32::default(),
18963 rectangular_lines: Bool32::default(),
18964 bresenham_lines: Bool32::default(),
18965 smooth_lines: Bool32::default(),
18966 stippled_rectangular_lines: Bool32::default(),
18967 stippled_bresenham_lines: Bool32::default(),
18968 stippled_smooth_lines: Bool32::default(),
18969 vertex_attribute_instance_rate_divisor: Bool32::default(),
18970 vertex_attribute_instance_rate_zero_divisor: Bool32::default(),
18971 index_type_uint8: Bool32::default(),
18972 dynamic_rendering_local_read: Bool32::default(),
18973 maintenance5: Bool32::default(),
18974 maintenance6: Bool32::default(),
18975 pipeline_protected_access: Bool32::default(),
18976 pipeline_robustness: Bool32::default(),
18977 host_image_copy: Bool32::default(),
18978 push_descriptor: Bool32::default(),
18979 }
18980 }
18981}
18982
18983#[repr(C)]
18985#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
18986pub struct PhysicalDeviceVulkan14Properties {
18987 pub s_type: StructureType,
18988 pub next: *mut c_void,
18989 pub line_sub_pixel_precision_bits: u32,
18990 pub max_vertex_attrib_divisor: u32,
18991 pub supports_non_zero_first_instance: Bool32,
18992 pub max_push_descriptors: u32,
18993 pub dynamic_rendering_local_read_depth_stencil_attachments: Bool32,
18994 pub dynamic_rendering_local_read_multisampled_attachments: Bool32,
18995 pub early_fragment_multisample_coverage_after_sample_counting: Bool32,
18996 pub early_fragment_sample_mask_test_before_sample_counting: Bool32,
18997 pub depth_stencil_swizzle_one_support: Bool32,
18998 pub polygon_mode_point_size: Bool32,
18999 pub non_strict_single_pixel_wide_lines_use_parallelogram: Bool32,
19000 pub non_strict_wide_lines_use_parallelogram: Bool32,
19001 pub block_texel_view_compatible_multiple_layers: Bool32,
19002 pub max_combined_image_sampler_descriptor_count: u32,
19003 pub fragment_shading_rate_clamp_combiner_inputs: Bool32,
19004 pub default_robustness_storage_buffers: PipelineRobustnessBufferBehavior,
19005 pub default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior,
19006 pub default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior,
19007 pub default_robustness_images: PipelineRobustnessImageBehavior,
19008 pub copy_src_layout_count: u32,
19009 pub copy_src_layouts: *mut ImageLayout,
19010 pub copy_dst_layout_count: u32,
19011 pub copy_dst_layouts: *mut ImageLayout,
19012 pub optimal_tiling_layout_uuid: ByteArray<UUID_SIZE>,
19013 pub identical_memory_type_requirements: Bool32,
19014}
19015
19016impl Default for PhysicalDeviceVulkan14Properties {
19017 #[inline]
19018 fn default() -> Self {
19019 Self {
19020 s_type: StructureType::PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES,
19021 next: ptr::null_mut(),
19022 line_sub_pixel_precision_bits: u32::default(),
19023 max_vertex_attrib_divisor: u32::default(),
19024 supports_non_zero_first_instance: Bool32::default(),
19025 max_push_descriptors: u32::default(),
19026 dynamic_rendering_local_read_depth_stencil_attachments: Bool32::default(),
19027 dynamic_rendering_local_read_multisampled_attachments: Bool32::default(),
19028 early_fragment_multisample_coverage_after_sample_counting: Bool32::default(),
19029 early_fragment_sample_mask_test_before_sample_counting: Bool32::default(),
19030 depth_stencil_swizzle_one_support: Bool32::default(),
19031 polygon_mode_point_size: Bool32::default(),
19032 non_strict_single_pixel_wide_lines_use_parallelogram: Bool32::default(),
19033 non_strict_wide_lines_use_parallelogram: Bool32::default(),
19034 block_texel_view_compatible_multiple_layers: Bool32::default(),
19035 max_combined_image_sampler_descriptor_count: u32::default(),
19036 fragment_shading_rate_clamp_combiner_inputs: Bool32::default(),
19037 default_robustness_storage_buffers: PipelineRobustnessBufferBehavior::default(),
19038 default_robustness_uniform_buffers: PipelineRobustnessBufferBehavior::default(),
19039 default_robustness_vertex_inputs: PipelineRobustnessBufferBehavior::default(),
19040 default_robustness_images: PipelineRobustnessImageBehavior::default(),
19041 copy_src_layout_count: u32::default(),
19042 copy_src_layouts: ptr::null_mut(),
19043 copy_dst_layout_count: u32::default(),
19044 copy_dst_layouts: ptr::null_mut(),
19045 optimal_tiling_layout_uuid: ByteArray::default(),
19046 identical_memory_type_requirements: Bool32::default(),
19047 }
19048 }
19049}
19050
19051#[repr(C)]
19053#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19054pub struct PhysicalDeviceVulkanMemoryModelFeatures {
19055 pub s_type: StructureType,
19056 pub next: *mut c_void,
19057 pub vulkan_memory_model: Bool32,
19058 pub vulkan_memory_model_device_scope: Bool32,
19059 pub vulkan_memory_model_availability_visibility_chains: Bool32,
19060}
19061
19062impl Default for PhysicalDeviceVulkanMemoryModelFeatures {
19063 #[inline]
19064 fn default() -> Self {
19065 Self {
19066 s_type: StructureType::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
19067 next: ptr::null_mut(),
19068 vulkan_memory_model: Bool32::default(),
19069 vulkan_memory_model_device_scope: Bool32::default(),
19070 vulkan_memory_model_availability_visibility_chains: Bool32::default(),
19071 }
19072 }
19073}
19074
19075#[repr(C)]
19077#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19078pub struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
19079 pub s_type: StructureType,
19080 pub next: *mut c_void,
19081 pub workgroup_memory_explicit_layout: Bool32,
19082 pub workgroup_memory_explicit_layout_scalar_block_layout: Bool32,
19083 pub workgroup_memory_explicit_layout_8bit_access: Bool32,
19084 pub workgroup_memory_explicit_layout_16bit_access: Bool32,
19085}
19086
19087impl Default for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
19088 #[inline]
19089 fn default() -> Self {
19090 Self {
19091 s_type: StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
19092 next: ptr::null_mut(),
19093 workgroup_memory_explicit_layout: Bool32::default(),
19094 workgroup_memory_explicit_layout_scalar_block_layout: Bool32::default(),
19095 workgroup_memory_explicit_layout_8bit_access: Bool32::default(),
19096 workgroup_memory_explicit_layout_16bit_access: Bool32::default(),
19097 }
19098 }
19099}
19100
19101#[repr(C)]
19103#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19104pub struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
19105 pub s_type: StructureType,
19106 pub next: *mut c_void,
19107 pub ycbcr2plane444_formats: Bool32,
19108}
19109
19110impl Default for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
19111 #[inline]
19112 fn default() -> Self {
19113 Self {
19114 s_type: StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
19115 next: ptr::null_mut(),
19116 ycbcr2plane444_formats: Bool32::default(),
19117 }
19118 }
19119}
19120
19121#[repr(C)]
19123#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19124pub struct PhysicalDeviceYcbcrDegammaFeaturesQCOM {
19125 pub s_type: StructureType,
19126 pub next: *mut c_void,
19127 pub ycbcr_degamma: Bool32,
19128}
19129
19130impl Default for PhysicalDeviceYcbcrDegammaFeaturesQCOM {
19131 #[inline]
19132 fn default() -> Self {
19133 Self {
19134 s_type: StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM,
19135 next: ptr::null_mut(),
19136 ycbcr_degamma: Bool32::default(),
19137 }
19138 }
19139}
19140
19141#[repr(C)]
19143#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19144pub struct PhysicalDeviceYcbcrImageArraysFeaturesEXT {
19145 pub s_type: StructureType,
19146 pub next: *mut c_void,
19147 pub ycbcr_image_arrays: Bool32,
19148}
19149
19150impl Default for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
19151 #[inline]
19152 fn default() -> Self {
19153 Self {
19154 s_type: StructureType::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
19155 next: ptr::null_mut(),
19156 ycbcr_image_arrays: Bool32::default(),
19157 }
19158 }
19159}
19160
19161#[repr(C)]
19163#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19164pub struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
19165 pub s_type: StructureType,
19166 pub next: *mut c_void,
19167 pub shader_zero_initialize_workgroup_memory: Bool32,
19168}
19169
19170impl Default for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
19171 #[inline]
19172 fn default() -> Self {
19173 Self {
19174 s_type: StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
19175 next: ptr::null_mut(),
19176 shader_zero_initialize_workgroup_memory: Bool32::default(),
19177 }
19178 }
19179}
19180
19181#[repr(C)]
19183#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19184pub struct PipelineBinaryCreateInfoKHR {
19185 pub s_type: StructureType,
19186 pub next: *const c_void,
19187 pub keys_and_data_info: *const PipelineBinaryKeysAndDataKHR,
19188 pub pipeline: Pipeline,
19189 pub pipeline_create_info: *const PipelineCreateInfoKHR,
19190}
19191
19192impl Default for PipelineBinaryCreateInfoKHR {
19193 #[inline]
19194 fn default() -> Self {
19195 Self {
19196 s_type: StructureType::PIPELINE_BINARY_CREATE_INFO_KHR,
19197 next: ptr::null(),
19198 keys_and_data_info: ptr::null(),
19199 pipeline: Pipeline::default(),
19200 pipeline_create_info: ptr::null(),
19201 }
19202 }
19203}
19204
19205#[repr(C)]
19207#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19208pub struct PipelineBinaryDataInfoKHR {
19209 pub s_type: StructureType,
19210 pub next: *mut c_void,
19211 pub pipeline_binary: PipelineBinaryKHR,
19212}
19213
19214impl Default for PipelineBinaryDataInfoKHR {
19215 #[inline]
19216 fn default() -> Self {
19217 Self {
19218 s_type: StructureType::PIPELINE_BINARY_DATA_INFO_KHR,
19219 next: ptr::null_mut(),
19220 pipeline_binary: PipelineBinaryKHR::default(),
19221 }
19222 }
19223}
19224
19225#[repr(C)]
19227#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19228pub struct PipelineBinaryDataKHR {
19229 pub data_size: usize,
19230 pub data: *mut c_void,
19231}
19232
19233impl Default for PipelineBinaryDataKHR {
19234 #[inline]
19235 fn default() -> Self {
19236 Self {
19237 data_size: usize::default(),
19238 data: ptr::null_mut(),
19239 }
19240 }
19241}
19242
19243#[repr(C)]
19245#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19246pub struct PipelineBinaryHandlesInfoKHR {
19247 pub s_type: StructureType,
19248 pub next: *const c_void,
19249 pub pipeline_binary_count: u32,
19250 pub pipeline_binaries: *mut PipelineBinaryKHR,
19251}
19252
19253impl Default for PipelineBinaryHandlesInfoKHR {
19254 #[inline]
19255 fn default() -> Self {
19256 Self {
19257 s_type: StructureType::PIPELINE_BINARY_HANDLES_INFO_KHR,
19258 next: ptr::null(),
19259 pipeline_binary_count: u32::default(),
19260 pipeline_binaries: ptr::null_mut(),
19261 }
19262 }
19263}
19264
19265#[repr(C)]
19267#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19268pub struct PipelineBinaryInfoKHR {
19269 pub s_type: StructureType,
19270 pub next: *const c_void,
19271 pub binary_count: u32,
19272 pub pipeline_binaries: *const PipelineBinaryKHR,
19273}
19274
19275impl Default for PipelineBinaryInfoKHR {
19276 #[inline]
19277 fn default() -> Self {
19278 Self {
19279 s_type: StructureType::PIPELINE_BINARY_INFO_KHR,
19280 next: ptr::null(),
19281 binary_count: u32::default(),
19282 pipeline_binaries: ptr::null(),
19283 }
19284 }
19285}
19286
19287#[repr(C)]
19289#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19290pub struct PipelineBinaryKeyKHR {
19291 pub s_type: StructureType,
19292 pub next: *mut c_void,
19293 pub key_size: u32,
19294 pub key: ByteArray<MAX_PIPELINE_BINARY_KEY_SIZE_KHR>,
19295}
19296
19297impl Default for PipelineBinaryKeyKHR {
19298 #[inline]
19299 fn default() -> Self {
19300 Self {
19301 s_type: StructureType::PIPELINE_BINARY_KEY_KHR,
19302 next: ptr::null_mut(),
19303 key_size: u32::default(),
19304 key: ByteArray::default(),
19305 }
19306 }
19307}
19308
19309#[repr(C)]
19311#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19312pub struct PipelineBinaryKeysAndDataKHR {
19313 pub binary_count: u32,
19314 pub pipeline_binary_keys: *const PipelineBinaryKeyKHR,
19315 pub pipeline_binary_data: *const PipelineBinaryDataKHR,
19316}
19317
19318impl Default for PipelineBinaryKeysAndDataKHR {
19319 #[inline]
19320 fn default() -> Self {
19321 Self {
19322 binary_count: u32::default(),
19323 pipeline_binary_keys: ptr::null(),
19324 pipeline_binary_data: ptr::null(),
19325 }
19326 }
19327}
19328
19329#[repr(C)]
19331#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19332pub struct PipelineCacheCreateInfo {
19333 pub s_type: StructureType,
19334 pub next: *const c_void,
19335 pub flags: PipelineCacheCreateFlags,
19336 pub initial_data_size: usize,
19337 pub initial_data: *const c_void,
19338}
19339
19340impl Default for PipelineCacheCreateInfo {
19341 #[inline]
19342 fn default() -> Self {
19343 Self {
19344 s_type: StructureType::PIPELINE_CACHE_CREATE_INFO,
19345 next: ptr::null(),
19346 flags: PipelineCacheCreateFlags::default(),
19347 initial_data_size: usize::default(),
19348 initial_data: ptr::null(),
19349 }
19350 }
19351}
19352
19353#[repr(C)]
19355#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
19356pub struct PipelineCacheHeaderVersionOne {
19357 pub header_size: u32,
19358 pub header_version: PipelineCacheHeaderVersion,
19359 pub vendor_id: u32,
19360 pub device_id: u32,
19361 pub pipeline_cache_uuid: ByteArray<UUID_SIZE>,
19362}
19363
19364#[repr(C)]
19366#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19367pub struct PipelineColorBlendAdvancedStateCreateInfoEXT {
19368 pub s_type: StructureType,
19369 pub next: *const c_void,
19370 pub src_premultiplied: Bool32,
19371 pub dst_premultiplied: Bool32,
19372 pub blend_overlap: BlendOverlapEXT,
19373}
19374
19375impl Default for PipelineColorBlendAdvancedStateCreateInfoEXT {
19376 #[inline]
19377 fn default() -> Self {
19378 Self {
19379 s_type: StructureType::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
19380 next: ptr::null(),
19381 src_premultiplied: Bool32::default(),
19382 dst_premultiplied: Bool32::default(),
19383 blend_overlap: BlendOverlapEXT::default(),
19384 }
19385 }
19386}
19387
19388#[repr(C)]
19390#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
19391pub struct PipelineColorBlendAttachmentState {
19392 pub blend_enable: Bool32,
19393 pub src_color_blend_factor: BlendFactor,
19394 pub dst_color_blend_factor: BlendFactor,
19395 pub color_blend_op: BlendOp,
19396 pub src_alpha_blend_factor: BlendFactor,
19397 pub dst_alpha_blend_factor: BlendFactor,
19398 pub alpha_blend_op: BlendOp,
19399 pub color_write_mask: ColorComponentFlags,
19400}
19401
19402#[repr(C)]
19404#[derive(Copy, Clone, Debug, PartialEq)]
19405pub struct PipelineColorBlendStateCreateInfo {
19406 pub s_type: StructureType,
19407 pub next: *const c_void,
19408 pub flags: PipelineColorBlendStateCreateFlags,
19409 pub logic_op_enable: Bool32,
19410 pub logic_op: LogicOp,
19411 pub attachment_count: u32,
19412 pub attachments: *const PipelineColorBlendAttachmentState,
19413 pub blend_constants: [f32; 4],
19414}
19415
19416impl Default for PipelineColorBlendStateCreateInfo {
19417 #[inline]
19418 fn default() -> Self {
19419 Self {
19420 s_type: StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
19421 next: ptr::null(),
19422 flags: PipelineColorBlendStateCreateFlags::default(),
19423 logic_op_enable: Bool32::default(),
19424 logic_op: LogicOp::default(),
19425 attachment_count: u32::default(),
19426 attachments: ptr::null(),
19427 blend_constants: [f32::default(); 4],
19428 }
19429 }
19430}
19431
19432#[repr(C)]
19434#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19435pub struct PipelineColorWriteCreateInfoEXT {
19436 pub s_type: StructureType,
19437 pub next: *const c_void,
19438 pub attachment_count: u32,
19439 pub color_write_enables: *const Bool32,
19440}
19441
19442impl Default for PipelineColorWriteCreateInfoEXT {
19443 #[inline]
19444 fn default() -> Self {
19445 Self {
19446 s_type: StructureType::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
19447 next: ptr::null(),
19448 attachment_count: u32::default(),
19449 color_write_enables: ptr::null(),
19450 }
19451 }
19452}
19453
19454#[repr(C)]
19456#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19457pub struct PipelineCompilerControlCreateInfoAMD {
19458 pub s_type: StructureType,
19459 pub next: *const c_void,
19460 pub compiler_control_flags: PipelineCompilerControlFlagsAMD,
19461}
19462
19463impl Default for PipelineCompilerControlCreateInfoAMD {
19464 #[inline]
19465 fn default() -> Self {
19466 Self {
19467 s_type: StructureType::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
19468 next: ptr::null(),
19469 compiler_control_flags: PipelineCompilerControlFlagsAMD::default(),
19470 }
19471 }
19472}
19473
19474#[repr(C)]
19476#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19477pub struct PipelineCoverageModulationStateCreateInfoNV {
19478 pub s_type: StructureType,
19479 pub next: *const c_void,
19480 pub flags: PipelineCoverageModulationStateCreateFlagsNV,
19481 pub coverage_modulation_mode: CoverageModulationModeNV,
19482 pub coverage_modulation_table_enable: Bool32,
19483 pub coverage_modulation_table_count: u32,
19484 pub coverage_modulation_table: *const f32,
19485}
19486
19487impl Default for PipelineCoverageModulationStateCreateInfoNV {
19488 #[inline]
19489 fn default() -> Self {
19490 Self {
19491 s_type: StructureType::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
19492 next: ptr::null(),
19493 flags: PipelineCoverageModulationStateCreateFlagsNV::default(),
19494 coverage_modulation_mode: CoverageModulationModeNV::default(),
19495 coverage_modulation_table_enable: Bool32::default(),
19496 coverage_modulation_table_count: u32::default(),
19497 coverage_modulation_table: ptr::null(),
19498 }
19499 }
19500}
19501
19502#[repr(C)]
19504#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19505pub struct PipelineCoverageReductionStateCreateInfoNV {
19506 pub s_type: StructureType,
19507 pub next: *const c_void,
19508 pub flags: PipelineCoverageReductionStateCreateFlagsNV,
19509 pub coverage_reduction_mode: CoverageReductionModeNV,
19510}
19511
19512impl Default for PipelineCoverageReductionStateCreateInfoNV {
19513 #[inline]
19514 fn default() -> Self {
19515 Self {
19516 s_type: StructureType::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
19517 next: ptr::null(),
19518 flags: PipelineCoverageReductionStateCreateFlagsNV::default(),
19519 coverage_reduction_mode: CoverageReductionModeNV::default(),
19520 }
19521 }
19522}
19523
19524#[repr(C)]
19526#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19527pub struct PipelineCoverageToColorStateCreateInfoNV {
19528 pub s_type: StructureType,
19529 pub next: *const c_void,
19530 pub flags: PipelineCoverageToColorStateCreateFlagsNV,
19531 pub coverage_to_color_enable: Bool32,
19532 pub coverage_to_color_location: u32,
19533}
19534
19535impl Default for PipelineCoverageToColorStateCreateInfoNV {
19536 #[inline]
19537 fn default() -> Self {
19538 Self {
19539 s_type: StructureType::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
19540 next: ptr::null(),
19541 flags: PipelineCoverageToColorStateCreateFlagsNV::default(),
19542 coverage_to_color_enable: Bool32::default(),
19543 coverage_to_color_location: u32::default(),
19544 }
19545 }
19546}
19547
19548#[repr(C)]
19550#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19551pub struct PipelineCreateFlags2CreateInfo {
19552 pub s_type: StructureType,
19553 pub next: *const c_void,
19554 pub flags: PipelineCreateFlags2,
19555}
19556
19557impl Default for PipelineCreateFlags2CreateInfo {
19558 #[inline]
19559 fn default() -> Self {
19560 Self {
19561 s_type: StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
19562 next: ptr::null(),
19563 flags: PipelineCreateFlags2::default(),
19564 }
19565 }
19566}
19567
19568#[repr(C)]
19570#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19571pub struct PipelineCreateInfoKHR {
19572 pub s_type: StructureType,
19573 pub next: *mut c_void,
19574}
19575
19576impl Default for PipelineCreateInfoKHR {
19577 #[inline]
19578 fn default() -> Self {
19579 Self {
19580 s_type: StructureType::PIPELINE_CREATE_INFO_KHR,
19581 next: ptr::null_mut(),
19582 }
19583 }
19584}
19585
19586#[repr(C)]
19588#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
19589pub struct PipelineCreationFeedback {
19590 pub flags: PipelineCreationFeedbackFlags,
19591 pub duration: u64,
19592}
19593
19594#[repr(C)]
19596#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19597pub struct PipelineCreationFeedbackCreateInfo {
19598 pub s_type: StructureType,
19599 pub next: *const c_void,
19600 pub pipeline_creation_feedback: *mut PipelineCreationFeedback,
19601 pub pipeline_stage_creation_feedback_count: u32,
19602 pub pipeline_stage_creation_feedbacks: *mut PipelineCreationFeedback,
19603}
19604
19605impl Default for PipelineCreationFeedbackCreateInfo {
19606 #[inline]
19607 fn default() -> Self {
19608 Self {
19609 s_type: StructureType::PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
19610 next: ptr::null(),
19611 pipeline_creation_feedback: ptr::null_mut(),
19612 pipeline_stage_creation_feedback_count: u32::default(),
19613 pipeline_stage_creation_feedbacks: ptr::null_mut(),
19614 }
19615 }
19616}
19617
19618#[repr(C)]
19620#[derive(Copy, Clone, Debug, PartialEq)]
19621pub struct PipelineDepthStencilStateCreateInfo {
19622 pub s_type: StructureType,
19623 pub next: *const c_void,
19624 pub flags: PipelineDepthStencilStateCreateFlags,
19625 pub depth_test_enable: Bool32,
19626 pub depth_write_enable: Bool32,
19627 pub depth_compare_op: CompareOp,
19628 pub depth_bounds_test_enable: Bool32,
19629 pub stencil_test_enable: Bool32,
19630 pub front: StencilOpState,
19631 pub back: StencilOpState,
19632 pub min_depth_bounds: f32,
19633 pub max_depth_bounds: f32,
19634}
19635
19636impl Default for PipelineDepthStencilStateCreateInfo {
19637 #[inline]
19638 fn default() -> Self {
19639 Self {
19640 s_type: StructureType::PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
19641 next: ptr::null(),
19642 flags: PipelineDepthStencilStateCreateFlags::default(),
19643 depth_test_enable: Bool32::default(),
19644 depth_write_enable: Bool32::default(),
19645 depth_compare_op: CompareOp::default(),
19646 depth_bounds_test_enable: Bool32::default(),
19647 stencil_test_enable: Bool32::default(),
19648 front: StencilOpState::default(),
19649 back: StencilOpState::default(),
19650 min_depth_bounds: f32::default(),
19651 max_depth_bounds: f32::default(),
19652 }
19653 }
19654}
19655
19656#[repr(C)]
19658#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19659pub struct PipelineDiscardRectangleStateCreateInfoEXT {
19660 pub s_type: StructureType,
19661 pub next: *const c_void,
19662 pub flags: PipelineDiscardRectangleStateCreateFlagsEXT,
19663 pub discard_rectangle_mode: DiscardRectangleModeEXT,
19664 pub discard_rectangle_count: u32,
19665 pub discard_rectangles: *const Rect2D,
19666}
19667
19668impl Default for PipelineDiscardRectangleStateCreateInfoEXT {
19669 #[inline]
19670 fn default() -> Self {
19671 Self {
19672 s_type: StructureType::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
19673 next: ptr::null(),
19674 flags: PipelineDiscardRectangleStateCreateFlagsEXT::default(),
19675 discard_rectangle_mode: DiscardRectangleModeEXT::default(),
19676 discard_rectangle_count: u32::default(),
19677 discard_rectangles: ptr::null(),
19678 }
19679 }
19680}
19681
19682#[repr(C)]
19684#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19685pub struct PipelineDynamicStateCreateInfo {
19686 pub s_type: StructureType,
19687 pub next: *const c_void,
19688 pub flags: PipelineDynamicStateCreateFlags,
19689 pub dynamic_state_count: u32,
19690 pub dynamic_states: *const DynamicState,
19691}
19692
19693impl Default for PipelineDynamicStateCreateInfo {
19694 #[inline]
19695 fn default() -> Self {
19696 Self {
19697 s_type: StructureType::PIPELINE_DYNAMIC_STATE_CREATE_INFO,
19698 next: ptr::null(),
19699 flags: PipelineDynamicStateCreateFlags::default(),
19700 dynamic_state_count: u32::default(),
19701 dynamic_states: ptr::null(),
19702 }
19703 }
19704}
19705
19706#[repr(C)]
19708#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19709pub struct PipelineExecutableInfoKHR {
19710 pub s_type: StructureType,
19711 pub next: *const c_void,
19712 pub pipeline: Pipeline,
19713 pub executable_index: u32,
19714}
19715
19716impl Default for PipelineExecutableInfoKHR {
19717 #[inline]
19718 fn default() -> Self {
19719 Self {
19720 s_type: StructureType::PIPELINE_EXECUTABLE_INFO_KHR,
19721 next: ptr::null(),
19722 pipeline: Pipeline::default(),
19723 executable_index: u32::default(),
19724 }
19725 }
19726}
19727
19728#[repr(C)]
19730#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19731pub struct PipelineExecutableInternalRepresentationKHR {
19732 pub s_type: StructureType,
19733 pub next: *mut c_void,
19734 pub name: StringArray<MAX_DESCRIPTION_SIZE>,
19735 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
19736 pub is_text: Bool32,
19737 pub data_size: usize,
19738 pub data: *mut c_void,
19739}
19740
19741impl Default for PipelineExecutableInternalRepresentationKHR {
19742 #[inline]
19743 fn default() -> Self {
19744 Self {
19745 s_type: StructureType::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
19746 next: ptr::null_mut(),
19747 name: StringArray::default(),
19748 description: StringArray::default(),
19749 is_text: Bool32::default(),
19750 data_size: usize::default(),
19751 data: ptr::null_mut(),
19752 }
19753 }
19754}
19755
19756#[repr(C)]
19758#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19759pub struct PipelineExecutablePropertiesKHR {
19760 pub s_type: StructureType,
19761 pub next: *mut c_void,
19762 pub stages: ShaderStageFlags,
19763 pub name: StringArray<MAX_DESCRIPTION_SIZE>,
19764 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
19765 pub subgroup_size: u32,
19766}
19767
19768impl Default for PipelineExecutablePropertiesKHR {
19769 #[inline]
19770 fn default() -> Self {
19771 Self {
19772 s_type: StructureType::PIPELINE_EXECUTABLE_PROPERTIES_KHR,
19773 next: ptr::null_mut(),
19774 stages: ShaderStageFlags::default(),
19775 name: StringArray::default(),
19776 description: StringArray::default(),
19777 subgroup_size: u32::default(),
19778 }
19779 }
19780}
19781
19782#[repr(C)]
19784#[derive(Copy, Clone, Debug)]
19785pub struct PipelineExecutableStatisticKHR {
19786 pub s_type: StructureType,
19787 pub next: *mut c_void,
19788 pub name: StringArray<MAX_DESCRIPTION_SIZE>,
19789 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
19790 pub format: PipelineExecutableStatisticFormatKHR,
19791 pub value: PipelineExecutableStatisticValueKHR,
19792}
19793
19794impl Default for PipelineExecutableStatisticKHR {
19795 #[inline]
19796 fn default() -> Self {
19797 Self {
19798 s_type: StructureType::PIPELINE_EXECUTABLE_STATISTIC_KHR,
19799 next: ptr::null_mut(),
19800 name: StringArray::default(),
19801 description: StringArray::default(),
19802 format: PipelineExecutableStatisticFormatKHR::default(),
19803 value: PipelineExecutableStatisticValueKHR::default(),
19804 }
19805 }
19806}
19807
19808#[repr(C)]
19810#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19811pub struct PipelineFragmentShadingRateEnumStateCreateInfoNV {
19812 pub s_type: StructureType,
19813 pub next: *const c_void,
19814 pub shading_rate_type: FragmentShadingRateTypeNV,
19815 pub shading_rate: FragmentShadingRateNV,
19816 pub combiner_ops: [FragmentShadingRateCombinerOpKHR; 2],
19817}
19818
19819impl Default for PipelineFragmentShadingRateEnumStateCreateInfoNV {
19820 #[inline]
19821 fn default() -> Self {
19822 Self {
19823 s_type: StructureType::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
19824 next: ptr::null(),
19825 shading_rate_type: FragmentShadingRateTypeNV::default(),
19826 shading_rate: FragmentShadingRateNV::default(),
19827 combiner_ops: [FragmentShadingRateCombinerOpKHR::default(); 2],
19828 }
19829 }
19830}
19831
19832#[repr(C)]
19834#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19835pub struct PipelineFragmentShadingRateStateCreateInfoKHR {
19836 pub s_type: StructureType,
19837 pub next: *const c_void,
19838 pub fragment_size: Extent2D,
19839 pub combiner_ops: [FragmentShadingRateCombinerOpKHR; 2],
19840}
19841
19842impl Default for PipelineFragmentShadingRateStateCreateInfoKHR {
19843 #[inline]
19844 fn default() -> Self {
19845 Self {
19846 s_type: StructureType::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
19847 next: ptr::null(),
19848 fragment_size: Extent2D::default(),
19849 combiner_ops: [FragmentShadingRateCombinerOpKHR::default(); 2],
19850 }
19851 }
19852}
19853
19854#[repr(C)]
19856#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19857pub struct PipelineIndirectDeviceAddressInfoNV {
19858 pub s_type: StructureType,
19859 pub next: *const c_void,
19860 pub pipeline_bind_point: PipelineBindPoint,
19861 pub pipeline: Pipeline,
19862}
19863
19864impl Default for PipelineIndirectDeviceAddressInfoNV {
19865 #[inline]
19866 fn default() -> Self {
19867 Self {
19868 s_type: StructureType::PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV,
19869 next: ptr::null(),
19870 pipeline_bind_point: PipelineBindPoint::default(),
19871 pipeline: Pipeline::default(),
19872 }
19873 }
19874}
19875
19876#[repr(C)]
19878#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19879pub struct PipelineInfoKHR {
19880 pub s_type: StructureType,
19881 pub next: *const c_void,
19882 pub pipeline: Pipeline,
19883}
19884
19885impl Default for PipelineInfoKHR {
19886 #[inline]
19887 fn default() -> Self {
19888 Self {
19889 s_type: StructureType::PIPELINE_INFO_KHR,
19890 next: ptr::null(),
19891 pipeline: Pipeline::default(),
19892 }
19893 }
19894}
19895
19896#[repr(C)]
19898#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19899pub struct PipelineInputAssemblyStateCreateInfo {
19900 pub s_type: StructureType,
19901 pub next: *const c_void,
19902 pub flags: PipelineInputAssemblyStateCreateFlags,
19903 pub topology: PrimitiveTopology,
19904 pub primitive_restart_enable: Bool32,
19905}
19906
19907impl Default for PipelineInputAssemblyStateCreateInfo {
19908 #[inline]
19909 fn default() -> Self {
19910 Self {
19911 s_type: StructureType::PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
19912 next: ptr::null(),
19913 flags: PipelineInputAssemblyStateCreateFlags::default(),
19914 topology: PrimitiveTopology::default(),
19915 primitive_restart_enable: Bool32::default(),
19916 }
19917 }
19918}
19919
19920#[repr(C)]
19922#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19923pub struct PipelineLayoutCreateInfo {
19924 pub s_type: StructureType,
19925 pub next: *const c_void,
19926 pub flags: PipelineLayoutCreateFlags,
19927 pub set_layout_count: u32,
19928 pub set_layouts: *const DescriptorSetLayout,
19929 pub push_constant_range_count: u32,
19930 pub push_constant_ranges: *const PushConstantRange,
19931}
19932
19933impl Default for PipelineLayoutCreateInfo {
19934 #[inline]
19935 fn default() -> Self {
19936 Self {
19937 s_type: StructureType::PIPELINE_LAYOUT_CREATE_INFO,
19938 next: ptr::null(),
19939 flags: PipelineLayoutCreateFlags::default(),
19940 set_layout_count: u32::default(),
19941 set_layouts: ptr::null(),
19942 push_constant_range_count: u32::default(),
19943 push_constant_ranges: ptr::null(),
19944 }
19945 }
19946}
19947
19948#[repr(C)]
19950#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
19951pub struct PipelineLibraryCreateInfoKHR {
19952 pub s_type: StructureType,
19953 pub next: *const c_void,
19954 pub library_count: u32,
19955 pub libraries: *const Pipeline,
19956}
19957
19958impl Default for PipelineLibraryCreateInfoKHR {
19959 #[inline]
19960 fn default() -> Self {
19961 Self {
19962 s_type: StructureType::PIPELINE_LIBRARY_CREATE_INFO_KHR,
19963 next: ptr::null(),
19964 library_count: u32::default(),
19965 libraries: ptr::null(),
19966 }
19967 }
19968}
19969
19970#[repr(C)]
19972#[derive(Copy, Clone, Debug, PartialEq)]
19973pub struct PipelineMultisampleStateCreateInfo {
19974 pub s_type: StructureType,
19975 pub next: *const c_void,
19976 pub flags: PipelineMultisampleStateCreateFlags,
19977 pub rasterization_samples: SampleCountFlags,
19978 pub sample_shading_enable: Bool32,
19979 pub min_sample_shading: f32,
19980 pub sample_mask: *const SampleMask,
19981 pub alpha_to_coverage_enable: Bool32,
19982 pub alpha_to_one_enable: Bool32,
19983}
19984
19985impl Default for PipelineMultisampleStateCreateInfo {
19986 #[inline]
19987 fn default() -> Self {
19988 Self {
19989 s_type: StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
19990 next: ptr::null(),
19991 flags: PipelineMultisampleStateCreateFlags::default(),
19992 rasterization_samples: SampleCountFlags::default(),
19993 sample_shading_enable: Bool32::default(),
19994 min_sample_shading: f32::default(),
19995 sample_mask: ptr::null(),
19996 alpha_to_coverage_enable: Bool32::default(),
19997 alpha_to_one_enable: Bool32::default(),
19998 }
19999 }
20000}
20001
20002#[repr(C)]
20004#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20005pub struct PipelinePropertiesIdentifierEXT {
20006 pub s_type: StructureType,
20007 pub next: *mut c_void,
20008 pub pipeline_identifier: ByteArray<UUID_SIZE>,
20009}
20010
20011impl Default for PipelinePropertiesIdentifierEXT {
20012 #[inline]
20013 fn default() -> Self {
20014 Self {
20015 s_type: StructureType::PIPELINE_PROPERTIES_IDENTIFIER_EXT,
20016 next: ptr::null_mut(),
20017 pipeline_identifier: ByteArray::default(),
20018 }
20019 }
20020}
20021
20022#[repr(C)]
20024#[derive(Copy, Clone, Debug, PartialEq)]
20025pub struct PipelineRasterizationConservativeStateCreateInfoEXT {
20026 pub s_type: StructureType,
20027 pub next: *const c_void,
20028 pub flags: PipelineRasterizationConservativeStateCreateFlagsEXT,
20029 pub conservative_rasterization_mode: ConservativeRasterizationModeEXT,
20030 pub extra_primitive_overestimation_size: f32,
20031}
20032
20033impl Default for PipelineRasterizationConservativeStateCreateInfoEXT {
20034 #[inline]
20035 fn default() -> Self {
20036 Self {
20037 s_type: StructureType::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
20038 next: ptr::null(),
20039 flags: PipelineRasterizationConservativeStateCreateFlagsEXT::default(),
20040 conservative_rasterization_mode: ConservativeRasterizationModeEXT::default(),
20041 extra_primitive_overestimation_size: f32::default(),
20042 }
20043 }
20044}
20045
20046#[repr(C)]
20048#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20049pub struct PipelineRasterizationDepthClipStateCreateInfoEXT {
20050 pub s_type: StructureType,
20051 pub next: *const c_void,
20052 pub flags: PipelineRasterizationDepthClipStateCreateFlagsEXT,
20053 pub depth_clip_enable: Bool32,
20054}
20055
20056impl Default for PipelineRasterizationDepthClipStateCreateInfoEXT {
20057 #[inline]
20058 fn default() -> Self {
20059 Self {
20060 s_type: StructureType::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
20061 next: ptr::null(),
20062 flags: PipelineRasterizationDepthClipStateCreateFlagsEXT::default(),
20063 depth_clip_enable: Bool32::default(),
20064 }
20065 }
20066}
20067
20068#[repr(C)]
20070#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20071pub struct PipelineRasterizationLineStateCreateInfo {
20072 pub s_type: StructureType,
20073 pub next: *const c_void,
20074 pub line_rasterization_mode: LineRasterizationMode,
20075 pub stippled_line_enable: Bool32,
20076 pub line_stipple_factor: u32,
20077 pub line_stipple_pattern: u16,
20078}
20079
20080impl Default for PipelineRasterizationLineStateCreateInfo {
20081 #[inline]
20082 fn default() -> Self {
20083 Self {
20084 s_type: StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
20085 next: ptr::null(),
20086 line_rasterization_mode: LineRasterizationMode::default(),
20087 stippled_line_enable: Bool32::default(),
20088 line_stipple_factor: u32::default(),
20089 line_stipple_pattern: u16::default(),
20090 }
20091 }
20092}
20093
20094#[repr(C)]
20096#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20097pub struct PipelineRasterizationProvokingVertexStateCreateInfoEXT {
20098 pub s_type: StructureType,
20099 pub next: *const c_void,
20100 pub provoking_vertex_mode: ProvokingVertexModeEXT,
20101}
20102
20103impl Default for PipelineRasterizationProvokingVertexStateCreateInfoEXT {
20104 #[inline]
20105 fn default() -> Self {
20106 Self {
20107 s_type: StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
20108 next: ptr::null(),
20109 provoking_vertex_mode: ProvokingVertexModeEXT::default(),
20110 }
20111 }
20112}
20113
20114#[repr(C)]
20116#[derive(Copy, Clone, Debug, PartialEq)]
20117pub struct PipelineRasterizationStateCreateInfo {
20118 pub s_type: StructureType,
20119 pub next: *const c_void,
20120 pub flags: PipelineRasterizationStateCreateFlags,
20121 pub depth_clamp_enable: Bool32,
20122 pub rasterizer_discard_enable: Bool32,
20123 pub polygon_mode: PolygonMode,
20124 pub cull_mode: CullModeFlags,
20125 pub front_face: FrontFace,
20126 pub depth_bias_enable: Bool32,
20127 pub depth_bias_constant_factor: f32,
20128 pub depth_bias_clamp: f32,
20129 pub depth_bias_slope_factor: f32,
20130 pub line_width: f32,
20131}
20132
20133impl Default for PipelineRasterizationStateCreateInfo {
20134 #[inline]
20135 fn default() -> Self {
20136 Self {
20137 s_type: StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
20138 next: ptr::null(),
20139 flags: PipelineRasterizationStateCreateFlags::default(),
20140 depth_clamp_enable: Bool32::default(),
20141 rasterizer_discard_enable: Bool32::default(),
20142 polygon_mode: PolygonMode::default(),
20143 cull_mode: CullModeFlags::default(),
20144 front_face: FrontFace::default(),
20145 depth_bias_enable: Bool32::default(),
20146 depth_bias_constant_factor: f32::default(),
20147 depth_bias_clamp: f32::default(),
20148 depth_bias_slope_factor: f32::default(),
20149 line_width: f32::default(),
20150 }
20151 }
20152}
20153
20154#[repr(C)]
20156#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20157pub struct PipelineRasterizationStateRasterizationOrderAMD {
20158 pub s_type: StructureType,
20159 pub next: *const c_void,
20160 pub rasterization_order: RasterizationOrderAMD,
20161}
20162
20163impl Default for PipelineRasterizationStateRasterizationOrderAMD {
20164 #[inline]
20165 fn default() -> Self {
20166 Self {
20167 s_type: StructureType::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
20168 next: ptr::null(),
20169 rasterization_order: RasterizationOrderAMD::default(),
20170 }
20171 }
20172}
20173
20174#[repr(C)]
20176#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20177pub struct PipelineRasterizationStateStreamCreateInfoEXT {
20178 pub s_type: StructureType,
20179 pub next: *const c_void,
20180 pub flags: PipelineRasterizationStateStreamCreateFlagsEXT,
20181 pub rasterization_stream: u32,
20182}
20183
20184impl Default for PipelineRasterizationStateStreamCreateInfoEXT {
20185 #[inline]
20186 fn default() -> Self {
20187 Self {
20188 s_type: StructureType::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
20189 next: ptr::null(),
20190 flags: PipelineRasterizationStateStreamCreateFlagsEXT::default(),
20191 rasterization_stream: u32::default(),
20192 }
20193 }
20194}
20195
20196#[repr(C)]
20198#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20199pub struct PipelineRenderingCreateInfo {
20200 pub s_type: StructureType,
20201 pub next: *const c_void,
20202 pub view_mask: u32,
20203 pub color_attachment_count: u32,
20204 pub color_attachment_formats: *const Format,
20205 pub depth_attachment_format: Format,
20206 pub stencil_attachment_format: Format,
20207}
20208
20209impl Default for PipelineRenderingCreateInfo {
20210 #[inline]
20211 fn default() -> Self {
20212 Self {
20213 s_type: StructureType::PIPELINE_RENDERING_CREATE_INFO,
20214 next: ptr::null(),
20215 view_mask: u32::default(),
20216 color_attachment_count: u32::default(),
20217 color_attachment_formats: ptr::null(),
20218 depth_attachment_format: Format::default(),
20219 stencil_attachment_format: Format::default(),
20220 }
20221 }
20222}
20223
20224#[repr(C)]
20226#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20227pub struct PipelineRepresentativeFragmentTestStateCreateInfoNV {
20228 pub s_type: StructureType,
20229 pub next: *const c_void,
20230 pub representative_fragment_test_enable: Bool32,
20231}
20232
20233impl Default for PipelineRepresentativeFragmentTestStateCreateInfoNV {
20234 #[inline]
20235 fn default() -> Self {
20236 Self {
20237 s_type: StructureType::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
20238 next: ptr::null(),
20239 representative_fragment_test_enable: Bool32::default(),
20240 }
20241 }
20242}
20243
20244#[repr(C)]
20246#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20247pub struct PipelineRobustnessCreateInfo {
20248 pub s_type: StructureType,
20249 pub next: *const c_void,
20250 pub storage_buffers: PipelineRobustnessBufferBehavior,
20251 pub uniform_buffers: PipelineRobustnessBufferBehavior,
20252 pub vertex_inputs: PipelineRobustnessBufferBehavior,
20253 pub images: PipelineRobustnessImageBehavior,
20254}
20255
20256impl Default for PipelineRobustnessCreateInfo {
20257 #[inline]
20258 fn default() -> Self {
20259 Self {
20260 s_type: StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO,
20261 next: ptr::null(),
20262 storage_buffers: PipelineRobustnessBufferBehavior::default(),
20263 uniform_buffers: PipelineRobustnessBufferBehavior::default(),
20264 vertex_inputs: PipelineRobustnessBufferBehavior::default(),
20265 images: PipelineRobustnessImageBehavior::default(),
20266 }
20267 }
20268}
20269
20270#[repr(C)]
20272#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20273pub struct PipelineSampleLocationsStateCreateInfoEXT {
20274 pub s_type: StructureType,
20275 pub next: *const c_void,
20276 pub sample_locations_enable: Bool32,
20277 pub sample_locations_info: SampleLocationsInfoEXT,
20278}
20279
20280impl Default for PipelineSampleLocationsStateCreateInfoEXT {
20281 #[inline]
20282 fn default() -> Self {
20283 Self {
20284 s_type: StructureType::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
20285 next: ptr::null(),
20286 sample_locations_enable: Bool32::default(),
20287 sample_locations_info: SampleLocationsInfoEXT::default(),
20288 }
20289 }
20290}
20291
20292#[repr(C)]
20294#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20295pub struct PipelineShaderStageCreateInfo {
20296 pub s_type: StructureType,
20297 pub next: *const c_void,
20298 pub flags: PipelineShaderStageCreateFlags,
20299 pub stage: ShaderStageFlags,
20300 pub module: ShaderModule,
20301 pub name: *const c_char,
20302 pub specialization_info: *const SpecializationInfo,
20303}
20304
20305impl Default for PipelineShaderStageCreateInfo {
20306 #[inline]
20307 fn default() -> Self {
20308 Self {
20309 s_type: StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO,
20310 next: ptr::null(),
20311 flags: PipelineShaderStageCreateFlags::default(),
20312 stage: ShaderStageFlags::default(),
20313 module: ShaderModule::default(),
20314 name: ptr::null(),
20315 specialization_info: ptr::null(),
20316 }
20317 }
20318}
20319
20320#[repr(C)]
20322#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20323pub struct PipelineShaderStageModuleIdentifierCreateInfoEXT {
20324 pub s_type: StructureType,
20325 pub next: *const c_void,
20326 pub identifier_size: u32,
20327 pub identifier: *const u8,
20328}
20329
20330impl Default for PipelineShaderStageModuleIdentifierCreateInfoEXT {
20331 #[inline]
20332 fn default() -> Self {
20333 Self {
20334 s_type: StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT,
20335 next: ptr::null(),
20336 identifier_size: u32::default(),
20337 identifier: ptr::null(),
20338 }
20339 }
20340}
20341
20342#[repr(C)]
20344#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20345pub struct PipelineShaderStageNodeCreateInfoAMDX {
20346 pub s_type: StructureType,
20347 pub next: *const c_void,
20348 pub name: *const c_char,
20349 pub index: u32,
20350}
20351
20352impl Default for PipelineShaderStageNodeCreateInfoAMDX {
20353 #[inline]
20354 fn default() -> Self {
20355 Self {
20356 s_type: StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX,
20357 next: ptr::null(),
20358 name: ptr::null(),
20359 index: u32::default(),
20360 }
20361 }
20362}
20363
20364#[repr(C)]
20366#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20367pub struct PipelineShaderStageRequiredSubgroupSizeCreateInfo {
20368 pub s_type: StructureType,
20369 pub next: *mut c_void,
20370 pub required_subgroup_size: u32,
20371}
20372
20373impl Default for PipelineShaderStageRequiredSubgroupSizeCreateInfo {
20374 #[inline]
20375 fn default() -> Self {
20376 Self {
20377 s_type: StructureType::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
20378 next: ptr::null_mut(),
20379 required_subgroup_size: u32::default(),
20380 }
20381 }
20382}
20383
20384#[repr(C)]
20386#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20387pub struct PipelineTessellationDomainOriginStateCreateInfo {
20388 pub s_type: StructureType,
20389 pub next: *const c_void,
20390 pub domain_origin: TessellationDomainOrigin,
20391}
20392
20393impl Default for PipelineTessellationDomainOriginStateCreateInfo {
20394 #[inline]
20395 fn default() -> Self {
20396 Self {
20397 s_type: StructureType::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
20398 next: ptr::null(),
20399 domain_origin: TessellationDomainOrigin::default(),
20400 }
20401 }
20402}
20403
20404#[repr(C)]
20406#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20407pub struct PipelineTessellationStateCreateInfo {
20408 pub s_type: StructureType,
20409 pub next: *const c_void,
20410 pub flags: PipelineTessellationStateCreateFlags,
20411 pub patch_control_points: u32,
20412}
20413
20414impl Default for PipelineTessellationStateCreateInfo {
20415 #[inline]
20416 fn default() -> Self {
20417 Self {
20418 s_type: StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO,
20419 next: ptr::null(),
20420 flags: PipelineTessellationStateCreateFlags::default(),
20421 patch_control_points: u32::default(),
20422 }
20423 }
20424}
20425
20426#[repr(C)]
20428#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20429pub struct PipelineVertexInputDivisorStateCreateInfo {
20430 pub s_type: StructureType,
20431 pub next: *const c_void,
20432 pub vertex_binding_divisor_count: u32,
20433 pub vertex_binding_divisors: *const VertexInputBindingDivisorDescription,
20434}
20435
20436impl Default for PipelineVertexInputDivisorStateCreateInfo {
20437 #[inline]
20438 fn default() -> Self {
20439 Self {
20440 s_type: StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
20441 next: ptr::null(),
20442 vertex_binding_divisor_count: u32::default(),
20443 vertex_binding_divisors: ptr::null(),
20444 }
20445 }
20446}
20447
20448#[repr(C)]
20450#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20451pub struct PipelineVertexInputStateCreateInfo {
20452 pub s_type: StructureType,
20453 pub next: *const c_void,
20454 pub flags: PipelineVertexInputStateCreateFlags,
20455 pub vertex_binding_description_count: u32,
20456 pub vertex_binding_descriptions: *const VertexInputBindingDescription,
20457 pub vertex_attribute_description_count: u32,
20458 pub vertex_attribute_descriptions: *const VertexInputAttributeDescription,
20459}
20460
20461impl Default for PipelineVertexInputStateCreateInfo {
20462 #[inline]
20463 fn default() -> Self {
20464 Self {
20465 s_type: StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
20466 next: ptr::null(),
20467 flags: PipelineVertexInputStateCreateFlags::default(),
20468 vertex_binding_description_count: u32::default(),
20469 vertex_binding_descriptions: ptr::null(),
20470 vertex_attribute_description_count: u32::default(),
20471 vertex_attribute_descriptions: ptr::null(),
20472 }
20473 }
20474}
20475
20476#[repr(C)]
20478#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20479pub struct PipelineViewportCoarseSampleOrderStateCreateInfoNV {
20480 pub s_type: StructureType,
20481 pub next: *const c_void,
20482 pub sample_order_type: CoarseSampleOrderTypeNV,
20483 pub custom_sample_order_count: u32,
20484 pub custom_sample_orders: *const CoarseSampleOrderCustomNV,
20485}
20486
20487impl Default for PipelineViewportCoarseSampleOrderStateCreateInfoNV {
20488 #[inline]
20489 fn default() -> Self {
20490 Self {
20491 s_type: StructureType::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
20492 next: ptr::null(),
20493 sample_order_type: CoarseSampleOrderTypeNV::default(),
20494 custom_sample_order_count: u32::default(),
20495 custom_sample_orders: ptr::null(),
20496 }
20497 }
20498}
20499
20500#[repr(C)]
20502#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20503pub struct PipelineViewportDepthClampControlCreateInfoEXT {
20504 pub s_type: StructureType,
20505 pub next: *const c_void,
20506 pub depth_clamp_mode: DepthClampModeEXT,
20507 pub depth_clamp_range: *const DepthClampRangeEXT,
20508}
20509
20510impl Default for PipelineViewportDepthClampControlCreateInfoEXT {
20511 #[inline]
20512 fn default() -> Self {
20513 Self {
20514 s_type: StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT,
20515 next: ptr::null(),
20516 depth_clamp_mode: DepthClampModeEXT::default(),
20517 depth_clamp_range: ptr::null(),
20518 }
20519 }
20520}
20521
20522#[repr(C)]
20524#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20525pub struct PipelineViewportDepthClipControlCreateInfoEXT {
20526 pub s_type: StructureType,
20527 pub next: *const c_void,
20528 pub negative_one_to_one: Bool32,
20529}
20530
20531impl Default for PipelineViewportDepthClipControlCreateInfoEXT {
20532 #[inline]
20533 fn default() -> Self {
20534 Self {
20535 s_type: StructureType::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT,
20536 next: ptr::null(),
20537 negative_one_to_one: Bool32::default(),
20538 }
20539 }
20540}
20541
20542#[repr(C)]
20544#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20545pub struct PipelineViewportExclusiveScissorStateCreateInfoNV {
20546 pub s_type: StructureType,
20547 pub next: *const c_void,
20548 pub exclusive_scissor_count: u32,
20549 pub exclusive_scissors: *const Rect2D,
20550}
20551
20552impl Default for PipelineViewportExclusiveScissorStateCreateInfoNV {
20553 #[inline]
20554 fn default() -> Self {
20555 Self {
20556 s_type: StructureType::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
20557 next: ptr::null(),
20558 exclusive_scissor_count: u32::default(),
20559 exclusive_scissors: ptr::null(),
20560 }
20561 }
20562}
20563
20564#[repr(C)]
20566#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20567pub struct PipelineViewportShadingRateImageStateCreateInfoNV {
20568 pub s_type: StructureType,
20569 pub next: *const c_void,
20570 pub shading_rate_image_enable: Bool32,
20571 pub viewport_count: u32,
20572 pub shading_rate_palettes: *const ShadingRatePaletteNV,
20573}
20574
20575impl Default for PipelineViewportShadingRateImageStateCreateInfoNV {
20576 #[inline]
20577 fn default() -> Self {
20578 Self {
20579 s_type: StructureType::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
20580 next: ptr::null(),
20581 shading_rate_image_enable: Bool32::default(),
20582 viewport_count: u32::default(),
20583 shading_rate_palettes: ptr::null(),
20584 }
20585 }
20586}
20587
20588#[repr(C)]
20590#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20591pub struct PipelineViewportStateCreateInfo {
20592 pub s_type: StructureType,
20593 pub next: *const c_void,
20594 pub flags: PipelineViewportStateCreateFlags,
20595 pub viewport_count: u32,
20596 pub viewports: *const Viewport,
20597 pub scissor_count: u32,
20598 pub scissors: *const Rect2D,
20599}
20600
20601impl Default for PipelineViewportStateCreateInfo {
20602 #[inline]
20603 fn default() -> Self {
20604 Self {
20605 s_type: StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO,
20606 next: ptr::null(),
20607 flags: PipelineViewportStateCreateFlags::default(),
20608 viewport_count: u32::default(),
20609 viewports: ptr::null(),
20610 scissor_count: u32::default(),
20611 scissors: ptr::null(),
20612 }
20613 }
20614}
20615
20616#[repr(C)]
20618#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20619pub struct PipelineViewportSwizzleStateCreateInfoNV {
20620 pub s_type: StructureType,
20621 pub next: *const c_void,
20622 pub flags: PipelineViewportSwizzleStateCreateFlagsNV,
20623 pub viewport_count: u32,
20624 pub viewport_swizzles: *const ViewportSwizzleNV,
20625}
20626
20627impl Default for PipelineViewportSwizzleStateCreateInfoNV {
20628 #[inline]
20629 fn default() -> Self {
20630 Self {
20631 s_type: StructureType::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
20632 next: ptr::null(),
20633 flags: PipelineViewportSwizzleStateCreateFlagsNV::default(),
20634 viewport_count: u32::default(),
20635 viewport_swizzles: ptr::null(),
20636 }
20637 }
20638}
20639
20640#[repr(C)]
20642#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20643pub struct PipelineViewportWScalingStateCreateInfoNV {
20644 pub s_type: StructureType,
20645 pub next: *const c_void,
20646 pub viewport_w_scaling_enable: Bool32,
20647 pub viewport_count: u32,
20648 pub viewport_w_scalings: *const ViewportWScalingNV,
20649}
20650
20651impl Default for PipelineViewportWScalingStateCreateInfoNV {
20652 #[inline]
20653 fn default() -> Self {
20654 Self {
20655 s_type: StructureType::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
20656 next: ptr::null(),
20657 viewport_w_scaling_enable: Bool32::default(),
20658 viewport_count: u32::default(),
20659 viewport_w_scalings: ptr::null(),
20660 }
20661 }
20662}
20663
20664#[repr(C)]
20666#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20667pub struct PresentFrameTokenGGP {
20668 pub s_type: StructureType,
20669 pub next: *const c_void,
20670 pub frame_token: GgpFrameToken,
20671}
20672
20673impl Default for PresentFrameTokenGGP {
20674 #[inline]
20675 fn default() -> Self {
20676 Self {
20677 s_type: StructureType::PRESENT_FRAME_TOKEN_GGP,
20678 next: ptr::null(),
20679 frame_token: GgpFrameToken::default(),
20680 }
20681 }
20682}
20683
20684#[repr(C)]
20686#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20687pub struct PresentIdKHR {
20688 pub s_type: StructureType,
20689 pub next: *const c_void,
20690 pub swapchain_count: u32,
20691 pub present_ids: *const u64,
20692}
20693
20694impl Default for PresentIdKHR {
20695 #[inline]
20696 fn default() -> Self {
20697 Self {
20698 s_type: StructureType::PRESENT_ID_KHR,
20699 next: ptr::null(),
20700 swapchain_count: u32::default(),
20701 present_ids: ptr::null(),
20702 }
20703 }
20704}
20705
20706#[repr(C)]
20708#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20709pub struct PresentInfoKHR {
20710 pub s_type: StructureType,
20711 pub next: *const c_void,
20712 pub wait_semaphore_count: u32,
20713 pub wait_semaphores: *const Semaphore,
20714 pub swapchain_count: u32,
20715 pub swapchains: *const SwapchainKHR,
20716 pub image_indices: *const u32,
20717 pub results: *mut Result,
20718}
20719
20720impl Default for PresentInfoKHR {
20721 #[inline]
20722 fn default() -> Self {
20723 Self {
20724 s_type: StructureType::PRESENT_INFO_KHR,
20725 next: ptr::null(),
20726 wait_semaphore_count: u32::default(),
20727 wait_semaphores: ptr::null(),
20728 swapchain_count: u32::default(),
20729 swapchains: ptr::null(),
20730 image_indices: ptr::null(),
20731 results: ptr::null_mut(),
20732 }
20733 }
20734}
20735
20736#[repr(C)]
20738#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20739pub struct PresentRegionKHR {
20740 pub rectangle_count: u32,
20741 pub rectangles: *const RectLayerKHR,
20742}
20743
20744impl Default for PresentRegionKHR {
20745 #[inline]
20746 fn default() -> Self {
20747 Self {
20748 rectangle_count: u32::default(),
20749 rectangles: ptr::null(),
20750 }
20751 }
20752}
20753
20754#[repr(C)]
20756#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20757pub struct PresentRegionsKHR {
20758 pub s_type: StructureType,
20759 pub next: *const c_void,
20760 pub swapchain_count: u32,
20761 pub regions: *const PresentRegionKHR,
20762}
20763
20764impl Default for PresentRegionsKHR {
20765 #[inline]
20766 fn default() -> Self {
20767 Self {
20768 s_type: StructureType::PRESENT_REGIONS_KHR,
20769 next: ptr::null(),
20770 swapchain_count: u32::default(),
20771 regions: ptr::null(),
20772 }
20773 }
20774}
20775
20776#[repr(C)]
20778#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
20779pub struct PresentTimeGOOGLE {
20780 pub present_id: u32,
20781 pub desired_present_time: u64,
20782}
20783
20784#[repr(C)]
20786#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20787pub struct PresentTimesInfoGOOGLE {
20788 pub s_type: StructureType,
20789 pub next: *const c_void,
20790 pub swapchain_count: u32,
20791 pub times: *const PresentTimeGOOGLE,
20792}
20793
20794impl Default for PresentTimesInfoGOOGLE {
20795 #[inline]
20796 fn default() -> Self {
20797 Self {
20798 s_type: StructureType::PRESENT_TIMES_INFO_GOOGLE,
20799 next: ptr::null(),
20800 swapchain_count: u32::default(),
20801 times: ptr::null(),
20802 }
20803 }
20804}
20805
20806#[repr(C)]
20808#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20809pub struct PrivateDataSlotCreateInfo {
20810 pub s_type: StructureType,
20811 pub next: *const c_void,
20812 pub flags: PrivateDataSlotCreateFlags,
20813}
20814
20815impl Default for PrivateDataSlotCreateInfo {
20816 #[inline]
20817 fn default() -> Self {
20818 Self {
20819 s_type: StructureType::PRIVATE_DATA_SLOT_CREATE_INFO,
20820 next: ptr::null(),
20821 flags: PrivateDataSlotCreateFlags::default(),
20822 }
20823 }
20824}
20825
20826#[repr(C)]
20828#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20829pub struct ProtectedSubmitInfo {
20830 pub s_type: StructureType,
20831 pub next: *const c_void,
20832 pub protected_submit: Bool32,
20833}
20834
20835impl Default for ProtectedSubmitInfo {
20836 #[inline]
20837 fn default() -> Self {
20838 Self {
20839 s_type: StructureType::PROTECTED_SUBMIT_INFO,
20840 next: ptr::null(),
20841 protected_submit: Bool32::default(),
20842 }
20843 }
20844}
20845
20846#[repr(C)]
20848#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
20849pub struct PushConstantRange {
20850 pub stage_flags: ShaderStageFlags,
20851 pub offset: u32,
20852 pub size: u32,
20853}
20854
20855#[repr(C)]
20857#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20858pub struct PushConstantsInfo {
20859 pub s_type: StructureType,
20860 pub next: *const c_void,
20861 pub layout: PipelineLayout,
20862 pub stage_flags: ShaderStageFlags,
20863 pub offset: u32,
20864 pub size: u32,
20865 pub values: *const c_void,
20866}
20867
20868impl Default for PushConstantsInfo {
20869 #[inline]
20870 fn default() -> Self {
20871 Self {
20872 s_type: StructureType::PUSH_CONSTANTS_INFO,
20873 next: ptr::null(),
20874 layout: PipelineLayout::default(),
20875 stage_flags: ShaderStageFlags::default(),
20876 offset: u32::default(),
20877 size: u32::default(),
20878 values: ptr::null(),
20879 }
20880 }
20881}
20882
20883#[repr(C)]
20885#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20886pub struct PushDescriptorSetInfo {
20887 pub s_type: StructureType,
20888 pub next: *const c_void,
20889 pub stage_flags: ShaderStageFlags,
20890 pub layout: PipelineLayout,
20891 pub set: u32,
20892 pub descriptor_write_count: u32,
20893 pub descriptor_writes: *const WriteDescriptorSet,
20894}
20895
20896impl Default for PushDescriptorSetInfo {
20897 #[inline]
20898 fn default() -> Self {
20899 Self {
20900 s_type: StructureType::PUSH_DESCRIPTOR_SET_INFO,
20901 next: ptr::null(),
20902 stage_flags: ShaderStageFlags::default(),
20903 layout: PipelineLayout::default(),
20904 set: u32::default(),
20905 descriptor_write_count: u32::default(),
20906 descriptor_writes: ptr::null(),
20907 }
20908 }
20909}
20910
20911#[repr(C)]
20913#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20914pub struct PushDescriptorSetWithTemplateInfo {
20915 pub s_type: StructureType,
20916 pub next: *const c_void,
20917 pub descriptor_update_template: DescriptorUpdateTemplate,
20918 pub layout: PipelineLayout,
20919 pub set: u32,
20920 pub data: *const c_void,
20921}
20922
20923impl Default for PushDescriptorSetWithTemplateInfo {
20924 #[inline]
20925 fn default() -> Self {
20926 Self {
20927 s_type: StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
20928 next: ptr::null(),
20929 descriptor_update_template: DescriptorUpdateTemplate::default(),
20930 layout: PipelineLayout::default(),
20931 set: u32::default(),
20932 data: ptr::null(),
20933 }
20934 }
20935}
20936
20937#[repr(C)]
20939#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20940pub struct QueryLowLatencySupportNV {
20941 pub s_type: StructureType,
20942 pub next: *const c_void,
20943 pub queried_low_latency_data: *mut c_void,
20944}
20945
20946impl Default for QueryLowLatencySupportNV {
20947 #[inline]
20948 fn default() -> Self {
20949 Self {
20950 s_type: StructureType::QUERY_LOW_LATENCY_SUPPORT_NV,
20951 next: ptr::null(),
20952 queried_low_latency_data: ptr::null_mut(),
20953 }
20954 }
20955}
20956
20957#[repr(C)]
20959#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20960pub struct QueryPoolCreateInfo {
20961 pub s_type: StructureType,
20962 pub next: *const c_void,
20963 pub flags: QueryPoolCreateFlags,
20964 pub query_type: QueryType,
20965 pub query_count: u32,
20966 pub pipeline_statistics: QueryPipelineStatisticFlags,
20967}
20968
20969impl Default for QueryPoolCreateInfo {
20970 #[inline]
20971 fn default() -> Self {
20972 Self {
20973 s_type: StructureType::QUERY_POOL_CREATE_INFO,
20974 next: ptr::null(),
20975 flags: QueryPoolCreateFlags::default(),
20976 query_type: QueryType::default(),
20977 query_count: u32::default(),
20978 pipeline_statistics: QueryPipelineStatisticFlags::default(),
20979 }
20980 }
20981}
20982
20983#[repr(C)]
20985#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
20986pub struct QueryPoolPerformanceCreateInfoKHR {
20987 pub s_type: StructureType,
20988 pub next: *const c_void,
20989 pub queue_family_index: u32,
20990 pub counter_index_count: u32,
20991 pub counter_indices: *const u32,
20992}
20993
20994impl Default for QueryPoolPerformanceCreateInfoKHR {
20995 #[inline]
20996 fn default() -> Self {
20997 Self {
20998 s_type: StructureType::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
20999 next: ptr::null(),
21000 queue_family_index: u32::default(),
21001 counter_index_count: u32::default(),
21002 counter_indices: ptr::null(),
21003 }
21004 }
21005}
21006
21007#[repr(C)]
21009#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21010pub struct QueryPoolPerformanceQueryCreateInfoINTEL {
21011 pub s_type: StructureType,
21012 pub next: *const c_void,
21013 pub performance_counters_sampling: QueryPoolSamplingModeINTEL,
21014}
21015
21016impl Default for QueryPoolPerformanceQueryCreateInfoINTEL {
21017 #[inline]
21018 fn default() -> Self {
21019 Self {
21020 s_type: StructureType::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
21021 next: ptr::null(),
21022 performance_counters_sampling: QueryPoolSamplingModeINTEL::default(),
21023 }
21024 }
21025}
21026
21027#[repr(C)]
21029#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21030pub struct QueryPoolVideoEncodeFeedbackCreateInfoKHR {
21031 pub s_type: StructureType,
21032 pub next: *const c_void,
21033 pub encode_feedback_flags: VideoEncodeFeedbackFlagsKHR,
21034}
21035
21036impl Default for QueryPoolVideoEncodeFeedbackCreateInfoKHR {
21037 #[inline]
21038 fn default() -> Self {
21039 Self {
21040 s_type: StructureType::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR,
21041 next: ptr::null(),
21042 encode_feedback_flags: VideoEncodeFeedbackFlagsKHR::default(),
21043 }
21044 }
21045}
21046
21047#[repr(C)]
21049#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21050pub struct QueueFamilyCheckpointProperties2NV {
21051 pub s_type: StructureType,
21052 pub next: *mut c_void,
21053 pub checkpoint_execution_stage_mask: PipelineStageFlags2,
21054}
21055
21056impl Default for QueueFamilyCheckpointProperties2NV {
21057 #[inline]
21058 fn default() -> Self {
21059 Self {
21060 s_type: StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
21061 next: ptr::null_mut(),
21062 checkpoint_execution_stage_mask: PipelineStageFlags2::default(),
21063 }
21064 }
21065}
21066
21067#[repr(C)]
21069#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21070pub struct QueueFamilyCheckpointPropertiesNV {
21071 pub s_type: StructureType,
21072 pub next: *mut c_void,
21073 pub checkpoint_execution_stage_mask: PipelineStageFlags,
21074}
21075
21076impl Default for QueueFamilyCheckpointPropertiesNV {
21077 #[inline]
21078 fn default() -> Self {
21079 Self {
21080 s_type: StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
21081 next: ptr::null_mut(),
21082 checkpoint_execution_stage_mask: PipelineStageFlags::default(),
21083 }
21084 }
21085}
21086
21087#[repr(C)]
21089#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21090pub struct QueueFamilyGlobalPriorityProperties {
21091 pub s_type: StructureType,
21092 pub next: *mut c_void,
21093 pub priority_count: u32,
21094 pub priorities: [QueueGlobalPriority; MAX_GLOBAL_PRIORITY_SIZE],
21095}
21096
21097impl Default for QueueFamilyGlobalPriorityProperties {
21098 #[inline]
21099 fn default() -> Self {
21100 Self {
21101 s_type: StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
21102 next: ptr::null_mut(),
21103 priority_count: u32::default(),
21104 priorities: [QueueGlobalPriority::default(); MAX_GLOBAL_PRIORITY_SIZE],
21105 }
21106 }
21107}
21108
21109#[repr(C)]
21111#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
21112pub struct QueueFamilyProperties {
21113 pub queue_flags: QueueFlags,
21114 pub queue_count: u32,
21115 pub timestamp_valid_bits: u32,
21116 pub min_image_transfer_granularity: Extent3D,
21117}
21118
21119#[repr(C)]
21121#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21122pub struct QueueFamilyProperties2 {
21123 pub s_type: StructureType,
21124 pub next: *mut c_void,
21125 pub queue_family_properties: QueueFamilyProperties,
21126}
21127
21128impl Default for QueueFamilyProperties2 {
21129 #[inline]
21130 fn default() -> Self {
21131 Self {
21132 s_type: StructureType::QUEUE_FAMILY_PROPERTIES_2,
21133 next: ptr::null_mut(),
21134 queue_family_properties: QueueFamilyProperties::default(),
21135 }
21136 }
21137}
21138
21139#[repr(C)]
21141#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21142pub struct QueueFamilyQueryResultStatusPropertiesKHR {
21143 pub s_type: StructureType,
21144 pub next: *mut c_void,
21145 pub query_result_status_support: Bool32,
21146}
21147
21148impl Default for QueueFamilyQueryResultStatusPropertiesKHR {
21149 #[inline]
21150 fn default() -> Self {
21151 Self {
21152 s_type: StructureType::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR,
21153 next: ptr::null_mut(),
21154 query_result_status_support: Bool32::default(),
21155 }
21156 }
21157}
21158
21159#[repr(C)]
21161#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21162pub struct QueueFamilyVideoPropertiesKHR {
21163 pub s_type: StructureType,
21164 pub next: *mut c_void,
21165 pub video_codec_operations: VideoCodecOperationFlagsKHR,
21166}
21167
21168impl Default for QueueFamilyVideoPropertiesKHR {
21169 #[inline]
21170 fn default() -> Self {
21171 Self {
21172 s_type: StructureType::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR,
21173 next: ptr::null_mut(),
21174 video_codec_operations: VideoCodecOperationFlagsKHR::default(),
21175 }
21176 }
21177}
21178
21179#[repr(C)]
21181#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21182pub struct RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
21183 pub s_type: StructureType,
21184 pub next: *mut c_void,
21185 pub allow_cluster_acceleration_structure: Bool32,
21186}
21187
21188impl Default for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
21189 #[inline]
21190 fn default() -> Self {
21191 Self {
21192 s_type:
21193 StructureType::RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
21194 next: ptr::null_mut(),
21195 allow_cluster_acceleration_structure: Bool32::default(),
21196 }
21197 }
21198}
21199
21200#[repr(C)]
21202#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21203pub struct RayTracingPipelineCreateInfoKHR {
21204 pub s_type: StructureType,
21205 pub next: *const c_void,
21206 pub flags: PipelineCreateFlags,
21207 pub stage_count: u32,
21208 pub stages: *const PipelineShaderStageCreateInfo,
21209 pub group_count: u32,
21210 pub groups: *const RayTracingShaderGroupCreateInfoKHR,
21211 pub max_pipeline_ray_recursion_depth: u32,
21212 pub library_info: *const PipelineLibraryCreateInfoKHR,
21213 pub library_interface: *const RayTracingPipelineInterfaceCreateInfoKHR,
21214 pub dynamic_state: *const PipelineDynamicStateCreateInfo,
21215 pub layout: PipelineLayout,
21216 pub base_pipeline_handle: Pipeline,
21217 pub base_pipeline_index: i32,
21218}
21219
21220impl Default for RayTracingPipelineCreateInfoKHR {
21221 #[inline]
21222 fn default() -> Self {
21223 Self {
21224 s_type: StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
21225 next: ptr::null(),
21226 flags: PipelineCreateFlags::default(),
21227 stage_count: u32::default(),
21228 stages: ptr::null(),
21229 group_count: u32::default(),
21230 groups: ptr::null(),
21231 max_pipeline_ray_recursion_depth: u32::default(),
21232 library_info: ptr::null(),
21233 library_interface: ptr::null(),
21234 dynamic_state: ptr::null(),
21235 layout: PipelineLayout::default(),
21236 base_pipeline_handle: Pipeline::default(),
21237 base_pipeline_index: i32::default(),
21238 }
21239 }
21240}
21241
21242#[repr(C)]
21244#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21245pub struct RayTracingPipelineCreateInfoNV {
21246 pub s_type: StructureType,
21247 pub next: *const c_void,
21248 pub flags: PipelineCreateFlags,
21249 pub stage_count: u32,
21250 pub stages: *const PipelineShaderStageCreateInfo,
21251 pub group_count: u32,
21252 pub groups: *const RayTracingShaderGroupCreateInfoNV,
21253 pub max_recursion_depth: u32,
21254 pub layout: PipelineLayout,
21255 pub base_pipeline_handle: Pipeline,
21256 pub base_pipeline_index: i32,
21257}
21258
21259impl Default for RayTracingPipelineCreateInfoNV {
21260 #[inline]
21261 fn default() -> Self {
21262 Self {
21263 s_type: StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV,
21264 next: ptr::null(),
21265 flags: PipelineCreateFlags::default(),
21266 stage_count: u32::default(),
21267 stages: ptr::null(),
21268 group_count: u32::default(),
21269 groups: ptr::null(),
21270 max_recursion_depth: u32::default(),
21271 layout: PipelineLayout::default(),
21272 base_pipeline_handle: Pipeline::default(),
21273 base_pipeline_index: i32::default(),
21274 }
21275 }
21276}
21277
21278#[repr(C)]
21280#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21281pub struct RayTracingPipelineInterfaceCreateInfoKHR {
21282 pub s_type: StructureType,
21283 pub next: *const c_void,
21284 pub max_pipeline_ray_payload_size: u32,
21285 pub max_pipeline_ray_hit_attribute_size: u32,
21286}
21287
21288impl Default for RayTracingPipelineInterfaceCreateInfoKHR {
21289 #[inline]
21290 fn default() -> Self {
21291 Self {
21292 s_type: StructureType::RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
21293 next: ptr::null(),
21294 max_pipeline_ray_payload_size: u32::default(),
21295 max_pipeline_ray_hit_attribute_size: u32::default(),
21296 }
21297 }
21298}
21299
21300#[repr(C)]
21302#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21303pub struct RayTracingShaderGroupCreateInfoKHR {
21304 pub s_type: StructureType,
21305 pub next: *const c_void,
21306 pub type_: RayTracingShaderGroupTypeKHR,
21307 pub general_shader: u32,
21308 pub closest_hit_shader: u32,
21309 pub any_hit_shader: u32,
21310 pub intersection_shader: u32,
21311 pub shader_group_capture_replay_handle: *const c_void,
21312}
21313
21314impl Default for RayTracingShaderGroupCreateInfoKHR {
21315 #[inline]
21316 fn default() -> Self {
21317 Self {
21318 s_type: StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
21319 next: ptr::null(),
21320 type_: RayTracingShaderGroupTypeKHR::default(),
21321 general_shader: u32::default(),
21322 closest_hit_shader: u32::default(),
21323 any_hit_shader: u32::default(),
21324 intersection_shader: u32::default(),
21325 shader_group_capture_replay_handle: ptr::null(),
21326 }
21327 }
21328}
21329
21330#[repr(C)]
21332#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21333pub struct RayTracingShaderGroupCreateInfoNV {
21334 pub s_type: StructureType,
21335 pub next: *const c_void,
21336 pub type_: RayTracingShaderGroupTypeKHR,
21337 pub general_shader: u32,
21338 pub closest_hit_shader: u32,
21339 pub any_hit_shader: u32,
21340 pub intersection_shader: u32,
21341}
21342
21343impl Default for RayTracingShaderGroupCreateInfoNV {
21344 #[inline]
21345 fn default() -> Self {
21346 Self {
21347 s_type: StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
21348 next: ptr::null(),
21349 type_: RayTracingShaderGroupTypeKHR::default(),
21350 general_shader: u32::default(),
21351 closest_hit_shader: u32::default(),
21352 any_hit_shader: u32::default(),
21353 intersection_shader: u32::default(),
21354 }
21355 }
21356}
21357
21358#[repr(C)]
21360#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
21361pub struct Rect2D {
21362 pub offset: Offset2D,
21363 pub extent: Extent2D,
21364}
21365
21366#[repr(C)]
21368#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
21369pub struct RectLayerKHR {
21370 pub offset: Offset2D,
21371 pub extent: Extent2D,
21372 pub layer: u32,
21373}
21374
21375#[repr(C)]
21377#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
21378pub struct RefreshCycleDurationGOOGLE {
21379 pub refresh_duration: u64,
21380}
21381
21382#[repr(C)]
21384#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
21385pub struct RefreshObjectKHR {
21386 pub object_type: ObjectType,
21387 pub object_handle: u64,
21388 pub flags: RefreshObjectFlagsKHR,
21389}
21390
21391#[repr(C)]
21393#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21394pub struct RefreshObjectListKHR {
21395 pub s_type: StructureType,
21396 pub next: *const c_void,
21397 pub object_count: u32,
21398 pub objects: *const RefreshObjectKHR,
21399}
21400
21401impl Default for RefreshObjectListKHR {
21402 #[inline]
21403 fn default() -> Self {
21404 Self {
21405 s_type: StructureType::REFRESH_OBJECT_LIST_KHR,
21406 next: ptr::null(),
21407 object_count: u32::default(),
21408 objects: ptr::null(),
21409 }
21410 }
21411}
21412
21413#[repr(C)]
21415#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21416pub struct ReleaseCapturedPipelineDataInfoKHR {
21417 pub s_type: StructureType,
21418 pub next: *mut c_void,
21419 pub pipeline: Pipeline,
21420}
21421
21422impl Default for ReleaseCapturedPipelineDataInfoKHR {
21423 #[inline]
21424 fn default() -> Self {
21425 Self {
21426 s_type: StructureType::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR,
21427 next: ptr::null_mut(),
21428 pipeline: Pipeline::default(),
21429 }
21430 }
21431}
21432
21433#[repr(C)]
21435#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21436pub struct ReleaseSwapchainImagesInfoEXT {
21437 pub s_type: StructureType,
21438 pub next: *const c_void,
21439 pub swapchain: SwapchainKHR,
21440 pub image_index_count: u32,
21441 pub image_indices: *const u32,
21442}
21443
21444impl Default for ReleaseSwapchainImagesInfoEXT {
21445 #[inline]
21446 fn default() -> Self {
21447 Self {
21448 s_type: StructureType::RELEASE_SWAPCHAIN_IMAGES_INFO_EXT,
21449 next: ptr::null(),
21450 swapchain: SwapchainKHR::default(),
21451 image_index_count: u32::default(),
21452 image_indices: ptr::null(),
21453 }
21454 }
21455}
21456
21457#[repr(C)]
21459#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21460pub struct RenderPassAttachmentBeginInfo {
21461 pub s_type: StructureType,
21462 pub next: *const c_void,
21463 pub attachment_count: u32,
21464 pub attachments: *const ImageView,
21465}
21466
21467impl Default for RenderPassAttachmentBeginInfo {
21468 #[inline]
21469 fn default() -> Self {
21470 Self {
21471 s_type: StructureType::RENDER_PASS_ATTACHMENT_BEGIN_INFO,
21472 next: ptr::null(),
21473 attachment_count: u32::default(),
21474 attachments: ptr::null(),
21475 }
21476 }
21477}
21478
21479#[repr(C)]
21481#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21482pub struct RenderPassBeginInfo {
21483 pub s_type: StructureType,
21484 pub next: *const c_void,
21485 pub render_pass: RenderPass,
21486 pub framebuffer: Framebuffer,
21487 pub render_area: Rect2D,
21488 pub clear_value_count: u32,
21489 pub clear_values: *const ClearValue,
21490}
21491
21492impl Default for RenderPassBeginInfo {
21493 #[inline]
21494 fn default() -> Self {
21495 Self {
21496 s_type: StructureType::RENDER_PASS_BEGIN_INFO,
21497 next: ptr::null(),
21498 render_pass: RenderPass::default(),
21499 framebuffer: Framebuffer::default(),
21500 render_area: Rect2D::default(),
21501 clear_value_count: u32::default(),
21502 clear_values: ptr::null(),
21503 }
21504 }
21505}
21506
21507#[repr(C)]
21509#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21510pub struct RenderPassCreateInfo {
21511 pub s_type: StructureType,
21512 pub next: *const c_void,
21513 pub flags: RenderPassCreateFlags,
21514 pub attachment_count: u32,
21515 pub attachments: *const AttachmentDescription,
21516 pub subpass_count: u32,
21517 pub subpasses: *const SubpassDescription,
21518 pub dependency_count: u32,
21519 pub dependencies: *const SubpassDependency,
21520}
21521
21522impl Default for RenderPassCreateInfo {
21523 #[inline]
21524 fn default() -> Self {
21525 Self {
21526 s_type: StructureType::RENDER_PASS_CREATE_INFO,
21527 next: ptr::null(),
21528 flags: RenderPassCreateFlags::default(),
21529 attachment_count: u32::default(),
21530 attachments: ptr::null(),
21531 subpass_count: u32::default(),
21532 subpasses: ptr::null(),
21533 dependency_count: u32::default(),
21534 dependencies: ptr::null(),
21535 }
21536 }
21537}
21538
21539#[repr(C)]
21541#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21542pub struct RenderPassCreateInfo2 {
21543 pub s_type: StructureType,
21544 pub next: *const c_void,
21545 pub flags: RenderPassCreateFlags,
21546 pub attachment_count: u32,
21547 pub attachments: *const AttachmentDescription2,
21548 pub subpass_count: u32,
21549 pub subpasses: *const SubpassDescription2,
21550 pub dependency_count: u32,
21551 pub dependencies: *const SubpassDependency2,
21552 pub correlated_view_mask_count: u32,
21553 pub correlated_view_masks: *const u32,
21554}
21555
21556impl Default for RenderPassCreateInfo2 {
21557 #[inline]
21558 fn default() -> Self {
21559 Self {
21560 s_type: StructureType::RENDER_PASS_CREATE_INFO_2,
21561 next: ptr::null(),
21562 flags: RenderPassCreateFlags::default(),
21563 attachment_count: u32::default(),
21564 attachments: ptr::null(),
21565 subpass_count: u32::default(),
21566 subpasses: ptr::null(),
21567 dependency_count: u32::default(),
21568 dependencies: ptr::null(),
21569 correlated_view_mask_count: u32::default(),
21570 correlated_view_masks: ptr::null(),
21571 }
21572 }
21573}
21574
21575#[repr(C)]
21577#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21578pub struct RenderPassCreationControlEXT {
21579 pub s_type: StructureType,
21580 pub next: *const c_void,
21581 pub disallow_merging: Bool32,
21582}
21583
21584impl Default for RenderPassCreationControlEXT {
21585 #[inline]
21586 fn default() -> Self {
21587 Self {
21588 s_type: StructureType::RENDER_PASS_CREATION_CONTROL_EXT,
21589 next: ptr::null(),
21590 disallow_merging: Bool32::default(),
21591 }
21592 }
21593}
21594
21595#[repr(C)]
21597#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21598pub struct RenderPassCreationFeedbackCreateInfoEXT {
21599 pub s_type: StructureType,
21600 pub next: *const c_void,
21601 pub render_pass_feedback: *mut RenderPassCreationFeedbackInfoEXT,
21602}
21603
21604impl Default for RenderPassCreationFeedbackCreateInfoEXT {
21605 #[inline]
21606 fn default() -> Self {
21607 Self {
21608 s_type: StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT,
21609 next: ptr::null(),
21610 render_pass_feedback: ptr::null_mut(),
21611 }
21612 }
21613}
21614
21615#[repr(C)]
21617#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
21618pub struct RenderPassCreationFeedbackInfoEXT {
21619 pub post_merge_subpass_count: u32,
21620}
21621
21622#[repr(C)]
21624#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21625pub struct RenderPassFragmentDensityMapCreateInfoEXT {
21626 pub s_type: StructureType,
21627 pub next: *const c_void,
21628 pub fragment_density_map_attachment: AttachmentReference,
21629}
21630
21631impl Default for RenderPassFragmentDensityMapCreateInfoEXT {
21632 #[inline]
21633 fn default() -> Self {
21634 Self {
21635 s_type: StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
21636 next: ptr::null(),
21637 fragment_density_map_attachment: AttachmentReference::default(),
21638 }
21639 }
21640}
21641
21642#[repr(C)]
21644#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21645pub struct RenderPassInputAttachmentAspectCreateInfo {
21646 pub s_type: StructureType,
21647 pub next: *const c_void,
21648 pub aspect_reference_count: u32,
21649 pub aspect_references: *const InputAttachmentAspectReference,
21650}
21651
21652impl Default for RenderPassInputAttachmentAspectCreateInfo {
21653 #[inline]
21654 fn default() -> Self {
21655 Self {
21656 s_type: StructureType::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
21657 next: ptr::null(),
21658 aspect_reference_count: u32::default(),
21659 aspect_references: ptr::null(),
21660 }
21661 }
21662}
21663
21664#[repr(C)]
21666#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21667pub struct RenderPassMultiviewCreateInfo {
21668 pub s_type: StructureType,
21669 pub next: *const c_void,
21670 pub subpass_count: u32,
21671 pub view_masks: *const u32,
21672 pub dependency_count: u32,
21673 pub view_offsets: *const i32,
21674 pub correlation_mask_count: u32,
21675 pub correlation_masks: *const u32,
21676}
21677
21678impl Default for RenderPassMultiviewCreateInfo {
21679 #[inline]
21680 fn default() -> Self {
21681 Self {
21682 s_type: StructureType::RENDER_PASS_MULTIVIEW_CREATE_INFO,
21683 next: ptr::null(),
21684 subpass_count: u32::default(),
21685 view_masks: ptr::null(),
21686 dependency_count: u32::default(),
21687 view_offsets: ptr::null(),
21688 correlation_mask_count: u32::default(),
21689 correlation_masks: ptr::null(),
21690 }
21691 }
21692}
21693
21694#[repr(C)]
21696#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21697pub struct RenderPassSampleLocationsBeginInfoEXT {
21698 pub s_type: StructureType,
21699 pub next: *const c_void,
21700 pub attachment_initial_sample_locations_count: u32,
21701 pub attachment_initial_sample_locations: *const AttachmentSampleLocationsEXT,
21702 pub post_subpass_sample_locations_count: u32,
21703 pub post_subpass_sample_locations: *const SubpassSampleLocationsEXT,
21704}
21705
21706impl Default for RenderPassSampleLocationsBeginInfoEXT {
21707 #[inline]
21708 fn default() -> Self {
21709 Self {
21710 s_type: StructureType::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
21711 next: ptr::null(),
21712 attachment_initial_sample_locations_count: u32::default(),
21713 attachment_initial_sample_locations: ptr::null(),
21714 post_subpass_sample_locations_count: u32::default(),
21715 post_subpass_sample_locations: ptr::null(),
21716 }
21717 }
21718}
21719
21720#[repr(C)]
21722#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21723pub struct RenderPassStripeBeginInfoARM {
21724 pub s_type: StructureType,
21725 pub next: *const c_void,
21726 pub stripe_info_count: u32,
21727 pub stripe_infos: *const RenderPassStripeInfoARM,
21728}
21729
21730impl Default for RenderPassStripeBeginInfoARM {
21731 #[inline]
21732 fn default() -> Self {
21733 Self {
21734 s_type: StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM,
21735 next: ptr::null(),
21736 stripe_info_count: u32::default(),
21737 stripe_infos: ptr::null(),
21738 }
21739 }
21740}
21741
21742#[repr(C)]
21744#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21745pub struct RenderPassStripeInfoARM {
21746 pub s_type: StructureType,
21747 pub next: *const c_void,
21748 pub stripe_area: Rect2D,
21749}
21750
21751impl Default for RenderPassStripeInfoARM {
21752 #[inline]
21753 fn default() -> Self {
21754 Self {
21755 s_type: StructureType::RENDER_PASS_STRIPE_INFO_ARM,
21756 next: ptr::null(),
21757 stripe_area: Rect2D::default(),
21758 }
21759 }
21760}
21761
21762#[repr(C)]
21764#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21765pub struct RenderPassStripeSubmitInfoARM {
21766 pub s_type: StructureType,
21767 pub next: *const c_void,
21768 pub stripe_semaphore_info_count: u32,
21769 pub stripe_semaphore_infos: *const SemaphoreSubmitInfo,
21770}
21771
21772impl Default for RenderPassStripeSubmitInfoARM {
21773 #[inline]
21774 fn default() -> Self {
21775 Self {
21776 s_type: StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM,
21777 next: ptr::null(),
21778 stripe_semaphore_info_count: u32::default(),
21779 stripe_semaphore_infos: ptr::null(),
21780 }
21781 }
21782}
21783
21784#[repr(C)]
21786#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21787pub struct RenderPassSubpassFeedbackCreateInfoEXT {
21788 pub s_type: StructureType,
21789 pub next: *const c_void,
21790 pub subpass_feedback: *mut RenderPassSubpassFeedbackInfoEXT,
21791}
21792
21793impl Default for RenderPassSubpassFeedbackCreateInfoEXT {
21794 #[inline]
21795 fn default() -> Self {
21796 Self {
21797 s_type: StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT,
21798 next: ptr::null(),
21799 subpass_feedback: ptr::null_mut(),
21800 }
21801 }
21802}
21803
21804#[repr(C)]
21806#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
21807pub struct RenderPassSubpassFeedbackInfoEXT {
21808 pub subpass_merge_status: SubpassMergeStatusEXT,
21809 pub description: StringArray<MAX_DESCRIPTION_SIZE>,
21810 pub post_merge_index: u32,
21811}
21812
21813#[repr(C)]
21815#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21816pub struct RenderPassTransformBeginInfoQCOM {
21817 pub s_type: StructureType,
21818 pub next: *mut c_void,
21819 pub transform: SurfaceTransformFlagsKHR,
21820}
21821
21822impl Default for RenderPassTransformBeginInfoQCOM {
21823 #[inline]
21824 fn default() -> Self {
21825 Self {
21826 s_type: StructureType::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
21827 next: ptr::null_mut(),
21828 transform: SurfaceTransformFlagsKHR::default(),
21829 }
21830 }
21831}
21832
21833#[repr(C)]
21835#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21836pub struct RenderingAreaInfo {
21837 pub s_type: StructureType,
21838 pub next: *const c_void,
21839 pub view_mask: u32,
21840 pub color_attachment_count: u32,
21841 pub color_attachment_formats: *const Format,
21842 pub depth_attachment_format: Format,
21843 pub stencil_attachment_format: Format,
21844}
21845
21846impl Default for RenderingAreaInfo {
21847 #[inline]
21848 fn default() -> Self {
21849 Self {
21850 s_type: StructureType::RENDERING_AREA_INFO,
21851 next: ptr::null(),
21852 view_mask: u32::default(),
21853 color_attachment_count: u32::default(),
21854 color_attachment_formats: ptr::null(),
21855 depth_attachment_format: Format::default(),
21856 stencil_attachment_format: Format::default(),
21857 }
21858 }
21859}
21860
21861#[repr(C)]
21863#[derive(Copy, Clone, Debug)]
21864pub struct RenderingAttachmentInfo {
21865 pub s_type: StructureType,
21866 pub next: *const c_void,
21867 pub image_view: ImageView,
21868 pub image_layout: ImageLayout,
21869 pub resolve_mode: ResolveModeFlags,
21870 pub resolve_image_view: ImageView,
21871 pub resolve_image_layout: ImageLayout,
21872 pub load_op: AttachmentLoadOp,
21873 pub store_op: AttachmentStoreOp,
21874 pub clear_value: ClearValue,
21875}
21876
21877impl Default for RenderingAttachmentInfo {
21878 #[inline]
21879 fn default() -> Self {
21880 Self {
21881 s_type: StructureType::RENDERING_ATTACHMENT_INFO,
21882 next: ptr::null(),
21883 image_view: ImageView::default(),
21884 image_layout: ImageLayout::default(),
21885 resolve_mode: ResolveModeFlags::default(),
21886 resolve_image_view: ImageView::default(),
21887 resolve_image_layout: ImageLayout::default(),
21888 load_op: AttachmentLoadOp::default(),
21889 store_op: AttachmentStoreOp::default(),
21890 clear_value: ClearValue::default(),
21891 }
21892 }
21893}
21894
21895#[repr(C)]
21897#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21898pub struct RenderingAttachmentLocationInfo {
21899 pub s_type: StructureType,
21900 pub next: *const c_void,
21901 pub color_attachment_count: u32,
21902 pub color_attachment_locations: *const u32,
21903}
21904
21905impl Default for RenderingAttachmentLocationInfo {
21906 #[inline]
21907 fn default() -> Self {
21908 Self {
21909 s_type: StructureType::RENDERING_ATTACHMENT_LOCATION_INFO,
21910 next: ptr::null(),
21911 color_attachment_count: u32::default(),
21912 color_attachment_locations: ptr::null(),
21913 }
21914 }
21915}
21916
21917#[repr(C)]
21919#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21920pub struct RenderingFragmentDensityMapAttachmentInfoEXT {
21921 pub s_type: StructureType,
21922 pub next: *const c_void,
21923 pub image_view: ImageView,
21924 pub image_layout: ImageLayout,
21925}
21926
21927impl Default for RenderingFragmentDensityMapAttachmentInfoEXT {
21928 #[inline]
21929 fn default() -> Self {
21930 Self {
21931 s_type: StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
21932 next: ptr::null(),
21933 image_view: ImageView::default(),
21934 image_layout: ImageLayout::default(),
21935 }
21936 }
21937}
21938
21939#[repr(C)]
21941#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21942pub struct RenderingFragmentShadingRateAttachmentInfoKHR {
21943 pub s_type: StructureType,
21944 pub next: *const c_void,
21945 pub image_view: ImageView,
21946 pub image_layout: ImageLayout,
21947 pub shading_rate_attachment_texel_size: Extent2D,
21948}
21949
21950impl Default for RenderingFragmentShadingRateAttachmentInfoKHR {
21951 #[inline]
21952 fn default() -> Self {
21953 Self {
21954 s_type: StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
21955 next: ptr::null(),
21956 image_view: ImageView::default(),
21957 image_layout: ImageLayout::default(),
21958 shading_rate_attachment_texel_size: Extent2D::default(),
21959 }
21960 }
21961}
21962
21963#[repr(C)]
21965#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
21966pub struct RenderingInfo {
21967 pub s_type: StructureType,
21968 pub next: *const c_void,
21969 pub flags: RenderingFlags,
21970 pub render_area: Rect2D,
21971 pub layer_count: u32,
21972 pub view_mask: u32,
21973 pub color_attachment_count: u32,
21974 pub color_attachments: *const RenderingAttachmentInfo,
21975 pub depth_attachment: *const RenderingAttachmentInfo,
21976 pub stencil_attachment: *const RenderingAttachmentInfo,
21977}
21978
21979impl Default for RenderingInfo {
21980 #[inline]
21981 fn default() -> Self {
21982 Self {
21983 s_type: StructureType::RENDERING_INFO,
21984 next: ptr::null(),
21985 flags: RenderingFlags::default(),
21986 render_area: Rect2D::default(),
21987 layer_count: u32::default(),
21988 view_mask: u32::default(),
21989 color_attachment_count: u32::default(),
21990 color_attachments: ptr::null(),
21991 depth_attachment: ptr::null(),
21992 stencil_attachment: ptr::null(),
21993 }
21994 }
21995}
21996
21997#[repr(C)]
21999#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22000pub struct RenderingInputAttachmentIndexInfo {
22001 pub s_type: StructureType,
22002 pub next: *const c_void,
22003 pub color_attachment_count: u32,
22004 pub color_attachment_input_indices: *const u32,
22005 pub depth_input_attachment_index: *const u32,
22006 pub stencil_input_attachment_index: *const u32,
22007}
22008
22009impl Default for RenderingInputAttachmentIndexInfo {
22010 #[inline]
22011 fn default() -> Self {
22012 Self {
22013 s_type: StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
22014 next: ptr::null(),
22015 color_attachment_count: u32::default(),
22016 color_attachment_input_indices: ptr::null(),
22017 depth_input_attachment_index: ptr::null(),
22018 stencil_input_attachment_index: ptr::null(),
22019 }
22020 }
22021}
22022
22023#[repr(C)]
22025#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22026pub struct ResolveImageInfo2 {
22027 pub s_type: StructureType,
22028 pub next: *const c_void,
22029 pub src_image: Image,
22030 pub src_image_layout: ImageLayout,
22031 pub dst_image: Image,
22032 pub dst_image_layout: ImageLayout,
22033 pub region_count: u32,
22034 pub regions: *const ImageResolve2,
22035}
22036
22037impl Default for ResolveImageInfo2 {
22038 #[inline]
22039 fn default() -> Self {
22040 Self {
22041 s_type: StructureType::RESOLVE_IMAGE_INFO_2,
22042 next: ptr::null(),
22043 src_image: Image::default(),
22044 src_image_layout: ImageLayout::default(),
22045 dst_image: Image::default(),
22046 dst_image_layout: ImageLayout::default(),
22047 region_count: u32::default(),
22048 regions: ptr::null(),
22049 }
22050 }
22051}
22052
22053#[repr(C)]
22055#[derive(Copy, Clone, Default, Debug, PartialEq)]
22056pub struct SRTDataNV {
22057 pub sx: f32,
22058 pub a: f32,
22059 pub b: f32,
22060 pub pvx: f32,
22061 pub sy: f32,
22062 pub c: f32,
22063 pub pvy: f32,
22064 pub sz: f32,
22065 pub pvz: f32,
22066 pub qx: f32,
22067 pub qy: f32,
22068 pub qz: f32,
22069 pub qw: f32,
22070 pub tx: f32,
22071 pub ty: f32,
22072 pub tz: f32,
22073}
22074
22075#[repr(C)]
22077#[derive(Copy, Clone, Default, Debug, PartialEq)]
22078pub struct SampleLocationEXT {
22079 pub x: f32,
22080 pub y: f32,
22081}
22082
22083#[repr(C)]
22085#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22086pub struct SampleLocationsInfoEXT {
22087 pub s_type: StructureType,
22088 pub next: *const c_void,
22089 pub sample_locations_per_pixel: SampleCountFlags,
22090 pub sample_location_grid_size: Extent2D,
22091 pub sample_locations_count: u32,
22092 pub sample_locations: *const SampleLocationEXT,
22093}
22094
22095impl Default for SampleLocationsInfoEXT {
22096 #[inline]
22097 fn default() -> Self {
22098 Self {
22099 s_type: StructureType::SAMPLE_LOCATIONS_INFO_EXT,
22100 next: ptr::null(),
22101 sample_locations_per_pixel: SampleCountFlags::default(),
22102 sample_location_grid_size: Extent2D::default(),
22103 sample_locations_count: u32::default(),
22104 sample_locations: ptr::null(),
22105 }
22106 }
22107}
22108
22109#[repr(C)]
22111#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22112pub struct SamplerBlockMatchWindowCreateInfoQCOM {
22113 pub s_type: StructureType,
22114 pub next: *const c_void,
22115 pub window_extent: Extent2D,
22116 pub window_compare_mode: BlockMatchWindowCompareModeQCOM,
22117}
22118
22119impl Default for SamplerBlockMatchWindowCreateInfoQCOM {
22120 #[inline]
22121 fn default() -> Self {
22122 Self {
22123 s_type: StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM,
22124 next: ptr::null(),
22125 window_extent: Extent2D::default(),
22126 window_compare_mode: BlockMatchWindowCompareModeQCOM::default(),
22127 }
22128 }
22129}
22130
22131#[repr(C)]
22133#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22134pub struct SamplerBorderColorComponentMappingCreateInfoEXT {
22135 pub s_type: StructureType,
22136 pub next: *const c_void,
22137 pub components: ComponentMapping,
22138 pub srgb: Bool32,
22139}
22140
22141impl Default for SamplerBorderColorComponentMappingCreateInfoEXT {
22142 #[inline]
22143 fn default() -> Self {
22144 Self {
22145 s_type: StructureType::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,
22146 next: ptr::null(),
22147 components: ComponentMapping::default(),
22148 srgb: Bool32::default(),
22149 }
22150 }
22151}
22152
22153#[repr(C)]
22155#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22156pub struct SamplerCaptureDescriptorDataInfoEXT {
22157 pub s_type: StructureType,
22158 pub next: *const c_void,
22159 pub sampler: Sampler,
22160}
22161
22162impl Default for SamplerCaptureDescriptorDataInfoEXT {
22163 #[inline]
22164 fn default() -> Self {
22165 Self {
22166 s_type: StructureType::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
22167 next: ptr::null(),
22168 sampler: Sampler::default(),
22169 }
22170 }
22171}
22172
22173#[repr(C)]
22175#[derive(Copy, Clone, Debug, PartialEq)]
22176pub struct SamplerCreateInfo {
22177 pub s_type: StructureType,
22178 pub next: *const c_void,
22179 pub flags: SamplerCreateFlags,
22180 pub mag_filter: Filter,
22181 pub min_filter: Filter,
22182 pub mipmap_mode: SamplerMipmapMode,
22183 pub address_mode_u: SamplerAddressMode,
22184 pub address_mode_v: SamplerAddressMode,
22185 pub address_mode_w: SamplerAddressMode,
22186 pub mip_lod_bias: f32,
22187 pub anisotropy_enable: Bool32,
22188 pub max_anisotropy: f32,
22189 pub compare_enable: Bool32,
22190 pub compare_op: CompareOp,
22191 pub min_lod: f32,
22192 pub max_lod: f32,
22193 pub border_color: BorderColor,
22194 pub unnormalized_coordinates: Bool32,
22195}
22196
22197impl Default for SamplerCreateInfo {
22198 #[inline]
22199 fn default() -> Self {
22200 Self {
22201 s_type: StructureType::SAMPLER_CREATE_INFO,
22202 next: ptr::null(),
22203 flags: SamplerCreateFlags::default(),
22204 mag_filter: Filter::default(),
22205 min_filter: Filter::default(),
22206 mipmap_mode: SamplerMipmapMode::default(),
22207 address_mode_u: SamplerAddressMode::default(),
22208 address_mode_v: SamplerAddressMode::default(),
22209 address_mode_w: SamplerAddressMode::default(),
22210 mip_lod_bias: f32::default(),
22211 anisotropy_enable: Bool32::default(),
22212 max_anisotropy: f32::default(),
22213 compare_enable: Bool32::default(),
22214 compare_op: CompareOp::default(),
22215 min_lod: f32::default(),
22216 max_lod: f32::default(),
22217 border_color: BorderColor::default(),
22218 unnormalized_coordinates: Bool32::default(),
22219 }
22220 }
22221}
22222
22223#[repr(C)]
22225#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22226pub struct SamplerCubicWeightsCreateInfoQCOM {
22227 pub s_type: StructureType,
22228 pub next: *const c_void,
22229 pub cubic_weights: CubicFilterWeightsQCOM,
22230}
22231
22232impl Default for SamplerCubicWeightsCreateInfoQCOM {
22233 #[inline]
22234 fn default() -> Self {
22235 Self {
22236 s_type: StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM,
22237 next: ptr::null(),
22238 cubic_weights: CubicFilterWeightsQCOM::default(),
22239 }
22240 }
22241}
22242
22243#[repr(C)]
22245#[derive(Copy, Clone, Debug)]
22246pub struct SamplerCustomBorderColorCreateInfoEXT {
22247 pub s_type: StructureType,
22248 pub next: *const c_void,
22249 pub custom_border_color: ClearColorValue,
22250 pub format: Format,
22251}
22252
22253impl Default for SamplerCustomBorderColorCreateInfoEXT {
22254 #[inline]
22255 fn default() -> Self {
22256 Self {
22257 s_type: StructureType::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
22258 next: ptr::null(),
22259 custom_border_color: ClearColorValue::default(),
22260 format: Format::default(),
22261 }
22262 }
22263}
22264
22265#[repr(C)]
22267#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22268pub struct SamplerReductionModeCreateInfo {
22269 pub s_type: StructureType,
22270 pub next: *const c_void,
22271 pub reduction_mode: SamplerReductionMode,
22272}
22273
22274impl Default for SamplerReductionModeCreateInfo {
22275 #[inline]
22276 fn default() -> Self {
22277 Self {
22278 s_type: StructureType::SAMPLER_REDUCTION_MODE_CREATE_INFO,
22279 next: ptr::null(),
22280 reduction_mode: SamplerReductionMode::default(),
22281 }
22282 }
22283}
22284
22285#[repr(C)]
22287#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22288pub struct SamplerYcbcrConversionCreateInfo {
22289 pub s_type: StructureType,
22290 pub next: *const c_void,
22291 pub format: Format,
22292 pub ycbcr_model: SamplerYcbcrModelConversion,
22293 pub ycbcr_range: SamplerYcbcrRange,
22294 pub components: ComponentMapping,
22295 pub x_chroma_offset: ChromaLocation,
22296 pub y_chroma_offset: ChromaLocation,
22297 pub chroma_filter: Filter,
22298 pub force_explicit_reconstruction: Bool32,
22299}
22300
22301impl Default for SamplerYcbcrConversionCreateInfo {
22302 #[inline]
22303 fn default() -> Self {
22304 Self {
22305 s_type: StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
22306 next: ptr::null(),
22307 format: Format::default(),
22308 ycbcr_model: SamplerYcbcrModelConversion::default(),
22309 ycbcr_range: SamplerYcbcrRange::default(),
22310 components: ComponentMapping::default(),
22311 x_chroma_offset: ChromaLocation::default(),
22312 y_chroma_offset: ChromaLocation::default(),
22313 chroma_filter: Filter::default(),
22314 force_explicit_reconstruction: Bool32::default(),
22315 }
22316 }
22317}
22318
22319#[repr(C)]
22321#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22322pub struct SamplerYcbcrConversionImageFormatProperties {
22323 pub s_type: StructureType,
22324 pub next: *mut c_void,
22325 pub combined_image_sampler_descriptor_count: u32,
22326}
22327
22328impl Default for SamplerYcbcrConversionImageFormatProperties {
22329 #[inline]
22330 fn default() -> Self {
22331 Self {
22332 s_type: StructureType::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
22333 next: ptr::null_mut(),
22334 combined_image_sampler_descriptor_count: u32::default(),
22335 }
22336 }
22337}
22338
22339#[repr(C)]
22341#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22342pub struct SamplerYcbcrConversionInfo {
22343 pub s_type: StructureType,
22344 pub next: *const c_void,
22345 pub conversion: SamplerYcbcrConversion,
22346}
22347
22348impl Default for SamplerYcbcrConversionInfo {
22349 #[inline]
22350 fn default() -> Self {
22351 Self {
22352 s_type: StructureType::SAMPLER_YCBCR_CONVERSION_INFO,
22353 next: ptr::null(),
22354 conversion: SamplerYcbcrConversion::default(),
22355 }
22356 }
22357}
22358
22359#[repr(C)]
22361#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22362pub struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
22363 pub s_type: StructureType,
22364 pub next: *mut c_void,
22365 pub enable_y_degamma: Bool32,
22366 pub enable_cb_cr_degamma: Bool32,
22367}
22368
22369impl Default for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
22370 #[inline]
22371 fn default() -> Self {
22372 Self {
22373 s_type: StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM,
22374 next: ptr::null_mut(),
22375 enable_y_degamma: Bool32::default(),
22376 enable_cb_cr_degamma: Bool32::default(),
22377 }
22378 }
22379}
22380
22381#[repr(C)]
22383#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22384pub struct SciSyncAttributesInfoNV {
22385 pub s_type: StructureType,
22386 pub next: *const c_void,
22387 pub client_type: SciSyncClientTypeNV,
22388 pub primitive_type: SciSyncPrimitiveTypeNV,
22389}
22390
22391impl Default for SciSyncAttributesInfoNV {
22392 #[inline]
22393 fn default() -> Self {
22394 Self {
22395 s_type: StructureType::SCI_SYNC_ATTRIBUTES_INFO_NV,
22396 next: ptr::null(),
22397 client_type: SciSyncClientTypeNV::default(),
22398 primitive_type: SciSyncPrimitiveTypeNV::default(),
22399 }
22400 }
22401}
22402
22403#[repr(C)]
22405#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22406pub struct ScreenBufferFormatPropertiesQNX {
22407 pub s_type: StructureType,
22408 pub next: *mut c_void,
22409 pub format: Format,
22410 pub external_format: u64,
22411 pub screen_usage: u64,
22412 pub format_features: FormatFeatureFlags,
22413 pub sampler_ycbcr_conversion_components: ComponentMapping,
22414 pub suggested_ycbcr_model: SamplerYcbcrModelConversion,
22415 pub suggested_ycbcr_range: SamplerYcbcrRange,
22416 pub suggested_x_chroma_offset: ChromaLocation,
22417 pub suggested_y_chroma_offset: ChromaLocation,
22418}
22419
22420impl Default for ScreenBufferFormatPropertiesQNX {
22421 #[inline]
22422 fn default() -> Self {
22423 Self {
22424 s_type: StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX,
22425 next: ptr::null_mut(),
22426 format: Format::default(),
22427 external_format: u64::default(),
22428 screen_usage: u64::default(),
22429 format_features: FormatFeatureFlags::default(),
22430 sampler_ycbcr_conversion_components: ComponentMapping::default(),
22431 suggested_ycbcr_model: SamplerYcbcrModelConversion::default(),
22432 suggested_ycbcr_range: SamplerYcbcrRange::default(),
22433 suggested_x_chroma_offset: ChromaLocation::default(),
22434 suggested_y_chroma_offset: ChromaLocation::default(),
22435 }
22436 }
22437}
22438
22439#[repr(C)]
22441#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22442pub struct ScreenBufferPropertiesQNX {
22443 pub s_type: StructureType,
22444 pub next: *mut c_void,
22445 pub allocation_size: DeviceSize,
22446 pub memory_type_bits: u32,
22447}
22448
22449impl Default for ScreenBufferPropertiesQNX {
22450 #[inline]
22451 fn default() -> Self {
22452 Self {
22453 s_type: StructureType::SCREEN_BUFFER_PROPERTIES_QNX,
22454 next: ptr::null_mut(),
22455 allocation_size: DeviceSize::default(),
22456 memory_type_bits: u32::default(),
22457 }
22458 }
22459}
22460
22461#[repr(C)]
22463#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22464pub struct ScreenSurfaceCreateInfoQNX {
22465 pub s_type: StructureType,
22466 pub next: *const c_void,
22467 pub flags: ScreenSurfaceCreateFlagsQNX,
22468 pub context: *mut _screen_context,
22469 pub window: *mut _screen_window,
22470}
22471
22472impl Default for ScreenSurfaceCreateInfoQNX {
22473 #[inline]
22474 fn default() -> Self {
22475 Self {
22476 s_type: StructureType::SCREEN_SURFACE_CREATE_INFO_QNX,
22477 next: ptr::null(),
22478 flags: ScreenSurfaceCreateFlagsQNX::default(),
22479 context: ptr::null_mut(),
22480 window: ptr::null_mut(),
22481 }
22482 }
22483}
22484
22485#[repr(C)]
22487#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22488pub struct SemaphoreCreateInfo {
22489 pub s_type: StructureType,
22490 pub next: *const c_void,
22491 pub flags: SemaphoreCreateFlags,
22492}
22493
22494impl Default for SemaphoreCreateInfo {
22495 #[inline]
22496 fn default() -> Self {
22497 Self {
22498 s_type: StructureType::SEMAPHORE_CREATE_INFO,
22499 next: ptr::null(),
22500 flags: SemaphoreCreateFlags::default(),
22501 }
22502 }
22503}
22504
22505#[repr(C)]
22507#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22508pub struct SemaphoreGetFdInfoKHR {
22509 pub s_type: StructureType,
22510 pub next: *const c_void,
22511 pub semaphore: Semaphore,
22512 pub handle_type: ExternalSemaphoreHandleTypeFlags,
22513}
22514
22515impl Default for SemaphoreGetFdInfoKHR {
22516 #[inline]
22517 fn default() -> Self {
22518 Self {
22519 s_type: StructureType::SEMAPHORE_GET_FD_INFO_KHR,
22520 next: ptr::null(),
22521 semaphore: Semaphore::default(),
22522 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
22523 }
22524 }
22525}
22526
22527#[repr(C)]
22529#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22530pub struct SemaphoreGetSciSyncInfoNV {
22531 pub s_type: StructureType,
22532 pub next: *const c_void,
22533 pub semaphore: Semaphore,
22534 pub handle_type: ExternalSemaphoreHandleTypeFlags,
22535}
22536
22537impl Default for SemaphoreGetSciSyncInfoNV {
22538 #[inline]
22539 fn default() -> Self {
22540 Self {
22541 s_type: StructureType::SEMAPHORE_GET_SCI_SYNC_INFO_NV,
22542 next: ptr::null(),
22543 semaphore: Semaphore::default(),
22544 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
22545 }
22546 }
22547}
22548
22549#[repr(C)]
22551#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22552pub struct SemaphoreGetWin32HandleInfoKHR {
22553 pub s_type: StructureType,
22554 pub next: *const c_void,
22555 pub semaphore: Semaphore,
22556 pub handle_type: ExternalSemaphoreHandleTypeFlags,
22557}
22558
22559impl Default for SemaphoreGetWin32HandleInfoKHR {
22560 #[inline]
22561 fn default() -> Self {
22562 Self {
22563 s_type: StructureType::SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
22564 next: ptr::null(),
22565 semaphore: Semaphore::default(),
22566 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
22567 }
22568 }
22569}
22570
22571#[repr(C)]
22573#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22574pub struct SemaphoreGetZirconHandleInfoFUCHSIA {
22575 pub s_type: StructureType,
22576 pub next: *const c_void,
22577 pub semaphore: Semaphore,
22578 pub handle_type: ExternalSemaphoreHandleTypeFlags,
22579}
22580
22581impl Default for SemaphoreGetZirconHandleInfoFUCHSIA {
22582 #[inline]
22583 fn default() -> Self {
22584 Self {
22585 s_type: StructureType::SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
22586 next: ptr::null(),
22587 semaphore: Semaphore::default(),
22588 handle_type: ExternalSemaphoreHandleTypeFlags::default(),
22589 }
22590 }
22591}
22592
22593#[repr(C)]
22595#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22596pub struct SemaphoreSciSyncCreateInfoNV {
22597 pub s_type: StructureType,
22598 pub next: *const c_void,
22599 pub semaphore_pool: SemaphoreSciSyncPoolNV,
22600 pub fence: *const NvSciSyncFence,
22601}
22602
22603impl Default for SemaphoreSciSyncCreateInfoNV {
22604 #[inline]
22605 fn default() -> Self {
22606 Self {
22607 s_type: StructureType::SEMAPHORE_SCI_SYNC_CREATE_INFO_NV,
22608 next: ptr::null(),
22609 semaphore_pool: SemaphoreSciSyncPoolNV::default(),
22610 fence: ptr::null(),
22611 }
22612 }
22613}
22614
22615#[repr(C)]
22617#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22618pub struct SemaphoreSciSyncPoolCreateInfoNV {
22619 pub s_type: StructureType,
22620 pub next: *const c_void,
22621 pub handle: NvSciSyncObj,
22622}
22623
22624impl Default for SemaphoreSciSyncPoolCreateInfoNV {
22625 #[inline]
22626 fn default() -> Self {
22627 Self {
22628 s_type: StructureType::SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV,
22629 next: ptr::null(),
22630 handle: ptr::null_mut(),
22631 }
22632 }
22633}
22634
22635#[repr(C)]
22637#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22638pub struct SemaphoreSignalInfo {
22639 pub s_type: StructureType,
22640 pub next: *const c_void,
22641 pub semaphore: Semaphore,
22642 pub value: u64,
22643}
22644
22645impl Default for SemaphoreSignalInfo {
22646 #[inline]
22647 fn default() -> Self {
22648 Self {
22649 s_type: StructureType::SEMAPHORE_SIGNAL_INFO,
22650 next: ptr::null(),
22651 semaphore: Semaphore::default(),
22652 value: u64::default(),
22653 }
22654 }
22655}
22656
22657#[repr(C)]
22659#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22660pub struct SemaphoreSubmitInfo {
22661 pub s_type: StructureType,
22662 pub next: *const c_void,
22663 pub semaphore: Semaphore,
22664 pub value: u64,
22665 pub stage_mask: PipelineStageFlags2,
22666 pub device_index: u32,
22667}
22668
22669impl Default for SemaphoreSubmitInfo {
22670 #[inline]
22671 fn default() -> Self {
22672 Self {
22673 s_type: StructureType::SEMAPHORE_SUBMIT_INFO,
22674 next: ptr::null(),
22675 semaphore: Semaphore::default(),
22676 value: u64::default(),
22677 stage_mask: PipelineStageFlags2::default(),
22678 device_index: u32::default(),
22679 }
22680 }
22681}
22682
22683#[repr(C)]
22685#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22686pub struct SemaphoreTypeCreateInfo {
22687 pub s_type: StructureType,
22688 pub next: *const c_void,
22689 pub semaphore_type: SemaphoreType,
22690 pub initial_value: u64,
22691}
22692
22693impl Default for SemaphoreTypeCreateInfo {
22694 #[inline]
22695 fn default() -> Self {
22696 Self {
22697 s_type: StructureType::SEMAPHORE_TYPE_CREATE_INFO,
22698 next: ptr::null(),
22699 semaphore_type: SemaphoreType::default(),
22700 initial_value: u64::default(),
22701 }
22702 }
22703}
22704
22705#[repr(C)]
22707#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22708pub struct SemaphoreWaitInfo {
22709 pub s_type: StructureType,
22710 pub next: *const c_void,
22711 pub flags: SemaphoreWaitFlags,
22712 pub semaphore_count: u32,
22713 pub semaphores: *const Semaphore,
22714 pub values: *const u64,
22715}
22716
22717impl Default for SemaphoreWaitInfo {
22718 #[inline]
22719 fn default() -> Self {
22720 Self {
22721 s_type: StructureType::SEMAPHORE_WAIT_INFO,
22722 next: ptr::null(),
22723 flags: SemaphoreWaitFlags::default(),
22724 semaphore_count: u32::default(),
22725 semaphores: ptr::null(),
22726 values: ptr::null(),
22727 }
22728 }
22729}
22730
22731#[repr(C)]
22733#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22734pub struct SetDescriptorBufferOffsetsInfoEXT {
22735 pub s_type: StructureType,
22736 pub next: *const c_void,
22737 pub stage_flags: ShaderStageFlags,
22738 pub layout: PipelineLayout,
22739 pub first_set: u32,
22740 pub set_count: u32,
22741 pub buffer_indices: *const u32,
22742 pub offsets: *const DeviceSize,
22743}
22744
22745impl Default for SetDescriptorBufferOffsetsInfoEXT {
22746 #[inline]
22747 fn default() -> Self {
22748 Self {
22749 s_type: StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT,
22750 next: ptr::null(),
22751 stage_flags: ShaderStageFlags::default(),
22752 layout: PipelineLayout::default(),
22753 first_set: u32::default(),
22754 set_count: u32::default(),
22755 buffer_indices: ptr::null(),
22756 offsets: ptr::null(),
22757 }
22758 }
22759}
22760
22761#[repr(C)]
22763#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22764pub struct SetLatencyMarkerInfoNV {
22765 pub s_type: StructureType,
22766 pub next: *const c_void,
22767 pub present_id: u64,
22768 pub marker: LatencyMarkerNV,
22769}
22770
22771impl Default for SetLatencyMarkerInfoNV {
22772 #[inline]
22773 fn default() -> Self {
22774 Self {
22775 s_type: StructureType::SET_LATENCY_MARKER_INFO_NV,
22776 next: ptr::null(),
22777 present_id: u64::default(),
22778 marker: LatencyMarkerNV::default(),
22779 }
22780 }
22781}
22782
22783#[repr(C)]
22785#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22786pub struct SetPresentConfigNV {
22787 pub s_type: StructureType,
22788 pub next: *const c_void,
22789 pub num_frames_per_batch: u32,
22790 pub present_config_feedback: u32,
22791}
22792
22793impl Default for SetPresentConfigNV {
22794 #[inline]
22795 fn default() -> Self {
22796 Self {
22797 s_type: StructureType::SET_PRESENT_CONFIG_NV,
22798 next: ptr::null(),
22799 num_frames_per_batch: u32::default(),
22800 present_config_feedback: u32::default(),
22801 }
22802 }
22803}
22804
22805#[repr(C)]
22807#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
22808pub struct SetStateFlagsIndirectCommandNV {
22809 pub data: u32,
22810}
22811
22812#[repr(C)]
22814#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22815pub struct ShaderCreateInfoEXT {
22816 pub s_type: StructureType,
22817 pub next: *const c_void,
22818 pub flags: ShaderCreateFlagsEXT,
22819 pub stage: ShaderStageFlags,
22820 pub next_stage: ShaderStageFlags,
22821 pub code_type: ShaderCodeTypeEXT,
22822 pub code_size: usize,
22823 pub code: *const c_void,
22824 pub name: *const c_char,
22825 pub set_layout_count: u32,
22826 pub set_layouts: *const DescriptorSetLayout,
22827 pub push_constant_range_count: u32,
22828 pub push_constant_ranges: *const PushConstantRange,
22829 pub specialization_info: *const SpecializationInfo,
22830}
22831
22832impl Default for ShaderCreateInfoEXT {
22833 #[inline]
22834 fn default() -> Self {
22835 Self {
22836 s_type: StructureType::SHADER_CREATE_INFO_EXT,
22837 next: ptr::null(),
22838 flags: ShaderCreateFlagsEXT::default(),
22839 stage: ShaderStageFlags::default(),
22840 next_stage: ShaderStageFlags::default(),
22841 code_type: ShaderCodeTypeEXT::default(),
22842 code_size: usize::default(),
22843 code: ptr::null(),
22844 name: ptr::null(),
22845 set_layout_count: u32::default(),
22846 set_layouts: ptr::null(),
22847 push_constant_range_count: u32::default(),
22848 push_constant_ranges: ptr::null(),
22849 specialization_info: ptr::null(),
22850 }
22851 }
22852}
22853
22854#[repr(C)]
22856#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22857pub struct ShaderModuleCreateInfo {
22858 pub s_type: StructureType,
22859 pub next: *const c_void,
22860 pub flags: ShaderModuleCreateFlags,
22861 pub code_size: usize,
22862 pub code: *const u32,
22863}
22864
22865impl Default for ShaderModuleCreateInfo {
22866 #[inline]
22867 fn default() -> Self {
22868 Self {
22869 s_type: StructureType::SHADER_MODULE_CREATE_INFO,
22870 next: ptr::null(),
22871 flags: ShaderModuleCreateFlags::default(),
22872 code_size: usize::default(),
22873 code: ptr::null(),
22874 }
22875 }
22876}
22877
22878#[repr(C)]
22880#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22881pub struct ShaderModuleIdentifierEXT {
22882 pub s_type: StructureType,
22883 pub next: *mut c_void,
22884 pub identifier_size: u32,
22885 pub identifier: ByteArray<MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT>,
22886}
22887
22888impl Default for ShaderModuleIdentifierEXT {
22889 #[inline]
22890 fn default() -> Self {
22891 Self {
22892 s_type: StructureType::SHADER_MODULE_IDENTIFIER_EXT,
22893 next: ptr::null_mut(),
22894 identifier_size: u32::default(),
22895 identifier: ByteArray::default(),
22896 }
22897 }
22898}
22899
22900#[repr(C)]
22902#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22903pub struct ShaderModuleValidationCacheCreateInfoEXT {
22904 pub s_type: StructureType,
22905 pub next: *const c_void,
22906 pub validation_cache: ValidationCacheEXT,
22907}
22908
22909impl Default for ShaderModuleValidationCacheCreateInfoEXT {
22910 #[inline]
22911 fn default() -> Self {
22912 Self {
22913 s_type: StructureType::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
22914 next: ptr::null(),
22915 validation_cache: ValidationCacheEXT::default(),
22916 }
22917 }
22918}
22919
22920#[repr(C)]
22922#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
22923pub struct ShaderResourceUsageAMD {
22924 pub num_used_vgprs: u32,
22925 pub num_used_sgprs: u32,
22926 pub lds_size_per_local_work_group: u32,
22927 pub lds_usage_size_in_bytes: usize,
22928 pub scratch_mem_usage_in_bytes: usize,
22929}
22930
22931#[repr(C)]
22933#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
22934pub struct ShaderStatisticsInfoAMD {
22935 pub shader_stage_mask: ShaderStageFlags,
22936 pub resource_usage: ShaderResourceUsageAMD,
22937 pub num_physical_vgprs: u32,
22938 pub num_physical_sgprs: u32,
22939 pub num_available_vgprs: u32,
22940 pub num_available_sgprs: u32,
22941 pub compute_work_group_size: [u32; 3],
22942}
22943
22944#[repr(C)]
22946#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22947pub struct ShadingRatePaletteNV {
22948 pub shading_rate_palette_entry_count: u32,
22949 pub shading_rate_palette_entries: *const ShadingRatePaletteEntryNV,
22950}
22951
22952impl Default for ShadingRatePaletteNV {
22953 #[inline]
22954 fn default() -> Self {
22955 Self {
22956 shading_rate_palette_entry_count: u32::default(),
22957 shading_rate_palette_entries: ptr::null(),
22958 }
22959 }
22960}
22961
22962#[repr(C)]
22964#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22965pub struct SharedPresentSurfaceCapabilitiesKHR {
22966 pub s_type: StructureType,
22967 pub next: *mut c_void,
22968 pub shared_present_supported_usage_flags: ImageUsageFlags,
22969}
22970
22971impl Default for SharedPresentSurfaceCapabilitiesKHR {
22972 #[inline]
22973 fn default() -> Self {
22974 Self {
22975 s_type: StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
22976 next: ptr::null_mut(),
22977 shared_present_supported_usage_flags: ImageUsageFlags::default(),
22978 }
22979 }
22980}
22981
22982#[repr(C)]
22984#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
22985pub struct SparseBufferMemoryBindInfo {
22986 pub buffer: Buffer,
22987 pub bind_count: u32,
22988 pub binds: *const SparseMemoryBind,
22989}
22990
22991impl Default for SparseBufferMemoryBindInfo {
22992 #[inline]
22993 fn default() -> Self {
22994 Self {
22995 buffer: Buffer::default(),
22996 bind_count: u32::default(),
22997 binds: ptr::null(),
22998 }
22999 }
23000}
23001
23002#[repr(C)]
23004#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23005pub struct SparseImageFormatProperties {
23006 pub aspect_mask: ImageAspectFlags,
23007 pub image_granularity: Extent3D,
23008 pub flags: SparseImageFormatFlags,
23009}
23010
23011#[repr(C)]
23013#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23014pub struct SparseImageFormatProperties2 {
23015 pub s_type: StructureType,
23016 pub next: *mut c_void,
23017 pub properties: SparseImageFormatProperties,
23018}
23019
23020impl Default for SparseImageFormatProperties2 {
23021 #[inline]
23022 fn default() -> Self {
23023 Self {
23024 s_type: StructureType::SPARSE_IMAGE_FORMAT_PROPERTIES_2,
23025 next: ptr::null_mut(),
23026 properties: SparseImageFormatProperties::default(),
23027 }
23028 }
23029}
23030
23031#[repr(C)]
23033#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23034pub struct SparseImageMemoryBind {
23035 pub subresource: ImageSubresource,
23036 pub offset: Offset3D,
23037 pub extent: Extent3D,
23038 pub memory: DeviceMemory,
23039 pub memory_offset: DeviceSize,
23040 pub flags: SparseMemoryBindFlags,
23041}
23042
23043#[repr(C)]
23045#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23046pub struct SparseImageMemoryBindInfo {
23047 pub image: Image,
23048 pub bind_count: u32,
23049 pub binds: *const SparseImageMemoryBind,
23050}
23051
23052impl Default for SparseImageMemoryBindInfo {
23053 #[inline]
23054 fn default() -> Self {
23055 Self {
23056 image: Image::default(),
23057 bind_count: u32::default(),
23058 binds: ptr::null(),
23059 }
23060 }
23061}
23062
23063#[repr(C)]
23065#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23066pub struct SparseImageMemoryRequirements {
23067 pub format_properties: SparseImageFormatProperties,
23068 pub image_mip_tail_first_lod: u32,
23069 pub image_mip_tail_size: DeviceSize,
23070 pub image_mip_tail_offset: DeviceSize,
23071 pub image_mip_tail_stride: DeviceSize,
23072}
23073
23074#[repr(C)]
23076#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23077pub struct SparseImageMemoryRequirements2 {
23078 pub s_type: StructureType,
23079 pub next: *mut c_void,
23080 pub memory_requirements: SparseImageMemoryRequirements,
23081}
23082
23083impl Default for SparseImageMemoryRequirements2 {
23084 #[inline]
23085 fn default() -> Self {
23086 Self {
23087 s_type: StructureType::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
23088 next: ptr::null_mut(),
23089 memory_requirements: SparseImageMemoryRequirements::default(),
23090 }
23091 }
23092}
23093
23094#[repr(C)]
23096#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23097pub struct SparseImageOpaqueMemoryBindInfo {
23098 pub image: Image,
23099 pub bind_count: u32,
23100 pub binds: *const SparseMemoryBind,
23101}
23102
23103impl Default for SparseImageOpaqueMemoryBindInfo {
23104 #[inline]
23105 fn default() -> Self {
23106 Self {
23107 image: Image::default(),
23108 bind_count: u32::default(),
23109 binds: ptr::null(),
23110 }
23111 }
23112}
23113
23114#[repr(C)]
23116#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23117pub struct SparseMemoryBind {
23118 pub resource_offset: DeviceSize,
23119 pub size: DeviceSize,
23120 pub memory: DeviceMemory,
23121 pub memory_offset: DeviceSize,
23122 pub flags: SparseMemoryBindFlags,
23123}
23124
23125#[repr(C)]
23127#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23128pub struct SpecializationInfo {
23129 pub map_entry_count: u32,
23130 pub map_entries: *const SpecializationMapEntry,
23131 pub data_size: usize,
23132 pub data: *const c_void,
23133}
23134
23135impl Default for SpecializationInfo {
23136 #[inline]
23137 fn default() -> Self {
23138 Self {
23139 map_entry_count: u32::default(),
23140 map_entries: ptr::null(),
23141 data_size: usize::default(),
23142 data: ptr::null(),
23143 }
23144 }
23145}
23146
23147#[repr(C)]
23149#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23150pub struct SpecializationMapEntry {
23151 pub constant_id: u32,
23152 pub offset: u32,
23153 pub size: usize,
23154}
23155
23156#[repr(C)]
23158#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23159pub struct StencilOpState {
23160 pub fail_op: StencilOp,
23161 pub pass_op: StencilOp,
23162 pub depth_fail_op: StencilOp,
23163 pub compare_op: CompareOp,
23164 pub compare_mask: u32,
23165 pub write_mask: u32,
23166 pub reference: u32,
23167}
23168
23169#[repr(C)]
23171#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23172pub struct StreamDescriptorSurfaceCreateInfoGGP {
23173 pub s_type: StructureType,
23174 pub next: *const c_void,
23175 pub flags: StreamDescriptorSurfaceCreateFlagsGGP,
23176 pub stream_descriptor: GgpStreamDescriptor,
23177}
23178
23179impl Default for StreamDescriptorSurfaceCreateInfoGGP {
23180 #[inline]
23181 fn default() -> Self {
23182 Self {
23183 s_type: StructureType::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
23184 next: ptr::null(),
23185 flags: StreamDescriptorSurfaceCreateFlagsGGP::default(),
23186 stream_descriptor: GgpStreamDescriptor::default(),
23187 }
23188 }
23189}
23190
23191#[repr(C)]
23193#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23194pub struct StridedDeviceAddressNV {
23195 pub start_address: DeviceAddress,
23196 pub stride_in_bytes: DeviceSize,
23197}
23198
23199#[repr(C)]
23201#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23202pub struct StridedDeviceAddressRegionKHR {
23203 pub device_address: DeviceAddress,
23204 pub stride: DeviceSize,
23205 pub size: DeviceSize,
23206}
23207
23208#[repr(C)]
23210#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23211pub struct SubmitInfo {
23212 pub s_type: StructureType,
23213 pub next: *const c_void,
23214 pub wait_semaphore_count: u32,
23215 pub wait_semaphores: *const Semaphore,
23216 pub wait_dst_stage_mask: *const PipelineStageFlags,
23217 pub command_buffer_count: u32,
23218 pub command_buffers: *const CommandBuffer,
23219 pub signal_semaphore_count: u32,
23220 pub signal_semaphores: *const Semaphore,
23221}
23222
23223impl Default for SubmitInfo {
23224 #[inline]
23225 fn default() -> Self {
23226 Self {
23227 s_type: StructureType::SUBMIT_INFO,
23228 next: ptr::null(),
23229 wait_semaphore_count: u32::default(),
23230 wait_semaphores: ptr::null(),
23231 wait_dst_stage_mask: ptr::null(),
23232 command_buffer_count: u32::default(),
23233 command_buffers: ptr::null(),
23234 signal_semaphore_count: u32::default(),
23235 signal_semaphores: ptr::null(),
23236 }
23237 }
23238}
23239
23240#[repr(C)]
23242#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23243pub struct SubmitInfo2 {
23244 pub s_type: StructureType,
23245 pub next: *const c_void,
23246 pub flags: SubmitFlags,
23247 pub wait_semaphore_info_count: u32,
23248 pub wait_semaphore_infos: *const SemaphoreSubmitInfo,
23249 pub command_buffer_info_count: u32,
23250 pub command_buffer_infos: *const CommandBufferSubmitInfo,
23251 pub signal_semaphore_info_count: u32,
23252 pub signal_semaphore_infos: *const SemaphoreSubmitInfo,
23253}
23254
23255impl Default for SubmitInfo2 {
23256 #[inline]
23257 fn default() -> Self {
23258 Self {
23259 s_type: StructureType::SUBMIT_INFO_2,
23260 next: ptr::null(),
23261 flags: SubmitFlags::default(),
23262 wait_semaphore_info_count: u32::default(),
23263 wait_semaphore_infos: ptr::null(),
23264 command_buffer_info_count: u32::default(),
23265 command_buffer_infos: ptr::null(),
23266 signal_semaphore_info_count: u32::default(),
23267 signal_semaphore_infos: ptr::null(),
23268 }
23269 }
23270}
23271
23272#[repr(C)]
23274#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23275pub struct SubpassBeginInfo {
23276 pub s_type: StructureType,
23277 pub next: *const c_void,
23278 pub contents: SubpassContents,
23279}
23280
23281impl Default for SubpassBeginInfo {
23282 #[inline]
23283 fn default() -> Self {
23284 Self {
23285 s_type: StructureType::SUBPASS_BEGIN_INFO,
23286 next: ptr::null(),
23287 contents: SubpassContents::default(),
23288 }
23289 }
23290}
23291
23292#[repr(C)]
23294#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23295pub struct SubpassDependency {
23296 pub src_subpass: u32,
23297 pub dst_subpass: u32,
23298 pub src_stage_mask: PipelineStageFlags,
23299 pub dst_stage_mask: PipelineStageFlags,
23300 pub src_access_mask: AccessFlags,
23301 pub dst_access_mask: AccessFlags,
23302 pub dependency_flags: DependencyFlags,
23303}
23304
23305#[repr(C)]
23307#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23308pub struct SubpassDependency2 {
23309 pub s_type: StructureType,
23310 pub next: *const c_void,
23311 pub src_subpass: u32,
23312 pub dst_subpass: u32,
23313 pub src_stage_mask: PipelineStageFlags,
23314 pub dst_stage_mask: PipelineStageFlags,
23315 pub src_access_mask: AccessFlags,
23316 pub dst_access_mask: AccessFlags,
23317 pub dependency_flags: DependencyFlags,
23318 pub view_offset: i32,
23319}
23320
23321impl Default for SubpassDependency2 {
23322 #[inline]
23323 fn default() -> Self {
23324 Self {
23325 s_type: StructureType::SUBPASS_DEPENDENCY_2,
23326 next: ptr::null(),
23327 src_subpass: u32::default(),
23328 dst_subpass: u32::default(),
23329 src_stage_mask: PipelineStageFlags::default(),
23330 dst_stage_mask: PipelineStageFlags::default(),
23331 src_access_mask: AccessFlags::default(),
23332 dst_access_mask: AccessFlags::default(),
23333 dependency_flags: DependencyFlags::default(),
23334 view_offset: i32::default(),
23335 }
23336 }
23337}
23338
23339#[repr(C)]
23341#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23342pub struct SubpassDescription {
23343 pub flags: SubpassDescriptionFlags,
23344 pub pipeline_bind_point: PipelineBindPoint,
23345 pub input_attachment_count: u32,
23346 pub input_attachments: *const AttachmentReference,
23347 pub color_attachment_count: u32,
23348 pub color_attachments: *const AttachmentReference,
23349 pub resolve_attachments: *const AttachmentReference,
23350 pub depth_stencil_attachment: *const AttachmentReference,
23351 pub preserve_attachment_count: u32,
23352 pub preserve_attachments: *const u32,
23353}
23354
23355impl Default for SubpassDescription {
23356 #[inline]
23357 fn default() -> Self {
23358 Self {
23359 flags: SubpassDescriptionFlags::default(),
23360 pipeline_bind_point: PipelineBindPoint::default(),
23361 input_attachment_count: u32::default(),
23362 input_attachments: ptr::null(),
23363 color_attachment_count: u32::default(),
23364 color_attachments: ptr::null(),
23365 resolve_attachments: ptr::null(),
23366 depth_stencil_attachment: ptr::null(),
23367 preserve_attachment_count: u32::default(),
23368 preserve_attachments: ptr::null(),
23369 }
23370 }
23371}
23372
23373#[repr(C)]
23375#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23376pub struct SubpassDescription2 {
23377 pub s_type: StructureType,
23378 pub next: *const c_void,
23379 pub flags: SubpassDescriptionFlags,
23380 pub pipeline_bind_point: PipelineBindPoint,
23381 pub view_mask: u32,
23382 pub input_attachment_count: u32,
23383 pub input_attachments: *const AttachmentReference2,
23384 pub color_attachment_count: u32,
23385 pub color_attachments: *const AttachmentReference2,
23386 pub resolve_attachments: *const AttachmentReference2,
23387 pub depth_stencil_attachment: *const AttachmentReference2,
23388 pub preserve_attachment_count: u32,
23389 pub preserve_attachments: *const u32,
23390}
23391
23392impl Default for SubpassDescription2 {
23393 #[inline]
23394 fn default() -> Self {
23395 Self {
23396 s_type: StructureType::SUBPASS_DESCRIPTION_2,
23397 next: ptr::null(),
23398 flags: SubpassDescriptionFlags::default(),
23399 pipeline_bind_point: PipelineBindPoint::default(),
23400 view_mask: u32::default(),
23401 input_attachment_count: u32::default(),
23402 input_attachments: ptr::null(),
23403 color_attachment_count: u32::default(),
23404 color_attachments: ptr::null(),
23405 resolve_attachments: ptr::null(),
23406 depth_stencil_attachment: ptr::null(),
23407 preserve_attachment_count: u32::default(),
23408 preserve_attachments: ptr::null(),
23409 }
23410 }
23411}
23412
23413#[repr(C)]
23415#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23416pub struct SubpassDescriptionDepthStencilResolve {
23417 pub s_type: StructureType,
23418 pub next: *const c_void,
23419 pub depth_resolve_mode: ResolveModeFlags,
23420 pub stencil_resolve_mode: ResolveModeFlags,
23421 pub depth_stencil_resolve_attachment: *const AttachmentReference2,
23422}
23423
23424impl Default for SubpassDescriptionDepthStencilResolve {
23425 #[inline]
23426 fn default() -> Self {
23427 Self {
23428 s_type: StructureType::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
23429 next: ptr::null(),
23430 depth_resolve_mode: ResolveModeFlags::default(),
23431 stencil_resolve_mode: ResolveModeFlags::default(),
23432 depth_stencil_resolve_attachment: ptr::null(),
23433 }
23434 }
23435}
23436
23437#[repr(C)]
23439#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23440pub struct SubpassEndInfo {
23441 pub s_type: StructureType,
23442 pub next: *const c_void,
23443}
23444
23445impl Default for SubpassEndInfo {
23446 #[inline]
23447 fn default() -> Self {
23448 Self {
23449 s_type: StructureType::SUBPASS_END_INFO,
23450 next: ptr::null(),
23451 }
23452 }
23453}
23454
23455#[repr(C)]
23457#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23458pub struct SubpassFragmentDensityMapOffsetEndInfoQCOM {
23459 pub s_type: StructureType,
23460 pub next: *const c_void,
23461 pub fragment_density_offset_count: u32,
23462 pub fragment_density_offsets: *const Offset2D,
23463}
23464
23465impl Default for SubpassFragmentDensityMapOffsetEndInfoQCOM {
23466 #[inline]
23467 fn default() -> Self {
23468 Self {
23469 s_type: StructureType::SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM,
23470 next: ptr::null(),
23471 fragment_density_offset_count: u32::default(),
23472 fragment_density_offsets: ptr::null(),
23473 }
23474 }
23475}
23476
23477#[repr(C)]
23479#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23480pub struct SubpassResolvePerformanceQueryEXT {
23481 pub s_type: StructureType,
23482 pub next: *mut c_void,
23483 pub optimal: Bool32,
23484}
23485
23486impl Default for SubpassResolvePerformanceQueryEXT {
23487 #[inline]
23488 fn default() -> Self {
23489 Self {
23490 s_type: StructureType::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT,
23491 next: ptr::null_mut(),
23492 optimal: Bool32::default(),
23493 }
23494 }
23495}
23496
23497#[repr(C)]
23499#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23500pub struct SubpassSampleLocationsEXT {
23501 pub subpass_index: u32,
23502 pub sample_locations_info: SampleLocationsInfoEXT,
23503}
23504
23505#[repr(C)]
23507#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23508pub struct SubpassShadingPipelineCreateInfoHUAWEI {
23509 pub s_type: StructureType,
23510 pub next: *mut c_void,
23511 pub render_pass: RenderPass,
23512 pub subpass: u32,
23513}
23514
23515impl Default for SubpassShadingPipelineCreateInfoHUAWEI {
23516 #[inline]
23517 fn default() -> Self {
23518 Self {
23519 s_type: StructureType::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
23520 next: ptr::null_mut(),
23521 render_pass: RenderPass::default(),
23522 subpass: u32::default(),
23523 }
23524 }
23525}
23526
23527#[repr(C)]
23529#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23530pub struct SubresourceHostMemcpySize {
23531 pub s_type: StructureType,
23532 pub next: *mut c_void,
23533 pub size: DeviceSize,
23534}
23535
23536impl Default for SubresourceHostMemcpySize {
23537 #[inline]
23538 fn default() -> Self {
23539 Self {
23540 s_type: StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE,
23541 next: ptr::null_mut(),
23542 size: DeviceSize::default(),
23543 }
23544 }
23545}
23546
23547#[repr(C)]
23549#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23550pub struct SubresourceLayout {
23551 pub offset: DeviceSize,
23552 pub size: DeviceSize,
23553 pub row_pitch: DeviceSize,
23554 pub array_pitch: DeviceSize,
23555 pub depth_pitch: DeviceSize,
23556}
23557
23558#[repr(C)]
23560#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23561pub struct SubresourceLayout2 {
23562 pub s_type: StructureType,
23563 pub next: *mut c_void,
23564 pub subresource_layout: SubresourceLayout,
23565}
23566
23567impl Default for SubresourceLayout2 {
23568 #[inline]
23569 fn default() -> Self {
23570 Self {
23571 s_type: StructureType::SUBRESOURCE_LAYOUT_2,
23572 next: ptr::null_mut(),
23573 subresource_layout: SubresourceLayout::default(),
23574 }
23575 }
23576}
23577
23578#[repr(C)]
23580#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23581pub struct SurfaceCapabilities2EXT {
23582 pub s_type: StructureType,
23583 pub next: *mut c_void,
23584 pub min_image_count: u32,
23585 pub max_image_count: u32,
23586 pub current_extent: Extent2D,
23587 pub min_image_extent: Extent2D,
23588 pub max_image_extent: Extent2D,
23589 pub max_image_array_layers: u32,
23590 pub supported_transforms: SurfaceTransformFlagsKHR,
23591 pub current_transform: SurfaceTransformFlagsKHR,
23592 pub supported_composite_alpha: CompositeAlphaFlagsKHR,
23593 pub supported_usage_flags: ImageUsageFlags,
23594 pub supported_surface_counters: SurfaceCounterFlagsEXT,
23595}
23596
23597impl Default for SurfaceCapabilities2EXT {
23598 #[inline]
23599 fn default() -> Self {
23600 Self {
23601 s_type: StructureType::SURFACE_CAPABILITIES_2_EXT,
23602 next: ptr::null_mut(),
23603 min_image_count: u32::default(),
23604 max_image_count: u32::default(),
23605 current_extent: Extent2D::default(),
23606 min_image_extent: Extent2D::default(),
23607 max_image_extent: Extent2D::default(),
23608 max_image_array_layers: u32::default(),
23609 supported_transforms: SurfaceTransformFlagsKHR::default(),
23610 current_transform: SurfaceTransformFlagsKHR::default(),
23611 supported_composite_alpha: CompositeAlphaFlagsKHR::default(),
23612 supported_usage_flags: ImageUsageFlags::default(),
23613 supported_surface_counters: SurfaceCounterFlagsEXT::default(),
23614 }
23615 }
23616}
23617
23618#[repr(C)]
23620#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23621pub struct SurfaceCapabilities2KHR {
23622 pub s_type: StructureType,
23623 pub next: *mut c_void,
23624 pub surface_capabilities: SurfaceCapabilitiesKHR,
23625}
23626
23627impl Default for SurfaceCapabilities2KHR {
23628 #[inline]
23629 fn default() -> Self {
23630 Self {
23631 s_type: StructureType::SURFACE_CAPABILITIES_2_KHR,
23632 next: ptr::null_mut(),
23633 surface_capabilities: SurfaceCapabilitiesKHR::default(),
23634 }
23635 }
23636}
23637
23638#[repr(C)]
23640#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23641pub struct SurfaceCapabilitiesFullScreenExclusiveEXT {
23642 pub s_type: StructureType,
23643 pub next: *mut c_void,
23644 pub full_screen_exclusive_supported: Bool32,
23645}
23646
23647impl Default for SurfaceCapabilitiesFullScreenExclusiveEXT {
23648 #[inline]
23649 fn default() -> Self {
23650 Self {
23651 s_type: StructureType::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
23652 next: ptr::null_mut(),
23653 full_screen_exclusive_supported: Bool32::default(),
23654 }
23655 }
23656}
23657
23658#[repr(C)]
23660#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23661pub struct SurfaceCapabilitiesKHR {
23662 pub min_image_count: u32,
23663 pub max_image_count: u32,
23664 pub current_extent: Extent2D,
23665 pub min_image_extent: Extent2D,
23666 pub max_image_extent: Extent2D,
23667 pub max_image_array_layers: u32,
23668 pub supported_transforms: SurfaceTransformFlagsKHR,
23669 pub current_transform: SurfaceTransformFlagsKHR,
23670 pub supported_composite_alpha: CompositeAlphaFlagsKHR,
23671 pub supported_usage_flags: ImageUsageFlags,
23672}
23673
23674#[repr(C)]
23676#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23677pub struct SurfaceCapabilitiesPresentBarrierNV {
23678 pub s_type: StructureType,
23679 pub next: *mut c_void,
23680 pub present_barrier_supported: Bool32,
23681}
23682
23683impl Default for SurfaceCapabilitiesPresentBarrierNV {
23684 #[inline]
23685 fn default() -> Self {
23686 Self {
23687 s_type: StructureType::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV,
23688 next: ptr::null_mut(),
23689 present_barrier_supported: Bool32::default(),
23690 }
23691 }
23692}
23693
23694#[repr(C)]
23696#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23697pub struct SurfaceFormat2KHR {
23698 pub s_type: StructureType,
23699 pub next: *mut c_void,
23700 pub surface_format: SurfaceFormatKHR,
23701}
23702
23703impl Default for SurfaceFormat2KHR {
23704 #[inline]
23705 fn default() -> Self {
23706 Self {
23707 s_type: StructureType::SURFACE_FORMAT_2_KHR,
23708 next: ptr::null_mut(),
23709 surface_format: SurfaceFormatKHR::default(),
23710 }
23711 }
23712}
23713
23714#[repr(C)]
23716#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
23717pub struct SurfaceFormatKHR {
23718 pub format: Format,
23719 pub color_space: ColorSpaceKHR,
23720}
23721
23722#[repr(C)]
23724#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23725pub struct SurfaceFullScreenExclusiveInfoEXT {
23726 pub s_type: StructureType,
23727 pub next: *mut c_void,
23728 pub full_screen_exclusive: FullScreenExclusiveEXT,
23729}
23730
23731impl Default for SurfaceFullScreenExclusiveInfoEXT {
23732 #[inline]
23733 fn default() -> Self {
23734 Self {
23735 s_type: StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
23736 next: ptr::null_mut(),
23737 full_screen_exclusive: FullScreenExclusiveEXT::default(),
23738 }
23739 }
23740}
23741
23742#[repr(C)]
23744#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23745pub struct SurfaceFullScreenExclusiveWin32InfoEXT {
23746 pub s_type: StructureType,
23747 pub next: *const c_void,
23748 pub hmonitor: HMONITOR,
23749}
23750
23751impl Default for SurfaceFullScreenExclusiveWin32InfoEXT {
23752 #[inline]
23753 fn default() -> Self {
23754 Self {
23755 s_type: StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
23756 next: ptr::null(),
23757 hmonitor: ptr::null_mut(),
23758 }
23759 }
23760}
23761
23762#[repr(C)]
23764#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23765pub struct SurfacePresentModeCompatibilityEXT {
23766 pub s_type: StructureType,
23767 pub next: *mut c_void,
23768 pub present_mode_count: u32,
23769 pub present_modes: *mut PresentModeKHR,
23770}
23771
23772impl Default for SurfacePresentModeCompatibilityEXT {
23773 #[inline]
23774 fn default() -> Self {
23775 Self {
23776 s_type: StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_EXT,
23777 next: ptr::null_mut(),
23778 present_mode_count: u32::default(),
23779 present_modes: ptr::null_mut(),
23780 }
23781 }
23782}
23783
23784#[repr(C)]
23786#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23787pub struct SurfacePresentModeEXT {
23788 pub s_type: StructureType,
23789 pub next: *mut c_void,
23790 pub present_mode: PresentModeKHR,
23791}
23792
23793impl Default for SurfacePresentModeEXT {
23794 #[inline]
23795 fn default() -> Self {
23796 Self {
23797 s_type: StructureType::SURFACE_PRESENT_MODE_EXT,
23798 next: ptr::null_mut(),
23799 present_mode: PresentModeKHR::default(),
23800 }
23801 }
23802}
23803
23804#[repr(C)]
23806#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23807pub struct SurfacePresentScalingCapabilitiesEXT {
23808 pub s_type: StructureType,
23809 pub next: *mut c_void,
23810 pub supported_present_scaling: PresentScalingFlagsEXT,
23811 pub supported_present_gravity_x: PresentGravityFlagsEXT,
23812 pub supported_present_gravity_y: PresentGravityFlagsEXT,
23813 pub min_scaled_image_extent: Extent2D,
23814 pub max_scaled_image_extent: Extent2D,
23815}
23816
23817impl Default for SurfacePresentScalingCapabilitiesEXT {
23818 #[inline]
23819 fn default() -> Self {
23820 Self {
23821 s_type: StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_EXT,
23822 next: ptr::null_mut(),
23823 supported_present_scaling: PresentScalingFlagsEXT::default(),
23824 supported_present_gravity_x: PresentGravityFlagsEXT::default(),
23825 supported_present_gravity_y: PresentGravityFlagsEXT::default(),
23826 min_scaled_image_extent: Extent2D::default(),
23827 max_scaled_image_extent: Extent2D::default(),
23828 }
23829 }
23830}
23831
23832#[repr(C)]
23834#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23835pub struct SurfaceProtectedCapabilitiesKHR {
23836 pub s_type: StructureType,
23837 pub next: *const c_void,
23838 pub supports_protected: Bool32,
23839}
23840
23841impl Default for SurfaceProtectedCapabilitiesKHR {
23842 #[inline]
23843 fn default() -> Self {
23844 Self {
23845 s_type: StructureType::SURFACE_PROTECTED_CAPABILITIES_KHR,
23846 next: ptr::null(),
23847 supports_protected: Bool32::default(),
23848 }
23849 }
23850}
23851
23852#[repr(C)]
23854#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23855pub struct SwapchainCounterCreateInfoEXT {
23856 pub s_type: StructureType,
23857 pub next: *const c_void,
23858 pub surface_counters: SurfaceCounterFlagsEXT,
23859}
23860
23861impl Default for SwapchainCounterCreateInfoEXT {
23862 #[inline]
23863 fn default() -> Self {
23864 Self {
23865 s_type: StructureType::SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
23866 next: ptr::null(),
23867 surface_counters: SurfaceCounterFlagsEXT::default(),
23868 }
23869 }
23870}
23871
23872#[repr(C)]
23874#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23875pub struct SwapchainCreateInfoKHR {
23876 pub s_type: StructureType,
23877 pub next: *const c_void,
23878 pub flags: SwapchainCreateFlagsKHR,
23879 pub surface: SurfaceKHR,
23880 pub min_image_count: u32,
23881 pub image_format: Format,
23882 pub image_color_space: ColorSpaceKHR,
23883 pub image_extent: Extent2D,
23884 pub image_array_layers: u32,
23885 pub image_usage: ImageUsageFlags,
23886 pub image_sharing_mode: SharingMode,
23887 pub queue_family_index_count: u32,
23888 pub queue_family_indices: *const u32,
23889 pub pre_transform: SurfaceTransformFlagsKHR,
23890 pub composite_alpha: CompositeAlphaFlagsKHR,
23891 pub present_mode: PresentModeKHR,
23892 pub clipped: Bool32,
23893 pub old_swapchain: SwapchainKHR,
23894}
23895
23896impl Default for SwapchainCreateInfoKHR {
23897 #[inline]
23898 fn default() -> Self {
23899 Self {
23900 s_type: StructureType::SWAPCHAIN_CREATE_INFO_KHR,
23901 next: ptr::null(),
23902 flags: SwapchainCreateFlagsKHR::default(),
23903 surface: SurfaceKHR::default(),
23904 min_image_count: u32::default(),
23905 image_format: Format::default(),
23906 image_color_space: ColorSpaceKHR::default(),
23907 image_extent: Extent2D::default(),
23908 image_array_layers: u32::default(),
23909 image_usage: ImageUsageFlags::default(),
23910 image_sharing_mode: SharingMode::default(),
23911 queue_family_index_count: u32::default(),
23912 queue_family_indices: ptr::null(),
23913 pre_transform: SurfaceTransformFlagsKHR::default(),
23914 composite_alpha: CompositeAlphaFlagsKHR::default(),
23915 present_mode: PresentModeKHR::default(),
23916 clipped: Bool32::default(),
23917 old_swapchain: SwapchainKHR::default(),
23918 }
23919 }
23920}
23921
23922#[repr(C)]
23924#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23925pub struct SwapchainDisplayNativeHdrCreateInfoAMD {
23926 pub s_type: StructureType,
23927 pub next: *const c_void,
23928 pub local_dimming_enable: Bool32,
23929}
23930
23931impl Default for SwapchainDisplayNativeHdrCreateInfoAMD {
23932 #[inline]
23933 fn default() -> Self {
23934 Self {
23935 s_type: StructureType::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
23936 next: ptr::null(),
23937 local_dimming_enable: Bool32::default(),
23938 }
23939 }
23940}
23941
23942#[repr(C)]
23944#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23945pub struct SwapchainLatencyCreateInfoNV {
23946 pub s_type: StructureType,
23947 pub next: *const c_void,
23948 pub latency_mode_enable: Bool32,
23949}
23950
23951impl Default for SwapchainLatencyCreateInfoNV {
23952 #[inline]
23953 fn default() -> Self {
23954 Self {
23955 s_type: StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV,
23956 next: ptr::null(),
23957 latency_mode_enable: Bool32::default(),
23958 }
23959 }
23960}
23961
23962#[repr(C)]
23964#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23965pub struct SwapchainPresentBarrierCreateInfoNV {
23966 pub s_type: StructureType,
23967 pub next: *mut c_void,
23968 pub present_barrier_enable: Bool32,
23969}
23970
23971impl Default for SwapchainPresentBarrierCreateInfoNV {
23972 #[inline]
23973 fn default() -> Self {
23974 Self {
23975 s_type: StructureType::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV,
23976 next: ptr::null_mut(),
23977 present_barrier_enable: Bool32::default(),
23978 }
23979 }
23980}
23981
23982#[repr(C)]
23984#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
23985pub struct SwapchainPresentFenceInfoEXT {
23986 pub s_type: StructureType,
23987 pub next: *const c_void,
23988 pub swapchain_count: u32,
23989 pub fences: *const Fence,
23990}
23991
23992impl Default for SwapchainPresentFenceInfoEXT {
23993 #[inline]
23994 fn default() -> Self {
23995 Self {
23996 s_type: StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_EXT,
23997 next: ptr::null(),
23998 swapchain_count: u32::default(),
23999 fences: ptr::null(),
24000 }
24001 }
24002}
24003
24004#[repr(C)]
24006#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24007pub struct SwapchainPresentModeInfoEXT {
24008 pub s_type: StructureType,
24009 pub next: *const c_void,
24010 pub swapchain_count: u32,
24011 pub present_modes: *const PresentModeKHR,
24012}
24013
24014impl Default for SwapchainPresentModeInfoEXT {
24015 #[inline]
24016 fn default() -> Self {
24017 Self {
24018 s_type: StructureType::SWAPCHAIN_PRESENT_MODE_INFO_EXT,
24019 next: ptr::null(),
24020 swapchain_count: u32::default(),
24021 present_modes: ptr::null(),
24022 }
24023 }
24024}
24025
24026#[repr(C)]
24028#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24029pub struct SwapchainPresentModesCreateInfoEXT {
24030 pub s_type: StructureType,
24031 pub next: *const c_void,
24032 pub present_mode_count: u32,
24033 pub present_modes: *const PresentModeKHR,
24034}
24035
24036impl Default for SwapchainPresentModesCreateInfoEXT {
24037 #[inline]
24038 fn default() -> Self {
24039 Self {
24040 s_type: StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT,
24041 next: ptr::null(),
24042 present_mode_count: u32::default(),
24043 present_modes: ptr::null(),
24044 }
24045 }
24046}
24047
24048#[repr(C)]
24050#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24051pub struct SwapchainPresentScalingCreateInfoEXT {
24052 pub s_type: StructureType,
24053 pub next: *const c_void,
24054 pub scaling_behavior: PresentScalingFlagsEXT,
24055 pub present_gravity_x: PresentGravityFlagsEXT,
24056 pub present_gravity_y: PresentGravityFlagsEXT,
24057}
24058
24059impl Default for SwapchainPresentScalingCreateInfoEXT {
24060 #[inline]
24061 fn default() -> Self {
24062 Self {
24063 s_type: StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT,
24064 next: ptr::null(),
24065 scaling_behavior: PresentScalingFlagsEXT::default(),
24066 present_gravity_x: PresentGravityFlagsEXT::default(),
24067 present_gravity_y: PresentGravityFlagsEXT::default(),
24068 }
24069 }
24070}
24071
24072#[repr(C)]
24074#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24075pub struct SysmemColorSpaceFUCHSIA {
24076 pub s_type: StructureType,
24077 pub next: *const c_void,
24078 pub color_space: u32,
24079}
24080
24081impl Default for SysmemColorSpaceFUCHSIA {
24082 #[inline]
24083 fn default() -> Self {
24084 Self {
24085 s_type: StructureType::SYSMEM_COLOR_SPACE_FUCHSIA,
24086 next: ptr::null(),
24087 color_space: u32::default(),
24088 }
24089 }
24090}
24091
24092#[repr(C)]
24094#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24095pub struct TextureLODGatherFormatPropertiesAMD {
24096 pub s_type: StructureType,
24097 pub next: *mut c_void,
24098 pub supports_texture_gather_lod_bias_amd: Bool32,
24099}
24100
24101impl Default for TextureLODGatherFormatPropertiesAMD {
24102 #[inline]
24103 fn default() -> Self {
24104 Self {
24105 s_type: StructureType::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
24106 next: ptr::null_mut(),
24107 supports_texture_gather_lod_bias_amd: Bool32::default(),
24108 }
24109 }
24110}
24111
24112#[repr(C)]
24114#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24115pub struct TilePropertiesQCOM {
24116 pub s_type: StructureType,
24117 pub next: *mut c_void,
24118 pub tile_size: Extent3D,
24119 pub apron_size: Extent2D,
24120 pub origin: Offset2D,
24121}
24122
24123impl Default for TilePropertiesQCOM {
24124 #[inline]
24125 fn default() -> Self {
24126 Self {
24127 s_type: StructureType::TILE_PROPERTIES_QCOM,
24128 next: ptr::null_mut(),
24129 tile_size: Extent3D::default(),
24130 apron_size: Extent2D::default(),
24131 origin: Offset2D::default(),
24132 }
24133 }
24134}
24135
24136#[repr(C)]
24138#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24139pub struct TimelineSemaphoreSubmitInfo {
24140 pub s_type: StructureType,
24141 pub next: *const c_void,
24142 pub wait_semaphore_value_count: u32,
24143 pub wait_semaphore_values: *const u64,
24144 pub signal_semaphore_value_count: u32,
24145 pub signal_semaphore_values: *const u64,
24146}
24147
24148impl Default for TimelineSemaphoreSubmitInfo {
24149 #[inline]
24150 fn default() -> Self {
24151 Self {
24152 s_type: StructureType::TIMELINE_SEMAPHORE_SUBMIT_INFO,
24153 next: ptr::null(),
24154 wait_semaphore_value_count: u32::default(),
24155 wait_semaphore_values: ptr::null(),
24156 signal_semaphore_value_count: u32::default(),
24157 signal_semaphore_values: ptr::null(),
24158 }
24159 }
24160}
24161
24162#[repr(C)]
24164#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
24165pub struct TraceRaysIndirectCommand2KHR {
24166 pub raygen_shader_record_address: DeviceAddress,
24167 pub raygen_shader_record_size: DeviceSize,
24168 pub miss_shader_binding_table_address: DeviceAddress,
24169 pub miss_shader_binding_table_size: DeviceSize,
24170 pub miss_shader_binding_table_stride: DeviceSize,
24171 pub hit_shader_binding_table_address: DeviceAddress,
24172 pub hit_shader_binding_table_size: DeviceSize,
24173 pub hit_shader_binding_table_stride: DeviceSize,
24174 pub callable_shader_binding_table_address: DeviceAddress,
24175 pub callable_shader_binding_table_size: DeviceSize,
24176 pub callable_shader_binding_table_stride: DeviceSize,
24177 pub width: u32,
24178 pub height: u32,
24179 pub depth: u32,
24180}
24181
24182#[repr(C)]
24184#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
24185pub struct TraceRaysIndirectCommandKHR {
24186 pub width: u32,
24187 pub height: u32,
24188 pub depth: u32,
24189}
24190
24191#[repr(C)]
24193#[derive(Copy, Clone, Default, Debug, PartialEq)]
24194pub struct TransformMatrixKHR {
24195 pub matrix: [[f32; 4]; 3],
24196}
24197
24198#[repr(C)]
24200#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24201pub struct ValidationCacheCreateInfoEXT {
24202 pub s_type: StructureType,
24203 pub next: *const c_void,
24204 pub flags: ValidationCacheCreateFlagsEXT,
24205 pub initial_data_size: usize,
24206 pub initial_data: *const c_void,
24207}
24208
24209impl Default for ValidationCacheCreateInfoEXT {
24210 #[inline]
24211 fn default() -> Self {
24212 Self {
24213 s_type: StructureType::VALIDATION_CACHE_CREATE_INFO_EXT,
24214 next: ptr::null(),
24215 flags: ValidationCacheCreateFlagsEXT::default(),
24216 initial_data_size: usize::default(),
24217 initial_data: ptr::null(),
24218 }
24219 }
24220}
24221
24222#[repr(C)]
24224#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24225pub struct ValidationFeaturesEXT {
24226 pub s_type: StructureType,
24227 pub next: *const c_void,
24228 pub enabled_validation_feature_count: u32,
24229 pub enabled_validation_features: *const ValidationFeatureEnableEXT,
24230 pub disabled_validation_feature_count: u32,
24231 pub disabled_validation_features: *const ValidationFeatureDisableEXT,
24232}
24233
24234impl Default for ValidationFeaturesEXT {
24235 #[inline]
24236 fn default() -> Self {
24237 Self {
24238 s_type: StructureType::VALIDATION_FEATURES_EXT,
24239 next: ptr::null(),
24240 enabled_validation_feature_count: u32::default(),
24241 enabled_validation_features: ptr::null(),
24242 disabled_validation_feature_count: u32::default(),
24243 disabled_validation_features: ptr::null(),
24244 }
24245 }
24246}
24247
24248#[repr(C)]
24250#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24251pub struct ValidationFlagsEXT {
24252 pub s_type: StructureType,
24253 pub next: *const c_void,
24254 pub disabled_validation_check_count: u32,
24255 pub disabled_validation_checks: *const ValidationCheckEXT,
24256}
24257
24258impl Default for ValidationFlagsEXT {
24259 #[inline]
24260 fn default() -> Self {
24261 Self {
24262 s_type: StructureType::VALIDATION_FLAGS_EXT,
24263 next: ptr::null(),
24264 disabled_validation_check_count: u32::default(),
24265 disabled_validation_checks: ptr::null(),
24266 }
24267 }
24268}
24269
24270#[repr(C)]
24272#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
24273pub struct VertexInputAttributeDescription {
24274 pub location: u32,
24275 pub binding: u32,
24276 pub format: Format,
24277 pub offset: u32,
24278}
24279
24280#[repr(C)]
24282#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24283pub struct VertexInputAttributeDescription2EXT {
24284 pub s_type: StructureType,
24285 pub next: *mut c_void,
24286 pub location: u32,
24287 pub binding: u32,
24288 pub format: Format,
24289 pub offset: u32,
24290}
24291
24292impl Default for VertexInputAttributeDescription2EXT {
24293 #[inline]
24294 fn default() -> Self {
24295 Self {
24296 s_type: StructureType::VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
24297 next: ptr::null_mut(),
24298 location: u32::default(),
24299 binding: u32::default(),
24300 format: Format::default(),
24301 offset: u32::default(),
24302 }
24303 }
24304}
24305
24306#[repr(C)]
24308#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
24309pub struct VertexInputBindingDescription {
24310 pub binding: u32,
24311 pub stride: u32,
24312 pub input_rate: VertexInputRate,
24313}
24314
24315#[repr(C)]
24317#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24318pub struct VertexInputBindingDescription2EXT {
24319 pub s_type: StructureType,
24320 pub next: *mut c_void,
24321 pub binding: u32,
24322 pub stride: u32,
24323 pub input_rate: VertexInputRate,
24324 pub divisor: u32,
24325}
24326
24327impl Default for VertexInputBindingDescription2EXT {
24328 #[inline]
24329 fn default() -> Self {
24330 Self {
24331 s_type: StructureType::VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
24332 next: ptr::null_mut(),
24333 binding: u32::default(),
24334 stride: u32::default(),
24335 input_rate: VertexInputRate::default(),
24336 divisor: u32::default(),
24337 }
24338 }
24339}
24340
24341#[repr(C)]
24343#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
24344pub struct VertexInputBindingDivisorDescription {
24345 pub binding: u32,
24346 pub divisor: u32,
24347}
24348
24349#[repr(C)]
24351#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24352pub struct ViSurfaceCreateInfoNN {
24353 pub s_type: StructureType,
24354 pub next: *const c_void,
24355 pub flags: ViSurfaceCreateFlagsNN,
24356 pub window: *mut c_void,
24357}
24358
24359impl Default for ViSurfaceCreateInfoNN {
24360 #[inline]
24361 fn default() -> Self {
24362 Self {
24363 s_type: StructureType::VI_SURFACE_CREATE_INFO_NN,
24364 next: ptr::null(),
24365 flags: ViSurfaceCreateFlagsNN::default(),
24366 window: ptr::null_mut(),
24367 }
24368 }
24369}
24370
24371#[repr(C)]
24373#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24374pub struct VideoBeginCodingInfoKHR {
24375 pub s_type: StructureType,
24376 pub next: *const c_void,
24377 pub flags: VideoBeginCodingFlagsKHR,
24378 pub video_session: VideoSessionKHR,
24379 pub video_session_parameters: VideoSessionParametersKHR,
24380 pub reference_slot_count: u32,
24381 pub reference_slots: *const VideoReferenceSlotInfoKHR,
24382}
24383
24384impl Default for VideoBeginCodingInfoKHR {
24385 #[inline]
24386 fn default() -> Self {
24387 Self {
24388 s_type: StructureType::VIDEO_BEGIN_CODING_INFO_KHR,
24389 next: ptr::null(),
24390 flags: VideoBeginCodingFlagsKHR::default(),
24391 video_session: VideoSessionKHR::default(),
24392 video_session_parameters: VideoSessionParametersKHR::default(),
24393 reference_slot_count: u32::default(),
24394 reference_slots: ptr::null(),
24395 }
24396 }
24397}
24398
24399#[repr(C)]
24401#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24402pub struct VideoCapabilitiesKHR {
24403 pub s_type: StructureType,
24404 pub next: *mut c_void,
24405 pub flags: VideoCapabilityFlagsKHR,
24406 pub min_bitstream_buffer_offset_alignment: DeviceSize,
24407 pub min_bitstream_buffer_size_alignment: DeviceSize,
24408 pub picture_access_granularity: Extent2D,
24409 pub min_coded_extent: Extent2D,
24410 pub max_coded_extent: Extent2D,
24411 pub max_dpb_slots: u32,
24412 pub max_active_reference_pictures: u32,
24413 pub std_header_version: ExtensionProperties,
24414}
24415
24416impl Default for VideoCapabilitiesKHR {
24417 #[inline]
24418 fn default() -> Self {
24419 Self {
24420 s_type: StructureType::VIDEO_CAPABILITIES_KHR,
24421 next: ptr::null_mut(),
24422 flags: VideoCapabilityFlagsKHR::default(),
24423 min_bitstream_buffer_offset_alignment: DeviceSize::default(),
24424 min_bitstream_buffer_size_alignment: DeviceSize::default(),
24425 picture_access_granularity: Extent2D::default(),
24426 min_coded_extent: Extent2D::default(),
24427 max_coded_extent: Extent2D::default(),
24428 max_dpb_slots: u32::default(),
24429 max_active_reference_pictures: u32::default(),
24430 std_header_version: ExtensionProperties::default(),
24431 }
24432 }
24433}
24434
24435#[repr(C)]
24437#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24438pub struct VideoCodingControlInfoKHR {
24439 pub s_type: StructureType,
24440 pub next: *const c_void,
24441 pub flags: VideoCodingControlFlagsKHR,
24442}
24443
24444impl Default for VideoCodingControlInfoKHR {
24445 #[inline]
24446 fn default() -> Self {
24447 Self {
24448 s_type: StructureType::VIDEO_CODING_CONTROL_INFO_KHR,
24449 next: ptr::null(),
24450 flags: VideoCodingControlFlagsKHR::default(),
24451 }
24452 }
24453}
24454
24455#[repr(C)]
24457#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24458pub struct VideoDecodeAV1CapabilitiesKHR {
24459 pub s_type: StructureType,
24460 pub next: *mut c_void,
24461 pub max_level: video::StdVideoAV1Level,
24462}
24463
24464impl Default for VideoDecodeAV1CapabilitiesKHR {
24465 #[inline]
24466 fn default() -> Self {
24467 Self {
24468 s_type: StructureType::VIDEO_DECODE_AV1_CAPABILITIES_KHR,
24469 next: ptr::null_mut(),
24470 max_level: video::StdVideoAV1Level::default(),
24471 }
24472 }
24473}
24474
24475#[repr(C)]
24477#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24478pub struct VideoDecodeAV1DpbSlotInfoKHR {
24479 pub s_type: StructureType,
24480 pub next: *const c_void,
24481 pub std_reference_info: *const video::StdVideoDecodeAV1ReferenceInfo,
24482}
24483
24484impl Default for VideoDecodeAV1DpbSlotInfoKHR {
24485 #[inline]
24486 fn default() -> Self {
24487 Self {
24488 s_type: StructureType::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR,
24489 next: ptr::null(),
24490 std_reference_info: ptr::null(),
24491 }
24492 }
24493}
24494
24495#[repr(C)]
24497#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24498pub struct VideoDecodeAV1InlineSessionParametersInfoKHR {
24499 pub s_type: StructureType,
24500 pub next: *const c_void,
24501 pub std_sequence_header: *const video::StdVideoAV1SequenceHeader,
24502}
24503
24504impl Default for VideoDecodeAV1InlineSessionParametersInfoKHR {
24505 #[inline]
24506 fn default() -> Self {
24507 Self {
24508 s_type: StructureType::VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR,
24509 next: ptr::null(),
24510 std_sequence_header: ptr::null(),
24511 }
24512 }
24513}
24514
24515#[repr(C)]
24517#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24518pub struct VideoDecodeAV1PictureInfoKHR {
24519 pub s_type: StructureType,
24520 pub next: *const c_void,
24521 pub std_picture_info: *const video::StdVideoDecodeAV1PictureInfo,
24522 pub reference_name_slot_indices: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR],
24523 pub frame_header_offset: u32,
24524 pub tile_count: u32,
24525 pub tile_offsets: *const u32,
24526 pub tile_sizes: *const u32,
24527}
24528
24529impl Default for VideoDecodeAV1PictureInfoKHR {
24530 #[inline]
24531 fn default() -> Self {
24532 Self {
24533 s_type: StructureType::VIDEO_DECODE_AV1_PICTURE_INFO_KHR,
24534 next: ptr::null(),
24535 std_picture_info: ptr::null(),
24536 reference_name_slot_indices: [i32::default(); MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR],
24537 frame_header_offset: u32::default(),
24538 tile_count: u32::default(),
24539 tile_offsets: ptr::null(),
24540 tile_sizes: ptr::null(),
24541 }
24542 }
24543}
24544
24545#[repr(C)]
24547#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24548pub struct VideoDecodeAV1ProfileInfoKHR {
24549 pub s_type: StructureType,
24550 pub next: *const c_void,
24551 pub std_profile: video::StdVideoAV1Profile,
24552 pub film_grain_support: Bool32,
24553}
24554
24555impl Default for VideoDecodeAV1ProfileInfoKHR {
24556 #[inline]
24557 fn default() -> Self {
24558 Self {
24559 s_type: StructureType::VIDEO_DECODE_AV1_PROFILE_INFO_KHR,
24560 next: ptr::null(),
24561 std_profile: video::StdVideoAV1Profile::default(),
24562 film_grain_support: Bool32::default(),
24563 }
24564 }
24565}
24566
24567#[repr(C)]
24569#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24570pub struct VideoDecodeAV1SessionParametersCreateInfoKHR {
24571 pub s_type: StructureType,
24572 pub next: *const c_void,
24573 pub std_sequence_header: *const video::StdVideoAV1SequenceHeader,
24574}
24575
24576impl Default for VideoDecodeAV1SessionParametersCreateInfoKHR {
24577 #[inline]
24578 fn default() -> Self {
24579 Self {
24580 s_type: StructureType::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR,
24581 next: ptr::null(),
24582 std_sequence_header: ptr::null(),
24583 }
24584 }
24585}
24586
24587#[repr(C)]
24589#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24590pub struct VideoDecodeCapabilitiesKHR {
24591 pub s_type: StructureType,
24592 pub next: *mut c_void,
24593 pub flags: VideoDecodeCapabilityFlagsKHR,
24594}
24595
24596impl Default for VideoDecodeCapabilitiesKHR {
24597 #[inline]
24598 fn default() -> Self {
24599 Self {
24600 s_type: StructureType::VIDEO_DECODE_CAPABILITIES_KHR,
24601 next: ptr::null_mut(),
24602 flags: VideoDecodeCapabilityFlagsKHR::default(),
24603 }
24604 }
24605}
24606
24607#[repr(C)]
24609#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24610pub struct VideoDecodeH264CapabilitiesKHR {
24611 pub s_type: StructureType,
24612 pub next: *mut c_void,
24613 pub max_level_idc: video::StdVideoH264LevelIdc,
24614 pub field_offset_granularity: Offset2D,
24615}
24616
24617impl Default for VideoDecodeH264CapabilitiesKHR {
24618 #[inline]
24619 fn default() -> Self {
24620 Self {
24621 s_type: StructureType::VIDEO_DECODE_H264_CAPABILITIES_KHR,
24622 next: ptr::null_mut(),
24623 max_level_idc: video::StdVideoH264LevelIdc::default(),
24624 field_offset_granularity: Offset2D::default(),
24625 }
24626 }
24627}
24628
24629#[repr(C)]
24631#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24632pub struct VideoDecodeH264DpbSlotInfoKHR {
24633 pub s_type: StructureType,
24634 pub next: *const c_void,
24635 pub std_reference_info: *const video::StdVideoDecodeH264ReferenceInfo,
24636}
24637
24638impl Default for VideoDecodeH264DpbSlotInfoKHR {
24639 #[inline]
24640 fn default() -> Self {
24641 Self {
24642 s_type: StructureType::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR,
24643 next: ptr::null(),
24644 std_reference_info: ptr::null(),
24645 }
24646 }
24647}
24648
24649#[repr(C)]
24651#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24652pub struct VideoDecodeH264InlineSessionParametersInfoKHR {
24653 pub s_type: StructureType,
24654 pub next: *const c_void,
24655 pub std_sps: *const video::StdVideoH264SequenceParameterSet,
24656 pub std_pps: *const video::StdVideoH264PictureParameterSet,
24657}
24658
24659impl Default for VideoDecodeH264InlineSessionParametersInfoKHR {
24660 #[inline]
24661 fn default() -> Self {
24662 Self {
24663 s_type: StructureType::VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR,
24664 next: ptr::null(),
24665 std_sps: ptr::null(),
24666 std_pps: ptr::null(),
24667 }
24668 }
24669}
24670
24671#[repr(C)]
24673#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24674pub struct VideoDecodeH264PictureInfoKHR {
24675 pub s_type: StructureType,
24676 pub next: *const c_void,
24677 pub std_picture_info: *const video::StdVideoDecodeH264PictureInfo,
24678 pub slice_count: u32,
24679 pub slice_offsets: *const u32,
24680}
24681
24682impl Default for VideoDecodeH264PictureInfoKHR {
24683 #[inline]
24684 fn default() -> Self {
24685 Self {
24686 s_type: StructureType::VIDEO_DECODE_H264_PICTURE_INFO_KHR,
24687 next: ptr::null(),
24688 std_picture_info: ptr::null(),
24689 slice_count: u32::default(),
24690 slice_offsets: ptr::null(),
24691 }
24692 }
24693}
24694
24695#[repr(C)]
24697#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24698pub struct VideoDecodeH264ProfileInfoKHR {
24699 pub s_type: StructureType,
24700 pub next: *const c_void,
24701 pub std_profile_idc: video::StdVideoH264ProfileIdc,
24702 pub picture_layout: VideoDecodeH264PictureLayoutFlagsKHR,
24703}
24704
24705impl Default for VideoDecodeH264ProfileInfoKHR {
24706 #[inline]
24707 fn default() -> Self {
24708 Self {
24709 s_type: StructureType::VIDEO_DECODE_H264_PROFILE_INFO_KHR,
24710 next: ptr::null(),
24711 std_profile_idc: video::StdVideoH264ProfileIdc::default(),
24712 picture_layout: VideoDecodeH264PictureLayoutFlagsKHR::default(),
24713 }
24714 }
24715}
24716
24717#[repr(C)]
24719#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24720pub struct VideoDecodeH264SessionParametersAddInfoKHR {
24721 pub s_type: StructureType,
24722 pub next: *const c_void,
24723 pub std_sps_count: u32,
24724 pub std_sp_ss: *const video::StdVideoH264SequenceParameterSet,
24725 pub std_pps_count: u32,
24726 pub std_pp_ss: *const video::StdVideoH264PictureParameterSet,
24727}
24728
24729impl Default for VideoDecodeH264SessionParametersAddInfoKHR {
24730 #[inline]
24731 fn default() -> Self {
24732 Self {
24733 s_type: StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR,
24734 next: ptr::null(),
24735 std_sps_count: u32::default(),
24736 std_sp_ss: ptr::null(),
24737 std_pps_count: u32::default(),
24738 std_pp_ss: ptr::null(),
24739 }
24740 }
24741}
24742
24743#[repr(C)]
24745#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24746pub struct VideoDecodeH264SessionParametersCreateInfoKHR {
24747 pub s_type: StructureType,
24748 pub next: *const c_void,
24749 pub max_std_sps_count: u32,
24750 pub max_std_pps_count: u32,
24751 pub parameters_add_info: *const VideoDecodeH264SessionParametersAddInfoKHR,
24752}
24753
24754impl Default for VideoDecodeH264SessionParametersCreateInfoKHR {
24755 #[inline]
24756 fn default() -> Self {
24757 Self {
24758 s_type: StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR,
24759 next: ptr::null(),
24760 max_std_sps_count: u32::default(),
24761 max_std_pps_count: u32::default(),
24762 parameters_add_info: ptr::null(),
24763 }
24764 }
24765}
24766
24767#[repr(C)]
24769#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24770pub struct VideoDecodeH265CapabilitiesKHR {
24771 pub s_type: StructureType,
24772 pub next: *mut c_void,
24773 pub max_level_idc: video::StdVideoH265LevelIdc,
24774}
24775
24776impl Default for VideoDecodeH265CapabilitiesKHR {
24777 #[inline]
24778 fn default() -> Self {
24779 Self {
24780 s_type: StructureType::VIDEO_DECODE_H265_CAPABILITIES_KHR,
24781 next: ptr::null_mut(),
24782 max_level_idc: video::StdVideoH265LevelIdc::default(),
24783 }
24784 }
24785}
24786
24787#[repr(C)]
24789#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24790pub struct VideoDecodeH265DpbSlotInfoKHR {
24791 pub s_type: StructureType,
24792 pub next: *const c_void,
24793 pub std_reference_info: *const video::StdVideoDecodeH265ReferenceInfo,
24794}
24795
24796impl Default for VideoDecodeH265DpbSlotInfoKHR {
24797 #[inline]
24798 fn default() -> Self {
24799 Self {
24800 s_type: StructureType::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR,
24801 next: ptr::null(),
24802 std_reference_info: ptr::null(),
24803 }
24804 }
24805}
24806
24807#[repr(C)]
24809#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24810pub struct VideoDecodeH265InlineSessionParametersInfoKHR {
24811 pub s_type: StructureType,
24812 pub next: *const c_void,
24813 pub std_vps: *const video::StdVideoH265VideoParameterSet,
24814 pub std_sps: *const video::StdVideoH265SequenceParameterSet,
24815 pub std_pps: *const video::StdVideoH265PictureParameterSet,
24816}
24817
24818impl Default for VideoDecodeH265InlineSessionParametersInfoKHR {
24819 #[inline]
24820 fn default() -> Self {
24821 Self {
24822 s_type: StructureType::VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR,
24823 next: ptr::null(),
24824 std_vps: ptr::null(),
24825 std_sps: ptr::null(),
24826 std_pps: ptr::null(),
24827 }
24828 }
24829}
24830
24831#[repr(C)]
24833#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24834pub struct VideoDecodeH265PictureInfoKHR {
24835 pub s_type: StructureType,
24836 pub next: *const c_void,
24837 pub std_picture_info: *const video::StdVideoDecodeH265PictureInfo,
24838 pub slice_segment_count: u32,
24839 pub slice_segment_offsets: *const u32,
24840}
24841
24842impl Default for VideoDecodeH265PictureInfoKHR {
24843 #[inline]
24844 fn default() -> Self {
24845 Self {
24846 s_type: StructureType::VIDEO_DECODE_H265_PICTURE_INFO_KHR,
24847 next: ptr::null(),
24848 std_picture_info: ptr::null(),
24849 slice_segment_count: u32::default(),
24850 slice_segment_offsets: ptr::null(),
24851 }
24852 }
24853}
24854
24855#[repr(C)]
24857#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24858pub struct VideoDecodeH265ProfileInfoKHR {
24859 pub s_type: StructureType,
24860 pub next: *const c_void,
24861 pub std_profile_idc: video::StdVideoH265ProfileIdc,
24862}
24863
24864impl Default for VideoDecodeH265ProfileInfoKHR {
24865 #[inline]
24866 fn default() -> Self {
24867 Self {
24868 s_type: StructureType::VIDEO_DECODE_H265_PROFILE_INFO_KHR,
24869 next: ptr::null(),
24870 std_profile_idc: video::StdVideoH265ProfileIdc::default(),
24871 }
24872 }
24873}
24874
24875#[repr(C)]
24877#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24878pub struct VideoDecodeH265SessionParametersAddInfoKHR {
24879 pub s_type: StructureType,
24880 pub next: *const c_void,
24881 pub std_vps_count: u32,
24882 pub std_vp_ss: *const video::StdVideoH265VideoParameterSet,
24883 pub std_sps_count: u32,
24884 pub std_sp_ss: *const video::StdVideoH265SequenceParameterSet,
24885 pub std_pps_count: u32,
24886 pub std_pp_ss: *const video::StdVideoH265PictureParameterSet,
24887}
24888
24889impl Default for VideoDecodeH265SessionParametersAddInfoKHR {
24890 #[inline]
24891 fn default() -> Self {
24892 Self {
24893 s_type: StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR,
24894 next: ptr::null(),
24895 std_vps_count: u32::default(),
24896 std_vp_ss: ptr::null(),
24897 std_sps_count: u32::default(),
24898 std_sp_ss: ptr::null(),
24899 std_pps_count: u32::default(),
24900 std_pp_ss: ptr::null(),
24901 }
24902 }
24903}
24904
24905#[repr(C)]
24907#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24908pub struct VideoDecodeH265SessionParametersCreateInfoKHR {
24909 pub s_type: StructureType,
24910 pub next: *const c_void,
24911 pub max_std_vps_count: u32,
24912 pub max_std_sps_count: u32,
24913 pub max_std_pps_count: u32,
24914 pub parameters_add_info: *const VideoDecodeH265SessionParametersAddInfoKHR,
24915}
24916
24917impl Default for VideoDecodeH265SessionParametersCreateInfoKHR {
24918 #[inline]
24919 fn default() -> Self {
24920 Self {
24921 s_type: StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
24922 next: ptr::null(),
24923 max_std_vps_count: u32::default(),
24924 max_std_sps_count: u32::default(),
24925 max_std_pps_count: u32::default(),
24926 parameters_add_info: ptr::null(),
24927 }
24928 }
24929}
24930
24931#[repr(C)]
24933#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24934pub struct VideoDecodeInfoKHR {
24935 pub s_type: StructureType,
24936 pub next: *const c_void,
24937 pub flags: VideoDecodeFlagsKHR,
24938 pub src_buffer: Buffer,
24939 pub src_buffer_offset: DeviceSize,
24940 pub src_buffer_range: DeviceSize,
24941 pub dst_picture_resource: VideoPictureResourceInfoKHR,
24942 pub setup_reference_slot: *const VideoReferenceSlotInfoKHR,
24943 pub reference_slot_count: u32,
24944 pub reference_slots: *const VideoReferenceSlotInfoKHR,
24945}
24946
24947impl Default for VideoDecodeInfoKHR {
24948 #[inline]
24949 fn default() -> Self {
24950 Self {
24951 s_type: StructureType::VIDEO_DECODE_INFO_KHR,
24952 next: ptr::null(),
24953 flags: VideoDecodeFlagsKHR::default(),
24954 src_buffer: Buffer::default(),
24955 src_buffer_offset: DeviceSize::default(),
24956 src_buffer_range: DeviceSize::default(),
24957 dst_picture_resource: VideoPictureResourceInfoKHR::default(),
24958 setup_reference_slot: ptr::null(),
24959 reference_slot_count: u32::default(),
24960 reference_slots: ptr::null(),
24961 }
24962 }
24963}
24964
24965#[repr(C)]
24967#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24968pub struct VideoDecodeUsageInfoKHR {
24969 pub s_type: StructureType,
24970 pub next: *const c_void,
24971 pub video_usage_hints: VideoDecodeUsageFlagsKHR,
24972}
24973
24974impl Default for VideoDecodeUsageInfoKHR {
24975 #[inline]
24976 fn default() -> Self {
24977 Self {
24978 s_type: StructureType::VIDEO_DECODE_USAGE_INFO_KHR,
24979 next: ptr::null(),
24980 video_usage_hints: VideoDecodeUsageFlagsKHR::default(),
24981 }
24982 }
24983}
24984
24985#[repr(C)]
24987#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
24988pub struct VideoEncodeAV1CapabilitiesKHR {
24989 pub s_type: StructureType,
24990 pub next: *mut c_void,
24991 pub flags: VideoEncodeAV1CapabilityFlagsKHR,
24992 pub max_level: video::StdVideoAV1Level,
24993 pub coded_picture_alignment: Extent2D,
24994 pub max_tiles: Extent2D,
24995 pub min_tile_size: Extent2D,
24996 pub max_tile_size: Extent2D,
24997 pub superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR,
24998 pub max_single_reference_count: u32,
24999 pub single_reference_name_mask: u32,
25000 pub max_unidirectional_compound_reference_count: u32,
25001 pub max_unidirectional_compound_group1_reference_count: u32,
25002 pub unidirectional_compound_reference_name_mask: u32,
25003 pub max_bidirectional_compound_reference_count: u32,
25004 pub max_bidirectional_compound_group1_reference_count: u32,
25005 pub max_bidirectional_compound_group2_reference_count: u32,
25006 pub bidirectional_compound_reference_name_mask: u32,
25007 pub max_temporal_layer_count: u32,
25008 pub max_spatial_layer_count: u32,
25009 pub max_operating_points: u32,
25010 pub min_q_index: u32,
25011 pub max_q_index: u32,
25012 pub prefers_gop_remaining_frames: Bool32,
25013 pub requires_gop_remaining_frames: Bool32,
25014 pub std_syntax_flags: VideoEncodeAV1StdFlagsKHR,
25015}
25016
25017impl Default for VideoEncodeAV1CapabilitiesKHR {
25018 #[inline]
25019 fn default() -> Self {
25020 Self {
25021 s_type: StructureType::VIDEO_ENCODE_AV1_CAPABILITIES_KHR,
25022 next: ptr::null_mut(),
25023 flags: VideoEncodeAV1CapabilityFlagsKHR::default(),
25024 max_level: video::StdVideoAV1Level::default(),
25025 coded_picture_alignment: Extent2D::default(),
25026 max_tiles: Extent2D::default(),
25027 min_tile_size: Extent2D::default(),
25028 max_tile_size: Extent2D::default(),
25029 superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR::default(),
25030 max_single_reference_count: u32::default(),
25031 single_reference_name_mask: u32::default(),
25032 max_unidirectional_compound_reference_count: u32::default(),
25033 max_unidirectional_compound_group1_reference_count: u32::default(),
25034 unidirectional_compound_reference_name_mask: u32::default(),
25035 max_bidirectional_compound_reference_count: u32::default(),
25036 max_bidirectional_compound_group1_reference_count: u32::default(),
25037 max_bidirectional_compound_group2_reference_count: u32::default(),
25038 bidirectional_compound_reference_name_mask: u32::default(),
25039 max_temporal_layer_count: u32::default(),
25040 max_spatial_layer_count: u32::default(),
25041 max_operating_points: u32::default(),
25042 min_q_index: u32::default(),
25043 max_q_index: u32::default(),
25044 prefers_gop_remaining_frames: Bool32::default(),
25045 requires_gop_remaining_frames: Bool32::default(),
25046 std_syntax_flags: VideoEncodeAV1StdFlagsKHR::default(),
25047 }
25048 }
25049}
25050
25051#[repr(C)]
25053#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25054pub struct VideoEncodeAV1DpbSlotInfoKHR {
25055 pub s_type: StructureType,
25056 pub next: *const c_void,
25057 pub std_reference_info: *const video::StdVideoEncodeAV1ReferenceInfo,
25058}
25059
25060impl Default for VideoEncodeAV1DpbSlotInfoKHR {
25061 #[inline]
25062 fn default() -> Self {
25063 Self {
25064 s_type: StructureType::VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR,
25065 next: ptr::null(),
25066 std_reference_info: ptr::null(),
25067 }
25068 }
25069}
25070
25071#[repr(C)]
25073#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
25074pub struct VideoEncodeAV1FrameSizeKHR {
25075 pub intra_frame_size: u32,
25076 pub predictive_frame_size: u32,
25077 pub bipredictive_frame_size: u32,
25078}
25079
25080#[repr(C)]
25082#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25083pub struct VideoEncodeAV1GopRemainingFrameInfoKHR {
25084 pub s_type: StructureType,
25085 pub next: *const c_void,
25086 pub use_gop_remaining_frames: Bool32,
25087 pub gop_remaining_intra: u32,
25088 pub gop_remaining_predictive: u32,
25089 pub gop_remaining_bipredictive: u32,
25090}
25091
25092impl Default for VideoEncodeAV1GopRemainingFrameInfoKHR {
25093 #[inline]
25094 fn default() -> Self {
25095 Self {
25096 s_type: StructureType::VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR,
25097 next: ptr::null(),
25098 use_gop_remaining_frames: Bool32::default(),
25099 gop_remaining_intra: u32::default(),
25100 gop_remaining_predictive: u32::default(),
25101 gop_remaining_bipredictive: u32::default(),
25102 }
25103 }
25104}
25105
25106#[repr(C)]
25108#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25109pub struct VideoEncodeAV1PictureInfoKHR {
25110 pub s_type: StructureType,
25111 pub next: *const c_void,
25112 pub prediction_mode: VideoEncodeAV1PredictionModeKHR,
25113 pub rate_control_group: VideoEncodeAV1RateControlGroupKHR,
25114 pub constant_q_index: u32,
25115 pub std_picture_info: *const video::StdVideoEncodeAV1PictureInfo,
25116 pub reference_name_slot_indices: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR],
25117 pub primary_reference_cdf_only: Bool32,
25118 pub generate_obu_extension_header: Bool32,
25119}
25120
25121impl Default for VideoEncodeAV1PictureInfoKHR {
25122 #[inline]
25123 fn default() -> Self {
25124 Self {
25125 s_type: StructureType::VIDEO_ENCODE_AV1_PICTURE_INFO_KHR,
25126 next: ptr::null(),
25127 prediction_mode: VideoEncodeAV1PredictionModeKHR::default(),
25128 rate_control_group: VideoEncodeAV1RateControlGroupKHR::default(),
25129 constant_q_index: u32::default(),
25130 std_picture_info: ptr::null(),
25131 reference_name_slot_indices: [i32::default(); MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR],
25132 primary_reference_cdf_only: Bool32::default(),
25133 generate_obu_extension_header: Bool32::default(),
25134 }
25135 }
25136}
25137
25138#[repr(C)]
25140#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25141pub struct VideoEncodeAV1ProfileInfoKHR {
25142 pub s_type: StructureType,
25143 pub next: *const c_void,
25144 pub std_profile: video::StdVideoAV1Profile,
25145}
25146
25147impl Default for VideoEncodeAV1ProfileInfoKHR {
25148 #[inline]
25149 fn default() -> Self {
25150 Self {
25151 s_type: StructureType::VIDEO_ENCODE_AV1_PROFILE_INFO_KHR,
25152 next: ptr::null(),
25153 std_profile: video::StdVideoAV1Profile::default(),
25154 }
25155 }
25156}
25157
25158#[repr(C)]
25160#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
25161pub struct VideoEncodeAV1QIndexKHR {
25162 pub intra_q_index: u32,
25163 pub predictive_q_index: u32,
25164 pub bipredictive_q_index: u32,
25165}
25166
25167#[repr(C)]
25169#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25170pub struct VideoEncodeAV1QualityLevelPropertiesKHR {
25171 pub s_type: StructureType,
25172 pub next: *mut c_void,
25173 pub preferred_rate_control_flags: VideoEncodeAV1RateControlFlagsKHR,
25174 pub preferred_gop_frame_count: u32,
25175 pub preferred_key_frame_period: u32,
25176 pub preferred_consecutive_bipredictive_frame_count: u32,
25177 pub preferred_temporal_layer_count: u32,
25178 pub preferred_constant_q_index: VideoEncodeAV1QIndexKHR,
25179 pub preferred_max_single_reference_count: u32,
25180 pub preferred_single_reference_name_mask: u32,
25181 pub preferred_max_unidirectional_compound_reference_count: u32,
25182 pub preferred_max_unidirectional_compound_group1_reference_count: u32,
25183 pub preferred_unidirectional_compound_reference_name_mask: u32,
25184 pub preferred_max_bidirectional_compound_reference_count: u32,
25185 pub preferred_max_bidirectional_compound_group1_reference_count: u32,
25186 pub preferred_max_bidirectional_compound_group2_reference_count: u32,
25187 pub preferred_bidirectional_compound_reference_name_mask: u32,
25188}
25189
25190impl Default for VideoEncodeAV1QualityLevelPropertiesKHR {
25191 #[inline]
25192 fn default() -> Self {
25193 Self {
25194 s_type: StructureType::VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR,
25195 next: ptr::null_mut(),
25196 preferred_rate_control_flags: VideoEncodeAV1RateControlFlagsKHR::default(),
25197 preferred_gop_frame_count: u32::default(),
25198 preferred_key_frame_period: u32::default(),
25199 preferred_consecutive_bipredictive_frame_count: u32::default(),
25200 preferred_temporal_layer_count: u32::default(),
25201 preferred_constant_q_index: VideoEncodeAV1QIndexKHR::default(),
25202 preferred_max_single_reference_count: u32::default(),
25203 preferred_single_reference_name_mask: u32::default(),
25204 preferred_max_unidirectional_compound_reference_count: u32::default(),
25205 preferred_max_unidirectional_compound_group1_reference_count: u32::default(),
25206 preferred_unidirectional_compound_reference_name_mask: u32::default(),
25207 preferred_max_bidirectional_compound_reference_count: u32::default(),
25208 preferred_max_bidirectional_compound_group1_reference_count: u32::default(),
25209 preferred_max_bidirectional_compound_group2_reference_count: u32::default(),
25210 preferred_bidirectional_compound_reference_name_mask: u32::default(),
25211 }
25212 }
25213}
25214
25215#[repr(C)]
25217#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25218pub struct VideoEncodeAV1QuantizationMapCapabilitiesKHR {
25219 pub s_type: StructureType,
25220 pub next: *mut c_void,
25221 pub min_q_index_delta: i32,
25222 pub max_q_index_delta: i32,
25223}
25224
25225impl Default for VideoEncodeAV1QuantizationMapCapabilitiesKHR {
25226 #[inline]
25227 fn default() -> Self {
25228 Self {
25229 s_type: StructureType::VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR,
25230 next: ptr::null_mut(),
25231 min_q_index_delta: i32::default(),
25232 max_q_index_delta: i32::default(),
25233 }
25234 }
25235}
25236
25237#[repr(C)]
25239#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25240pub struct VideoEncodeAV1RateControlInfoKHR {
25241 pub s_type: StructureType,
25242 pub next: *const c_void,
25243 pub flags: VideoEncodeAV1RateControlFlagsKHR,
25244 pub gop_frame_count: u32,
25245 pub key_frame_period: u32,
25246 pub consecutive_bipredictive_frame_count: u32,
25247 pub temporal_layer_count: u32,
25248}
25249
25250impl Default for VideoEncodeAV1RateControlInfoKHR {
25251 #[inline]
25252 fn default() -> Self {
25253 Self {
25254 s_type: StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR,
25255 next: ptr::null(),
25256 flags: VideoEncodeAV1RateControlFlagsKHR::default(),
25257 gop_frame_count: u32::default(),
25258 key_frame_period: u32::default(),
25259 consecutive_bipredictive_frame_count: u32::default(),
25260 temporal_layer_count: u32::default(),
25261 }
25262 }
25263}
25264
25265#[repr(C)]
25267#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25268pub struct VideoEncodeAV1RateControlLayerInfoKHR {
25269 pub s_type: StructureType,
25270 pub next: *const c_void,
25271 pub use_min_q_index: Bool32,
25272 pub min_q_index: VideoEncodeAV1QIndexKHR,
25273 pub use_max_q_index: Bool32,
25274 pub max_q_index: VideoEncodeAV1QIndexKHR,
25275 pub use_max_frame_size: Bool32,
25276 pub max_frame_size: VideoEncodeAV1FrameSizeKHR,
25277}
25278
25279impl Default for VideoEncodeAV1RateControlLayerInfoKHR {
25280 #[inline]
25281 fn default() -> Self {
25282 Self {
25283 s_type: StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR,
25284 next: ptr::null(),
25285 use_min_q_index: Bool32::default(),
25286 min_q_index: VideoEncodeAV1QIndexKHR::default(),
25287 use_max_q_index: Bool32::default(),
25288 max_q_index: VideoEncodeAV1QIndexKHR::default(),
25289 use_max_frame_size: Bool32::default(),
25290 max_frame_size: VideoEncodeAV1FrameSizeKHR::default(),
25291 }
25292 }
25293}
25294
25295#[repr(C)]
25297#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25298pub struct VideoEncodeAV1SessionCreateInfoKHR {
25299 pub s_type: StructureType,
25300 pub next: *const c_void,
25301 pub use_max_level: Bool32,
25302 pub max_level: video::StdVideoAV1Level,
25303}
25304
25305impl Default for VideoEncodeAV1SessionCreateInfoKHR {
25306 #[inline]
25307 fn default() -> Self {
25308 Self {
25309 s_type: StructureType::VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR,
25310 next: ptr::null(),
25311 use_max_level: Bool32::default(),
25312 max_level: video::StdVideoAV1Level::default(),
25313 }
25314 }
25315}
25316
25317#[repr(C)]
25319#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25320pub struct VideoEncodeAV1SessionParametersCreateInfoKHR {
25321 pub s_type: StructureType,
25322 pub next: *const c_void,
25323 pub std_sequence_header: *const video::StdVideoAV1SequenceHeader,
25324 pub std_decoder_model_info: *const video::StdVideoEncodeAV1DecoderModelInfo,
25325 pub std_operating_point_count: u32,
25326 pub std_operating_points: *const video::StdVideoEncodeAV1OperatingPointInfo,
25327}
25328
25329impl Default for VideoEncodeAV1SessionParametersCreateInfoKHR {
25330 #[inline]
25331 fn default() -> Self {
25332 Self {
25333 s_type: StructureType::VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR,
25334 next: ptr::null(),
25335 std_sequence_header: ptr::null(),
25336 std_decoder_model_info: ptr::null(),
25337 std_operating_point_count: u32::default(),
25338 std_operating_points: ptr::null(),
25339 }
25340 }
25341}
25342
25343#[repr(C)]
25345#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25346pub struct VideoEncodeCapabilitiesKHR {
25347 pub s_type: StructureType,
25348 pub next: *mut c_void,
25349 pub flags: VideoEncodeCapabilityFlagsKHR,
25350 pub rate_control_modes: VideoEncodeRateControlModeFlagsKHR,
25351 pub max_rate_control_layers: u32,
25352 pub max_bitrate: u64,
25353 pub max_quality_levels: u32,
25354 pub encode_input_picture_granularity: Extent2D,
25355 pub supported_encode_feedback_flags: VideoEncodeFeedbackFlagsKHR,
25356}
25357
25358impl Default for VideoEncodeCapabilitiesKHR {
25359 #[inline]
25360 fn default() -> Self {
25361 Self {
25362 s_type: StructureType::VIDEO_ENCODE_CAPABILITIES_KHR,
25363 next: ptr::null_mut(),
25364 flags: VideoEncodeCapabilityFlagsKHR::default(),
25365 rate_control_modes: VideoEncodeRateControlModeFlagsKHR::default(),
25366 max_rate_control_layers: u32::default(),
25367 max_bitrate: u64::default(),
25368 max_quality_levels: u32::default(),
25369 encode_input_picture_granularity: Extent2D::default(),
25370 supported_encode_feedback_flags: VideoEncodeFeedbackFlagsKHR::default(),
25371 }
25372 }
25373}
25374
25375#[repr(C)]
25377#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25378pub struct VideoEncodeH264CapabilitiesKHR {
25379 pub s_type: StructureType,
25380 pub next: *mut c_void,
25381 pub flags: VideoEncodeH264CapabilityFlagsKHR,
25382 pub max_level_idc: video::StdVideoH264LevelIdc,
25383 pub max_slice_count: u32,
25384 pub max_p_picture_l0_reference_count: u32,
25385 pub max_b_picture_l0_reference_count: u32,
25386 pub max_l1_reference_count: u32,
25387 pub max_temporal_layer_count: u32,
25388 pub expect_dyadic_temporal_layer_pattern: Bool32,
25389 pub min_qp: i32,
25390 pub max_qp: i32,
25391 pub prefers_gop_remaining_frames: Bool32,
25392 pub requires_gop_remaining_frames: Bool32,
25393 pub std_syntax_flags: VideoEncodeH264StdFlagsKHR,
25394}
25395
25396impl Default for VideoEncodeH264CapabilitiesKHR {
25397 #[inline]
25398 fn default() -> Self {
25399 Self {
25400 s_type: StructureType::VIDEO_ENCODE_H264_CAPABILITIES_KHR,
25401 next: ptr::null_mut(),
25402 flags: VideoEncodeH264CapabilityFlagsKHR::default(),
25403 max_level_idc: video::StdVideoH264LevelIdc::default(),
25404 max_slice_count: u32::default(),
25405 max_p_picture_l0_reference_count: u32::default(),
25406 max_b_picture_l0_reference_count: u32::default(),
25407 max_l1_reference_count: u32::default(),
25408 max_temporal_layer_count: u32::default(),
25409 expect_dyadic_temporal_layer_pattern: Bool32::default(),
25410 min_qp: i32::default(),
25411 max_qp: i32::default(),
25412 prefers_gop_remaining_frames: Bool32::default(),
25413 requires_gop_remaining_frames: Bool32::default(),
25414 std_syntax_flags: VideoEncodeH264StdFlagsKHR::default(),
25415 }
25416 }
25417}
25418
25419#[repr(C)]
25421#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25422pub struct VideoEncodeH264DpbSlotInfoKHR {
25423 pub s_type: StructureType,
25424 pub next: *const c_void,
25425 pub std_reference_info: *const video::StdVideoEncodeH264ReferenceInfo,
25426}
25427
25428impl Default for VideoEncodeH264DpbSlotInfoKHR {
25429 #[inline]
25430 fn default() -> Self {
25431 Self {
25432 s_type: StructureType::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR,
25433 next: ptr::null(),
25434 std_reference_info: ptr::null(),
25435 }
25436 }
25437}
25438
25439#[repr(C)]
25441#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
25442pub struct VideoEncodeH264FrameSizeKHR {
25443 pub frame_i_size: u32,
25444 pub frame_p_size: u32,
25445 pub frame_b_size: u32,
25446}
25447
25448#[repr(C)]
25450#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25451pub struct VideoEncodeH264GopRemainingFrameInfoKHR {
25452 pub s_type: StructureType,
25453 pub next: *const c_void,
25454 pub use_gop_remaining_frames: Bool32,
25455 pub gop_remaining_i: u32,
25456 pub gop_remaining_p: u32,
25457 pub gop_remaining_b: u32,
25458}
25459
25460impl Default for VideoEncodeH264GopRemainingFrameInfoKHR {
25461 #[inline]
25462 fn default() -> Self {
25463 Self {
25464 s_type: StructureType::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR,
25465 next: ptr::null(),
25466 use_gop_remaining_frames: Bool32::default(),
25467 gop_remaining_i: u32::default(),
25468 gop_remaining_p: u32::default(),
25469 gop_remaining_b: u32::default(),
25470 }
25471 }
25472}
25473
25474#[repr(C)]
25476#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25477pub struct VideoEncodeH264NaluSliceInfoKHR {
25478 pub s_type: StructureType,
25479 pub next: *const c_void,
25480 pub constant_qp: i32,
25481 pub std_slice_header: *const video::StdVideoEncodeH264SliceHeader,
25482}
25483
25484impl Default for VideoEncodeH264NaluSliceInfoKHR {
25485 #[inline]
25486 fn default() -> Self {
25487 Self {
25488 s_type: StructureType::VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR,
25489 next: ptr::null(),
25490 constant_qp: i32::default(),
25491 std_slice_header: ptr::null(),
25492 }
25493 }
25494}
25495
25496#[repr(C)]
25498#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25499pub struct VideoEncodeH264PictureInfoKHR {
25500 pub s_type: StructureType,
25501 pub next: *const c_void,
25502 pub nalu_slice_entry_count: u32,
25503 pub nalu_slice_entries: *const VideoEncodeH264NaluSliceInfoKHR,
25504 pub std_picture_info: *const video::StdVideoEncodeH264PictureInfo,
25505 pub generate_prefix_nalu: Bool32,
25506}
25507
25508impl Default for VideoEncodeH264PictureInfoKHR {
25509 #[inline]
25510 fn default() -> Self {
25511 Self {
25512 s_type: StructureType::VIDEO_ENCODE_H264_PICTURE_INFO_KHR,
25513 next: ptr::null(),
25514 nalu_slice_entry_count: u32::default(),
25515 nalu_slice_entries: ptr::null(),
25516 std_picture_info: ptr::null(),
25517 generate_prefix_nalu: Bool32::default(),
25518 }
25519 }
25520}
25521
25522#[repr(C)]
25524#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25525pub struct VideoEncodeH264ProfileInfoKHR {
25526 pub s_type: StructureType,
25527 pub next: *const c_void,
25528 pub std_profile_idc: video::StdVideoH264ProfileIdc,
25529}
25530
25531impl Default for VideoEncodeH264ProfileInfoKHR {
25532 #[inline]
25533 fn default() -> Self {
25534 Self {
25535 s_type: StructureType::VIDEO_ENCODE_H264_PROFILE_INFO_KHR,
25536 next: ptr::null(),
25537 std_profile_idc: video::StdVideoH264ProfileIdc::default(),
25538 }
25539 }
25540}
25541
25542#[repr(C)]
25544#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
25545pub struct VideoEncodeH264QpKHR {
25546 pub qp_i: i32,
25547 pub qp_p: i32,
25548 pub qp_b: i32,
25549}
25550
25551#[repr(C)]
25553#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25554pub struct VideoEncodeH264QualityLevelPropertiesKHR {
25555 pub s_type: StructureType,
25556 pub next: *mut c_void,
25557 pub preferred_rate_control_flags: VideoEncodeH264RateControlFlagsKHR,
25558 pub preferred_gop_frame_count: u32,
25559 pub preferred_idr_period: u32,
25560 pub preferred_consecutive_b_frame_count: u32,
25561 pub preferred_temporal_layer_count: u32,
25562 pub preferred_constant_qp: VideoEncodeH264QpKHR,
25563 pub preferred_max_l0_reference_count: u32,
25564 pub preferred_max_l1_reference_count: u32,
25565 pub preferred_std_entropy_coding_mode_flag: Bool32,
25566}
25567
25568impl Default for VideoEncodeH264QualityLevelPropertiesKHR {
25569 #[inline]
25570 fn default() -> Self {
25571 Self {
25572 s_type: StructureType::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR,
25573 next: ptr::null_mut(),
25574 preferred_rate_control_flags: VideoEncodeH264RateControlFlagsKHR::default(),
25575 preferred_gop_frame_count: u32::default(),
25576 preferred_idr_period: u32::default(),
25577 preferred_consecutive_b_frame_count: u32::default(),
25578 preferred_temporal_layer_count: u32::default(),
25579 preferred_constant_qp: VideoEncodeH264QpKHR::default(),
25580 preferred_max_l0_reference_count: u32::default(),
25581 preferred_max_l1_reference_count: u32::default(),
25582 preferred_std_entropy_coding_mode_flag: Bool32::default(),
25583 }
25584 }
25585}
25586
25587#[repr(C)]
25589#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25590pub struct VideoEncodeH264QuantizationMapCapabilitiesKHR {
25591 pub s_type: StructureType,
25592 pub next: *mut c_void,
25593 pub min_qp_delta: i32,
25594 pub max_qp_delta: i32,
25595}
25596
25597impl Default for VideoEncodeH264QuantizationMapCapabilitiesKHR {
25598 #[inline]
25599 fn default() -> Self {
25600 Self {
25601 s_type: StructureType::VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR,
25602 next: ptr::null_mut(),
25603 min_qp_delta: i32::default(),
25604 max_qp_delta: i32::default(),
25605 }
25606 }
25607}
25608
25609#[repr(C)]
25611#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25612pub struct VideoEncodeH264RateControlInfoKHR {
25613 pub s_type: StructureType,
25614 pub next: *const c_void,
25615 pub flags: VideoEncodeH264RateControlFlagsKHR,
25616 pub gop_frame_count: u32,
25617 pub idr_period: u32,
25618 pub consecutive_b_frame_count: u32,
25619 pub temporal_layer_count: u32,
25620}
25621
25622impl Default for VideoEncodeH264RateControlInfoKHR {
25623 #[inline]
25624 fn default() -> Self {
25625 Self {
25626 s_type: StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR,
25627 next: ptr::null(),
25628 flags: VideoEncodeH264RateControlFlagsKHR::default(),
25629 gop_frame_count: u32::default(),
25630 idr_period: u32::default(),
25631 consecutive_b_frame_count: u32::default(),
25632 temporal_layer_count: u32::default(),
25633 }
25634 }
25635}
25636
25637#[repr(C)]
25639#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25640pub struct VideoEncodeH264RateControlLayerInfoKHR {
25641 pub s_type: StructureType,
25642 pub next: *const c_void,
25643 pub use_min_qp: Bool32,
25644 pub min_qp: VideoEncodeH264QpKHR,
25645 pub use_max_qp: Bool32,
25646 pub max_qp: VideoEncodeH264QpKHR,
25647 pub use_max_frame_size: Bool32,
25648 pub max_frame_size: VideoEncodeH264FrameSizeKHR,
25649}
25650
25651impl Default for VideoEncodeH264RateControlLayerInfoKHR {
25652 #[inline]
25653 fn default() -> Self {
25654 Self {
25655 s_type: StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR,
25656 next: ptr::null(),
25657 use_min_qp: Bool32::default(),
25658 min_qp: VideoEncodeH264QpKHR::default(),
25659 use_max_qp: Bool32::default(),
25660 max_qp: VideoEncodeH264QpKHR::default(),
25661 use_max_frame_size: Bool32::default(),
25662 max_frame_size: VideoEncodeH264FrameSizeKHR::default(),
25663 }
25664 }
25665}
25666
25667#[repr(C)]
25669#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25670pub struct VideoEncodeH264SessionCreateInfoKHR {
25671 pub s_type: StructureType,
25672 pub next: *const c_void,
25673 pub use_max_level_idc: Bool32,
25674 pub max_level_idc: video::StdVideoH264LevelIdc,
25675}
25676
25677impl Default for VideoEncodeH264SessionCreateInfoKHR {
25678 #[inline]
25679 fn default() -> Self {
25680 Self {
25681 s_type: StructureType::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR,
25682 next: ptr::null(),
25683 use_max_level_idc: Bool32::default(),
25684 max_level_idc: video::StdVideoH264LevelIdc::default(),
25685 }
25686 }
25687}
25688
25689#[repr(C)]
25691#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25692pub struct VideoEncodeH264SessionParametersAddInfoKHR {
25693 pub s_type: StructureType,
25694 pub next: *const c_void,
25695 pub std_sps_count: u32,
25696 pub std_sp_ss: *const video::StdVideoH264SequenceParameterSet,
25697 pub std_pps_count: u32,
25698 pub std_pp_ss: *const video::StdVideoH264PictureParameterSet,
25699}
25700
25701impl Default for VideoEncodeH264SessionParametersAddInfoKHR {
25702 #[inline]
25703 fn default() -> Self {
25704 Self {
25705 s_type: StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR,
25706 next: ptr::null(),
25707 std_sps_count: u32::default(),
25708 std_sp_ss: ptr::null(),
25709 std_pps_count: u32::default(),
25710 std_pp_ss: ptr::null(),
25711 }
25712 }
25713}
25714
25715#[repr(C)]
25717#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25718pub struct VideoEncodeH264SessionParametersCreateInfoKHR {
25719 pub s_type: StructureType,
25720 pub next: *const c_void,
25721 pub max_std_sps_count: u32,
25722 pub max_std_pps_count: u32,
25723 pub parameters_add_info: *const VideoEncodeH264SessionParametersAddInfoKHR,
25724}
25725
25726impl Default for VideoEncodeH264SessionParametersCreateInfoKHR {
25727 #[inline]
25728 fn default() -> Self {
25729 Self {
25730 s_type: StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR,
25731 next: ptr::null(),
25732 max_std_sps_count: u32::default(),
25733 max_std_pps_count: u32::default(),
25734 parameters_add_info: ptr::null(),
25735 }
25736 }
25737}
25738
25739#[repr(C)]
25741#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25742pub struct VideoEncodeH264SessionParametersFeedbackInfoKHR {
25743 pub s_type: StructureType,
25744 pub next: *mut c_void,
25745 pub has_std_sps_overrides: Bool32,
25746 pub has_std_pps_overrides: Bool32,
25747}
25748
25749impl Default for VideoEncodeH264SessionParametersFeedbackInfoKHR {
25750 #[inline]
25751 fn default() -> Self {
25752 Self {
25753 s_type: StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
25754 next: ptr::null_mut(),
25755 has_std_sps_overrides: Bool32::default(),
25756 has_std_pps_overrides: Bool32::default(),
25757 }
25758 }
25759}
25760
25761#[repr(C)]
25763#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25764pub struct VideoEncodeH264SessionParametersGetInfoKHR {
25765 pub s_type: StructureType,
25766 pub next: *const c_void,
25767 pub write_std_sps: Bool32,
25768 pub write_std_pps: Bool32,
25769 pub std_sps_id: u32,
25770 pub std_pps_id: u32,
25771}
25772
25773impl Default for VideoEncodeH264SessionParametersGetInfoKHR {
25774 #[inline]
25775 fn default() -> Self {
25776 Self {
25777 s_type: StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR,
25778 next: ptr::null(),
25779 write_std_sps: Bool32::default(),
25780 write_std_pps: Bool32::default(),
25781 std_sps_id: u32::default(),
25782 std_pps_id: u32::default(),
25783 }
25784 }
25785}
25786
25787#[repr(C)]
25789#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25790pub struct VideoEncodeH265CapabilitiesKHR {
25791 pub s_type: StructureType,
25792 pub next: *mut c_void,
25793 pub flags: VideoEncodeH265CapabilityFlagsKHR,
25794 pub max_level_idc: video::StdVideoH265LevelIdc,
25795 pub max_slice_segment_count: u32,
25796 pub max_tiles: Extent2D,
25797 pub ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR,
25798 pub transform_block_sizes: VideoEncodeH265TransformBlockSizeFlagsKHR,
25799 pub max_p_picture_l0_reference_count: u32,
25800 pub max_b_picture_l0_reference_count: u32,
25801 pub max_l1_reference_count: u32,
25802 pub max_sub_layer_count: u32,
25803 pub expect_dyadic_temporal_sub_layer_pattern: Bool32,
25804 pub min_qp: i32,
25805 pub max_qp: i32,
25806 pub prefers_gop_remaining_frames: Bool32,
25807 pub requires_gop_remaining_frames: Bool32,
25808 pub std_syntax_flags: VideoEncodeH265StdFlagsKHR,
25809}
25810
25811impl Default for VideoEncodeH265CapabilitiesKHR {
25812 #[inline]
25813 fn default() -> Self {
25814 Self {
25815 s_type: StructureType::VIDEO_ENCODE_H265_CAPABILITIES_KHR,
25816 next: ptr::null_mut(),
25817 flags: VideoEncodeH265CapabilityFlagsKHR::default(),
25818 max_level_idc: video::StdVideoH265LevelIdc::default(),
25819 max_slice_segment_count: u32::default(),
25820 max_tiles: Extent2D::default(),
25821 ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR::default(),
25822 transform_block_sizes: VideoEncodeH265TransformBlockSizeFlagsKHR::default(),
25823 max_p_picture_l0_reference_count: u32::default(),
25824 max_b_picture_l0_reference_count: u32::default(),
25825 max_l1_reference_count: u32::default(),
25826 max_sub_layer_count: u32::default(),
25827 expect_dyadic_temporal_sub_layer_pattern: Bool32::default(),
25828 min_qp: i32::default(),
25829 max_qp: i32::default(),
25830 prefers_gop_remaining_frames: Bool32::default(),
25831 requires_gop_remaining_frames: Bool32::default(),
25832 std_syntax_flags: VideoEncodeH265StdFlagsKHR::default(),
25833 }
25834 }
25835}
25836
25837#[repr(C)]
25839#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25840pub struct VideoEncodeH265DpbSlotInfoKHR {
25841 pub s_type: StructureType,
25842 pub next: *const c_void,
25843 pub std_reference_info: *const video::StdVideoEncodeH265ReferenceInfo,
25844}
25845
25846impl Default for VideoEncodeH265DpbSlotInfoKHR {
25847 #[inline]
25848 fn default() -> Self {
25849 Self {
25850 s_type: StructureType::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR,
25851 next: ptr::null(),
25852 std_reference_info: ptr::null(),
25853 }
25854 }
25855}
25856
25857#[repr(C)]
25859#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
25860pub struct VideoEncodeH265FrameSizeKHR {
25861 pub frame_i_size: u32,
25862 pub frame_p_size: u32,
25863 pub frame_b_size: u32,
25864}
25865
25866#[repr(C)]
25868#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25869pub struct VideoEncodeH265GopRemainingFrameInfoKHR {
25870 pub s_type: StructureType,
25871 pub next: *const c_void,
25872 pub use_gop_remaining_frames: Bool32,
25873 pub gop_remaining_i: u32,
25874 pub gop_remaining_p: u32,
25875 pub gop_remaining_b: u32,
25876}
25877
25878impl Default for VideoEncodeH265GopRemainingFrameInfoKHR {
25879 #[inline]
25880 fn default() -> Self {
25881 Self {
25882 s_type: StructureType::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR,
25883 next: ptr::null(),
25884 use_gop_remaining_frames: Bool32::default(),
25885 gop_remaining_i: u32::default(),
25886 gop_remaining_p: u32::default(),
25887 gop_remaining_b: u32::default(),
25888 }
25889 }
25890}
25891
25892#[repr(C)]
25894#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25895pub struct VideoEncodeH265NaluSliceSegmentInfoKHR {
25896 pub s_type: StructureType,
25897 pub next: *const c_void,
25898 pub constant_qp: i32,
25899 pub std_slice_segment_header: *const video::StdVideoEncodeH265SliceSegmentHeader,
25900}
25901
25902impl Default for VideoEncodeH265NaluSliceSegmentInfoKHR {
25903 #[inline]
25904 fn default() -> Self {
25905 Self {
25906 s_type: StructureType::VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR,
25907 next: ptr::null(),
25908 constant_qp: i32::default(),
25909 std_slice_segment_header: ptr::null(),
25910 }
25911 }
25912}
25913
25914#[repr(C)]
25916#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25917pub struct VideoEncodeH265PictureInfoKHR {
25918 pub s_type: StructureType,
25919 pub next: *const c_void,
25920 pub nalu_slice_segment_entry_count: u32,
25921 pub nalu_slice_segment_entries: *const VideoEncodeH265NaluSliceSegmentInfoKHR,
25922 pub std_picture_info: *const video::StdVideoEncodeH265PictureInfo,
25923}
25924
25925impl Default for VideoEncodeH265PictureInfoKHR {
25926 #[inline]
25927 fn default() -> Self {
25928 Self {
25929 s_type: StructureType::VIDEO_ENCODE_H265_PICTURE_INFO_KHR,
25930 next: ptr::null(),
25931 nalu_slice_segment_entry_count: u32::default(),
25932 nalu_slice_segment_entries: ptr::null(),
25933 std_picture_info: ptr::null(),
25934 }
25935 }
25936}
25937
25938#[repr(C)]
25940#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25941pub struct VideoEncodeH265ProfileInfoKHR {
25942 pub s_type: StructureType,
25943 pub next: *const c_void,
25944 pub std_profile_idc: video::StdVideoH265ProfileIdc,
25945}
25946
25947impl Default for VideoEncodeH265ProfileInfoKHR {
25948 #[inline]
25949 fn default() -> Self {
25950 Self {
25951 s_type: StructureType::VIDEO_ENCODE_H265_PROFILE_INFO_KHR,
25952 next: ptr::null(),
25953 std_profile_idc: video::StdVideoH265ProfileIdc::default(),
25954 }
25955 }
25956}
25957
25958#[repr(C)]
25960#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
25961pub struct VideoEncodeH265QpKHR {
25962 pub qp_i: i32,
25963 pub qp_p: i32,
25964 pub qp_b: i32,
25965}
25966
25967#[repr(C)]
25969#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
25970pub struct VideoEncodeH265QualityLevelPropertiesKHR {
25971 pub s_type: StructureType,
25972 pub next: *mut c_void,
25973 pub preferred_rate_control_flags: VideoEncodeH265RateControlFlagsKHR,
25974 pub preferred_gop_frame_count: u32,
25975 pub preferred_idr_period: u32,
25976 pub preferred_consecutive_b_frame_count: u32,
25977 pub preferred_sub_layer_count: u32,
25978 pub preferred_constant_qp: VideoEncodeH265QpKHR,
25979 pub preferred_max_l0_reference_count: u32,
25980 pub preferred_max_l1_reference_count: u32,
25981}
25982
25983impl Default for VideoEncodeH265QualityLevelPropertiesKHR {
25984 #[inline]
25985 fn default() -> Self {
25986 Self {
25987 s_type: StructureType::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR,
25988 next: ptr::null_mut(),
25989 preferred_rate_control_flags: VideoEncodeH265RateControlFlagsKHR::default(),
25990 preferred_gop_frame_count: u32::default(),
25991 preferred_idr_period: u32::default(),
25992 preferred_consecutive_b_frame_count: u32::default(),
25993 preferred_sub_layer_count: u32::default(),
25994 preferred_constant_qp: VideoEncodeH265QpKHR::default(),
25995 preferred_max_l0_reference_count: u32::default(),
25996 preferred_max_l1_reference_count: u32::default(),
25997 }
25998 }
25999}
26000
26001#[repr(C)]
26003#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26004pub struct VideoEncodeH265QuantizationMapCapabilitiesKHR {
26005 pub s_type: StructureType,
26006 pub next: *mut c_void,
26007 pub min_qp_delta: i32,
26008 pub max_qp_delta: i32,
26009}
26010
26011impl Default for VideoEncodeH265QuantizationMapCapabilitiesKHR {
26012 #[inline]
26013 fn default() -> Self {
26014 Self {
26015 s_type: StructureType::VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR,
26016 next: ptr::null_mut(),
26017 min_qp_delta: i32::default(),
26018 max_qp_delta: i32::default(),
26019 }
26020 }
26021}
26022
26023#[repr(C)]
26025#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26026pub struct VideoEncodeH265RateControlInfoKHR {
26027 pub s_type: StructureType,
26028 pub next: *const c_void,
26029 pub flags: VideoEncodeH265RateControlFlagsKHR,
26030 pub gop_frame_count: u32,
26031 pub idr_period: u32,
26032 pub consecutive_b_frame_count: u32,
26033 pub sub_layer_count: u32,
26034}
26035
26036impl Default for VideoEncodeH265RateControlInfoKHR {
26037 #[inline]
26038 fn default() -> Self {
26039 Self {
26040 s_type: StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR,
26041 next: ptr::null(),
26042 flags: VideoEncodeH265RateControlFlagsKHR::default(),
26043 gop_frame_count: u32::default(),
26044 idr_period: u32::default(),
26045 consecutive_b_frame_count: u32::default(),
26046 sub_layer_count: u32::default(),
26047 }
26048 }
26049}
26050
26051#[repr(C)]
26053#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26054pub struct VideoEncodeH265RateControlLayerInfoKHR {
26055 pub s_type: StructureType,
26056 pub next: *const c_void,
26057 pub use_min_qp: Bool32,
26058 pub min_qp: VideoEncodeH265QpKHR,
26059 pub use_max_qp: Bool32,
26060 pub max_qp: VideoEncodeH265QpKHR,
26061 pub use_max_frame_size: Bool32,
26062 pub max_frame_size: VideoEncodeH265FrameSizeKHR,
26063}
26064
26065impl Default for VideoEncodeH265RateControlLayerInfoKHR {
26066 #[inline]
26067 fn default() -> Self {
26068 Self {
26069 s_type: StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR,
26070 next: ptr::null(),
26071 use_min_qp: Bool32::default(),
26072 min_qp: VideoEncodeH265QpKHR::default(),
26073 use_max_qp: Bool32::default(),
26074 max_qp: VideoEncodeH265QpKHR::default(),
26075 use_max_frame_size: Bool32::default(),
26076 max_frame_size: VideoEncodeH265FrameSizeKHR::default(),
26077 }
26078 }
26079}
26080
26081#[repr(C)]
26083#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26084pub struct VideoEncodeH265SessionCreateInfoKHR {
26085 pub s_type: StructureType,
26086 pub next: *const c_void,
26087 pub use_max_level_idc: Bool32,
26088 pub max_level_idc: video::StdVideoH265LevelIdc,
26089}
26090
26091impl Default for VideoEncodeH265SessionCreateInfoKHR {
26092 #[inline]
26093 fn default() -> Self {
26094 Self {
26095 s_type: StructureType::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR,
26096 next: ptr::null(),
26097 use_max_level_idc: Bool32::default(),
26098 max_level_idc: video::StdVideoH265LevelIdc::default(),
26099 }
26100 }
26101}
26102
26103#[repr(C)]
26105#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26106pub struct VideoEncodeH265SessionParametersAddInfoKHR {
26107 pub s_type: StructureType,
26108 pub next: *const c_void,
26109 pub std_vps_count: u32,
26110 pub std_vp_ss: *const video::StdVideoH265VideoParameterSet,
26111 pub std_sps_count: u32,
26112 pub std_sp_ss: *const video::StdVideoH265SequenceParameterSet,
26113 pub std_pps_count: u32,
26114 pub std_pp_ss: *const video::StdVideoH265PictureParameterSet,
26115}
26116
26117impl Default for VideoEncodeH265SessionParametersAddInfoKHR {
26118 #[inline]
26119 fn default() -> Self {
26120 Self {
26121 s_type: StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR,
26122 next: ptr::null(),
26123 std_vps_count: u32::default(),
26124 std_vp_ss: ptr::null(),
26125 std_sps_count: u32::default(),
26126 std_sp_ss: ptr::null(),
26127 std_pps_count: u32::default(),
26128 std_pp_ss: ptr::null(),
26129 }
26130 }
26131}
26132
26133#[repr(C)]
26135#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26136pub struct VideoEncodeH265SessionParametersCreateInfoKHR {
26137 pub s_type: StructureType,
26138 pub next: *const c_void,
26139 pub max_std_vps_count: u32,
26140 pub max_std_sps_count: u32,
26141 pub max_std_pps_count: u32,
26142 pub parameters_add_info: *const VideoEncodeH265SessionParametersAddInfoKHR,
26143}
26144
26145impl Default for VideoEncodeH265SessionParametersCreateInfoKHR {
26146 #[inline]
26147 fn default() -> Self {
26148 Self {
26149 s_type: StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
26150 next: ptr::null(),
26151 max_std_vps_count: u32::default(),
26152 max_std_sps_count: u32::default(),
26153 max_std_pps_count: u32::default(),
26154 parameters_add_info: ptr::null(),
26155 }
26156 }
26157}
26158
26159#[repr(C)]
26161#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26162pub struct VideoEncodeH265SessionParametersFeedbackInfoKHR {
26163 pub s_type: StructureType,
26164 pub next: *mut c_void,
26165 pub has_std_vps_overrides: Bool32,
26166 pub has_std_sps_overrides: Bool32,
26167 pub has_std_pps_overrides: Bool32,
26168}
26169
26170impl Default for VideoEncodeH265SessionParametersFeedbackInfoKHR {
26171 #[inline]
26172 fn default() -> Self {
26173 Self {
26174 s_type: StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
26175 next: ptr::null_mut(),
26176 has_std_vps_overrides: Bool32::default(),
26177 has_std_sps_overrides: Bool32::default(),
26178 has_std_pps_overrides: Bool32::default(),
26179 }
26180 }
26181}
26182
26183#[repr(C)]
26185#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26186pub struct VideoEncodeH265SessionParametersGetInfoKHR {
26187 pub s_type: StructureType,
26188 pub next: *const c_void,
26189 pub write_std_vps: Bool32,
26190 pub write_std_sps: Bool32,
26191 pub write_std_pps: Bool32,
26192 pub std_vps_id: u32,
26193 pub std_sps_id: u32,
26194 pub std_pps_id: u32,
26195}
26196
26197impl Default for VideoEncodeH265SessionParametersGetInfoKHR {
26198 #[inline]
26199 fn default() -> Self {
26200 Self {
26201 s_type: StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR,
26202 next: ptr::null(),
26203 write_std_vps: Bool32::default(),
26204 write_std_sps: Bool32::default(),
26205 write_std_pps: Bool32::default(),
26206 std_vps_id: u32::default(),
26207 std_sps_id: u32::default(),
26208 std_pps_id: u32::default(),
26209 }
26210 }
26211}
26212
26213#[repr(C)]
26215#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26216pub struct VideoEncodeInfoKHR {
26217 pub s_type: StructureType,
26218 pub next: *const c_void,
26219 pub flags: VideoEncodeFlagsKHR,
26220 pub dst_buffer: Buffer,
26221 pub dst_buffer_offset: DeviceSize,
26222 pub dst_buffer_range: DeviceSize,
26223 pub src_picture_resource: VideoPictureResourceInfoKHR,
26224 pub setup_reference_slot: *const VideoReferenceSlotInfoKHR,
26225 pub reference_slot_count: u32,
26226 pub reference_slots: *const VideoReferenceSlotInfoKHR,
26227 pub preceding_externally_encoded_bytes: u32,
26228}
26229
26230impl Default for VideoEncodeInfoKHR {
26231 #[inline]
26232 fn default() -> Self {
26233 Self {
26234 s_type: StructureType::VIDEO_ENCODE_INFO_KHR,
26235 next: ptr::null(),
26236 flags: VideoEncodeFlagsKHR::default(),
26237 dst_buffer: Buffer::default(),
26238 dst_buffer_offset: DeviceSize::default(),
26239 dst_buffer_range: DeviceSize::default(),
26240 src_picture_resource: VideoPictureResourceInfoKHR::default(),
26241 setup_reference_slot: ptr::null(),
26242 reference_slot_count: u32::default(),
26243 reference_slots: ptr::null(),
26244 preceding_externally_encoded_bytes: u32::default(),
26245 }
26246 }
26247}
26248
26249#[repr(C)]
26251#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26252pub struct VideoEncodeQualityLevelInfoKHR {
26253 pub s_type: StructureType,
26254 pub next: *const c_void,
26255 pub quality_level: u32,
26256}
26257
26258impl Default for VideoEncodeQualityLevelInfoKHR {
26259 #[inline]
26260 fn default() -> Self {
26261 Self {
26262 s_type: StructureType::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
26263 next: ptr::null(),
26264 quality_level: u32::default(),
26265 }
26266 }
26267}
26268
26269#[repr(C)]
26271#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26272pub struct VideoEncodeQualityLevelPropertiesKHR {
26273 pub s_type: StructureType,
26274 pub next: *mut c_void,
26275 pub preferred_rate_control_mode: VideoEncodeRateControlModeFlagsKHR,
26276 pub preferred_rate_control_layer_count: u32,
26277}
26278
26279impl Default for VideoEncodeQualityLevelPropertiesKHR {
26280 #[inline]
26281 fn default() -> Self {
26282 Self {
26283 s_type: StructureType::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR,
26284 next: ptr::null_mut(),
26285 preferred_rate_control_mode: VideoEncodeRateControlModeFlagsKHR::default(),
26286 preferred_rate_control_layer_count: u32::default(),
26287 }
26288 }
26289}
26290
26291#[repr(C)]
26293#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26294pub struct VideoEncodeQuantizationMapCapabilitiesKHR {
26295 pub s_type: StructureType,
26296 pub next: *mut c_void,
26297 pub max_quantization_map_extent: Extent2D,
26298}
26299
26300impl Default for VideoEncodeQuantizationMapCapabilitiesKHR {
26301 #[inline]
26302 fn default() -> Self {
26303 Self {
26304 s_type: StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR,
26305 next: ptr::null_mut(),
26306 max_quantization_map_extent: Extent2D::default(),
26307 }
26308 }
26309}
26310
26311#[repr(C)]
26313#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26314pub struct VideoEncodeQuantizationMapInfoKHR {
26315 pub s_type: StructureType,
26316 pub next: *const c_void,
26317 pub quantization_map: ImageView,
26318 pub quantization_map_extent: Extent2D,
26319}
26320
26321impl Default for VideoEncodeQuantizationMapInfoKHR {
26322 #[inline]
26323 fn default() -> Self {
26324 Self {
26325 s_type: StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR,
26326 next: ptr::null(),
26327 quantization_map: ImageView::default(),
26328 quantization_map_extent: Extent2D::default(),
26329 }
26330 }
26331}
26332
26333#[repr(C)]
26335#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26336pub struct VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
26337 pub s_type: StructureType,
26338 pub next: *const c_void,
26339 pub quantization_map_texel_size: Extent2D,
26340}
26341
26342impl Default for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
26343 #[inline]
26344 fn default() -> Self {
26345 Self {
26346 s_type: StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR,
26347 next: ptr::null(),
26348 quantization_map_texel_size: Extent2D::default(),
26349 }
26350 }
26351}
26352
26353#[repr(C)]
26355#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26356pub struct VideoEncodeRateControlInfoKHR {
26357 pub s_type: StructureType,
26358 pub next: *const c_void,
26359 pub flags: VideoEncodeRateControlFlagsKHR,
26360 pub rate_control_mode: VideoEncodeRateControlModeFlagsKHR,
26361 pub layer_count: u32,
26362 pub layers: *const VideoEncodeRateControlLayerInfoKHR,
26363 pub virtual_buffer_size_in_ms: u32,
26364 pub initial_virtual_buffer_size_in_ms: u32,
26365}
26366
26367impl Default for VideoEncodeRateControlInfoKHR {
26368 #[inline]
26369 fn default() -> Self {
26370 Self {
26371 s_type: StructureType::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
26372 next: ptr::null(),
26373 flags: VideoEncodeRateControlFlagsKHR::default(),
26374 rate_control_mode: VideoEncodeRateControlModeFlagsKHR::default(),
26375 layer_count: u32::default(),
26376 layers: ptr::null(),
26377 virtual_buffer_size_in_ms: u32::default(),
26378 initial_virtual_buffer_size_in_ms: u32::default(),
26379 }
26380 }
26381}
26382
26383#[repr(C)]
26385#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26386pub struct VideoEncodeRateControlLayerInfoKHR {
26387 pub s_type: StructureType,
26388 pub next: *const c_void,
26389 pub average_bitrate: u64,
26390 pub max_bitrate: u64,
26391 pub frame_rate_numerator: u32,
26392 pub frame_rate_denominator: u32,
26393}
26394
26395impl Default for VideoEncodeRateControlLayerInfoKHR {
26396 #[inline]
26397 fn default() -> Self {
26398 Self {
26399 s_type: StructureType::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR,
26400 next: ptr::null(),
26401 average_bitrate: u64::default(),
26402 max_bitrate: u64::default(),
26403 frame_rate_numerator: u32::default(),
26404 frame_rate_denominator: u32::default(),
26405 }
26406 }
26407}
26408
26409#[repr(C)]
26411#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26412pub struct VideoEncodeSessionParametersFeedbackInfoKHR {
26413 pub s_type: StructureType,
26414 pub next: *mut c_void,
26415 pub has_overrides: Bool32,
26416}
26417
26418impl Default for VideoEncodeSessionParametersFeedbackInfoKHR {
26419 #[inline]
26420 fn default() -> Self {
26421 Self {
26422 s_type: StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
26423 next: ptr::null_mut(),
26424 has_overrides: Bool32::default(),
26425 }
26426 }
26427}
26428
26429#[repr(C)]
26431#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26432pub struct VideoEncodeSessionParametersGetInfoKHR {
26433 pub s_type: StructureType,
26434 pub next: *const c_void,
26435 pub video_session_parameters: VideoSessionParametersKHR,
26436}
26437
26438impl Default for VideoEncodeSessionParametersGetInfoKHR {
26439 #[inline]
26440 fn default() -> Self {
26441 Self {
26442 s_type: StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR,
26443 next: ptr::null(),
26444 video_session_parameters: VideoSessionParametersKHR::default(),
26445 }
26446 }
26447}
26448
26449#[repr(C)]
26451#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26452pub struct VideoEncodeUsageInfoKHR {
26453 pub s_type: StructureType,
26454 pub next: *const c_void,
26455 pub video_usage_hints: VideoEncodeUsageFlagsKHR,
26456 pub video_content_hints: VideoEncodeContentFlagsKHR,
26457 pub tuning_mode: VideoEncodeTuningModeKHR,
26458}
26459
26460impl Default for VideoEncodeUsageInfoKHR {
26461 #[inline]
26462 fn default() -> Self {
26463 Self {
26464 s_type: StructureType::VIDEO_ENCODE_USAGE_INFO_KHR,
26465 next: ptr::null(),
26466 video_usage_hints: VideoEncodeUsageFlagsKHR::default(),
26467 video_content_hints: VideoEncodeContentFlagsKHR::default(),
26468 tuning_mode: VideoEncodeTuningModeKHR::default(),
26469 }
26470 }
26471}
26472
26473#[repr(C)]
26475#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26476pub struct VideoEndCodingInfoKHR {
26477 pub s_type: StructureType,
26478 pub next: *const c_void,
26479 pub flags: VideoEndCodingFlagsKHR,
26480}
26481
26482impl Default for VideoEndCodingInfoKHR {
26483 #[inline]
26484 fn default() -> Self {
26485 Self {
26486 s_type: StructureType::VIDEO_END_CODING_INFO_KHR,
26487 next: ptr::null(),
26488 flags: VideoEndCodingFlagsKHR::default(),
26489 }
26490 }
26491}
26492
26493#[repr(C)]
26495#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26496pub struct VideoFormatAV1QuantizationMapPropertiesKHR {
26497 pub s_type: StructureType,
26498 pub next: *mut c_void,
26499 pub compatible_superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR,
26500}
26501
26502impl Default for VideoFormatAV1QuantizationMapPropertiesKHR {
26503 #[inline]
26504 fn default() -> Self {
26505 Self {
26506 s_type: StructureType::VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR,
26507 next: ptr::null_mut(),
26508 compatible_superblock_sizes: VideoEncodeAV1SuperblockSizeFlagsKHR::default(),
26509 }
26510 }
26511}
26512
26513#[repr(C)]
26515#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26516pub struct VideoFormatH265QuantizationMapPropertiesKHR {
26517 pub s_type: StructureType,
26518 pub next: *mut c_void,
26519 pub compatible_ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR,
26520}
26521
26522impl Default for VideoFormatH265QuantizationMapPropertiesKHR {
26523 #[inline]
26524 fn default() -> Self {
26525 Self {
26526 s_type: StructureType::VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR,
26527 next: ptr::null_mut(),
26528 compatible_ctb_sizes: VideoEncodeH265CtbSizeFlagsKHR::default(),
26529 }
26530 }
26531}
26532
26533#[repr(C)]
26535#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26536pub struct VideoFormatPropertiesKHR {
26537 pub s_type: StructureType,
26538 pub next: *mut c_void,
26539 pub format: Format,
26540 pub component_mapping: ComponentMapping,
26541 pub image_create_flags: ImageCreateFlags,
26542 pub image_type: ImageType,
26543 pub image_tiling: ImageTiling,
26544 pub image_usage_flags: ImageUsageFlags,
26545}
26546
26547impl Default for VideoFormatPropertiesKHR {
26548 #[inline]
26549 fn default() -> Self {
26550 Self {
26551 s_type: StructureType::VIDEO_FORMAT_PROPERTIES_KHR,
26552 next: ptr::null_mut(),
26553 format: Format::default(),
26554 component_mapping: ComponentMapping::default(),
26555 image_create_flags: ImageCreateFlags::default(),
26556 image_type: ImageType::default(),
26557 image_tiling: ImageTiling::default(),
26558 image_usage_flags: ImageUsageFlags::default(),
26559 }
26560 }
26561}
26562
26563#[repr(C)]
26565#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26566pub struct VideoFormatQuantizationMapPropertiesKHR {
26567 pub s_type: StructureType,
26568 pub next: *mut c_void,
26569 pub quantization_map_texel_size: Extent2D,
26570}
26571
26572impl Default for VideoFormatQuantizationMapPropertiesKHR {
26573 #[inline]
26574 fn default() -> Self {
26575 Self {
26576 s_type: StructureType::VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR,
26577 next: ptr::null_mut(),
26578 quantization_map_texel_size: Extent2D::default(),
26579 }
26580 }
26581}
26582
26583#[repr(C)]
26585#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26586pub struct VideoInlineQueryInfoKHR {
26587 pub s_type: StructureType,
26588 pub next: *const c_void,
26589 pub query_pool: QueryPool,
26590 pub first_query: u32,
26591 pub query_count: u32,
26592}
26593
26594impl Default for VideoInlineQueryInfoKHR {
26595 #[inline]
26596 fn default() -> Self {
26597 Self {
26598 s_type: StructureType::VIDEO_INLINE_QUERY_INFO_KHR,
26599 next: ptr::null(),
26600 query_pool: QueryPool::default(),
26601 first_query: u32::default(),
26602 query_count: u32::default(),
26603 }
26604 }
26605}
26606
26607#[repr(C)]
26609#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26610pub struct VideoPictureResourceInfoKHR {
26611 pub s_type: StructureType,
26612 pub next: *const c_void,
26613 pub coded_offset: Offset2D,
26614 pub coded_extent: Extent2D,
26615 pub base_array_layer: u32,
26616 pub image_view_binding: ImageView,
26617}
26618
26619impl Default for VideoPictureResourceInfoKHR {
26620 #[inline]
26621 fn default() -> Self {
26622 Self {
26623 s_type: StructureType::VIDEO_PICTURE_RESOURCE_INFO_KHR,
26624 next: ptr::null(),
26625 coded_offset: Offset2D::default(),
26626 coded_extent: Extent2D::default(),
26627 base_array_layer: u32::default(),
26628 image_view_binding: ImageView::default(),
26629 }
26630 }
26631}
26632
26633#[repr(C)]
26635#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26636pub struct VideoProfileInfoKHR {
26637 pub s_type: StructureType,
26638 pub next: *const c_void,
26639 pub video_codec_operation: VideoCodecOperationFlagsKHR,
26640 pub chroma_subsampling: VideoChromaSubsamplingFlagsKHR,
26641 pub luma_bit_depth: VideoComponentBitDepthFlagsKHR,
26642 pub chroma_bit_depth: VideoComponentBitDepthFlagsKHR,
26643}
26644
26645impl Default for VideoProfileInfoKHR {
26646 #[inline]
26647 fn default() -> Self {
26648 Self {
26649 s_type: StructureType::VIDEO_PROFILE_INFO_KHR,
26650 next: ptr::null(),
26651 video_codec_operation: VideoCodecOperationFlagsKHR::default(),
26652 chroma_subsampling: VideoChromaSubsamplingFlagsKHR::default(),
26653 luma_bit_depth: VideoComponentBitDepthFlagsKHR::default(),
26654 chroma_bit_depth: VideoComponentBitDepthFlagsKHR::default(),
26655 }
26656 }
26657}
26658
26659#[repr(C)]
26661#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26662pub struct VideoProfileListInfoKHR {
26663 pub s_type: StructureType,
26664 pub next: *const c_void,
26665 pub profile_count: u32,
26666 pub profiles: *const VideoProfileInfoKHR,
26667}
26668
26669impl Default for VideoProfileListInfoKHR {
26670 #[inline]
26671 fn default() -> Self {
26672 Self {
26673 s_type: StructureType::VIDEO_PROFILE_LIST_INFO_KHR,
26674 next: ptr::null(),
26675 profile_count: u32::default(),
26676 profiles: ptr::null(),
26677 }
26678 }
26679}
26680
26681#[repr(C)]
26683#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26684pub struct VideoReferenceSlotInfoKHR {
26685 pub s_type: StructureType,
26686 pub next: *const c_void,
26687 pub slot_index: i32,
26688 pub picture_resource: *const VideoPictureResourceInfoKHR,
26689}
26690
26691impl Default for VideoReferenceSlotInfoKHR {
26692 #[inline]
26693 fn default() -> Self {
26694 Self {
26695 s_type: StructureType::VIDEO_REFERENCE_SLOT_INFO_KHR,
26696 next: ptr::null(),
26697 slot_index: i32::default(),
26698 picture_resource: ptr::null(),
26699 }
26700 }
26701}
26702
26703#[repr(C)]
26705#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26706pub struct VideoSessionCreateInfoKHR {
26707 pub s_type: StructureType,
26708 pub next: *const c_void,
26709 pub queue_family_index: u32,
26710 pub flags: VideoSessionCreateFlagsKHR,
26711 pub video_profile: *const VideoProfileInfoKHR,
26712 pub picture_format: Format,
26713 pub max_coded_extent: Extent2D,
26714 pub reference_picture_format: Format,
26715 pub max_dpb_slots: u32,
26716 pub max_active_reference_pictures: u32,
26717 pub std_header_version: *const ExtensionProperties,
26718}
26719
26720impl Default for VideoSessionCreateInfoKHR {
26721 #[inline]
26722 fn default() -> Self {
26723 Self {
26724 s_type: StructureType::VIDEO_SESSION_CREATE_INFO_KHR,
26725 next: ptr::null(),
26726 queue_family_index: u32::default(),
26727 flags: VideoSessionCreateFlagsKHR::default(),
26728 video_profile: ptr::null(),
26729 picture_format: Format::default(),
26730 max_coded_extent: Extent2D::default(),
26731 reference_picture_format: Format::default(),
26732 max_dpb_slots: u32::default(),
26733 max_active_reference_pictures: u32::default(),
26734 std_header_version: ptr::null(),
26735 }
26736 }
26737}
26738
26739#[repr(C)]
26741#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26742pub struct VideoSessionMemoryRequirementsKHR {
26743 pub s_type: StructureType,
26744 pub next: *mut c_void,
26745 pub memory_bind_index: u32,
26746 pub memory_requirements: MemoryRequirements,
26747}
26748
26749impl Default for VideoSessionMemoryRequirementsKHR {
26750 #[inline]
26751 fn default() -> Self {
26752 Self {
26753 s_type: StructureType::VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR,
26754 next: ptr::null_mut(),
26755 memory_bind_index: u32::default(),
26756 memory_requirements: MemoryRequirements::default(),
26757 }
26758 }
26759}
26760
26761#[repr(C)]
26763#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26764pub struct VideoSessionParametersCreateInfoKHR {
26765 pub s_type: StructureType,
26766 pub next: *const c_void,
26767 pub flags: VideoSessionParametersCreateFlagsKHR,
26768 pub video_session_parameters_template: VideoSessionParametersKHR,
26769 pub video_session: VideoSessionKHR,
26770}
26771
26772impl Default for VideoSessionParametersCreateInfoKHR {
26773 #[inline]
26774 fn default() -> Self {
26775 Self {
26776 s_type: StructureType::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
26777 next: ptr::null(),
26778 flags: VideoSessionParametersCreateFlagsKHR::default(),
26779 video_session_parameters_template: VideoSessionParametersKHR::default(),
26780 video_session: VideoSessionKHR::default(),
26781 }
26782 }
26783}
26784
26785#[repr(C)]
26787#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26788pub struct VideoSessionParametersUpdateInfoKHR {
26789 pub s_type: StructureType,
26790 pub next: *const c_void,
26791 pub update_sequence_count: u32,
26792}
26793
26794impl Default for VideoSessionParametersUpdateInfoKHR {
26795 #[inline]
26796 fn default() -> Self {
26797 Self {
26798 s_type: StructureType::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR,
26799 next: ptr::null(),
26800 update_sequence_count: u32::default(),
26801 }
26802 }
26803}
26804
26805#[repr(C)]
26807#[derive(Copy, Clone, Default, Debug, PartialEq)]
26808pub struct Viewport {
26809 pub x: f32,
26810 pub y: f32,
26811 pub width: f32,
26812 pub height: f32,
26813 pub min_depth: f32,
26814 pub max_depth: f32,
26815}
26816
26817#[repr(C)]
26819#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
26820pub struct ViewportSwizzleNV {
26821 pub x: ViewportCoordinateSwizzleNV,
26822 pub y: ViewportCoordinateSwizzleNV,
26823 pub z: ViewportCoordinateSwizzleNV,
26824 pub w: ViewportCoordinateSwizzleNV,
26825}
26826
26827#[repr(C)]
26829#[derive(Copy, Clone, Default, Debug, PartialEq)]
26830pub struct ViewportWScalingNV {
26831 pub xcoeff: f32,
26832 pub ycoeff: f32,
26833}
26834
26835#[repr(C)]
26837#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26838pub struct WaylandSurfaceCreateInfoKHR {
26839 pub s_type: StructureType,
26840 pub next: *const c_void,
26841 pub flags: WaylandSurfaceCreateFlagsKHR,
26842 pub display: *mut wl_display,
26843 pub surface: *mut wl_surface,
26844}
26845
26846impl Default for WaylandSurfaceCreateInfoKHR {
26847 #[inline]
26848 fn default() -> Self {
26849 Self {
26850 s_type: StructureType::WAYLAND_SURFACE_CREATE_INFO_KHR,
26851 next: ptr::null(),
26852 flags: WaylandSurfaceCreateFlagsKHR::default(),
26853 display: ptr::null_mut(),
26854 surface: ptr::null_mut(),
26855 }
26856 }
26857}
26858
26859#[repr(C)]
26861#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26862pub struct Win32KeyedMutexAcquireReleaseInfoKHR {
26863 pub s_type: StructureType,
26864 pub next: *const c_void,
26865 pub acquire_count: u32,
26866 pub acquire_syncs: *const DeviceMemory,
26867 pub acquire_keys: *const u64,
26868 pub acquire_timeouts: *const u32,
26869 pub release_count: u32,
26870 pub release_syncs: *const DeviceMemory,
26871 pub release_keys: *const u64,
26872}
26873
26874impl Default for Win32KeyedMutexAcquireReleaseInfoKHR {
26875 #[inline]
26876 fn default() -> Self {
26877 Self {
26878 s_type: StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
26879 next: ptr::null(),
26880 acquire_count: u32::default(),
26881 acquire_syncs: ptr::null(),
26882 acquire_keys: ptr::null(),
26883 acquire_timeouts: ptr::null(),
26884 release_count: u32::default(),
26885 release_syncs: ptr::null(),
26886 release_keys: ptr::null(),
26887 }
26888 }
26889}
26890
26891#[repr(C)]
26893#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26894pub struct Win32KeyedMutexAcquireReleaseInfoNV {
26895 pub s_type: StructureType,
26896 pub next: *const c_void,
26897 pub acquire_count: u32,
26898 pub acquire_syncs: *const DeviceMemory,
26899 pub acquire_keys: *const u64,
26900 pub acquire_timeout_milliseconds: *const u32,
26901 pub release_count: u32,
26902 pub release_syncs: *const DeviceMemory,
26903 pub release_keys: *const u64,
26904}
26905
26906impl Default for Win32KeyedMutexAcquireReleaseInfoNV {
26907 #[inline]
26908 fn default() -> Self {
26909 Self {
26910 s_type: StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
26911 next: ptr::null(),
26912 acquire_count: u32::default(),
26913 acquire_syncs: ptr::null(),
26914 acquire_keys: ptr::null(),
26915 acquire_timeout_milliseconds: ptr::null(),
26916 release_count: u32::default(),
26917 release_syncs: ptr::null(),
26918 release_keys: ptr::null(),
26919 }
26920 }
26921}
26922
26923#[repr(C)]
26925#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26926pub struct Win32SurfaceCreateInfoKHR {
26927 pub s_type: StructureType,
26928 pub next: *const c_void,
26929 pub flags: Win32SurfaceCreateFlagsKHR,
26930 pub hinstance: HINSTANCE,
26931 pub hwnd: HWND,
26932}
26933
26934impl Default for Win32SurfaceCreateInfoKHR {
26935 #[inline]
26936 fn default() -> Self {
26937 Self {
26938 s_type: StructureType::WIN32_SURFACE_CREATE_INFO_KHR,
26939 next: ptr::null(),
26940 flags: Win32SurfaceCreateFlagsKHR::default(),
26941 hinstance: ptr::null_mut(),
26942 hwnd: ptr::null_mut(),
26943 }
26944 }
26945}
26946
26947#[repr(C)]
26949#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26950pub struct WriteDescriptorSet {
26951 pub s_type: StructureType,
26952 pub next: *const c_void,
26953 pub dst_set: DescriptorSet,
26954 pub dst_binding: u32,
26955 pub dst_array_element: u32,
26956 pub descriptor_count: u32,
26957 pub descriptor_type: DescriptorType,
26958 pub image_info: *const DescriptorImageInfo,
26959 pub buffer_info: *const DescriptorBufferInfo,
26960 pub texel_buffer_view: *const BufferView,
26961}
26962
26963impl Default for WriteDescriptorSet {
26964 #[inline]
26965 fn default() -> Self {
26966 Self {
26967 s_type: StructureType::WRITE_DESCRIPTOR_SET,
26968 next: ptr::null(),
26969 dst_set: DescriptorSet::default(),
26970 dst_binding: u32::default(),
26971 dst_array_element: u32::default(),
26972 descriptor_count: u32::default(),
26973 descriptor_type: DescriptorType::default(),
26974 image_info: ptr::null(),
26975 buffer_info: ptr::null(),
26976 texel_buffer_view: ptr::null(),
26977 }
26978 }
26979}
26980
26981#[repr(C)]
26983#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
26984pub struct WriteDescriptorSetAccelerationStructureKHR {
26985 pub s_type: StructureType,
26986 pub next: *const c_void,
26987 pub acceleration_structure_count: u32,
26988 pub acceleration_structures: *const AccelerationStructureKHR,
26989}
26990
26991impl Default for WriteDescriptorSetAccelerationStructureKHR {
26992 #[inline]
26993 fn default() -> Self {
26994 Self {
26995 s_type: StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
26996 next: ptr::null(),
26997 acceleration_structure_count: u32::default(),
26998 acceleration_structures: ptr::null(),
26999 }
27000 }
27001}
27002
27003#[repr(C)]
27005#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
27006pub struct WriteDescriptorSetAccelerationStructureNV {
27007 pub s_type: StructureType,
27008 pub next: *const c_void,
27009 pub acceleration_structure_count: u32,
27010 pub acceleration_structures: *const AccelerationStructureNV,
27011}
27012
27013impl Default for WriteDescriptorSetAccelerationStructureNV {
27014 #[inline]
27015 fn default() -> Self {
27016 Self {
27017 s_type: StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
27018 next: ptr::null(),
27019 acceleration_structure_count: u32::default(),
27020 acceleration_structures: ptr::null(),
27021 }
27022 }
27023}
27024
27025#[repr(C)]
27027#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
27028pub struct WriteDescriptorSetInlineUniformBlock {
27029 pub s_type: StructureType,
27030 pub next: *const c_void,
27031 pub data_size: u32,
27032 pub data: *const c_void,
27033}
27034
27035impl Default for WriteDescriptorSetInlineUniformBlock {
27036 #[inline]
27037 fn default() -> Self {
27038 Self {
27039 s_type: StructureType::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
27040 next: ptr::null(),
27041 data_size: u32::default(),
27042 data: ptr::null(),
27043 }
27044 }
27045}
27046
27047#[repr(C)]
27049#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
27050pub struct WriteDescriptorSetPartitionedAccelerationStructureNV {
27051 pub s_type: StructureType,
27052 pub next: *mut c_void,
27053 pub acceleration_structure_count: u32,
27054 pub acceleration_structures: *const DeviceAddress,
27055}
27056
27057impl Default for WriteDescriptorSetPartitionedAccelerationStructureNV {
27058 #[inline]
27059 fn default() -> Self {
27060 Self {
27061 s_type: StructureType::WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV,
27062 next: ptr::null_mut(),
27063 acceleration_structure_count: u32::default(),
27064 acceleration_structures: ptr::null(),
27065 }
27066 }
27067}
27068
27069#[repr(C)]
27071#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
27072pub struct WriteIndirectExecutionSetPipelineEXT {
27073 pub s_type: StructureType,
27074 pub next: *const c_void,
27075 pub index: u32,
27076 pub pipeline: Pipeline,
27077}
27078
27079impl Default for WriteIndirectExecutionSetPipelineEXT {
27080 #[inline]
27081 fn default() -> Self {
27082 Self {
27083 s_type: StructureType::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT,
27084 next: ptr::null(),
27085 index: u32::default(),
27086 pipeline: Pipeline::default(),
27087 }
27088 }
27089}
27090
27091#[repr(C)]
27093#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
27094pub struct WriteIndirectExecutionSetShaderEXT {
27095 pub s_type: StructureType,
27096 pub next: *const c_void,
27097 pub index: u32,
27098 pub shader: ShaderEXT,
27099}
27100
27101impl Default for WriteIndirectExecutionSetShaderEXT {
27102 #[inline]
27103 fn default() -> Self {
27104 Self {
27105 s_type: StructureType::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT,
27106 next: ptr::null(),
27107 index: u32::default(),
27108 shader: ShaderEXT::default(),
27109 }
27110 }
27111}
27112
27113#[repr(C)]
27115#[derive(Copy, Clone, Default, Debug, PartialEq)]
27116pub struct XYColorEXT {
27117 pub x: f32,
27118 pub y: f32,
27119}
27120
27121#[repr(C)]
27123#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
27124pub struct XcbSurfaceCreateInfoKHR {
27125 pub s_type: StructureType,
27126 pub next: *const c_void,
27127 pub flags: XcbSurfaceCreateFlagsKHR,
27128 pub connection: *mut xcb_connection_t,
27129 pub window: xcb_window_t,
27130}
27131
27132impl Default for XcbSurfaceCreateInfoKHR {
27133 #[inline]
27134 fn default() -> Self {
27135 Self {
27136 s_type: StructureType::XCB_SURFACE_CREATE_INFO_KHR,
27137 next: ptr::null(),
27138 flags: XcbSurfaceCreateFlagsKHR::default(),
27139 connection: ptr::null_mut(),
27140 window: xcb_window_t::default(),
27141 }
27142 }
27143}
27144
27145#[repr(C)]
27147#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
27148pub struct XlibSurfaceCreateInfoKHR {
27149 pub s_type: StructureType,
27150 pub next: *const c_void,
27151 pub flags: XlibSurfaceCreateFlagsKHR,
27152 pub dpy: *mut Display,
27153 pub window: Window,
27154}
27155
27156impl Default for XlibSurfaceCreateInfoKHR {
27157 #[inline]
27158 fn default() -> Self {
27159 Self {
27160 s_type: StructureType::XLIB_SURFACE_CREATE_INFO_KHR,
27161 next: ptr::null(),
27162 flags: XlibSurfaceCreateFlagsKHR::default(),
27163 dpy: ptr::null_mut(),
27164 window: Window::default(),
27165 }
27166 }
27167}
27168
27169pub type AabbPositionsNV = AabbPositionsKHR;
27171pub type AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
27173pub type AttachmentDescription2KHR = AttachmentDescription2;
27175pub type AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
27177pub type AttachmentReference2KHR = AttachmentReference2;
27179pub type AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
27181pub type AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
27183pub type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
27185pub type BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
27187pub type BindDescriptorSetsInfoKHR = BindDescriptorSetsInfo;
27189pub type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
27191pub type BindImageMemoryInfoKHR = BindImageMemoryInfo;
27193pub type BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
27195pub type BindMemoryStatusKHR = BindMemoryStatus;
27197pub type BlitImageInfo2KHR = BlitImageInfo2;
27199pub type BufferCopy2KHR = BufferCopy2;
27201pub type BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
27203pub type BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
27205pub type BufferImageCopy2KHR = BufferImageCopy2;
27207pub type BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
27209pub type BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
27211pub type BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
27213pub type BufferUsageFlags2CreateInfoKHR = BufferUsageFlags2CreateInfo;
27215pub type CalibratedTimestampInfoEXT = CalibratedTimestampInfoKHR;
27217pub type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
27219pub type CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
27221pub type ConformanceVersionKHR = ConformanceVersion;
27223pub type CopyBufferInfo2KHR = CopyBufferInfo2;
27225pub type CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
27227pub type CopyImageInfo2KHR = CopyImageInfo2;
27229pub type CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
27231pub type CopyImageToImageInfoEXT = CopyImageToImageInfo;
27233pub type CopyImageToMemoryInfoEXT = CopyImageToMemoryInfo;
27235pub type CopyMemoryToImageInfoEXT = CopyMemoryToImageInfo;
27237pub type DependencyInfoKHR = DependencyInfo;
27239pub type DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
27241pub type DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
27243pub type DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
27245pub type DescriptorSetVariableDescriptorCountAllocateInfoEXT =
27247 DescriptorSetVariableDescriptorCountAllocateInfo;
27248pub type DescriptorSetVariableDescriptorCountLayoutSupportEXT =
27250 DescriptorSetVariableDescriptorCountLayoutSupport;
27251pub type DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
27253pub type DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
27255pub type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
27257pub type DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
27259pub type DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
27261pub type DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
27263pub type DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
27265pub type DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
27267pub type DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
27269pub type DeviceImageSubresourceInfoKHR = DeviceImageSubresourceInfo;
27271pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
27273pub type DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
27275pub type DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfo;
27277pub type DeviceQueueGlobalPriorityCreateInfoKHR = DeviceQueueGlobalPriorityCreateInfo;
27279pub type ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
27281pub type ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
27283pub type ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
27285pub type ExternalBufferPropertiesKHR = ExternalBufferProperties;
27287pub type ExternalFencePropertiesKHR = ExternalFenceProperties;
27289pub type ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
27291pub type ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
27293pub type ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
27295pub type ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
27297pub type ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
27299pub type FormatProperties2KHR = FormatProperties2;
27301pub type FormatProperties3KHR = FormatProperties3;
27303pub type FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
27305pub type FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
27307pub type HostImageCopyDevicePerformanceQueryEXT = HostImageCopyDevicePerformanceQuery;
27309pub type HostImageLayoutTransitionInfoEXT = HostImageLayoutTransitionInfo;
27311pub type ImageBlit2KHR = ImageBlit2;
27313pub type ImageCopy2KHR = ImageCopy2;
27315pub type ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
27317pub type ImageFormatProperties2KHR = ImageFormatProperties2;
27319pub type ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
27321pub type ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
27323pub type ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
27325pub type ImageResolve2KHR = ImageResolve2;
27327pub type ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
27329pub type ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
27331pub type ImageSubresource2EXT = ImageSubresource2;
27333pub type ImageSubresource2KHR = ImageSubresource2;
27335pub type ImageToMemoryCopyEXT = ImageToMemoryCopy;
27337pub type ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
27339pub type InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
27341pub type MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
27343pub type MemoryBarrier2KHR = MemoryBarrier2;
27345pub type MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
27347pub type MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
27349pub type MemoryMapInfoKHR = MemoryMapInfo;
27351pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
27353pub type MemoryRequirements2KHR = MemoryRequirements2;
27355pub type MemoryToImageCopyEXT = MemoryToImageCopy;
27357pub type MemoryUnmapInfoKHR = MemoryUnmapInfo;
27359pub type MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
27361pub type MutableDescriptorTypeListVALVE = MutableDescriptorTypeListEXT;
27363pub type PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
27365pub type PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
27367pub type PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
27369pub type PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
27371pub type PhysicalDeviceComputeShaderDerivativesFeaturesNV =
27373 PhysicalDeviceComputeShaderDerivativesFeaturesKHR;
27374pub type PhysicalDeviceDepthClampZeroOneFeaturesEXT = PhysicalDeviceDepthClampZeroOneFeaturesKHR;
27376pub type PhysicalDeviceDepthStencilResolvePropertiesKHR =
27378 PhysicalDeviceDepthStencilResolveProperties;
27379pub type PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
27381pub type PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
27383pub type PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
27385pub type PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
27387pub type PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR =
27389 PhysicalDeviceDynamicRenderingLocalReadFeatures;
27390pub type PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
27392pub type PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
27394pub type PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
27396pub type PhysicalDeviceExternalSciBufFeaturesNV = PhysicalDeviceExternalMemorySciBufFeaturesNV;
27398pub type PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
27400pub type PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
27402pub type PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
27404pub type PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
27406pub type PhysicalDeviceFragmentShaderBarycentricFeaturesNV =
27408 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
27409pub type PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeatures;
27411pub type PhysicalDeviceGlobalPriorityQueryFeaturesKHR = PhysicalDeviceGlobalPriorityQueryFeatures;
27413pub type PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
27415pub type PhysicalDeviceHostImageCopyFeaturesEXT = PhysicalDeviceHostImageCopyFeatures;
27417pub type PhysicalDeviceHostImageCopyPropertiesEXT = PhysicalDeviceHostImageCopyProperties;
27419pub type PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
27421pub type PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
27423pub type PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
27425pub type PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
27427pub type PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
27429pub type PhysicalDeviceIndexTypeUint8FeaturesEXT = PhysicalDeviceIndexTypeUint8Features;
27431pub type PhysicalDeviceIndexTypeUint8FeaturesKHR = PhysicalDeviceIndexTypeUint8Features;
27433pub type PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
27435pub type PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
27437pub type PhysicalDeviceLineRasterizationFeaturesEXT = PhysicalDeviceLineRasterizationFeatures;
27439pub type PhysicalDeviceLineRasterizationFeaturesKHR = PhysicalDeviceLineRasterizationFeatures;
27441pub type PhysicalDeviceLineRasterizationPropertiesEXT = PhysicalDeviceLineRasterizationProperties;
27443pub type PhysicalDeviceLineRasterizationPropertiesKHR = PhysicalDeviceLineRasterizationProperties;
27445pub type PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
27447pub type PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
27449pub type PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
27451pub type PhysicalDeviceMaintenance5FeaturesKHR = PhysicalDeviceMaintenance5Features;
27453pub type PhysicalDeviceMaintenance5PropertiesKHR = PhysicalDeviceMaintenance5Properties;
27455pub type PhysicalDeviceMaintenance6FeaturesKHR = PhysicalDeviceMaintenance6Features;
27457pub type PhysicalDeviceMaintenance6PropertiesKHR = PhysicalDeviceMaintenance6Properties;
27459pub type PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
27461pub type PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
27463pub type PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
27465pub type PhysicalDeviceMutableDescriptorTypeFeaturesVALVE =
27467 PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
27468pub type PhysicalDevicePipelineCreationCacheControlFeaturesEXT =
27470 PhysicalDevicePipelineCreationCacheControlFeatures;
27471pub type PhysicalDevicePipelineProtectedAccessFeaturesEXT =
27473 PhysicalDevicePipelineProtectedAccessFeatures;
27474pub type PhysicalDevicePipelineRobustnessFeaturesEXT = PhysicalDevicePipelineRobustnessFeatures;
27476pub type PhysicalDevicePipelineRobustnessPropertiesEXT = PhysicalDevicePipelineRobustnessProperties;
27478pub type PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
27480pub type PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
27482pub type PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
27484pub type PhysicalDevicePushDescriptorPropertiesKHR = PhysicalDevicePushDescriptorProperties;
27486pub type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM =
27488 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
27489pub type PhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
27491 PhysicalDeviceSamplerFilterMinmaxProperties;
27492pub type PhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
27494 PhysicalDeviceSamplerYcbcrConversionFeatures;
27495pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
27497pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR =
27499 PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
27500pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
27502pub type PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT =
27504 PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
27505pub type PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
27507pub type PhysicalDeviceShaderExpectAssumeFeaturesKHR = PhysicalDeviceShaderExpectAssumeFeatures;
27509pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
27511pub type PhysicalDeviceShaderFloatControls2FeaturesKHR = PhysicalDeviceShaderFloatControls2Features;
27513pub type PhysicalDeviceShaderIntegerDotProductFeaturesKHR =
27515 PhysicalDeviceShaderIntegerDotProductFeatures;
27516pub type PhysicalDeviceShaderIntegerDotProductPropertiesKHR =
27518 PhysicalDeviceShaderIntegerDotProductProperties;
27519pub type PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR =
27521 PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
27522pub type PhysicalDeviceShaderSubgroupRotateFeaturesKHR = PhysicalDeviceShaderSubgroupRotateFeatures;
27524pub type PhysicalDeviceShaderTerminateInvocationFeaturesKHR =
27526 PhysicalDeviceShaderTerminateInvocationFeatures;
27527pub type PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
27529pub type PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
27531pub type PhysicalDeviceSubgroupSizeControlPropertiesEXT =
27533 PhysicalDeviceSubgroupSizeControlProperties;
27534pub type PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
27536pub type PhysicalDeviceTexelBufferAlignmentPropertiesEXT =
27538 PhysicalDeviceTexelBufferAlignmentProperties;
27539pub type PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT =
27541 PhysicalDeviceTextureCompressionASTCHDRFeatures;
27542pub type PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
27544pub type PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
27546pub type PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
27548pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR =
27550 PhysicalDeviceUniformBufferStandardLayoutFeatures;
27551pub type PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
27553pub type PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
27555pub type PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
27557pub type PhysicalDeviceVertexAttributeDivisorFeaturesEXT =
27559 PhysicalDeviceVertexAttributeDivisorFeatures;
27560pub type PhysicalDeviceVertexAttributeDivisorFeaturesKHR =
27562 PhysicalDeviceVertexAttributeDivisorFeatures;
27563pub type PhysicalDeviceVertexAttributeDivisorPropertiesKHR =
27565 PhysicalDeviceVertexAttributeDivisorProperties;
27566pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
27568pub type PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR =
27570 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
27571pub type PipelineCreateFlags2CreateInfoKHR = PipelineCreateFlags2CreateInfo;
27573pub type PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
27575pub type PipelineCreationFeedbackEXT = PipelineCreationFeedback;
27577pub type PipelineInfoEXT = PipelineInfoKHR;
27579pub type PipelineRasterizationLineStateCreateInfoEXT = PipelineRasterizationLineStateCreateInfo;
27581pub type PipelineRasterizationLineStateCreateInfoKHR = PipelineRasterizationLineStateCreateInfo;
27583pub type PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
27585pub type PipelineRobustnessCreateInfoEXT = PipelineRobustnessCreateInfo;
27587pub type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT =
27589 PipelineShaderStageRequiredSubgroupSizeCreateInfo;
27590pub type PipelineTessellationDomainOriginStateCreateInfoKHR =
27592 PipelineTessellationDomainOriginStateCreateInfo;
27593pub type PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfo;
27595pub type PipelineVertexInputDivisorStateCreateInfoKHR = PipelineVertexInputDivisorStateCreateInfo;
27597pub type PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
27599pub type PushConstantsInfoKHR = PushConstantsInfo;
27601pub type PushDescriptorSetInfoKHR = PushDescriptorSetInfo;
27603pub type PushDescriptorSetWithTemplateInfoKHR = PushDescriptorSetWithTemplateInfo;
27605pub type QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
27607pub type QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityProperties;
27609pub type QueueFamilyGlobalPriorityPropertiesKHR = QueueFamilyGlobalPriorityProperties;
27611pub type QueueFamilyProperties2KHR = QueueFamilyProperties2;
27613pub type RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
27615pub type RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
27617pub type RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
27619pub type RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
27621pub type RenderingAreaInfoKHR = RenderingAreaInfo;
27623pub type RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
27625pub type RenderingAttachmentLocationInfoKHR = RenderingAttachmentLocationInfo;
27627pub type RenderingInfoKHR = RenderingInfo;
27629pub type RenderingInputAttachmentIndexInfoKHR = RenderingInputAttachmentIndexInfo;
27631pub type ResolveImageInfo2KHR = ResolveImageInfo2;
27633pub type SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
27635pub type SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
27637pub type SamplerYcbcrConversionImageFormatPropertiesKHR =
27639 SamplerYcbcrConversionImageFormatProperties;
27640pub type SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
27642pub type SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
27644pub type SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
27646pub type SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
27648pub type SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
27650pub type ShaderRequiredSubgroupSizeCreateInfoEXT =
27652 PipelineShaderStageRequiredSubgroupSizeCreateInfo;
27653pub type SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
27655pub type SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
27657pub type SubmitInfo2KHR = SubmitInfo2;
27659pub type SubpassBeginInfoKHR = SubpassBeginInfo;
27661pub type SubpassDependency2KHR = SubpassDependency2;
27663pub type SubpassDescription2KHR = SubpassDescription2;
27665pub type SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
27667pub type SubpassEndInfoKHR = SubpassEndInfo;
27669pub type SubresourceHostMemcpySizeEXT = SubresourceHostMemcpySize;
27671pub type SubresourceLayout2EXT = SubresourceLayout2;
27673pub type SubresourceLayout2KHR = SubresourceLayout2;
27675pub type TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
27677pub type TransformMatrixNV = TransformMatrixKHR;
27679pub type VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescription;
27681pub type VertexInputBindingDivisorDescriptionKHR = VertexInputBindingDivisorDescription;
27683pub type WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;